韓國基, 張 龍,3
(1.黑龍江大學 數學科學學院, 哈爾濱 150080; 2.黑龍江大學 黑龍江省復雜系統與計算重點實驗室, 哈爾濱 150080;3.黑龍江大學 密碼與網絡安全研究院, 哈爾濱 150080)
在日常生活中經常要使用簽名,例如在銀行取錢時,寫信時或者簽署合同時等等,此類簽名為物理簽名。數字簽名[1-4]是一種以電子形式儲存的消息簽名的方法,在電子商務和信息安全等領域有著廣泛的應用。傳統的數字簽名協議的安全性是基于數學中的困難問題,如大整數分解問題、離散對數問題以及橢圓曲線問題等。這些困難問題的計算復雜度非常高,想要解決這些問題可能需要上百年的時間。因此傳統的數字簽名可以依靠這些困難問題,來保證其安全性。但是,隨著計算機計算能力的提升以及量子計算理論的提出和量子計算機的誕生,傳統簽名協議將不再安全,如Shor算法可以對目前廣泛使用的公鑰密碼協議進行有效攻擊[5-8],而Grover 算法的作用相當于把密碼的密鑰長度減少一半[9-12]。現在的量子計算機也可以成功地進行小合數的因數分解試驗,并且發展迅速。雖然目前的量子計算機不能對經典密碼構成實際的威脅,但隨著量子計算技術的發展,在未來的某一天就有可能會威脅到現有的密碼體制。為了解決這些潛在的安全問題,一些研究學者將物理學中的量子技術與密碼理論結合,誕生出了量子密碼這個密碼學的研究分支[13-15],它的安全性是以量子力學為基礎,通過量子的物理特性來確保其安全性,可以有效的防止量子計算技術的攻擊。量子簽名是將量子力學與數字簽名技術相結合,既能有效預防量子計算的攻擊,又能保證簽名的有效性。
在2001年,量子簽名的理論就被提出[16-17],引起了學者們的討論。2002 年,Zeng等設計了首個仲裁量子簽名協議[18],協議中,驗證者可以在仲裁的幫助下完成簽名的驗證。2007年,Wen等提出了一種基于GHZ態的多方量子簽名協議[19],該協議的特點是消息的簽名是由多個用戶共同完成,且簽名的驗證不依賴仲裁員。之后,人們又逐漸提出了多個多方量子簽名協議,如2010年,Yang等提出了一種具有多個簽名者的可擴展的仲裁量子簽名協議[20];2011年,Shi等提出了一種基于量子傅里葉變換的多方量子代理群簽名協議[21];2013 年,Cao等提出了一種基于真正六粒子糾纏態的量子代理多重簽名協議[22];2017 年,Shao等提出了一種基于量子多方代理盲簽名的電子支付協議[23];2018 年,Sun等提出了一種在具體應用背景下的離線仲裁量子盲雙簽名協議[24]。上述這些協議運用了不同的量子載體來實現簽名。2021年,Vandani等提出了一種新型的量子簽名協議[25],該協議需要用戶和認證機構共同生成最終簽名,而且不需要對每個密鑰進行加密。遺憾的是,該協議的正確性存在問題,即當協議中操作是不對易的情況時,生成的簽名可能會出錯,此外該協議還存在無法抵抗驗證者偽造攻擊的安全性問題。
Vandani等的協議有3個參與者:Alice是用戶(簽名者),CA是半信任的認證機構,Bob是驗證者。協議一共分3個階段:初始階段、簽名階段和驗證階段。
(1)Alice和Bob各自選擇一組隨機數PA和PB作為他們的公鑰,PA=(a1A,b1A,a2A,b2A, …,anA,bnA)和PB=(a1B,b1B,a2B,b2B,…,anB,bnB),其中aiA,biA,aiB,biB∈{0,1},0
(2)CA收到PA和PB后,生成Alice和Bob的私鑰SA=(c1A,d1A,c2A,d2A,…,cnA,dnA)和SB=(c1B,d1B,c2B,d2B,…,cnB,dnB),其中,ciA,diA,ciB,diB∈{0,1},01.2 簽名階段
(1)Alice首先生成身份消息M=(m1,m2, …,mn),其中mi∈{0,1},0
(1)
(2)Alice生成一組隨機數RA作為私鑰,RA=(p1,q1,p2,q2,…,pn,qn),pi,qi∈{0,1},0
(2)
F[1]被定義為:
(3)
其中
(4)
(5)
(3)Alice通過安全的量子信道將|φ′〉 發送給CA,在CA收到|φ′〉后,根據密鑰KC對|φ′〉執行F[2]操作:
(6)
F[2]被定義為:
(7)
其中
(8)
(4)最后,CA通過安全的量子信道將|S〉發送給Bob。
(1)Bob為了驗證Alice的消息,對收到的|S〉根據PB⊕SB⊕RA執行F[3]操作:
(9)
F[3]被定義為:
(10)
其中
(11)

