一種基於鏈式相控加密操作的量子雙重籤名的方法與流程
2023-05-26 06:35:26 2

本發明屬於數字籤名技術領域,尤其涉及一種基於鏈式相控加密操作的量子雙重籤名的方法。
背景技術:
經典雙重籤名常應用於電子支付系統當中,它能夠將兩個欲發送給不同參與者的籤名連接在一起,然後兩個接收者分別驗證欲發送給自己的信息的籤名,使交易順利進行並確保安全付款。經典雙重籤名方案利用數據標準加密(dateencryptionstandard,des)等傳統加密算法來加密,然而這些經典籤名方案存在安全隱患。量子密碼是量子力學與經典密碼相結合而產生的一種新的密碼學分支。基於測不準原理和量子不可克隆定理,量子密碼具有無條件安全性和對竊聽的可檢測性。將經典雙重籤名擴展到量子雙重籤名,則能夠利用量子密碼的特性來保證信息和籤名的安全,提高電子交易的安全性。
但是目前為止的大多數量子籤名方案所使用的加密方法是量子一次一密(quantumone-timepads,qotp)。一些研究發現部分利用qotp的仲裁量子籤名(arbitratedquantumsignature,aqs)方案中比較容易發生偽造攻擊。一方面,因為qotp通過量子比特加密量子比特,並且密鑰位之間彼此獨立。另一方面,泡利(pauli)操作之間彼此對易或反對易,即可以經過運算相互轉換。正因為這兩個原因,部分仲裁量子籤名方案存在一定的安全漏洞。因此需要設計新的加密方法來保證籤名的安全。
技術實現要素:
為克服已有技術的缺陷,本發明提供一種基於鏈式相控加密操作的量子雙重籤名的方法,可以提高電子籤名的安全性,相較於經典雙重籤名以及現有的量子籤名方法具有更佳的安全性能。
本發明提供一種基於鏈式相控加密操作的量子雙重籤名的方法,該方法包括:
步驟1:基於量子密鑰分配協議以及預設目標密鑰獲取方法,參與通信的通信者獲取對應目標密鑰;
其中,目標密鑰長度為n,目標密鑰中每一位的取值範圍為[1,n]之間的整數,且每一位的取值是不相同的,n為大於或等於1的整數;
第一通信者和第二通信者分別獲取第一目標密鑰,第一通信者和第三通信者分別獲取第二目標密鑰,第二通信者與第三通信者分別獲取第三目標密鑰,
其中,第一目標密鑰、第二目標密鑰以及第三目標密鑰的長度分別為x+y,y,y;
x、y為大於或等於1的整數;
步驟2:第一通信者依據預設序列並採用么正位移算法作用於真空態的方法將信息轉換為以相干態形式表達的盲化信息,並發送給其餘通信者;
所述信息是第一通信者待發送給其餘通信者的信息;
其中,第一通信者依據長度為x比特的預設第一序列並採用么正位移算法作用於真空態的方法將長度為x比特的第一信息轉換為以相干態形式表達的第一盲化信息,並發送給第二通信者;以及依據長度為y比特的預設第二序列並採用么正位移算法作用於真空態的方法將長度為y比特的第二信息轉換為以相干態形式表達的第二盲化信息,並發送給第三通信者;
步驟3:第一通信者基於鏈式相控加密操作獲取第一盲化信息的第一籤名信息和第二盲化信息的第二籤名信息;
其中,第一通信者根據第二目標密鑰以及鏈式相控加密操作對第二盲化信息進行籤名得到第二籤名信息,以及根據第一目標密鑰的前x位以及鏈式相控加密操作對第一盲化信息進行籤名得到第一籤名信息;
步驟4:第一通信者基於張量積計算方法以及鏈式相控加密操作並依據第一籤名信息和第二籤名信息生成量子雙重籤名;
其中,第一通信者通過張量積的計算將步驟3中第二籤名信息和步驟3中第一籤名信息進行連接生成相干態的第三信息;並根據第一目標密鑰以及鏈式相控加密操作對第三信息進行籤名獲得量子雙重籤名,並發送給第二通信者;
步驟5:第二通信者利用第一目標密鑰以及預設的相控解密操作解密步驟4中的量子雙重籤名而獲得步驟3中第一籤名信息和第二籤名信息;
其中,預設的相控解密操作是與鏈式相控加密操作相對應的相控解密操作;
步驟6:第二通信者驗證步驟5中的第一籤名信息是否有效,若有效,第二通信者利用第三目標密鑰以及鏈式相控加密操作對步驟5中第二籤名信息進行再次籤名,並發送給第三通信者;
步驟7:第三通信者利用第三目標密鑰以及預設的相控解密操作解密步驟6中的被再次籤名的信息而獲得第二籤名信息,並驗證第二籤名信息是否有效,若有效,第一通信者發送預設序列給其餘通信者,
其中,第一通信者將預設第一序列發送給第二通信者,預設第二序列發送給第三通信者;
步驟8:其餘通信者基於預設序列和預設規則解密步驟2中的盲化信息,使得所述其餘通信者完成電子籤名;
其中,第二通信者基於預設第一序列以及預設規則解密第一盲化信息使其恢復為第一信息,以及第三通信者基於預設第二序列以及預設規則解密第二盲化信息使其恢復為第二信息。
第一通信者是用於傳送信息給第二通信者以及第三通信者進行驗證,第二通信者和第三通信者是信息接受者。
鏈式相控加密操作加強了籤名中相干態的之間的關係,不論是目標密鑰出錯或者被籤名的信息出錯都將導致加密結果出現明顯的錯誤,從而驗證過程可以檢測出錯誤,其中相干態屬於量子態,相干態為連續變量量子態。
優選地,利用鏈式相控加密操作對相干態的信息進行籤名的公式如下所示:
其中,|s>ξ是利用鏈式相控加密操作ek得到的信息|m>ξ的籤名,ek是目標密鑰為k的鏈式相控加密操作,|m>ξ是以相干態形式表達的ξ類信息;
是以為控制相干態,為目標相干態的相控加密操作;
是信息|m>ξ中第n個相干態,是信息|m>ξ中第n-1個相干態,表示信息|m>ξ中第j個相干態,是信息|m>ξ中第kn個相干態,是信息|m>ξ中第kn-1個相干態,表示信息|m>ξ中第kj個相干態;kn是目標密鑰k中第n個位置上的數值,kn-1是目標密鑰k中第n-1個位置上的數值,kj是目標密鑰的第j個位置上的數值;
n是信息|m>ξ的長度,j∈{1,2...n};
其中,
其中,xj和pj分別表示的振幅和相位,改變相位為的相移操作,p(π)改變相位為π的相移操作。
得到的籤名中的每一個相干態不僅僅與其所對應的目標密鑰相關,還與其他的相干態以及目標密鑰中其他位置的信息相關,進而加強了籤名中相干態之間的聯繫。
其中,|m>ξ是以相干態形式表達的ξ類信息具體可以是以相干態形式表達的盲化信息或者相干態形式表達的籤名。
優選地,利用預設的相控解密操作對籤名進行解密的公式如下所示;
dk是目標密鑰為k的相控解密操作;
是以為控制相干態,為目標相干態的相控解密操作;
是籤名|s>ξ中第n個相干態,表示籤名|s>ξ中第j個相干態,是籤名|s>ξ中第kn個相干態表示籤名|s>ξ中第kj個相干態;
其中,
其中,xj(s)和pj(s)分別表示的振幅和相位,改變相位為的相移操作,p(-π)改變相位為-π的相移操作。
優選地,步驟6中第二通信者驗證步驟5中的第一籤名信息是否有效,包括:
第二通信者根據第一目標密鑰的前x位以及鏈式相控加密操作對從步驟2中接收的第一盲化信息進行籤名得到第一信息的驗證信息;
判斷第一信息的驗證信息與步驟5中的第一籤名信息是否相等,若相等,步驟5中的第一籤名信息有效,若不相等,則無效。
可以發現惡意偽造的籤名,進而可以防止攻擊者惡意偽造籤名。
優選地,步驟7中第三通信者驗證第二籤名信息是否有效,包括:
第三通信者根據第二目標密鑰以及鏈式相控加密操作對從步驟2中接收的第二盲化信息進行籤名得到第二信息的驗證信息;
判斷第二信息的驗證信息與第二籤名信息是否相等,若相等,步驟7中的第二籤名信息有效,若不相等,則無效。
可以發現惡意偽造的籤名,進而可以防止攻擊者惡意偽造籤名。
優選地,步驟4和步驟5之間,還包括:
第二通信者從步驟4中的量子雙重籤名中隨機選擇若干個相干態,並記錄被選擇的相干態的位置序號;
第二通信者根據和第一通信者預設的量子雙重籤名的相干態與二進位比特的對應關係,將被選擇的相干態轉換為相對應的二進位比特串,並將二進位比特串以及位置序號發送給第一通信者;
第一通信者根據對應關係將二進位比特串恢復為相干態,並根據位置序號將恢復的若干個相干態與步驟4中量子雙重籤名中同一位置序號的相干態進行比較,並記錄不匹配第一概率;
若不匹配第一概率小於預設第一閾值,則執行步驟5。
第一通信者和第二通信者之間的安全性驗證,進一步實現了不可偽造性,提高電子籤名的安全性。
優選地,步驟7中第三通信者獲得第二籤名信息之後以及驗證第二籤名信息是否有效之前,還包括:
第三通信者從第二籤名信息中隨機選擇若干個相干態,並記錄被選擇的相干態的位置序號;
第三通信者根據和第一通信者預設的相干態與二進位比特的對應關係將被選擇的相關態轉換為相對應的二進位比特串,並將二進位比特串以及位置序號發生給第一通信者;
第一通信者根據對應關係將二進位比特串恢復為相干態,並根據位置序號將恢復的若干個相干態與步驟3中第二籤名信息中同一位置序號的相干態進行比較,記錄不匹配第二概率;
若不匹配第二概率小於預設第二閾值,則執行驗證第二籤名信息是否有效。
第一通信者與第三通信者之間的安全性驗證,進一步實現了不可偽造性,提高了電子籤名的安全性。
優選地,步驟1具體包括:
基於量子密鑰分配協議第一通信者和第二通信者分別獲取第一原始密鑰,第一通信者和第三通信者分別獲取第二原始密鑰,第二通信者與第三通信者分別獲取第三原始密鑰;
其中,第一原始密鑰、第二原始密鑰和第三原始密鑰是二進位的比特串;
基於預設目標密鑰獲取方法分別根據第一原始密鑰、第二原始密鑰以及第三原始密鑰中0和1的位置和數量來獲取相對應的第一目標密鑰、第二目標密鑰以及第三目標密鑰,
其中,預設目標密鑰獲取方法是根據第一原始密鑰、第二原始密鑰以及第三原始密鑰中0和1的位置、數量與目標密鑰中數值的對應關係獲取目標密鑰;
對應關係為:按照位置序號從小到大的順序,原始密鑰中每個0的位置對應在目標密鑰中位置上的數值依次為1、2…α,原始密鑰中每個1的位置對應在目標密鑰中位置上的數值依次為α+1…α+β,α是原始密鑰中0出現的數量;β是原始密鑰中1出現的數量。
第一原始密鑰、第二原始密鑰和第三原始密鑰是基於無條件安全的量子密鑰分配協議得到,攻擊者不可能獲得,且目標密鑰獲取方法也只有合法通信者之間知道,攻擊者不知道變化規則,進而提高密鑰安全性。且基於原始密鑰中每一位為0和1的概率均為1/2,導致原始密鑰的長度越長,原始密鑰中每個位置均為0或者均為1的概率越小,目標密鑰具有越高的有效性,更加提高了利用鏈式相控加密操作的籤名的安全性。
優選地,步驟8中預設規則為:
其中,kro表示預設第一序列,表示預設第一序列kro的第i個值,和分別代表第一盲化信息中的第i個相干態的振幅和相位;
krp表示預設第二序列,表示預設第二序列krp的第j個值,和分別代表第二盲化信息中的第j個相干態的振幅和相位,表示模二加;
|m>o表示第一信息,且第一信息mo與關係如下:
其中,x表示第一信息mo的長度,表示第一信息mo的第i個二進位比特,且
mp表示第二信息,且第二信息mp與關係如下:
其中,y表示第二信息mp的長度,表示第二信息mp的第j個二進位比特,且表示張量積。
優選地,第一通信者依據長度為x比特的預設第一序列並採用么正位移算法作用於真空態的方法將長度為x比特的第一信息轉換為以相干態形式表達的第一盲化信息,具體包括:
第一通信者獲取所述預設第一序列kro和所述第一信息mo中同一位置序號上的信息得到x個二進位信息
第一通信者採用么正位移算法作用於真空態的方法,並依據獲取的x個二進位信息獲得以相干態形式表達的第一盲化信息|m>o;
步驟2中第一通信者依據長度為y比特的預設第二序列並採用么正位移算法作用於真空態的方法將長度為y比特的第二信息轉換為以相干態形式表達的第二盲化信息,包括:
第一通信者獲取所述預設第二序列krp和所述第二信息mp中同一位置序號上的信息得到y個二進位信息
第一通信者採用么正位移算法作用於真空態的方法,並依據獲取的y個二進位信息獲得以相干態形式表達的第二盲化信息|m>p。
有益效果
本發明實施例提供了一種基於鏈式相控加密操作的量子雙重籤名的方法,通過鏈式相控加密操作對盲化後的第一信息和盲化後的第二信息進行籤名,使得第一籤名信息和第二籤名信息中每一個相干態不僅僅與其所對應的目標密鑰相關,還與其他的相干態以及目標密鑰中其他位置的信息相關,進而加強了籤名中相干態之間的聯繫,不論是目標密鑰出錯或者被籤名的信息出錯都將導致加密結果出現明顯的錯誤,從而驗證過程可以檢測出錯誤,有效地避免攻擊者的偽造信息;
同時該方法通過量子密鑰分配協議以及預設目標密鑰獲取方法獲取到第一目標密鑰、第二目標密鑰以及第三目標密鑰,促使攻擊者難以破解到目標密鑰;
此外,該方法還基於量子雙重籤名將第一籤名信息和第二籤名信息進行連接,再次進行鏈式相控加密操作後發送給第二通信者,進一步提高了信息的安全性。
附圖說明
圖1是本發明實施例提供的一種基於鏈式相控加密操作的量子雙重籤名的方法的示意性流程圖;
圖2是本發明實施例提供的一種基於鏈式相控加密操作的量子雙重籤名的方法在應用場景中的處理流程圖;
圖3是本發明實施例提供的一種基於鏈式相控加密操作的量子雙重籤名的方法在應用場景中的另一處理流程圖。
具體實施方式
以下結合附圖和具體實施例對本發明進行進一步地說明。
本實施例中包括|α>,|-α>,|iα>,|-iα>四種相干態,下文中任意相干態都屬於該四種相干態中的一種。
本實施例中定義一個相控操作其中kj是目標密鑰的第j個位置上的數值,代表著ξ類相干態信息中第j個相干態為控制相干態,表示ξ類相干態信息中第kj個相干態為目標相干態,即用控制相干態來控制目標相干態。
具體的,本實施例中根據上述一個相控操作定義一個鏈式相控加密操作對相干態信息進行籤名的方式如下所示:
其中,|s>ξ是利用鏈式相控加密操作ek得到的信息|m>ξ的籤名,ek是目標密鑰為k的鏈式相控加密操作,|m>ξ是以相干態形式表達的ξ類信息;
是以為控制相干態,為目標相干態的相控加密操作;
是信息|m>ξ中第n個相干態,是信息|m>ξ中第n-1個相干態,表示信息|m>ξ中第j個相干態,是信息|m>ξ中第kn個相干態,是信息|m>ξ中第kn-1個相干態,表示信息|m>ξ中第kj個相干態;kn是目標密鑰k中第n個位置上的數值,kn-1是目標密鑰k中第n-1個位置上的數值,kj是目標密鑰的第j個位置上的數值;
n是信息|m>ξ的長度,n是大於或者等於1的整數,j∈{1,2...n}。
需要說明的是,本實施例中公式(1)中|m>ξ是以相干態形式表達的ξ類信息,其具體可以是以相干態形式表達的盲化信息或者以相干態形式表達的籤名,ξ是用於表示信息的類別,例如下文中第一信息中採用o替代ξ;第二信息中採用p替代ξ;第三信息採用op替代ξ。
其中,
其中,xj和pj分別表示的振幅和相位,改變相位為的相移操作,p(π)改變相位為π的相移操作。
例如,p(π)|α>=|-α>;p(π)|iα>=|-iα>;
再例如,目標密鑰k={1,4,2,3},相干態組成的ξ類信息|m>ξ=|α>1|-α>2|-iα>3|iα>4,使用目標密鑰k對|m>i加密如下所示:
具體的,基於相控操作表示控制相干態控制目標相干態進行變換,其中代表控制相干態,表示目標相干態,故時用第1個相干態控制第1個相干態,因此執行相移操作p(0),得到|α>1|-α>2|-iα>3|iα>4;時用第2個相干態控制第4個相干態,執行相移操作得到|α>1|-α>2|-iα>3|-α>4;時用第3個相干態控制第2個相干態,執行相移操作p(π),得到|α>1|α>2|-iα>3|-α>4;時用第4個相干態控制第3個相干態,執行相移操作得到|α>1|α>2|α>3|-α>4。
此外,本實施例中還定義了與鏈式相控加密操作相對應的相控解密操作,利用相控解密操作對籤名進行解密的公式如下所示;
其中,|s>ξ是利用鏈式相控加密操作ek得到的信息|m>ξ的籤名,ek是目標密鑰為k的鏈式相控加密操作,|m>ξ是以相干態形式表達的ξ類信息;
是以為控制相干態,為目標相干態的相控解密操作;
是籤名|s>ξ中第n個相干態,表示籤名|s>ξ中第j個相干態,是籤名|s>ξ中第kn個相干態表示籤名|s>ξ中第kj個相干態;
kn是目標密鑰k中第n個位置上的數值,kj是目標密鑰的第j個位置上的數值。
其中,
其中,xj(s)和pj(s)分別表示的振幅和相位,改變相位為的相移操作,p(-π)改變相位為-π的相移操作。
例如,對上述目標密鑰k={1,4,2,3},使用鏈式相控加密操作加密後的籤名|s>i進行解密有:
本實施例中,通過50:50平衡分光器可以確定振幅和相位是否為0。詳細地,將相干態|α>輸入分光器一個模,將待測的相干態輸入另一個輸入模。若待測相干態為|α>和|-α>,即振幅不等於0而相位等於0,則兩個輸出模中必定有一個結果為真空態|0>。若待測相干態為|iα>和|-iα>,即相位不等於0而振幅等於0,則兩個輸出模的結果中不存在真空態。
本發明實施例中,第一通信者包括長度為x的第一信息mo和長度為y的第二信息mp,其中第一信息mo和第二信息mp分別表示為如下所示:
其中,x表示第一信息mo的長度,表示第一信息mo的第i個二進位比特,且y表示第二信息mp的長度,表示第二信息mp的第j個二進位比特,且表示張量積。
x、y為大於或等於1的整數。
如圖1所示,本發明實施例提供的一種基於鏈式相控加密操作的量子雙重籤名的方法至少包括以下步驟1-步驟8:
步驟1:基於量子密鑰分配協議以及預設目標密鑰獲取方法,參與通信的通信者獲取對應目標密鑰。
其中,目標密鑰長度為n,目標密鑰中每一位的取值範圍為[1,n]之間的整數,且每一位的取值是不相同的,n為大於或等於1的整數。
其中,第一通信者和第二通信者分別獲取第一目標密鑰kab,第一通信者和第三通信者分別獲取第二目標密鑰kat,第二通信者與第三通信者分別獲取第三目標密鑰kbt。
並且本實施例中,第一目標密鑰kab長度為n為x+y;且第二目標密鑰kat長度為n為y;且第三目標密鑰kbt長度為n為y。
優選地,步驟1具體包括以下步驟a-步驟b:
步驟a:基於量子密鑰分配協議第一通信者和第二通信者分別獲取第一原始密鑰,第一通信者和第三通信者分別獲取第二原始密鑰,第二通信者與第三通信者分別獲取第三原始密鑰;
其中,第一原始密鑰、第二原始密鑰和第三原始密鑰是二進位的比特串,且長度分別為x+y比特、y比特和y比特,進而使得第一目標密鑰、第二目標密鑰以及第三目標密鑰的數字長度分別為x+y,y,y。應當理解,量子密鑰分配協議(quantumkeydistribution)是無條件安全協議,進一步防止攻擊者獲取到初始密鑰。
步驟b:基於預設目標密鑰獲取方法分別根據第一原始密鑰、第二原始密鑰以第三原始密鑰中0和1的位置和數量來獲取相對應的第一目標密鑰、第二目標密鑰以及第三目標密鑰,
其中,預設目標密鑰獲取方法是第一原始密鑰、第二原始密鑰以及第三原始密鑰中0和1的位置、數量與目標密鑰中數值的對應關係獲取目標密鑰。
具體的,對應關係為:按照位置序號從小到大的順序,原始密鑰中每個0的位置對應在目標密鑰中所述位置上的數值依次為1、2…α,原始密鑰中每個1的位置對應在目標密鑰中所述位置上的數值依次為α+1…α+β,α是原始密鑰中0出現的數量;β是原始密鑰中1出現的數量。
例如,原始密鑰中第一個0的位置對應在目標密鑰上同一位置的數值為1;第二個0的位置對應在目標密鑰中同一位置的數值為2;最後一個0的位置對應在目標密鑰中同一位置的數值為α,第一個1的位置對應在目標密鑰中同一位置的數值為α+1,第二個1的位置對應在目標密鑰中同一位置的數值為α+2,以此類推,最後一個1的位置對應在目標密鑰中同一位置的數值為α+β。若第一原始密鑰為{00101},則第一目標密鑰為{1,2,4,3,5}。
步驟2:第一通信者依據預設序列並採用么正位移算法作用於真空態的方法將信息轉換為以相干態形式表達的盲化信息,並發送給其餘通信者。
其中,信息是第一通信者待發送給其餘通信者的信息,本實施例中該信息包括第一信息和第二信息。
第一通信者依據長度為x比特的預設第一序列kro並採用么正位移算法作用於真空態的方法將長度為x比特的第一信息mo轉換為以相干態形式表達的第一盲化信息|m>o,並發送給第二通信者;以及依據長度為y比特的預設第二序列krp並採用么正位移算法作用於真空態的方法將長度為y比特的第二信息mp轉換為以相干態形式表達的第二盲化信息|m>p,並發送給第三通信者。
本實施例中用mo表示第一信息,mp表示第二信息,kro表示預設第一序列,krp表示預設第二序列。其中,預設第一序列和預設第二序列是隨機選擇的二進位序列,其與第一信息和第二信息中二進位比特進行組合生成用於製備相干態,其中,表示第一序列kro的第i個值,表示第一信息mo的第i個二進位比特,表示二進位的第二序列krp的第j個值,表示第二信息mp的第j個二進位比特。
優選地,步驟2中第一通信者依據長度為x比特的預設第一序列並採用么正位移算法作用於真空態的方法將長度為x比特的第一信息轉換為以相干態形式表達的第一盲化信息,具體包括步驟c和步驟d:
步驟c:第一通信者獲取預設第一序列kro和第一信息mo中同一位置序號上的信息得到x個二進位信息
步驟d:第一通信者採用么正位移算法作用於真空態的方法,並依據獲取的x個二進位信息獲得以相干態形式表達的第一盲化信息|m>o:
其中,|m>o為第一信息的相干態形式,為|m>o中的第i個相干態,x為第一信息的長度,為張量積。
例如,為00、01、10和11,分別製備得到|α>、|-α>、|-iα>和|iα>相干態。
優選地,步驟2中第一通信者依據長度為y比特的預設第二序列並採用么正位移算法作用於真空態的方法將長度為y比特的第二信息轉換為以相干態形式表達的第二盲化信息,包括步驟e和步驟f:
步驟e:第一通信者獲取所述預設第二序列krp和所述第二信息mp中同一位置序號上的信息得到y個二進位信息
步驟f:第一通信者採用么正位移算法作用於真空態的方法,並依據獲取的y個二進位信息獲得以相干態形式表達的第二盲化信息|m>p:
其中,|m>p為第二信息的相干態形式,為|m>p中的第j個相干態,y為第二信息的長度,為張量積。
例如,為00、01、10和11,分別製備得到|iα>、|-iα>、|-α>和α>相干態。
步驟3:第一通信者基於鏈式相控加密操作獲取第一盲化信息的第一籤名信息和第二盲化信息的第二籤名信息。
其中,第一通信者根據第二目標密鑰以及鏈式相控加密操作第二盲化信息|m>p進行籤名得到第二籤名信息|s>p,以及根據第一目標密鑰的前x位以及鏈式相控加密操作對步驟2中第一盲化信息|m>o進行籤名得到第一籤名信息|s>o。
具體的,根據上述公式(1)和(2),根據第二目標密鑰kat以及鏈式相控加密操作對|m>p進行籤名如下所示:
其中,公式(1)中|m>ξ的ξ類信息此時用p標記替代,用於標記第二盲化信息|m>p;是目標密鑰為第二目標密鑰kat的鏈式相控加密操作,y為第二信息mp的長度,表示|m>p中第y個相干態,表示|m>p中第y-1個相干態,以此類推;表示|m>p中第個相干態,表示|m>p中第個相干態,以此類推;表示第二目標密鑰kat中第y個位置上的數值,表示第二目標密鑰kat中第y-1個位置上的數值,以此類推。
根據上述公式(1)和(2),根據第一目標密鑰kab的前x位以及鏈式相控加密操作對|m>o進行籤名如下所示:
其中,公式(1)中|m>ξ的ξ類信息此時用o標記替代,用於標記第一盲化信息|m>o;是目標密鑰為第一目標密鑰kab的前x位的鏈式相控加密操作,x為第一信息mo的長度,表示|m>o中第x個相干態,表示|m>o中第x-1個相干態,以此類推;表示|m>o中第個相干態,表示|m>o中第個相干態,以此類推;表示第一目標密鑰kab前x個值中第x個值,表示第一目標密鑰kab前x個值中第x-1個值,以此類推。
步驟4:第一通信者基於張量積計算方法以及鏈式相控加密操作並依據第一籤名信息和第二籤名信息生成量子雙重籤名。
其中,第一通信者通過張量積的計算將步驟3中第二籤名信息|s>p和步驟3中第一籤名信息|s>o進行連接生成相干態的第三信息|m>op;並根據第一目標密鑰以及鏈式相控加密操作對第三信息|m>op進行籤名獲得量子雙重籤名|s>d,並發送給第二通信者。
其中,
由於|s>o是由長度為x的第一信息mo經鏈式相控加密操作而來,|s>p是由長度為y的第一信息mp經鏈式相控加密操作而來,因此生成了長度為x+y的籤名|s>d。
具體的,根據上述公式(1)和(2),根據第一目標密鑰kab以及鏈式相控加密操作對|m>op進行籤名如下所示:
其中,公式(1)中|m>ξ的ξ類信息此時用op標記替代,用於標記相干態的第三信息|m>op;ekab是目標密鑰為第一目標密鑰kab的鏈式相控加密操作,x+y為量子雙重籤名|s>d的長度,表示|m>op中第x+y個相干態,表示|m>op中第x+y-1個相干態,以此類推;表示|m>op中第個相干態,表示|m>op中第個相干態,以此類推;表示第一目標密鑰kab中第x+y個位置上的數值,即最後一個值,表示第一目標密鑰kab中第x+y-1個位置上的數值,即倒數第二個位置上的數值,以此類推。
步驟5:第二通信者利用第一目標密鑰以及預設的相控解密操作解密步驟4中的量子雙重籤名|s>d而獲得步驟3中第一籤名信息|s>o和第二籤名信息|s>p;
其中,預設的相控解密操作是與鏈式相控加密操作相對應的相控解密操作。
具體的,根據上述公式(3)和公式(4)解密量子雙重籤名|s>d,即通過其中,是目標密鑰為第一目標密鑰kab的相控解密操作,獲得|m>op後將其分為x和y的兩部分,即得到了籤名|s>o和|s>p。
步驟6:第二通信者驗證步驟5中的第一籤名信息|s>o是否有效,若有效,第二通信者利用第三目標密鑰以及鏈式相控加密操作對步驟5中第二籤名信息|s>p進行再次籤名,並發送給第三通信者。
具體的,本實施例中優選驗證步驟5中的第一籤名信息|s>o是否有效包括步驟m和步驟n:
步驟m:第二通信者根據第一目標密鑰的前x位以及鏈式相控加密操作對從步驟2中接收的第一盲化信息|m>o進行籤名得到第一信息的驗證信息|s>′o。
具體的,根據上述公式(1)和公式(2),基於第一目標密鑰kab的前x位以及鏈式相控加密操作對|m>o進行籤名如下所示:
其中,是目標密鑰為第一目標密鑰kab的前x位的鏈式相控加密操作。
步驟n:判斷第一信息的驗證信息|s>′o與步驟5中的第一籤名信息|s>o是否相等,若相等,步驟5中的第一籤名信息|s>o有效,若不相等,則無效。
具體的,
用vb表示驗證結果,若vb等於0,視為步驟5中的第一籤名信息|s>o無效,第二通信者直接拒絕量子雙重籤名;若vb等於1,視為步驟5中的第一籤名信息|s>o有效。
若vb等於1,步驟6中第二通信者利用第三目標密鑰以及鏈式相控加密操作對步驟5中第二籤名信息|s>p進行再次籤名時,根據上述公式(1)和(2)得出:
|s>t=ekbt(|s>p)
其中,此時用以相干態形式表達的第二籤名信息|s>p作為公式(1)中的以相干態形式表達的信息|m>ξ;
是目標密鑰為第三目標密鑰kbt的鏈式相控加密操作,|s>t是利用第三目標密鑰以及鏈式相控加密操作對步驟5中第二籤名信息|s>p進行再次籤名得到的籤名。
步驟7:第三通信者利用第三目標密鑰以及預設的相控解密操作解密步驟6中的被再次籤名的信息而獲得第二籤名信息|s>p,並驗證第二籤名信息|s>p是否有效,若有效,第一通信者發送預設序列給其餘通信者,
其中,第一通信者將預設第一序列發送給第二通信者,預設第二序列發送給第三通信者。
具體的,根據上述公式(3)和公式(4)解密步驟6中的被再次籤名的信息|s>t,即通過|s>p=dkbt|s>t,dkbt是目標密鑰為第三目標密鑰kbt的相控解密操作。
本實施例中優選步驟7中第三通信者驗證第二籤名信息|s>p是否有效,具體包括步驟s和步驟t:
步驟s:第三通信者根據第二目標密鑰以及鏈式相控加密操作對從步驟2中接收的第二盲化信息|m>p進行籤名得到第二信息的驗證信息|s>′p。
具體的,根據上述公式(1)和公式(2),基於第二目標密鑰kat以及鏈式相控加密操作對|m>p進行籤名如下所示:
其中,是目標密鑰為第二目標密鑰kat的鏈式相控加密操作。
步驟t:判斷第二信息的驗證信息|s>′p與步驟7中的第二籤名信息|s>p是否相等,若相等,步驟7中的第二籤名信息|s>p有效,若不相等,則無效。
具體的,
用vt表示驗證結果,若vt等於0,視為步驟7中的第二籤名信息|s>p無效;若vb等於1,視為步驟7中的第二籤名信息|s>p有效。
且第三通信者將vt發送給第二通信者,若vb=vt=1,第二通信者認為第一通信者的所有籤名是有效的,第二通信者請求第一通信者告知預設第一序列kro,第一通信者將預設第一序列kro告知第二通信者,將預設第二序列krp告知第三通信者。
步驟8:其餘通信者基於預設序列和預設規則解密步驟2中的盲化信息;
其中,第二通信者基於預設第一序列以及預設規則解密第一盲化信息使其恢復為第一信息mo,以及第三通信者基於預設第二序列以及預設規則解密第二盲化信息使其恢復為第二信息mp。
優選地,預設規則為:
其中,kro表示第一序列,表示第一序列kro的第i個值,和分別代表第一盲化信息中的第i個相干態的振幅和相位;
krp表示第二序列,表示第二序列krp的第j個值,和分別代表第二盲化信息|m>p中的第j個相干態的振幅和相位,表示模二加;
又基於第一信息mo與如下關係以及第二信息mp與如下關係,進而得出第一信息mo和第二信息mp。
其中,x表示第一信息mo的長度,表示第一信息mo的第i個二進位比特,且表示張量積;
且第二信息mp與關係如下:
其中,y表示第二信息mp的長度,表示第二信息mp的第j個二進位比特,且表示張量積。
基於上述方案,進一步優選地,步驟4和步驟5之間還包括:
步驟o:第二通信者從步驟4中的量子雙重籤名|s>d中隨機選擇若干個相干態,並記錄被選擇的相干態的位置序號;
步驟p:第二通信者根據和第一通信者預設的量子雙重籤名的相干態與二進位比特的對應關係,將被選擇的相干態轉換為相對應的二進位比特串,並將二進位比特串以及位置序號發送給第一通信者;
例如用00、01、10和11分別對應相干態|α>、|iα>、|-α>和|-iα>。
需要說明的是,將相干態轉換為二進位比特串後再進行傳輸,可以節省傳輸成本以及提高傳輸效率。
步驟q:第一通信者根據對應關係將二進位比特串恢復為相干態,並根據位置序號將恢復的若干個相干態與步驟4中量子雙重籤名|s>d中同一位置序號的相干態進行比較,並記錄不匹配第一概率;
步驟r:若不匹配第一概率小於預設第一閾值,則執行步驟5;否則,流程結束。
例如用錯誤率表示不匹配第一概率;εb表示預設第一閾值。
進一步優選地,步驟7中第三通信者獲得第二籤名信息|s>p之後以及驗證第二籤名信息|s>p是否有效之前,包括:
步驟u:第三通信者從第二籤名信息|s>p中隨機選擇若干個相干態,並記錄被選擇的相干態的位置序號;
步驟v:第三通信者根據和第一通信者預設的相干態與二進位比特的對應關係將被選擇的相關態轉換為相對應的二進位比特串,並將二進位比特串以及位置序號發生給第一通信者;
步驟w:第一通信者根據對應關係將二進位比特串恢復為相干態,並根據位置序號將恢復的若干個相干態與步驟3中第二籤名信息|s>p中同一位置序號的相干態進行比較,記錄不匹配第二概率;
步驟x:若不匹配第二概率小於預設第二閾值,則執行第三通信者驗證第二籤名信息|s>p是否有效;否則,流程結束。
例如用錯誤率表示不匹配第二概率;εt表示預設第二閾值。
基於上述實施例給出的一種基於鏈式相控加密操作的量子雙重籤名的方法,將其應用於具體應用場景中,下文將對一個應用場景進行具體描述。
該應用場景為電子商務系統,第一通信者為顧客客戶端;第二通信者為商家客戶端;第三通信者為銀行客戶端,第一信息表示訂單信息,第二信息表示支付信息。
參見圖2,顧客客戶端分別對訂單信息以及支付信息進行盲化以及籤名處理,再將籤名後的訂單信息和支付信息進行連接生成量子雙重籤名,再將量子雙重籤名發生給商家客戶端,供商家客戶端驗證訂單信息的籤名以及供銀行客戶端驗證支付信息的籤名。
其中,由商家客戶端將支付信息的籤名轉發給銀行客戶端,且商家客戶端轉發之前進行對訂單信息的籤名進行了驗證,滿足了在實際應用場景中,銀行驗證之前,商家需要驗證顧客身份以及訂單信息的需求。
參見圖3,基於本發明實施例中提供的一種基於鏈式相控加密操作的量子雙重籤名的方法,該應用場景中,顧客客戶端、商家客戶端以及銀行客戶端之間實現了基於鏈式相控加密操作的量子雙重籤名,保證了三方之間的安全交易,提高了電子籤名的安全性。
此外,通過本發明實施例不僅僅提高了電子籤名安全性,同時還實現了籤名者的不可否認性,即保證了籤字者完成籤名後不能否認自己的籤名行為,以及驗證者的不可抵賴性,具有更加廣泛的應用空間。
應當理解,以上所述僅為本發明的較佳實施例,對本發明而言僅僅是說明性的,而非限制性的。本專業技術人員理解,在本發明權利要求所限定的範圍內可對其進行許多修改,但都將落入本發明的保護範圍內。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明的保護範圍。