李艷俊, 孫啟龍, 歐海文, 汪 振
1. 北京電子科技學院, 北京100070
2. 密碼科學技術(shù)國家重點實驗室, 北京100878
近年來, 為滿足RFID (radio frequency identification)、智能卡、無線傳感器等資源受限環(huán)境下的安全需求, 輕量級密碼隨之誕生, 而后倍受關(guān)注. 許多密碼學者提出一系列輕量分組密碼算法, 如PRESENT[1]、LED[2]、LBlock[3]、PRINT-cipher[4]、KLEIN[5]和SIMON[6]等.
MIBS[7]是一個輕量級分組密碼算法, 由Izadi M 等人在CANS 2009 會議上提出. 針對MIBS 分組密碼算法的現(xiàn)有分析結(jié)果包括線性分析[8]、積分分析[9]、差分分析[8]和不可能差分分析[10]等. 目前對于MIBS-64 最好的分析結(jié)果是14 輪差分分析[8], 數(shù)據(jù)復雜度為240個選擇明文, 數(shù)據(jù)復雜度為237.2, 成功概率為50.15%; 對于MIBS-80 最好的分析結(jié)果是18 輪線性分析[8], 數(shù)據(jù)復雜度為260.98個已知明文,時間復雜度為276.13, 成功概率為72.14%. 雖然差分分析和線性分析的輪數(shù)較高, 但是成功率相對積分分析偏低.
積分分析是由Square 攻擊發(fā)展而來的, Square 攻擊[11]是對AES 最有效的攻擊之一. 近年來, 積分分析廣泛發(fā)展,已經(jīng)應用于很多密碼算法,如Rijndael[12]、ARIA[13]、Serpent[14]、AES[15]、Simeck[16]、TWINE[17]、Camellia[18,19]等. 2016 年, 隨著可分性自動化搜索工具的逐漸成熟[20,21], 積分分析又一次占據(jù)了分析方法的主導位置. 于曉麗等人都對MIBS 算法進行了10 輪積分分析[9,22]. 本文基于MIBS-64 算法的密鑰編排特點, 給出一類5 輪積分區(qū)分器, 并前向和向后分別擴展3 輪, 首次對MIBS-64 算法進行了11 輪的積分攻擊, 攻擊數(shù)據(jù)復雜度為258, 時間復雜度為259.75次11 輪加密, 攻擊成功概率為100%.
MIBS 算法整體結(jié)構(gòu)使用傳統(tǒng)的Feistel 結(jié)構(gòu)[1], 輪函數(shù)采用SPN 結(jié)構(gòu), 其分組長度為64 比特, 支持64 和80 比特的密鑰長度, 分別記為MIBS-64 和MIBS-80, 迭代輪數(shù)為32 輪. MIBS 中所有迭代操作都是基于半字節(jié)的, 也就是一個字有4 比特. 輪函數(shù)包括異或子密鑰,S盒(4×4 比特) 層和一個線性層P(分支數(shù)為5), 此處線性層是設(shè)計文檔中線性混淆和半字節(jié)置換的復合. MIBS 加密結(jié)構(gòu)及輪函數(shù)結(jié)構(gòu)見圖1 及圖2.
圖1 MIBS 算法一輪加密結(jié)構(gòu)Figure 1 One round structure of MIBS
圖2 MIBS 算法輪函數(shù)結(jié)構(gòu)Figure 2 Round function of MIBS
MIBS 的密鑰編排采用了與PRESENT 的密鑰編排相同的設(shè)計原則. MIBS-64 密鑰編排中, 通過64比特主密鑰K: (k63,k62,··· ,k0) 生成輪密鑰Ki, 其中0≤i ≤31. 若將密鑰編排算法中第i輪的密鑰狀態(tài)表示statei, 則密鑰編排算法的輪函數(shù)可以表示成如下的形式:
其中, ?表示循環(huán)右移操作, [i~j] 表示此項操作是針對第i至第j比特變量,|| 表示連接操作, 輪函數(shù)中使用的S盒與F函數(shù)中使用的S盒相同. 最終, 第i輪狀態(tài)statei的左側(cè)32 比特將作為第i輪輪密鑰Ki.
現(xiàn)在我們介紹本文中使用的符號. 明文記為P= (X1,X0), 其中Xi= (xi,8,xi,7,··· ,xi,1),i=0,1,··· ,r ?1, 本文中出現(xiàn)的其他符號含義如下:
MIBS-64 密鑰編排算法中使用了循環(huán)移位、S盒查詢、輪常數(shù)加等變換, 相鄰兩輪之間的32 比特密鑰有17 比特重復或等價, 基于這個性質(zhì)可以對MIBS-64 進行多輪攻擊. 本節(jié)首先介紹MIBS-64 的密鑰性質(zhì), 然后提出MIBS 算法的一類5 輪積分區(qū)分器.
根據(jù)MIBS-64 密鑰編排算法, 第1 輪至第11 輪之間的密鑰存在部分重復和等價關(guān)系, 本文主要使用下述密鑰編排性質(zhì).
本文根據(jù)我院醫(yī)療設(shè)備管理的現(xiàn)狀和要求,設(shè)計出一套適合醫(yī)院自身管理流程的醫(yī)療設(shè)備全生命周期管理系統(tǒng),有效地提高了醫(yī)院的工作效率和經(jīng)濟效益。該系統(tǒng)基本涵蓋了醫(yī)療設(shè)備管理的全過程,滿足我院醫(yī)學工程科對醫(yī)療設(shè)備管理的實際需求,提高了我院醫(yī)療設(shè)備信息化管理的整體水平。
基于輪密鑰之間的關(guān)系, 選取合適的5 輪積分區(qū)分器, 向前解密3 輪, 向后加密3 輪, 可以攻擊11 輪MIBS-64. 這類5 輪積分區(qū)分器需要具備以下特點:
(1) 選擇X0= (C,C,x0,6,x0,5,x0,4,x0,3,x0,2,x0,1), 其中x0,1~x0,6任意兩個活躍, 為不增加猜測多余密鑰的計算量x0,7~x0,8被設(shè)置為常量.
圖3 輪密鑰之間的關(guān)系Figure 3 Relationship between round keys
(2) 5 輪積分區(qū)分器輸出X6經(jīng)過S盒后得到Y(jié)6= (y6,8,y6,7,y6,6,y6,5,y6,4,y6,3,u,u), 其中y6,8~y6,3共6 個半字節(jié)可能為平衡半字節(jié), 為不增加猜測多余密鑰的計算量y6,2~y6,1被設(shè)置為未知的半字節(jié)u. 若存在i個半字節(jié)的每個值出現(xiàn)偶數(shù)次, 則猜測密鑰中錯誤密鑰通過的的概率小于2?12.68i[9,19].
根據(jù)上述特點, 通過搜索得表1 中13 個5 輪積分區(qū)分器.
下述引理2 將證明表1 中區(qū)分器1 的正確性, 引理3 將證明表1 中區(qū)分器5 中y6,3半字節(jié)平衡的正確性, 其余平衡半字節(jié)的證明方法相似, 從略. 根據(jù)密鑰編排特點, 為降低猜測多余密鑰的計算量, 上述區(qū)分器中的平衡字節(jié)y6,2和y6,1并不會被使用.
表1 MIBS-64 算法5 輪積分區(qū)分器Table 1 5 rounds integral distinguishers of MIBS-64
引理2 如果選擇明文結(jié)構(gòu)為(X1,X0) = (CCCCCCCC,CCCCCCA2A1), 也就是x0,2,x0,1是活躍的半字節(jié), (X1,X0) 的其余半字節(jié)都為常數(shù), 記t1=P?1(X7)7⊕y6,7,t2=P?1(X7)8⊕y6,8, 則每個ti的值都會出現(xiàn)偶數(shù)次.
證明: 如圖4 所示, 根據(jù)Feistel 結(jié)構(gòu)特點, 得到X7=X1⊕Z2⊕Z4⊕Z6, 在選擇明文攻擊中, 明文(X1,X0) 和密文(X7,X6) 已知, 故有:
圖4 MIBS 算法5 輪積分區(qū)分器Figure 4 5 round integral distinguisher of MIBS
根據(jù)方程(1)我們知道P?1(X7⊕X1)=Y2⊕Y4⊕Y6, 故P?1(X7)i ⊕P?1(X1)i=y2,i ⊕y4,i ⊕y6,i
所以t1=P?1(X7)7⊕y6,7=P?1(X1)7⊕y2,7⊕y4,7, 其中y2,7=S(x2,7⊕k2,7),x2,7=x0,7⊕z1,7,而x0,7,x1,7是常數(shù), 故x2,7是常數(shù), 由于P?1(x1)7也是常數(shù), 故此t1的取值規(guī)律與y4,7的取值規(guī)律是相同的, 下面分析y4,7的取值規(guī)律:
考慮x4,7得:
令y=y2,1⊕y2,2, 對于y的每一個值,y2,2都是活躍的, 所以y4,7的每個值都出現(xiàn)16 次, 即滿足y4,7的每個值都出現(xiàn)偶數(shù)次.
同理, 可證t2的每個值也出現(xiàn)偶數(shù)次.
引理3 如果選擇明文結(jié)構(gòu)為(X1,X0) = (CCCCCCCC,CCCA5A4CCC), 也就是x0,5,x0,4是活躍的半字節(jié), (X1,X0) 的其余半字節(jié)都為常數(shù), 記t3=P?1(X7)3⊕y6,3, 則t3的每個值出現(xiàn)偶數(shù)次.
證明: 前部推導過程與引理2 證明相似, 可得t3的取值規(guī)律與y4,3的取值規(guī)律是相同的, 下面分析y4,3的取值規(guī)律:
將x4,3帶入方程(5)得
與引理2 證明不同, 此處y4,3的表達式中同時出現(xiàn)了S(y2,5⊕c3) 和S(y2,4⊕c6). 令y=y2,4⊕y2,5, 則對于y的每一個值,y2,5是活躍的. 又
所以S(y2,5⊕c3)⊕S(y ⊕y2,5⊕c6) 的每個值出現(xiàn)偶數(shù)次, 因此結(jié)論成立.
在針對11 輪的MIBS 攻擊中使用第3.2 節(jié)表1 中的5 輪積分區(qū)分器, 因為需要用t值過濾錯誤密鑰,t值的比特數(shù)越多, 錯誤密鑰被過濾掉的概率越大. 因此根據(jù)密鑰性質(zhì)和5 輪區(qū)分器的平衡比特數(shù)量, 選用第8 個區(qū)分器進行下述恢復密鑰攻擊. 選擇x3,5,x3,2活躍, 具體過程如圖5 所示.
圖5 MIBS 算法11 輪攻擊Figure 5 Attack on 11 rounds MIBS
第4 輪至第8 輪為區(qū)分器, 輸入表示成(X4,X3), 滿足:
x3,5,x3,2活躍, 則y7,[8,7,6,4,3]每個值出現(xiàn)偶數(shù)次, 表達式為:
與引理類似, 有:
由此, 對于上述t1~t5每個值都出現(xiàn)偶數(shù)次, 即這5 個半字節(jié)位置t1||t2||t3||t4||t5的每個值出現(xiàn)偶數(shù)次. 對于隨機置換, 根據(jù)文獻[9] 和[19], 這20 個比特位置的值出現(xiàn)偶數(shù)次的概率小于2?12.68×5=2?63.40.
Step.1 定義如下由28個64 比特構(gòu)成的一個結(jié)構(gòu), 可以表示成(X3,X2) 的形式, 并滿足:
在11 輪恢復密鑰攻擊中, 共猜測主密鑰第63~32、21~0 共54 比特, 隨機密鑰通過5 輪積分區(qū)分器的概率為2?63.40,即只有1 個正確的54 比特密鑰被保留. Step.1—2 需要計算250×28×2.25÷11≈255.75次11 輪加密. Step.3 需要計算258次11 輪加密. Step.4 需要計算250×28×24×2.3÷11≈259.75次11 輪加密. Step.5 得到254×2?63.40+1≈1 個54 比特密鑰, 猜測剩余的10 比特密鑰, 只需要進行210次11 輪解密.
因此, 上述攻擊的整體時間復雜度由Step.4 決定, 共需時間復雜度259.75次11 輪加密, 數(shù)據(jù)復雜度為258.
本文對分組密碼算法MIBS-64 進行了積分分析, 基于密鑰編排算法構(gòu)建一類5 輪積分區(qū)分器, 向前加3 輪, 向后加3 輪, 11 輪的密鑰恢復攻擊數(shù)據(jù)復雜度為258, 時間復雜度為259.75. 與差分分析、線性分析、截斷差分分析等方法相比, 雖然密鑰恢復的輪數(shù)較少, 但是這種攻擊方法成功的概率為100%, 在算法實際攻擊中具有重要意義. 本攻擊結(jié)果適用于MIBS-64, 類似地可以推廣至MIBS-80. 由此可見, 輪密鑰之間的關(guān)系對算法安全性有重要影響, 若能考慮這些關(guān)系對S盒的作用, 將會改進現(xiàn)有分析效果, 這也是我們下一步的工作.