Vandani等的協議主要有兩個問題,即正確性問題和安全性問題。采取舉出實例驗證的方法來指出協議中存在的問題。具體的分析情況如下。
這個協議并不是在所有情況下都是正確的。為了方便展示以及計算,本小節將用一個例子進行介紹。取n=1,假設PA=(1,1),PB=(0,1),SA=(0,1),SB=(1,0),M=(0),RA=(1,1),通過計算可得出KA=(1,0),KB=(1,1),KC=(0,1)。Alice用她的私鑰SA將消息M編碼成量子態:
|φ〉=|ψ0, 1〉=|+〉
(12)
計算σ=PA⊕RA=(0,0)并對|φ〉執行F[1]操作:
(13)
(14)
得到|φ′〉=|-〉發送給CA,CA根據KC對|φ′〉執行F[2]操作:
(15)
(16)
得到|S〉=|1〉發送給Bob,Bob計算PB⊕SB⊕RA=(0, 0),然后對|S〉執行F[3]操作:
(17)
(18)
得到|S′〉并對其進行測量,得到的測量結果為M′=(1)≠M=(0),由此證明了此協議是不正確的。
具體來講,當F[1],F[2],F[3]操作分別是σZ,H,σZ或H,σZ,H,且|φ〉=|+〉或|-〉時,協議是不正確的,原因在于σZ與H互不對易,當出現上述情況時,協議里會出現σX操作:
(19)
在對|φ〉=|+〉(|-〉)做σX操作后,|+〉(|-〉)將變成|-〉(|+〉),而原本的σZ操作則是將|+〉(|-〉)變成|+〉(|-〉),從而導致操作后結果發生錯誤。


表1 偽造的消息跟偽造的簽名之間的對應關系

針對Vandani等協議里出現的問題,本節對量子態的定義和簽名操作進行了修改,將不對易的操作改為對易操作,解決了因操作不對易所產生的正確性問題,并且將選擇一個完全可信任的第三方Trent代替半信任的認證機構CA,解決了協議中存在的安全性問題。具體協議流程如下。
(1)Alice和Bob各自選擇一組隨機數PA和PB作為他們的公鑰,并通過安全信道發送給Trent:
PA=(a1A,b1A,a2A,b2A, …,anA,bnA)
(20)
PB=(a1B,b1B,a2B,b2B,…,anB,bnB)
(21)
式中aiA,biA,aiB,biB∈{0,1},0
(2)Trent收到PA,PB后,生成Alice和Bob的私鑰SA和SB,并通過安全信道將私鑰發送給Alice和Bob:
SA=(c1A,d1A,c2A,d2A,…,cnA,dnA)
(22)
SB=(c1B,d1B,c2B,d2B,…,cnB,dnB)
(23)
式中ciA,diA,ciB,diB∈{0,1},0
KC=PA⊕PB⊕SA⊕SB=(g1C,h1C,g2C,h2C,…,gnC,hnC)
(24)
式中giC,hiC∈{0,1},03.2 簽名階段
(1)Alice首先生成消息M:
M=(m1,m2, …,mn)
(25)
式中mi∈{0,1},0
|φ〉=|ψm1⊕c1A, d1A〉?|ψm2⊕c2A, d2A〉?…?|ψmi⊕ciA, diA〉
(26)
|ψmi⊕ciA, diA〉(i=1, 2, …,n)是以下量子態中的一個:
(27)
(2)然后,Alice生成一組隨機數RA作為私鑰,RA=(p1,q1,p2,q2,…,pn,qn),其中pi,qi∈{0,1},0
(28)
F[1]被定義為:
(29)
式中
(30)

(31)
F[2]被定義為:
(32)
式中
(33)

(34)
F[3]被定義為:
(35)
其中
(36)

在改進后的協議里,操作只有I操作、H操作和σY操作,這3個操作之間是對易或反對易的,不會出現新的操作。因此,也不會改變操作后的結果,保證了協議的正確性。可以用2.1節的例子來驗證其正確性。
(37)
Alice用私鑰SA將消息M編碼成量子態|φ〉:
|φ〉=|ψ0, 1〉=|1〉
(38)
計算σ=PA⊕RA=(0,0)并對|φ〉執行F[1]操作:
(39)
(40)
得到|φ′〉=|1〉發送給Trent,Trent根據KC對|φ′〉執行F[2]操作:
(41)
(42)
得到|S〉=|0〉發送給Bob,Bob計算PB⊕SB⊕RA=(0, 0),然后對|S〉執行F[3]操作:
(43)
(44)
得到|S′〉并對其進行測量,得到的測量結果為M′=(0)=M=(0),協議正確。
(1)對于外部攻擊,若外部竊聽者Eve在量子態傳輸過程中想要進行竊聽行為,由于Eve不知道密鑰PA,PB,SA,SB,攻擊將會改變粒子,從而在檢測竊聽階段就會被發現,協議將中止進行。
(2)當Bob試圖偽造消息M和簽名|S〉 時,由于Trent儲存了簽名|S〉,作為完全可信任的第三方,Trent將會發現Bob的偽造行為,因此Bob無法進行偽造。

(45)

(46)
所以,Alice得到正確的測量結果并且不被發現的概率,即Alice可以偽造簽名|S〉的概率p為:
(47)
隨著粒子數的增加,當n足夠大時,Alice想要偽造簽名的可能性趨近于0。
對Vandani等提出的多方量子簽名協議進行了詳盡的分析,發現其存在因為簽名操作設計的不對易性使得簽名驗證出現錯誤,并且簽名協議無法抵御驗證者的偽造攻擊。在此基礎上,利用對易操作來解決其存在的正確性問題,又引入可信任的第三方來解決偽造攻擊。分析表明,新方案可以保證多方量子簽名協議的正確性,同時可以抵御驗證者的偽造攻擊。本研究是在可信任的第三方(Trent)模型下進行設計的,那么在沒有可信任第三方的情況下,即半信任模型下,是否也可以利用對易操作來設計一個安全的多方量子簽名協議將是下一步研究的重點。