• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      減輪SKINNY-128-384 算法的中間相遇攻擊*

      2021-05-15 09:54:46肖鈺汾
      密碼學(xué)報(bào) 2021年2期
      關(guān)鍵詞:明文單元格區(qū)分

      肖鈺汾, 田 甜

      戰(zhàn)略支援部隊(duì)信息工程大學(xué), 鄭州450001

      1 引言

      當(dāng)前, 隨著通信、計(jì)算機(jī)技術(shù)的迅速發(fā)展, 分組密碼得到廣泛應(yīng)用. 而近十年, 隨著物聯(lián)網(wǎng)的發(fā)展, 輕量級密碼算法的需求越來越大, 為適應(yīng)于各種應(yīng)用環(huán)境, 學(xué)術(shù)界提出一批輕量級分組密碼算法. SKINNY算法是由Beierle 等人在2016 年美密會上提出的一種基于SPN 結(jié)構(gòu)的可調(diào)輕量分組密碼算法[1], 該算法在軟硬件實(shí)現(xiàn)方面具有較高的效率, 同時(shí)也具備較強(qiáng)的安全性. 近兩年, 針對SKINNY 算法的安全性分析越來越多, 例如不可能差分攻擊[2–4], 截?cái)嗖豢赡懿罘止鬧5], 零相關(guān)線性攻擊[6]和中間相遇攻擊[7]等. 對減輪SKINNY 算法, 已有學(xué)者提出了22 輪SKINNY-128-384 的中間相遇攻擊以及其改進(jìn)的相關(guān)結(jié)果[7,8]. 中間相遇攻擊對SKINNY 算法是一種效果比較顯著的攻擊方法.

      中間相遇攻擊的思想最早由Diffie 和Hellman 在1977 年提出并應(yīng)用到分組密碼DES 的安全性分析中[9], 后來這一攻擊方法在AES 算法等SPN 結(jié)構(gòu)的分組密碼中得到廣泛應(yīng)用. AES 的中間相遇攻擊最早是由Demirci 和Sel?uk 在2008 年Fast Software Encryption (FSE) 會議上提出[10], 他們沿用了Diffie 和Hellman 的基本思想, 改進(jìn)了Gilbert 和Minier 給出的三輪AES 加密輸入和輸出之間映射關(guān)系的性質(zhì)[11], 提出了AES 的四輪中間相遇區(qū)分器, 以及在單密鑰下7 輪AES-192 和8 輪AES-256 的攻擊結(jié)果. Demirci 和Sel?uk 提出的中間相遇攻擊被稱為DS-MITM, 普遍認(rèn)為是SPN 結(jié)構(gòu)分組密碼最經(jīng)典的中間相遇攻擊. 文獻(xiàn)[12–15] 對Demirci 和Sel?uk 的AES 中間相遇攻擊算法進(jìn)行了改進(jìn), 形成了許多在中間相遇攻擊中常用的技術(shù)方法, 例如文獻(xiàn)[12] 提出的多重集技術(shù)、密鑰橋技術(shù)和差分枚舉技術(shù). 文獻(xiàn)[15] 對10 輪AES-256 算法的中間相遇攻擊進(jìn)行了理論分析, 是目前為止針對AES 算法輪數(shù)最長的中間相遇攻擊. 文獻(xiàn)[7] 和[16] 提出了中間相遇攻擊的自動化搜索技術(shù), 尤其是[7] 中所給出的DS-MITM自動化搜索模型形成了中間相遇攻擊一般化的搜索方式, 為快速有效地給出SPN 結(jié)構(gòu)分組密碼算法最優(yōu)的中間相遇區(qū)分器和攻擊方案提供了一種新的途徑.

      SKINNY 作為一種典型的SPN 結(jié)構(gòu)的分組密碼算法, 其中間相遇攻擊的分析過程可采用DS-MITM自動化搜索模型. 文獻(xiàn)[7]將中間相遇攻擊的自動化搜索模型應(yīng)用于SKINNY-128-384 中,結(jié)合SKINNY算法在列混合過程中可利用的約束條件, 通過自動化搜索的方法, 作者給出了10.5 輪SKINNY-128-384的中間相遇區(qū)分器, 并給出了22 輪SKINNY-128-384 的中間相遇攻擊. 然而, 文獻(xiàn)[7] 所給出的中間相遇攻擊并非最優(yōu)算法,在建立中間相遇區(qū)分器的過程中仍有改進(jìn)的空間. 文獻(xiàn)[8]對22 輪SKINNY-128-384的中間相遇攻擊進(jìn)行了改進(jìn), 通過建立SKINNY 算法密鑰橋的自動化搜索模型, 找到了攻擊過程中使得密鑰猜測量最少的中間相遇攻擊算法, 將在線攻擊階段的時(shí)間復(fù)雜度降低了216, 然而一定程度上增大了存儲復(fù)雜度.

      本文對史丹萍等人提出的SKINNY 中間相遇區(qū)分器進(jìn)行了一定改進(jìn). 在SKINNY 中間相遇區(qū)分器的搜索過程中, 本文將不使用列混合的約束條件, 而是考慮將狀態(tài)的猜測轉(zhuǎn)化為密鑰的猜測, 并結(jié)合密鑰橋技術(shù), 以減少中間相遇區(qū)分器的建立過程中密鑰的猜測量, 從而降低中間相遇攻擊的離線存儲復(fù)雜度.最終, 我們在不增大時(shí)間復(fù)雜度和數(shù)據(jù)復(fù)雜度的前提下, 將22 輪SKINNY-128-384 算法中間相遇攻擊的離線存儲復(fù)雜度降低了224.

      本文結(jié)構(gòu)安排如下: 第2 節(jié)簡要介紹SKINNY 算法和史丹萍等人提出的SKINNY 中間相遇攻擊;第3 節(jié)給出了SKINNY 算法改進(jìn)后的中間相遇區(qū)分器, 并形成了中間相遇攻擊的基本過程. 第4 節(jié)是對本文的小結(jié).

      2 準(zhǔn)備工作

      2.1 SKINNY 算法介紹

      SKINNY 算法由Christof Beierle 等人在2016 年美密會上提出[1], 是一種分組長度和密鑰長度可調(diào)的輕量級分組密碼. SKINNY 算法的分組長度有64 比特和128 比特兩種類型, 在這兩種分組長度類型中, 每個(gè)分組均看作4×4 的方陣. 當(dāng)分組長度為64 比特時(shí), 單元格數(shù)據(jù)類型為半字節(jié); 當(dāng)分組長度為128比特時(shí), 單元格的數(shù)據(jù)類型為單字節(jié). 記SKINNY 的分組長度為n 比特, SKINNY 的密鑰長度可以為大于等于n 且小于等于3n 的任意比特長度. 在加密過程中, 采用Tweakey 的輸入模式. Tweakey 的長度記為t, 有三種取值情形, 分別為t = n, t = 2n, t = 3n. SKINNY-n-t 表示分組長度和Tweakey 長度分別為n 和t 的加密版本. 根據(jù)分組大小和Tweakey 的不同長度, 加密算法的輪數(shù)也不同, 二者與加密輪數(shù)的關(guān)系如表1所示.

      表1 SKINYY-n-t 算法的迭代輪數(shù)Table 1 Number of rounds for SKINNY-n-t

      2.1.1 加密算法

      已知明文m=m0||m1||m2||···||m15. 對于1 ≤i ≤15, 當(dāng)分組長度為64 比特時(shí), mi的長度為4 比特; 當(dāng)分組長度為128 比特時(shí), mi的長度為8 比特. 記單元格的比特長度為s.

      按照行的順序, 依次將明文m = m0||m1||m2||···||m15輸入到4×4 的矩陣中, 記第i 輪的輸入狀態(tài)分組為Si, 狀態(tài)矩陣如下所示:

      SKINNY 算法的輪函數(shù)包含五個(gè)步驟的操作, 依次為S 盒替換、輪常數(shù)加、輪密鑰加、行移位、列混合, 如圖1 所示.

      圖1 SKINNY 加密算法的輪函數(shù)Figure 1 Encryption round function of SKINNY

      S 盒替換(SC): 對一個(gè)分組中的16 個(gè)單元格分別進(jìn)行S 盒替換, 不同分組長度使用的S 盒規(guī)模不同. 分組長度為64 時(shí), 采用4 比特規(guī)模的S 盒; 分組長度為128 時(shí), 采用8 比特規(guī)模的S 盒.

      輪常數(shù)加(AC): 將狀態(tài)分組與輪常數(shù)矩陣異或加, 其中每一輪的輪常數(shù)通過LFSR 來更新.

      輪密鑰加(ART): 給定Tweakey 輸入tk. 當(dāng)Tweakey 的長度t=n 時(shí), 令tk=tk0||tk1||···||tk15,按行的順序, 依次將tk0,tk1,··· ,tk15輸入4×4 矩陣TK1 中; 當(dāng)t = 2n 或3n 時(shí), 以相同的方式依次將tk 每16s 比特輸入矩陣TK1、TK2 和TK3 中. 進(jìn)行輪密鑰加時(shí), 將Tweakey 矩陣的前兩行與狀態(tài)異或, 即

      其中, i=0,1, j =0,1,2,3.

      行移位(SR): 狀態(tài)分組的第0,1,2,3 行依次循環(huán)右移0,1,2,3 單元格.

      列混合(MC): 在狀態(tài)分組前乘矩陣

      其中運(yùn)算規(guī)則為異或運(yùn)算.

      2.1.2 密鑰擴(kuò)展算法

      SKINNY 算法的輪密鑰更新即TK1、TK2 和TK3 的更新. TK1 的更新過程為矩陣單元格的置換,即

      圖2 SKINNY 算法中的Tweakey 擴(kuò)展算法Figure 2 Tweakey schedule in SKINNY

      TK2 和TK3 的更新過程如圖2 所示, 其中, 置換PT與TK1 的置換一致. LFSR 的更新過程如表2 所示.

      表2 Tweakey 擴(kuò)展算法中LFSR 的更新函數(shù)Table 2 Update functions of LFSRs used in Tweakey schedule

      2.2 Demirci-Sel?uk 中間相遇攻擊

      2008 年, Demirci 和Sel?uk 提出針對AES 分析的中間相遇攻擊, 按照其模型所建立的中間相遇攻擊一般稱為DS-MITM[10], 后續(xù)中間相遇攻擊的研究均與DS-MITM 有緊密聯(lián)系. 在DS-MITM 的分析過程中, 首先將加密算法Ek拆分為如圖3 所示的三個(gè)部分E0,E1和E2, 即Ek= E2?E1?E0, E0為加密算法的第0 輪至第r0?1 輪; E1為加密算法的第r0輪至第r0+r1輪, 是中間相遇攻擊的區(qū)分器部分;E2為加密算法的第r0+r1+1 輪至第r0+r1+r2輪.

      圖3 DS-MITM 基本模型Figure 3 Basic model of DS-MITM

      以下給出DS-MITM 的基本攻擊原理.

      首先介紹δ-集的概念. 取N 個(gè)不同的狀態(tài)分組或明文分組, 這N 個(gè)分組滿足在其中一個(gè)或者多個(gè)單元格中窮盡所有可能值, 這樣的單元格稱為活躍單元格. 除活躍單元格外, N 個(gè)狀態(tài)分組在其余單元格差分均為0, 則稱這N 個(gè)狀態(tài)分組為δ-集.

      在圖3 的模型中, E1為構(gòu)建的中間相遇區(qū)分器部分. 在構(gòu)建區(qū)分器時(shí), 需要先確定δ-集的活躍單元格以及區(qū)分器的輸出單元格位置; 根據(jù)δ-集在第r0輪至第r0+r1輪的差分傳播路徑, 以及輸出單元格自第r0+r1輪至第r0輪的差分傳播路徑, 猜測兩條路徑在傳播過程中每一輪輸入相交的狀態(tài)值, 窮盡相交狀態(tài)的所有取值, 在第r0+r1輪可得到不同的關(guān)于輸出狀態(tài)或差分的集合, 將輸出集存儲在表中, 構(gòu)成中間相遇區(qū)分器. 選取足夠的明文, 使得當(dāng)E0部分的輪密鑰值任意猜測時(shí), 在第r0輪的輸入狀態(tài)總能形成一個(gè)δ-集. 篩選在第r0輪的輸入狀態(tài)形成δ-集的明文集, 加密生成密文, 猜測E2部分的輪密鑰, 部分解密密文, 求得第r0+r1輪輸出固定單元格的狀態(tài)或差分, 判斷狀態(tài)或差分值是否在區(qū)分器的存儲表中; 若在, 則判斷E0和E2部分所猜測的密鑰為正確密鑰; 否則為錯(cuò)誤密鑰. 最后通過窮盡剩余密鑰的方法, 可篩選出正確密鑰.

      2.3 史丹萍等人對SKINNY 算法的中間相遇分析

      文獻(xiàn)[7] 利用DS-MITM 基本模型, 通過自動化搜索的方法, 對SKINNY-128-384 進(jìn)行了中間相遇分析, 找到10.5 輪的中間相遇區(qū)分器, 并給出了22 輪的中間相遇攻擊.

      此時(shí), 狀態(tài)的猜測量大于算法SKINNY-128-384 的密鑰長度. 根據(jù)文獻(xiàn)[7], 運(yùn)用SKINNY 加密算法關(guān)于列混合的約束條件, 在一定程度上可以減少上述分組狀態(tài)字節(jié)的猜測量. 記列混合前的狀態(tài)為Q, 列混合后的狀態(tài)為Q′, 則SKINNY 的列混合變換可以用以下四式表示:

      其中b ∈{0,1,2,3}. 將式(1)與式(4)相加, 式(2)與式(4)相加, 得:

      圖4 文獻(xiàn)[7] 中10.5 輪SKINNY-128-384 的中間相遇區(qū)分器Figure 4 MITM distinguisher of 10.5-round SKINNY-128-384 in Ref. [7]

      由式(5)和式(6)的約束條件, X5[0,4],X6[0,4],X7[3,4,7],X8[3,7] 可根據(jù)已猜測的其它字節(jié)以及上一輪已知的部分狀態(tài)求出. 增加約束條件后, 建立區(qū)分器所需猜測的狀態(tài)值為40 字節(jié).

      在區(qū)分器前添加3 輪, 區(qū)分器后添加8.5 輪, 可以形成22 輪SKINNY-128-384 的中間相遇攻擊.攻擊過程中選擇明文量為296個(gè)明文分組, 需要猜測的密鑰量為47 字節(jié). 因此, 文獻(xiàn)[7] 中對22 輪SKINNY-128-384 的中間相遇攻擊, 數(shù)據(jù)復(fù)雜度為296選擇明文(CP), 存儲復(fù)雜度約為2328字節(jié), 時(shí)間復(fù)雜度約為2382次22 輪SKINNY-128-384 加密.

      3 SKINNY-128-384 算法改進(jìn)的中間相遇攻擊

      在文獻(xiàn)[7] 基礎(chǔ)上, 本節(jié)討論SKINNY-128-384 算法中間相遇攻擊的改進(jìn), 主要降低了文獻(xiàn)[7] 對SKINNY 算法攻擊的存儲復(fù)雜度.

      3.1 SKINNY-128-384 算法改進(jìn)的中間相遇區(qū)分器

      SKINNY 加密算法在輪密鑰加的過程中, 每個(gè)狀態(tài)分組僅有前兩行參與了輪密鑰加的運(yùn)算, 后兩行進(jìn)行輪常數(shù)加. 因此, 在進(jìn)行中間相遇分析的過程中, 后兩行為已知狀態(tài). 本文對10.5 輪SKINNY-128-384中間相遇區(qū)分器的改進(jìn), 主要體現(xiàn)在將推導(dǎo)過程中部分分組狀態(tài)的猜測轉(zhuǎn)化為部分輪密鑰的猜測. 而在輪密鑰的猜測過程中, 可以通過密鑰橋技術(shù), 找到密鑰之間存在的一些關(guān)系, 減少密鑰的猜測量, 從而一定程度上降低建立區(qū)分器過程中的時(shí)間復(fù)雜度, 也降低了中間相遇攻擊的存儲復(fù)雜度, 同時(shí)也提升了在線攻擊階段密鑰的過濾效果.

      3.1.1 結(jié)合狀態(tài)和密鑰的猜測自動化搜索中間相遇區(qū)分器

      以下用一個(gè)例子對一輪變換過程中同時(shí)猜測密鑰和狀態(tài)進(jìn)行簡要說明.

      圖5 狀態(tài)與密鑰猜測過程示例圖Figure 5 Example for guessing roundkey values instead of state values

      下面采用文獻(xiàn)[7] 提出的自動化搜索模型, 結(jié)合以上將部分狀態(tài)的猜測轉(zhuǎn)化為密鑰猜測的方法, 搜索SKINNY-128-384 算法的10.5 輪中間相遇區(qū)分器.

      在搜索區(qū)分器的過程中, 需要引入三組變量集, 依次為Vars(D),Vars(S) 和Vars(F).

      Vars(D) = {Di[j],Di[j] ∈0,1,i = 1,··· ,11,j = 0,··· ,15}. 初始值D0[j],j = 0,··· ,15, 由δ-集決定. 在第1 輪到第10 輪的差分傳播路徑中, 每一輪的輸入狀態(tài)Xj處的差分值決定了Di[j] 的取值. 當(dāng)所有狀態(tài)與第0 個(gè)狀態(tài)對應(yīng)的差分皆為0 時(shí), Di[j] 的取值才能為0; 否則Di[j] 的取值為1.

      Vars(S) = {Si[j],Si[j] ∈0,1,i = 1,··· ,11,j = 0,··· ,15}. Vars(S) 的初始值為S11[j],j =0,··· ,15, 值由區(qū)分器的輸出決定. 在第11 輪到第1 輪的傳播路徑中, 前后狀態(tài)的關(guān)系決定了Si[j] 的取值. 當(dāng)?shù)趇 輪第j 字節(jié)狀態(tài)已知時(shí), 才能求得第i+1 輪的差分, 則Si[j] 的取值為1.

      Vars(F) = {Fi[j],Fi[j] ∈0,1,i = 1,··· ,11,j = 0,··· ,15}. 當(dāng)Di[j] 和Si[j] 在取值同時(shí)為1 時(shí),Fi[j] 的取值才為1; 否則取值為0. 集合Vars(F) 中取值為1 的狀態(tài)位即為區(qū)分器中需要猜測的狀態(tài)字節(jié)單元.

      在給定δ-集和區(qū)分器的輸出字節(jié)位置后, 根據(jù)Vars(F) 的值, 以及狀態(tài)與密鑰的轉(zhuǎn)化關(guān)系, 最終可以確定所需猜測的狀態(tài)和密鑰. 若狀態(tài)和密鑰猜測的字節(jié)總數(shù)小于48, 則可以構(gòu)成10.5 輪SKINNY-128-384 的中間相遇區(qū)分器.

      根據(jù)以上方法, 窮盡給定δ-集的活動位置和區(qū)分器的輸出單元位置, 自動化搜索10.5 輪SKINNY-128-384 的中間相遇區(qū)分器. 在搜索結(jié)果中, 區(qū)分器的輸入或輸出取兩個(gè)字節(jié)時(shí), 猜測的字節(jié)數(shù)量普遍較多, 因此此處僅列出區(qū)分器的輸入僅1 個(gè)字節(jié)處為活動S 盒, 輸出也僅考慮一個(gè)字節(jié)的情況. 可得出如表3 所示狀態(tài)和密鑰猜測數(shù)量的情況.

      表3 SKINNY-128-384 算法10.5 輪中間相遇區(qū)分器以及猜測狀態(tài)和密鑰字節(jié)數(shù)量Table 3 DS-MITM distinguishers of 10.5-round SKINNY-128-384 with number of guessing state bytes and key bytes

      根據(jù)表3 的搜索結(jié)果, 可以找到四種情況下, 狀態(tài)猜測量為19 字節(jié), 密鑰猜測量為20 字節(jié), 均是表3 中最優(yōu)的結(jié)果. 這四種情況依次為:

      (1) 區(qū)分器的輸入集在第12 字節(jié)為活動字節(jié), 輸出取第5 字節(jié);

      (2) 區(qū)分器的輸入集在第13 字節(jié)為活動字節(jié), 輸出取第6 字節(jié);

      (3) 區(qū)分器的輸入集在第14 字節(jié)為活動字節(jié), 輸出取第7 字節(jié);

      (4) 區(qū)分器的輸入集在第15 字節(jié)為活動字節(jié), 輸出取第4 字節(jié).

      根據(jù)SKINNY-128-384 的輪密鑰擴(kuò)展算法, 結(jié)合密鑰橋技術(shù), 當(dāng)區(qū)分器輸入集在第12 字節(jié)為活動字節(jié), 輸出取第5 字節(jié)時(shí), 可將密鑰的猜測量降低2 個(gè)字節(jié). 其余三種情況均無法達(dá)到相同效果.

      3.1.2 利用密鑰橋技術(shù)確定最優(yōu)中間相遇區(qū)分器

      密鑰橋技術(shù)在文獻(xiàn)[12] 中被提出, 用于AES 的中間相遇攻擊. 根據(jù)AES 算法輪密鑰之間的線性關(guān)系, 可在攻擊過程中降低輪密鑰的猜測量. 后來, 密鑰橋技術(shù)在分組密碼的中間相遇分析以及其他各類密碼分析中得到了廣泛應(yīng)用, 也有學(xué)者將自動化搜索的方法用于密鑰橋技術(shù)中[17]. SKINNY 算法輪密鑰的擴(kuò)展主要通過置換和字節(jié)內(nèi)部移位寄存器的線性變換實(shí)現(xiàn). 在尋找SKINNY 算法輪密鑰之間的關(guān)系時(shí),也可以通過自動化的方法進(jìn)行搜索, 由于只需考慮置換關(guān)系, 因此搜索過程也較簡單.

      下面結(jié)合密鑰橋技術(shù), 給出10.5 輪SKINNY-128-384 改進(jìn)后的中間相遇區(qū)分器.

      根據(jù)性質(zhì)2, 建立SKINNY-128-384 的10.5 輪中間相遇區(qū)分器, 需要確定37 個(gè)字節(jié)的數(shù)據(jù)量, 建表所需要的存儲復(fù)雜度為28×37×255 ≈2304字節(jié).

      3.2 SKINNY-128-384 算法改進(jìn)的中間相遇攻擊

      針對SKINNY-128-384 的單密鑰恢復(fù)攻擊, 可以在10.5 輪區(qū)分器之前添加3 輪, 后面添加8.5 輪,如圖7 所示, 形成22 輪的中間相遇攻擊, 具體攻擊流程如下所述.

      離線預(yù)存儲階段: 猜測上述10.5 輪區(qū)分器中37 字節(jié)狀態(tài)和密鑰, 窮盡2296個(gè)狀態(tài), 得到2296個(gè)多重集, 并將多重集存儲在表T 中.

      在線攻擊階段:

      圖7 22 輪SKINNY-128-384 算法的中間相遇攻擊Figure 7 MITM attack for 22-round SKINNY-128-384

      (1) 選擇296個(gè)明文, 這些明文滿足在第3, 9, 13, 14 字節(jié)處差分為0, 其余12 字節(jié)窮盡即可;

      (2) 猜測第0,1,2 輪的部分輪密鑰RK0[0,1,2,3,4,6,7],RK1[1,3,5], 篩選一對明文, 使得這對明文在第3 輪輸入狀態(tài)X3處滿足差分僅在第12 字節(jié)非0, 取這對明文之一, 記為P0;

      (3) 根據(jù)δ-集的性質(zhì),以及上述猜測的輪密鑰,可反解P1,P2,··· ,P255,并用22 輪SKINNY-128-384加密這256 個(gè)明文, 得256 個(gè)密文;

      (4) 如圖7, 左側(cè)陰影部分為需要確定的第14 至21 輪部分輪密鑰, 即

      確定這些位置的密鑰值后, 部分解密256 個(gè)密文, 求得Y13[5], 計(jì)算差分集

      (5) 判斷差分集是否在離線階段建立的存儲表T 中. 若在, 則判斷猜測的密鑰為正確密鑰; 否則, 判為錯(cuò)誤密鑰;

      (6) 通過窮盡搜索的方式篩選出正確密鑰.

      上述攻擊步驟中, 需要確定的輪密鑰共有59 個(gè)字節(jié). 依據(jù)密鑰擴(kuò)展算法中的置換關(guān)系, 結(jié)合如圖8 所示的密鑰橋技術(shù), 可以將輪密鑰的猜測轉(zhuǎn)化為如下Tweakey 和輪密鑰的猜測:

      由此, 可得22 輪SKINNY-128-384 算法的中間相遇攻擊在線階段所需要猜測的密鑰量為47 字節(jié).

      圖8 密鑰橋技術(shù)在攻擊過程中的應(yīng)用Figure 8 Application of key-bridge technique in MITM attack

      3.3 攻擊復(fù)雜度分析

      上述22 輪的SKINNY-128-384 的攻擊過程中, 包含離線攻擊和在線攻擊兩個(gè)階段. 離線攻擊階段需要猜測的字節(jié)數(shù)量為37 字節(jié), 即生成的預(yù)存儲表由2296個(gè)255 字節(jié)的多重集構(gòu)成, 即離線存儲復(fù)雜度約為2304字節(jié). 在線攻擊階段, 選擇明文量至多為296個(gè)明文, 即數(shù)據(jù)復(fù)雜度為296選擇明文(CP). 在線攻擊的計(jì)算量主要集中在步驟2 和步驟4, 以進(jìn)行一次22 輪SKINNY-128-384 加密所需要的時(shí)間為單位,則在線攻擊階段的時(shí)間復(fù)雜度約為2376×28×(21+99)/(22×16)=2382.45次22 輪SKINNY-128-384 加密.

      4 結(jié)論

      本文在建立SKINNY 算法中間相遇區(qū)分器的過程中, 將部分狀態(tài)值的猜測轉(zhuǎn)化為了密鑰的猜測, 再結(jié)合密鑰橋技術(shù), 找到了SKINNY-128-384 算法存儲復(fù)雜度更低的10.5 輪中間相遇區(qū)分器, 并給出了22輪SKINNY-128-384 算法的中間相遇攻擊過程. 然而, 利用本文的方法尋找SKINNY-128-384 算法的11輪區(qū)分器時(shí), 能找到的最優(yōu)區(qū)分器復(fù)雜度為48 字節(jié), 與算法的密鑰全空間大小一致, 并不能構(gòu)成有效的中間相遇區(qū)分器, 因此能夠找到的最長輪數(shù)區(qū)分器仍然為10.5 輪. 尋找輪數(shù)更長的區(qū)分器, 還需要結(jié)合其他相關(guān)技術(shù). 在攻擊的過程中, 如何進(jìn)一步減少密鑰的猜測量, 降低攻擊的時(shí)間復(fù)雜度, 也是一個(gè)值得研究的問題.

      猜你喜歡
      明文單元格區(qū)分
      區(qū)分“旁”“榜”“傍”
      你能區(qū)分平衡力與相互作用力嗎
      玩轉(zhuǎn)方格
      玩轉(zhuǎn)方格
      淺談Excel中常見統(tǒng)計(jì)個(gè)數(shù)函數(shù)的用法
      西部皮革(2018年6期)2018-05-07 06:41:07
      奇怪的處罰
      教你區(qū)分功和功率
      奇怪的處罰
      四部委明文反對垃圾焚燒低價(jià)競爭
      桂平市| 永仁县| 襄城县| 昆明市| 天柱县| 霍林郭勒市| 嵊州市| 平潭县| 峨山| 永善县| 贵州省| 石门县| 红桥区| 临夏县| 蒙自县| 广汉市| 新和县| 上高县| 平和县| 伊金霍洛旗| 府谷县| 东乌珠穆沁旗| 龙口市| 柞水县| 三门县| 宜章县| 沁水县| 宁化县| 洛南县| 东源县| 博白县| 团风县| 银川市| 邵阳市| 巴里| 梨树县| 罗定市| 大宁县| 赣榆县| 昭苏县| 什邡市|