杜小妮 段娥娥王天心
(西北師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院 蘭州730070)
分組密碼是密碼學(xué)的一個(gè)重要分支,在保護(hù)數(shù)據(jù)安全方面有著重要的地位,隨著1977年DES分組密碼算法的公開(kāi),開(kāi)啟了分組密碼分析的新時(shí)代。影響分組密碼方案的安全因素有多種,如分組長(zhǎng)度以及密鑰長(zhǎng)度等。分析密碼安全性主要包括分析算法的部件性質(zhì)和分析算法的安全性。算法的部件性質(zhì)分析主要包括分析算法的結(jié)構(gòu)、S盒、線性層和密鑰擴(kuò)展方案。對(duì)于算法的安全性分析主要包括1990年文獻(xiàn)[1]針對(duì)DES提出的差分攻擊,1993年Matsui針對(duì)DES提出的線性攻擊,計(jì)算活性S盒個(gè)數(shù)的下界是另外一種評(píng)估分組密碼抵抗差分和線性分析的方法,此外還有不可能差分分析、零相關(guān)線性分析、積分攻擊、中間相遇攻擊、插值攻擊、相關(guān)密鑰攻擊、循環(huán)移位攻擊和不變量攻擊等多種攻擊方法。
2019年2月中國(guó)密碼學(xué)會(huì)啟動(dòng)了分組密碼算法設(shè)計(jì)競(jìng)賽活動(dòng)(http://www.icaisconf.com/)。基于混沌的雙模塊Feistel結(jié)構(gòu)高安全性高速(high security and high speed block cipher algorithm of twomodule FEistel structure based on Chaos,CFE)分組密碼算法是參加競(jìng)賽的29個(gè)分組密碼算法之一。該分組密碼算法的明文分組支持128位和256位兩種模式,加密輪數(shù)為5輪。算法使用密鑰生成非線性組件S盒,利用明文參與非線性部件的選擇,線性變換選用滾動(dòng)正向加和逆向加策略實(shí)現(xiàn)信息擴(kuò)散。算法設(shè)計(jì)中先隨機(jī)選取種子密鑰,將其通過(guò)混沌迭代系統(tǒng)生成序列,再利用序列構(gòu)造密碼算法的非線性S盒,此設(shè)計(jì)使得分析者進(jìn)行密碼攻擊時(shí),不能將編碼環(huán)節(jié)作為已知因素來(lái)構(gòu)造基于已知S盒的差分和線性分析;非線性S盒受1 bit輪輸入因素控制,動(dòng)態(tài)可變,使得分析者不能基于傳統(tǒng)的固定編碼環(huán)節(jié)分析方法進(jìn)行密碼攻擊。
本文結(jié)構(gòu)如下,第2節(jié)對(duì)密碼算法進(jìn)行描述,第3節(jié)討論密碼結(jié)構(gòu)和部件的安全性,第4節(jié)對(duì)密碼算法安全性進(jìn)行分析,第5節(jié)總結(jié)全文。
圖1 結(jié)構(gòu)圖
(d)S盒選擇與替換:若v=0選擇S1,否則選擇S2;根據(jù)得到的S盒,將CR0(i)(i=0,1,···,7)進(jìn)行S盒查表替換,即完成函數(shù)F的處理過(guò)程。
(5)解密過(guò)程:由于本方案的結(jié)構(gòu)嚴(yán)格對(duì)稱(chēng),因此解密過(guò)程需將密鑰順序進(jìn)行調(diào)整,并使用逆向Feistel網(wǎng)絡(luò)完成解密。
(1)密碼結(jié)構(gòu)安全性。該密碼算法總體結(jié)構(gòu)為Feistel結(jié)構(gòu),迭代5輪,但輪函數(shù)動(dòng)態(tài)可變。
(2)密碼部件性質(zhì)分析。S盒:S盒是基于混沌系統(tǒng)構(gòu)造的,且隨著種子密鑰的不同而不同,并且S盒不公開(kāi),這是依賴(lài)于密鑰的S盒的一個(gè)很大的優(yōu)點(diǎn),所以事先分析S盒以尋找弱點(diǎn)加以攻擊是不可能的。
本部分針對(duì)隨機(jī)選取的一個(gè)S盒,其參數(shù)為
科創(chuàng)板“選秀”閃爍“行政化政績(jī)幻覺(jué)”,也容易誘導(dǎo)企業(yè)的依賴(lài)思想。企業(yè)是市場(chǎng)的主體,是否上市,純粹是企業(yè)的一種市場(chǎng)行為,應(yīng)由企業(yè)自己決定?,F(xiàn)在的情況是,一些地方政府主動(dòng)充當(dāng)“媒婆”的角度,出臺(tái)各種優(yōu)惠政策鼓勵(lì)一些高新企業(yè)去科創(chuàng)板上市,行政化“動(dòng)員”手段過(guò)于張揚(yáng),滋長(zhǎng)了企業(yè)抱“奶瓶”的想法,在某種程度上侵害了企業(yè)的自主權(quán),也不利于企業(yè)提升自力更生闖市場(chǎng)的能力。須知科創(chuàng)板也不是隨便閑逛的集市,那些科技含量高、市場(chǎng)潛力大、規(guī)范性強(qiáng)、具有一定產(chǎn)業(yè)規(guī)模的企業(yè)才能捷足先登,而不是一味仰仗政府的行政支持。
經(jīng)分析,其滿足雙射性和嚴(yán)格雪崩準(zhǔn)則[2]。但是因?yàn)镾盒由混沌系統(tǒng)構(gòu)造,所以其具體密碼學(xué)性質(zhì)[3],如差分均勻度和線性度并不明確。
P置換:P置換為一個(gè)線性變換,起到信息擴(kuò)散作用。算法的線性變換由正向擴(kuò)散和逆向擴(kuò)散兩部分組成,具體擴(kuò)散過(guò)程見(jiàn)式(6)和式(7)。針對(duì)擴(kuò)散過(guò)程可得明文線性變換T和密鑰線性變換W分別為
圖2 輪函數(shù)
這里只對(duì)128 bit的CFE算法詳細(xì)敘述其分析過(guò)程并給出結(jié)果,而256 bit的算法有類(lèi)似的分析過(guò)程與結(jié)果。
評(píng)估一個(gè)分組密碼算法抗差分攻擊能力的常用方法是估計(jì)其差分活性S盒個(gè)數(shù)的下界[4]。差分活性S盒個(gè)數(shù)越多,對(duì)應(yīng)的差分特征概率越小。因此,差分活性S盒個(gè)數(shù)的下界體現(xiàn)了差分特征概率的上界,若差分特征概率的上界小于某個(gè)標(biāo)準(zhǔn),則該算法具有抵抗差分攻擊的能力。
性質(zhì)1 CFE分組算法的差分活性S盒個(gè)數(shù)下界見(jiàn)表1。
表1 差分活性S盒個(gè)數(shù)下界
證明 以1 2 8 b i t 為例取5 輪差分特征(0000α000,00000000)→(00000β0β,0000α0γ0),記?CRi,?Y i,i=1,2,···,5為S盒的輸入輸出差分,且每輪取特征碼相同的概率為2–1。
第1 輪:活 性S 盒 為0 個(gè),其 中?CR1=0,?Y1=0,?R1=?L0⊕?Y1=?L0,?L1=?R0。
第2輪:活性S盒為2個(gè),其中?CR2=(0,0,0,0,0,α,0,α),?Y2=(0,0,0,0,0,?Y2(5),0,?Y2(7)),?R2=?L1⊕?Y2=?Y2,?L2=?R1。
第3 輪:活 性S 盒 為1 個(gè),其 中?Y2(5)=?Y2(7)的概率為2–8,?CR3=(0,0,0,0,0,0,?Y2(7),0) ,?Y3=(0,0,0,0,0,0,?Y3(6),0),?R3=?L2⊕?Y3=(0,0,0,0,α,0,?Y3(6),0),?L3=?R2。
第4輪:活性S盒為2個(gè),其中α取 定,?Y3(6)有2 5 4 種取法,則α=?Y3(6)的概率為2 5 4/255=2–0.0050,且?CR4=(0,0,0,0,0,α ⊕?Y3(6),0,?Y3(6)) ,?Y4=(0,0,0,0,0,?Y4(5),0,?Y4(7)),?L4=?R3,?R4=?L3⊕?Y4=(0,0,0,0,0,?Y2(5)⊕?Y4(5),0,?Y2(7)⊕?Y4(7))。
第5輪:活性S盒為1個(gè)。由于使用的S盒是雙射,且兩個(gè)S盒輸入的字節(jié)有1bit不同,則輸出不同。因?yàn)閿?shù)字化的混沌序列輸出的是均勻分布的偽隨 機(jī) 數(shù),其 值 為1,2,···,255,那 么?Y2(5)=?Y2(7)=0完 全相同的概率為1/255=2?7.9943。故?Y2(5)⊕?Y4(5)=?Y2(7)⊕?Y4(7)的概率為2–7.9943,則有? CR5=(0,0,0,0,0,0,?Y2(7)⊕?Y4(7),0)。
需要說(shuō)明的是,方案的提交者給出的活性S盒的下界個(gè)數(shù)為14,應(yīng)該有誤。
在不可能差分分析[5,6]中,攻擊者利用不可能出現(xiàn)的輸入輸出差分模式排除錯(cuò)誤密鑰,從而縮小密鑰的搜索空間。為此,本文構(gòu)造5輪不可能差分特征如下。
第3輪輸入的右半部分為β;
圖3 5輪不可能差分特征圖
零相關(guān)線性分析[7,8]利用相關(guān)度為零的線性逼近來(lái)區(qū)分分組密碼算法與隨機(jī)置換?;谙嚓P(guān)度為零的線性逼近表達(dá)式進(jìn)行密鑰恢復(fù)。
圖4 5輪零相關(guān)線性區(qū)分器
因此,利用上述3輪積分區(qū)分器對(duì)5輪算法實(shí)施攻擊時(shí),需猜測(cè)L 3和SK 4兩個(gè)值。若式(16)成立,則L 3和SK4為正確猜測(cè)值。
但是S盒由混沌系統(tǒng)生成,屬于不確定元素,所以對(duì)CFE分組密碼算法做積分攻擊較困難。
構(gòu)造中間相遇區(qū)分器[11,12]的基本思想是給定一組滿足一定條件的明文集(δ-集)作為輸入,考察明文集經(jīng)密碼函數(shù)(隨機(jī)置換)加密后,按明文集次序截取對(duì)應(yīng)輸出密文集固定位置的取值構(gòu)成一個(gè)有序序列,根據(jù)該序列可取值范圍隨密碼函數(shù)和隨機(jī)置換的不同,將密碼函數(shù)與隨機(jī)置換區(qū)分。
圖5 積分攻擊
插值攻擊:插值攻擊[13]實(shí)質(zhì)上是一種代數(shù)方法,其基本思想是將密文看作明文的多項(xiàng)式函數(shù),然后通過(guò)研究多項(xiàng)式性質(zhì)來(lái)分析一個(gè)加密算法所具有的密碼學(xué)性質(zhì)。插值攻擊一般對(duì)那些輪函數(shù)次數(shù)比較低且具有比較緊湊的表達(dá)式的密碼算法有效。因?yàn)镃FE算法輪函數(shù)的S盒性質(zhì)不確定,故明文和密文之間的多項(xiàng)式函數(shù)的次數(shù)不確定,所以用插值攻擊分析比較困難。
圖6 5輪中間相遇區(qū)分器
相關(guān)密鑰攻擊:在相關(guān)密鑰[14]模型下,攻擊者能夠通過(guò)某種方式獲得明文及其在某些未知密鑰下所對(duì)應(yīng)的密文。攻擊者雖不知道這些密鑰的具體值,但知道甚至可以選取這些密鑰之間的關(guān)系。由于在CFE密鑰擴(kuò)展算法中,每輪的輪子密鑰由混沌序列生成,排列方式與取值都不同且無(wú)法確定,所以?xún)蓚€(gè)輪子密鑰之間沒(méi)有關(guān)系,故無(wú)法確定或選取這些密鑰之間的關(guān)系,該算法可以抗擊相關(guān)密鑰攻擊。
在2016年,文獻(xiàn)[16]對(duì)Fridrich的混沌圖像加密方案進(jìn)行了密碼分析。對(duì)于密碼算法設(shè)計(jì),CFE算法基于時(shí)空混沌系統(tǒng)式(1)構(gòu)造密鑰和非線性部件S盒,然后使用了5輪Feistel結(jié)構(gòu)。與之相似,F(xiàn)ridrich的方 案 是 基 于混 沌方 程g(x)=(β+1)(1+1/β)β x(1?x)β,β∈[1,4]設(shè)計(jì)的,然后迭代幾輪位置置換和值替換(使用了非線性函數(shù)g)。不同的是,F(xiàn)ridrich方案的非線性部件使用的是模加,而CFE算法則使用了S盒。在密碼分析方面,文獻(xiàn)[16]討論了Fridrich方案的一些數(shù)學(xué)性質(zhì),并給出了Solak選擇密文攻擊方法的實(shí)際缺陷和應(yīng)用,而本文主要討論了CFE算法的密碼部件的性質(zhì),然后進(jìn)行了一系列傳統(tǒng)的密碼分析。
本文對(duì)CFE分組算法的安全性進(jìn)行了分析,結(jié)果顯示,因?yàn)樗惴ň哂袆?dòng)態(tài)S盒特性,而積分攻擊、插值攻擊、循環(huán)移位攻擊、中間相遇攻擊和不變量攻擊對(duì)S盒的密碼學(xué)特性有較強(qiáng)的依賴(lài)性,所以該算法不適合用這些攻擊方法,并且由密鑰擴(kuò)展方案可得該算法可以抵抗相關(guān)密鑰攻擊;其次本文構(gòu)造出了5輪不可能差分特征鏈,并利用其進(jìn)行區(qū)分攻擊;更進(jìn)一步地,求得算法的活性S盒下界為6,概率約為2–21;最后指出了算法存在5輪零相關(guān)線性特征。接下來(lái)我們的工作將著重對(duì)該算法的S盒進(jìn)行研究。