鄭曉麗,姜迪剛
(①軍事體育進修學院,廣東 廣州 510500;②中山大學基礎醫(yī)學院,廣東 廣州 510080)
混沌分組密碼算法近年來發(fā)展迅速[1-3],直接推動了分組密碼的發(fā)展[4-5],但這些密碼的安全性并不高[6],基于這一點,提出一種安全性比較高的混沌映射和擴展Feistel結構相結合的混沌密碼算法。其主要特點是將Logistic映射和Feistel混沌密碼相結合[7-8],將27原文變?yōu)?7的密文,S盒由映射函數(shù)產生,原密鑰經過 Cubic映射產生密鑰。這就使得密碼的結構具有靈敏性和安全性。
分組密碼是將其足夠大的分組長度合理組合,產生良好的混亂和擴散性;Feistel結構就是分組密碼的結構,它的加、解密過程相似,因此在設計輪函數(shù)時,不管其結構有多復雜,也不用考慮解密時的結構,并具有很好的安全性。而且這種密碼體制允許多次使用同一個密鑰,可以大大減少密鑰空間的密鑰量,也降低了密鑰協(xié)商需要的通信量[9-10]。
分組密碼算法的安全性完全依賴于密鑰,如果密鑰的結構過于簡單,容易受到密碼分析者的攻擊。為了解決上述問題,采用一次一密的分組密碼體制,將S盒、P盒以及在群、有限域上的運算都與分組密碼算法的密鑰關聯(lián)起來,將密鑰的隨機性和整體變換的復雜性相混合。即使攻擊者了解所有的設計細節(jié),也很難對整個算法進行有效的攻擊,從而提高了算法的安全性。
混沌密碼算法設計和分組密碼有兩點不同:①系統(tǒng)使用一個迭代輪函數(shù),它的每一輪的輸出作為下一輪的輸入,其中輪函數(shù)f是由Logistic混沌映射生成的S盒,S盒是隨著初值的變化而變化的,混沌映射是整個 f函數(shù)的核心;②把混沌映射本身在(0,1)之間的小數(shù)運算轉化成了(0,2128)的大整數(shù)運算,便于在計算機上編程實現(xiàn)和硬件仿真。
分組加密算法按八位一組進行分組,得到16個分組,產生 16個子密鑰,加密解密的流程如圖1所示。
圖1 加密解密流程
擴展加密結構也有 8組,加密輪結構如圖2所示。
其中f為使用Logistic映射構造的S盒,奇數(shù)輪用S1,偶數(shù)輪用S2。本算法使用的動態(tài)S盒構造步驟具體如下:
1)應用 Logistic映射(xn+1=4xn(1-xn),0 2)使用Baker映射對上述生成的S盒進行置亂,其表達式為式(1):其中,r,s分別表示初始 S盒的行和列,0≤s<N,Ni≤r<Ni+ni。 3)使用Cubic映射來生成輪密鑰,Cubic映射是一個二維混沌系統(tǒng),表示如式(2): 其中,選取 A=4、B=3、0<xn<1來達到最佳混沌狀態(tài)。 圖2 加密輪結構 解密過程即為和加密相對應的逆過程,解密結構如圖3所示。 圖3 擴展的解密結構框 加密系統(tǒng)中的輪函數(shù) f的作用,是將輸入的比特擴散到輸出中,就可以將明文信息擴散到所有的分組中。每一次的信息都擴散到其他的子分組中,因此當輪數(shù)小于n+1時,所有的信息都將擴散到子分組中。 S盒性能分析:S盒主要提供分組密碼算法的混亂和擴散,其性能的優(yōu)劣對一個分組密碼系統(tǒng)有著決定性的影響。一個性能良好的S盒要滿足許多設計準則,其中最重要的是:對輸入做很小的改變,就能使得輸出產生極大變化。至于非線性度和差分均勻性,一般要求非線性度的值盡可能的大,差分均勻度DP的值盡可能的小,這樣的S盒的性能良好。表1選取了一個前述方法生成的S盒。 其8個布爾函數(shù)的非線性度分別是:y0=106,y1=104,y2=98,y3=104,y4=104,y5=108,y6=106,y7=108。輸入輸出差分的最大值是10。 表2列出的是設計的S盒與其他利用混沌方法生成的S盒的參數(shù)對比,不難發(fā)現(xiàn),設計的S盒具有比較好的性能。 (1)算法實現(xiàn)的基本流程 一個完整的設計流程主要包括以下幾方面:電路或模塊的設計與輸入、時序仿真、設計綜合、設計實現(xiàn)、功能仿真、布局布線仿真等組成。如圖 4所示。 (2)算法的仿真結果 基于算法實現(xiàn)流程,算法實現(xiàn)原理如圖5所示。 混沌S盒、混沌密鑰的生成為該算法的子運算。明文經過一次運算后,返回程序入口,成為新的明文,迭代8次后,最終生成密文。 表1 Logistic生成的一個8×8的S盒 表2 設計的S盒與其它混沌S盒的性能比較 圖4 算法實現(xiàn)流程 圖5 算法實現(xiàn)設計 (3)算法的仿真實現(xiàn)方法: 1)加密過程:當輸入明文P=AFBECD0918273645AFBECD0918273645,初始密鑰 K=0123456789 ABCDEF0123456789ABCDEF時如圖6所示。加密得到的密文 C=61E19252DEFE8C93BFF97F9BC 7FFA199如圖7所示。 圖6 初始密鑰和明文輸入 圖7 加密結果 2)解密過程:當輸入密文C=61E19252DEFE8C 93BFF97F9BC7FFA199,初始密鑰 K=0123456789 ABCDEF0123456789ABCDEF時,如圖8所示。解密得到的明文 P=AFBECD0918273645AFBECD0918273645,如圖9所示。與加密的明文完全一樣。仿真結果驗證了算法的正確性。 圖8 初始密鑰和密文輸入 針對混沌所特有的隨機性和對初值敏感性等特征,結合經典的Feistel結構設計了一種新的混沌密碼算法。通過Logistic混沌映射構造S盒,并對生成的S盒進行映射函數(shù)變換。通過對密碼算法的硬件仿真,并對實驗結果進行了分析,證明密碼設計方案結構完整、靈敏度高、敏感性好,增強了混亂和擴散度,可有效抵抗外部攻擊,從而進一步增強了密碼體系的安全性。 [1]楊波.現(xiàn)代密碼學[M].北京:清華大學出版社,2003:91-95. [2]吳文玲,馮登國,張文濤.分組密碼的設計與分析[M].北京:清華大學出版社,2009:1-2. [3]鄭曉麗.基于單向函數(shù)樹的多播密鑰安全性分析[J].信息安全與通信保密,2007(05):127-128. [4]LI Changpin,CHEN Guanrong.An Improved Version of the Marotto Theorem[J].Chaos Solutions and Fractals,2003,18(01):69-77. [5]Kwok-Wo Wong. A Combined Chaotic Cryptographic and Hashing Scheme[J].Physics Letters A, 2003(307):292-298. [6]鄭曉麗.混沌分組密碼抗差分密碼攻擊的分析[J].通信技術,2013,46(01):40-42. [7]廖曉峰,肖迪,陳勇.混沌密碼學的原理及應用[M].北京:科學出版社,2009:59-61. [8]楊吉云,廖曉峰.對一種基于logistic映射的分組加密機制的分析和改進[J].通信學報,2008,29(12):86-90. [9]鄭曉麗.基于無證書公鑰密碼體制的密鑰管理[J].通信技術,2010,43(07):95-97. [10]鄭曉麗.基于無證書公鑰的IP注冊的移動協(xié)議認證[J].通信技術,2011,44(08):127-129.3 混沌密碼算法分析與實現(xiàn)
3.1 混沌密碼算法的性能分析
3.2 設計算法的仿真
4 結語