陳 璇
(天津天獅學(xué)院,天津 300000)
隨著近幾年移動互聯(lián)信息技術(shù)的飛速發(fā)展,數(shù)據(jù)安全逐漸成為人們廣泛關(guān)注的問題,如何保障信息安全問題已成為行業(yè)關(guān)注的焦點[1-2].在威脅信息安全的諸多因素中,量子計算引中的Shor算法[3],可以實現(xiàn)在多項式時間內(nèi)尋找有限群里一個元素的階,被重點應(yīng)用于大整數(shù)分解和離散對數(shù)計算領(lǐng)域,Simon量子算法和Grover量子算法也均對現(xiàn)有密碼算法的安全構(gòu)成了挑戰(zhàn).Simon算法能夠以O(shè)(n)次查詢實現(xiàn)特殊函數(shù)周期的獲取,并在一定程度上啟發(fā)了Shor算法的發(fā)現(xiàn)[4].
在物聯(lián)網(wǎng)數(shù)據(jù)安全方面,許多方式都會干擾加密,造成加密過程出現(xiàn)錯誤,泄露狀態(tài)信息,而利用這些狀態(tài)信息獲取密鑰的攻擊方式被稱為“故障分析”.因此針對“故障分析”的密鑰認證就成為了安全通信的重要環(huán)節(jié).密鑰認證可在通信節(jié)點之間建立共享會話密鑰,實現(xiàn)安全通信.已有學(xué)者在此方面做出了相關(guān)研究,其中,王彩芬等[5]提出了一種改進的三因素相互認證與密鑰協(xié)商方案,采用增強存儲在智能卡中的相關(guān)參數(shù)的安全性,使用混沌映射計算迪菲一赫爾曼問題,修復(fù)了內(nèi)部特權(quán)攻擊的安全漏洞,保護了公共信道上敏感醫(yī)療記錄信息數(shù)據(jù).該方法能夠抵抗各類安全攻擊,且效率較高,但該方法存在的局限之一就是在使用混沌映射時,計算方式較冗長,易導(dǎo)致數(shù)據(jù)冗余造成認證準(zhǔn)確率較低的現(xiàn)象;王偉松等[6]提出一個新的多因子認證協(xié)議來修復(fù)身份認證協(xié)議易遭受用戶冒充攻擊的安全漏洞.使用擴展混沌映射,采用動態(tài)身份保護用戶匿名性,并利用三次握手技術(shù)實現(xiàn)了異步認證.該方法可以抵抗冒充攻擊,拒絕服務(wù)攻擊,能夠保護用戶匿名性和身份唯一性.在實際網(wǎng)絡(luò)環(huán)境中,攻擊手段是多樣的,但該方法僅針對于一種攻擊手段進行了研究,存在一定局限性.
在此基礎(chǔ)上,本文提出一種基于Simon量子算法的密鑰認證分析研究,在對Simon量子算法的運算方式及密鑰設(shè)計進行原理進行分析的基礎(chǔ)上,結(jié)合Hadamard變換,運用Simon量子算法對密鑰周期進行計算,實現(xiàn)提升密鑰認證分析過程中詢問程序安全性的目的,實驗結(jié)果表明所提方法在準(zhǔn)確認證概率、認證耗時和抗攻擊性方面均有良好表現(xiàn),具有一定的研究價值.
近年來,隨著量子計算的不斷進步,量子技術(shù)被廣泛應(yīng)用到密碼算法的安全性分析中,運用量子技術(shù)對密碼算法進行分析更是成為了一個熱門的研究方向[7].Simon算法有多種不同的加密方案,不同的分組長度、密鑰長度、值長度以及輪數(shù),使其可以適應(yīng)不同的應(yīng)用環(huán)境.現(xiàn)有常見的加密方案如表1所示,其中,定義該算法的分組長度為2a比特,密鑰長度為ab比特.
表1 Simon量子算法分組方式
Simon量子算法的第x輪迭代結(jié)構(gòu)如圖1所示.
圖1 Simon量子算法迭代流程圖
從圖1中可知,其中Zx和Yx分別表示對應(yīng)的左右分支,kx則表示第x輪的密鑰,那么Zx+1和Yx+1分別表示x+1對應(yīng)的左右分支,Sx表示循環(huán)移位.那么由此推斷,可以將輪函數(shù)表示為:
f(Zx)=(Zx<<<1)&(Zx<<<8)⊕(Zx<<<2)
(1)
其中,<<<表示循環(huán)位移,&表示比特與運算,⊕表示比特異或運算,根據(jù)公式(1),第x輪到加密函數(shù)可以表示為:
(2)
密鑰設(shè)計:在對明文進行加密計算時,密鑰的組成是由每一輪的子密鑰組成的,這里我們假設(shè)主密鑰為{K0,K1,…,Kx-1},那么每一輪的密鑰就可以表示為{k0,k1,…,kx-1},根據(jù)上文對Simon量子算法分組方式的分析可得,不同密鑰長度ab,對應(yīng)的密鑰設(shè)計方法也不同,
當(dāng)x=0,1,…,a-1時,kx=Kx;
當(dāng)x=a,a+1,…,x-1時,根據(jù)a值的不同,可以分為以下幾種情況:
(3)
其中,λ=2a-4,pi表示固定的常數(shù)序列.以此為基礎(chǔ),對不同輪數(shù)密鑰按照輪密鑰和主密鑰進行分級認證.
在得到Simon量子算法對密鑰的設(shè)計組成及基本原則的基礎(chǔ)上,利用Simon最密鑰周期進行求解實際上是指在假定周期T{0,1}內(nèi),對于密鑰函數(shù)求解任意x∈{0,1}a,使其都存在f(x)=f(x+T),在此條件下,求解周期T.
Simon量子算法對密鑰周期的計算主要可以總結(jié)為以下5個步驟:
首先將2a個量子布特量子態(tài)初始化,并利用Hadamard變換,將其應(yīng)用至第一個密鑰寄存器中:
(4)
對第二個密鑰寄存器進行量子Oracle訪問:
(5)
完成對第二個密鑰寄存器測量后,第一個密鑰寄存器即出現(xiàn)坍塌,坍塌結(jié)果為:
(6)
對坍塌后的第一個密鑰寄存器進行Hadmard變換,變化后可得:
(7)
能夠?qū)崿F(xiàn)YT=1時,Y的幅度為0,那么就可以得出,此時可以滿足YT=0.
當(dāng)重復(fù)上述過程,最終基本可以得到(a-1)個不相關(guān)但均與T相交的向量,此時就可以通過對線性方程進行求解,得出T的值.這樣的計算方式與傳統(tǒng)方法相比,可以在計算復(fù)雜度上實現(xiàn)大幅降低,為密鑰認證分析過程節(jié)省時間.
另外一個需要注意的問題是,在對密鑰進行認證分析過程中,往往很難得到完全滿足Simon量子算法的解[8-9],也就是說,Simon量子算法求解需要滿足基本的二對一的條件,即同一個函數(shù)對應(yīng)兩個原像,而兩個原像滿足其中間存在固定周期T,而在引用Simon量子算法進行密鑰認證分析時,會出現(xiàn)存在其他干擾t的現(xiàn)象,這時會有f(x)=f(x?t),其中t≠T且t≠0,這種情況下稱t為布爾函數(shù)的碰撞[10].因此t存在的概率也對Simon量子算法能否計算出密鑰的周期有很大影響.
在此基礎(chǔ)上,實現(xiàn)了對密鑰周期的計算,這在降低密鑰認證計算時間的同時,也將降低其在密鑰認證詢問階段的對話時間.
上文對基于Simon量子算法密鑰周期計算方法進行了闡述,對于密鑰認證分析主要是針對攻擊進行準(zhǔn)確識別,在認證階段對輸入密鑰的正確性進行判斷.在上述基礎(chǔ)上,本節(jié)以6輪密鑰為例,對6輪Feistel結(jié)構(gòu)密鑰認證分析方法進行研究.
在對6輪密鑰進行認證時,假設(shè)Zn,Yn分別為每一輪的輸入,f為輪函數(shù),kn為輪密鑰,任取3個非零常數(shù)c0,c1,d0∈{0,1}0.5a,將(c0,d0)和(c1,d0)分別作為輸入值.
對密鑰進行認證的過程包括兩個階段,即初始化階段和密鑰認證.在初始化階段首先將第三方的輸入值(c0,d0)和(c1,d0)生成對應(yīng)的映射e:c0×c1→cT.之后,將隨機選擇Zn,Yn∈c1和s∈Zn,Yn.將s作為主密鑰.并令s1{0,1}→c0、s2{0,1}→{0,1}、s3{0,1}→c0、s4{0,1}→{0,1}、s5{0,1}→c0、s6{0,1}→{0,1}.
當(dāng)一個輸入密鑰申請認證的用戶U,ID∈{0,1}加入時,安全信道將接受參與者發(fā)送給的密鑰信息.
在接收到密鑰信息后,進入到密鑰認證階段,在該階會形成一個會話密鑰,并將量子布特量子態(tài)初化,用戶參與者首先進入詢問階段.在這個階段,要完成對密鑰認證申請者U隨機詢問,按照如下方式進行問答.
ID信息詢問.收到該詢問后,認證機制首先在已有的密鑰列表中進行查找,如果用戶輸入的密鑰及ID信息在列表里,則返回認證結(jié)束階段,認為密鑰符合認證要求,否則,系統(tǒng)返回會話密鑰階段,并將用戶輸入的密鑰信息進行儲存.
Execute詢問.收到Execute詢問后,認證機制按照其自有協(xié)議規(guī)則生成相應(yīng)的結(jié)果,并將結(jié)果返回至密鑰認證申請用戶U,并保存至第一個密鑰寄存器.
Send詢問.在收到Send后,認證機制按照協(xié)議規(guī)則生成相應(yīng)的結(jié)果,并返回給密鑰認證申請用戶U,并保存至第二個密鑰寄存器,并計算YnT=1時,T不為0的值.
Corrupt詢問.收到Corrupt(U)后,返回參與者U的私鑰,并保存至Hadmard變換后的第一個密鑰寄存器.
Reveal詢問.收到Reveal后,查找Execute詢問或Send詢問所對應(yīng)的語句,并返回由其生成的對應(yīng)于該語句的密鑰設(shè)置信息,完成對6輪kn的認證分析.
挑戰(zhàn)請求(Challenge request)階段:假設(shè)密鑰認證申請用戶U匿名性發(fā)起認證挑戰(zhàn),認證機制將做如下回應(yīng).
挑戰(zhàn)詢問階段:在這個階段,密鑰認證申請用戶U隨機進行詢問,系統(tǒng)根據(jù)一般詢問階段的應(yīng)答方式逐一進行回應(yīng).假設(shè)密鑰認證申請用戶U從未對認證系統(tǒng)進行Corrupt詢問,且密鑰認證申請用戶U輸出的密鑰猜測值sa.如果s=sa,則表明密鑰認證申請用戶U的猜測是正確的.而如果密鑰認證申請用戶U可以猜出sa,則認證系統(tǒng)即可解決DBDH(Decisional Bilinear Diffie-Hellman)問題,而這在實際上是無法實現(xiàn)的,因此密鑰認證的安全性得以保障.
至此,密鑰認證結(jié)束.
為了驗證基于Simon量子算法的密鑰認證的有效性,采用MATLAB軟件搭建了一個密鑰認證仿真測試環(huán)境.實驗所用系統(tǒng)CPU Inter Core i7-9700 K,6.0 GHz,內(nèi)存為16 GB,采用文獻[5]和文獻[6]中所提方法作為對比.實驗數(shù)據(jù)Simon 64/128輪數(shù)為44,主密鑰設(shè)置為ABCDEF010203040506070809ABCDEF.密鑰管理一般分為衛(wèi)星密鑰管理、臨近空間密鑰管理以及地面網(wǎng)絡(luò)密鑰管理,如圖2所示.
圖2 密鑰管理
在圖2密鑰管理環(huán)境中,選取地面網(wǎng)絡(luò)密鑰管理中心的100組密鑰進行認證,其中故障個數(shù)分別設(shè)置為20,40,60,80,100個.通過不同故障的密鑰分別進行20次測試,實驗結(jié)果取平均值,分別記錄三種方法準(zhǔn)確認證密鑰的次數(shù)以及耗費時間.
3.2.1 認證準(zhǔn)確性測試
圖3為三種方法對密鑰進行認證的情況.密鑰認證的準(zhǔn)確率是信息的發(fā)送方和接收方,用一個密鑰去加密和解密數(shù)據(jù)的準(zhǔn)確程度,其通過公式(8)計算可得:
圖3 不同方法密鑰認證準(zhǔn)確情況
(8)
其中,M為密鑰認證的準(zhǔn)確率,a為故障數(shù)量,m為密鑰總數(shù).密鑰認證的準(zhǔn)確率越高,證明該方法的密鑰認證效果越好.
從圖3中可以看出,三種方法密鑰認證的準(zhǔn)確率均隨著故障數(shù)量的增加而逐漸降低,但對比文獻[5]和文獻[6]方法,本文方法下降趨勢較為平緩,且始終保持在90%以上的識別準(zhǔn)確率,這主要是因為本文方法采用Simon算法對密鑰寄存器進行轉(zhuǎn)換,提高了對每一輪密鑰的認證效果.
3.2.2 認證耗時測試
圖4為不同方法準(zhǔn)確認證密鑰所需要消耗的時間.認證密鑰所需要的消耗時間N與單個密鑰時間認證時長與密鑰總數(shù)m有關(guān).其計算公式為:
圖4 不同方法密鑰認證耗時情況
N=mt
(9)
其中,t為單個密鑰時間認證時長.
從圖4中可知,隨著故障數(shù)量的增加,三種方法的計算耗時均呈現(xiàn)出逐漸上升的趨勢,在故障數(shù)量為40個以內(nèi)時,時間的增量相對較為平緩,但當(dāng)故障數(shù)量增加至40個以上后,文獻[5]和文獻[6]方法的耗時均出現(xiàn)劇烈上升,而本文所提方法的上升趨勢雖然較比自身也有上升趨勢,但對比另外兩種方法仍有較大優(yōu)勢,且全程耗時始終穩(wěn)定在10 s以內(nèi).這主要是因為對密鑰周期的計算降低對申請認證的密鑰信息的核查時間,減少了大量冗余計算,且應(yīng)用Simon量子算法后的詢問程序?qū)崿F(xiàn)了對無效密鑰的快速認證.
3.2.3 認證安全性測試
為了對所提方法的安全性進行測試,對密鑰認證進行不同攻擊,此次實驗選用在密鑰認證過程中常見的立方攻擊、線性分析攻擊、不可能差分分析攻擊、差分分析攻擊4種攻擊方式,分別攻擊6、12、14、16輪,在此條件下分析密鑰認證情況,具體結(jié)果如表2所示.其中立方攻擊是基于高階差分理論的新型代數(shù)攻擊方法,該方法適用于輸出比特能夠表示成關(guān)于明文變置和密鑰變量的低次多元方程;線性分析攻擊是常用密碼分析手段之一,屬于已知明文攻擊方法,它通過尋找明文和密文之間的一個“有效”的線性逼近表達式,將分組密碼與隨機置換區(qū)分開,并在此基礎(chǔ)上進行密鑰恢復(fù)攻擊;不可能差分分析攻擊是指利用兩個明文的差對應(yīng)的輸出差不可能是某些值的特點求解密鑰的攻擊方法.差分分析攻擊是指通過比較分析有特定區(qū)別的明文在通過加密后的變化傳播情況來攻擊密碼算法的.
表2 面對不同攻擊時所提方法的安全性
從表2中可以看出,當(dāng)分別采用不同時間和空間復(fù)雜度的立方攻擊、線性分析攻擊、不可能差分分析攻擊、差分分析攻擊對密鑰認證的不同輪數(shù)進行干擾時,所提方法準(zhǔn)確實現(xiàn)密鑰認證的概率始終保持在80%以上,這表明在面臨攻擊時,所提方法具有較高的安全性,可以在一定程度上實現(xiàn)信息的安全性.
提出基于Simon量子算法的密鑰認證分析研究,通過對Simon量子算法對密鑰的設(shè)計以及分類情況,結(jié)合多輪密鑰對應(yīng)的不同子密鑰在寄存器上的轉(zhuǎn)換,完成對密鑰周期的計算,在此基礎(chǔ)上,將其計算結(jié)果引入對待認證密鑰的詢問程序中,一方面提高密鑰認證的安全性,另一方面也可以實現(xiàn)減少密鑰認證計算時間的目的.實驗結(jié)果表明,文中方法的密鑰準(zhǔn)確認證概率保持在90%以上,整體運算耗時保持在10 s以內(nèi),在不同類型的攻擊手段下仍能保持80%以上的密鑰認證準(zhǔn)確率,具有較好的安全保障性能.由于條件限制,研究尚有不足,可在之后的研究中進一步探索:
1)密鑰認證實驗部分僅以Simon 64/128版本的密鑰為例進行實驗,存在較大局限性,可以從更多密碼種類進行測試,發(fā)現(xiàn)其可以存在的問題;
2)對于Simon量子算法的應(yīng)用是從對密鑰進行認證的角度進行利用的,在之后的研究中,可從對密鑰進行攻擊的角度,反向?qū)γ荑€認證分析方法進行研究.