999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Piccolo算法的Biclique分析*

2019-06-10 06:44:02徐林宏郭建勝崔競一李明明
密碼學報 2019年2期
關鍵詞:結構

徐林宏,郭建勝,崔競一,李明明

信息工程大學,鄭州 450001

1 引言

物聯網的興起帶來了微型設備的大量應用,像智慧交通、智能物流等,給人們的生活帶來了很大的方便,但終端資源非常有限,其中的安全問題是一個急需解決的問題,主要是未授權用戶對數據的生成、訪問和篡改,所以輕量級密碼算法[1–3]和協議[4–6]就成了密碼學術界關注的焦點.

Piccolo 算法是由日本密碼學家Shibutani 等人[7]于CHES 2011 上提出的一種基于廣義Feistel 結構設計的輕量級分組密碼算法,適用于資源受限的環境,有較高的硬件實現效率.該算法分組規模為64 bits,根據密鑰規模的不同,可分為Piccolo-80 和Piccolo-128 兩類.

Biclique 分析方法由Bogdanov 等人[8]在AsiaCrypt 2011 上提出,是對分組密碼以及Hash 函數的一種新型攻擊方法,初始用于對全輪AES 算法進行攻擊,并使得攻擊復雜度低于窮舉攻擊.同樣的,Biclique 對于其他的分組密碼算法,尤其是輕量級分組密碼算法這類具有簡單密鑰調度設計的算法也有較好的攻擊效果,例如對CLEFIA[9]、LBlock[10]、PRESENT[11,12]、PRINCE[13]等算法的安全性分析.

現有的對于Piccolo 算法的安全性分析結果較多,其中,在單密鑰條件下利用統計類的分析方法(差分、線性、積分分析等)以低于窮舉復雜度對Piccolo 算法的最優攻擊輪數[14]分別為Piccolo-80 算法14輪、Piccolo-128 算法18 輪.而基于Biclique 分析能夠攻擊全輪分組密碼算法的特性,可對全輪的Piccolo算法進行安全性評估.在已有的對于Piccolo 算法的Biclique 攻擊結果中,大多是通過構造平衡Biclique結構實施攻擊.2012年,Wang 等人[15]最先給出了全輪Piccolo-80 算法和縮減輪的Piccolo-128 算法在不考慮白化密鑰條件下的Biclique 分析結果;2013年,Jeong 等人[11]利用Biclique 分析方法給出了全輪PRESENT、Piccolo 和LED 算法的攻擊結果;2017年,Han 等人[16]通過改進Jeong 等人的工作,降低了對全輪Piccolo 算法Biclique 攻擊的復雜度;利用非平衡Biclique 結構對Piccolo 算法進行攻擊體現在2014年Ahmadi 等人[17]的工作中.

本文主要使用非平衡Biclique 攻擊的方法對Piccolo 算法進行安全性分析,利用文獻[8,18]中構造Biclique 結構的方法,通過建立非平衡Biclique 結構以及Stars 結構,分別給出了Piccolo-80 和Piccolo-128 算法的非平衡Biclique 攻擊和Stars 攻擊結果,增加考慮存儲方面的復雜度.與現有攻擊結果相比,分別在數據復雜度和計算復雜度方面有所優化.本文攻擊結果如表1 所示.

第1 節介紹本文研究背景,第2 節主要介紹Piccolo 算法和Biclique 攻擊的相關知識,對Piccolo-80和Piccolo-128 算法的非平衡Biclique 分析和Stars 攻擊主要在第3 節和第4 節中給出,第5 節總結全文.

2 相關知識

2.1 符號說明

:第r輪算法的第i個分塊,i∈{0,1,···,7}

Pi:Biclique 結構明文狀態

Ci:Biclique 結構密文狀態

Sj:Biclique 結構中間狀態

Vi,j:匹配向量位置

wkt:第t個白化密鑰

(rk2r,rk2r+1):第r輪輪密鑰

2.2 Piccolo 算法

Piccolo 算法采用廣義Feistel 結構,其密鑰規模有80 bits 和128 bits 兩種,分組規模均為64 bits,從而可分為Piccolo-80 和Piccolo-128 兩個版本,加密輪數分別為25 輪和31 輪.它的加密環節包括密鑰白化、F函數和字節置換操作.密鑰白化操作僅在第一輪和最后一輪存在,保證加脫密結構的一致性.輪變換主要由F函數和字節代替組成,下面具體介紹輪變換的各個環節和密鑰擴展算法,完整的Piccolo 加密變換如圖1 所示,其中r表示加密輪數.

表1 Piccolo算法的Biclique 分析結果對比Table 1 Comparison of Biclique analysis results of Piccolo

圖1 Piccolo算法結構Figure 1 Structure of Piccolo

F 函數該變換對16 bits 數據進行操作,其主要由8 個相同的4 比特雙射S 盒和一個列混合矩陣M組成,用來實現算法的混亂和擴散.列混合矩陣M的運算定義在由不可約多項式x4+x+1 生成的GF(24)上,具體形式如下.

表2 給出了雙射S 盒,圖2 給出了F函數的具體構造.

表2 4比特雙射S 盒Table 2 4 bits S-Box with bijection

輪置換RP初始將明文數據分成四部分,每部分由兩個字節組成,也就是圖1 中的P0到P3,則在進行輪置換時,以字節為單位進行置換操作.在本文中,為了便于攻擊,根據F函數中的S 盒為4 比特,可將每一字節分割成兩個半字節進行操作,即每一輪的輸入狀態表示為左右兩個半字節具體如圖3 所示.

圖2 F函數Figure 2 F function

圖3 輪置換RPFigure 3 Round permutation

密鑰擴展算法Piccolo 算法的密鑰擴展根據密鑰規模不同,同樣分為80 bits 和128 bits 密鑰兩種.對于Piccolo-80,將80 bits 主密鑰劃分為5 個部分,每個部分包括兩字節,即K=K0||K1||K2||K3||K4,其中,由于F函數中采用的是4 比特S 盒,因此,在這里,我們可以將主密鑰繼續作劃分,對每一字節密鑰再劃分,即白化密鑰wkj,j∈(0,1,2,3)由主密鑰直接生成,也就輪密鑰(rk2r,rk2r+1),r∈{0,···,24} 由主密鑰與固定常數異或所得,具體對應關系見表3.對于Piccolo-128,與Piccolo-80 主要區別在于主密鑰增加了6 個字節,得到K=K0||K1||K2||K3||K4||K5||K6||K7,相應的白化密鑰也有所變化,即輪密鑰r∈{0,···,30},具體對應關系見表4.Piccolo 算法的具體構造詳見文獻[7].

2.3 Biclique攻擊方法介紹

Biclique 攻擊本質上是基于中間相遇思想,借助算法密鑰擴展的弱點給出密鑰恢復方案的一種攻擊方法.在文獻[8]中,作者提出了兩種構造Biclique 結構的方法,分別為獨立Biclique 結構和長Biclique結構.由于獨立Biclique 結構更易構造,所以后續的攻擊一般采用此結構對密碼算法進行Biclique 分析,本文中亦如此.2017年崔競一等人[18]運用獨立Biclique 結構提出了一種廣義Biclique 自動攻擊框架,在進行具體攻擊時,根據構造所得結構維數不同,可分為平衡Biclique 攻擊、Stars 攻擊[19]和非平衡Biclique 攻擊.本文基于文獻[18]的分類方法,主要研究Piccolo 算法在非平衡Biclique 攻擊和Stars 攻擊下的安全性,有效利用預計算技術降低攻擊所需計算復雜度.下面對一般情形下Biclique 結構的構造和攻擊流程以及預計算匹配技術進行介紹.

表3 Piccolo-80 算法的主密鑰與輪密鑰之間的對應關系Table 3 Correspondence between master key and round key of Piccolo-80

表4 Piccolo-128 算法的主密鑰與輪密鑰之間的對應關系Table 4 Correspondence between master key and round key of Piccolo-128

2.3.1 Biclique結構構造

簡單來說,一個Biclique 結構就是一個二分圖,一般通過三元組的形式表示.令l輪子算法f在密鑰K[i,j]作用下將密文狀態C中的2d1個元素Ci映射到中間狀態S中的2d2個元素Sj,也就是其中?i∈{0,1,···,2d1?1},?j∈{0,1,···,2d2?1}.將這樣的三元組({Ci},{Sj},K[i,j])記為(d1,d2)維Biclique 結構.當d1=d2=d0 時,將其稱為平衡Biclique 結構,當d1=0,d2=d0時稱為Stars 結構,d1d2且均不為0 時為非平衡Biclique 結構.下面詳細介紹非平衡Biclique 結構的構造方法,圖4 為一般的Biclique 結構示意圖.

基于文獻[8]的方法,選擇一個上述三元組(C0,S0,K[0,0])滿足在此基礎上,選取兩組相關密鑰差分和得到兩條獨立的差分路徑?j和?i,構造得到一個映射關系,滿足對于2d1 個元素Ci在密鑰K[i,j]作用下映射到2d2個元素Sj,即S0⊕?jC0⊕?i.令Ci=C0⊕?i,Sj=S0⊕?j,K[i,j]=K[0,0]⊕⊕則三元組({Ci},{Sj},K[i,j])即所構造得到的一個Biclique 結構,其中i∈{0,1,···,2d1?1},j∈{0,1,···,2d2?1},當d1=d2=d0 時,則構造所得為一個平衡Biclique 結構.對于非平衡Biclique 結構的構造,可利用文獻[18]的方法,將密鑰差分相互獨立的多個平衡Biclique 結構進行組合得到,如下文中3.1 節;也可以通過選取兩組不平衡的密鑰差分直接利用上述方法構造得到,如4.1 節.此外,在結構構造中,為了使得攻擊效果更好,根據算法實際,還可選擇有明文方向或密文方向兩種構造方式.

圖4 Biclique 結構示意圖Figure 4 Biclique structure

2.3.2 Biclique 攻擊流程

將一個分組密碼e看成多個子算法的結合,即使得由密文狀態C映射到明文狀態P有如下表示:

其中f表示構造Biclique 結構的子算法,進而可將Biclique 攻擊分為以下四步.

1.密鑰劃分.敵手將分組密碼e上的主密鑰2n分割成不同的2n?d1?d2個密鑰空間,每一個密鑰空間內有2d1+d2個候選密鑰K[i,j],i∈{0,1,···,2d1?1},j∈{0,1,···,2d2?1}.

2.構造Biclique 結構.敵手依據劃分所得的每個密鑰空間K[i,j],在子算法f上構造Biclique 結構.

3.匹配階段.敵手通過子算法f上的Biclique 結構得到2d1個狀態Ci,在正確密鑰解密下得到對應的密文Pi,而后從Pi由子算法前向計算得到對應的2d1個匹配狀態Vi,0,即相應的,從2d2個狀態Sj后向計算得到2d2個匹配狀態V0,j,即V0,j在此基礎上,進行狀態匹配,保留滿足的K[i,j]作為正確的候選密鑰予以保留,其余的篩除.

4.密鑰篩選.對候選密鑰集進行窮舉,得到正確密鑰.

這里僅以密文方向的Biclique 分析為例進行了介紹,明文方向的攻擊過程與密文方向基本一致.攻擊復雜度主要包括數據復雜度、存儲復雜度和計算復雜度.數據復雜度由構造Biclique 結構所需的選擇明(密)文數量決定,存儲復雜度由構造得到的Biclique 結構的維度以及預計算過程中的非線性環節數量決定.計算復雜度主要包括三個部分,分別是Biclique 結構構造、狀態匹配階段以及密鑰篩選階段的計算復雜度,即C=CBiclique+Cmatch+Cfalse.

引理1(預計算匹配技術)[8]根據2.3.2 節中介紹的攻擊中的狀態匹配過程,攻擊者通過檢驗前向和后向匹配過程得到的匹配向量值是否一致,篩選錯誤密鑰.考慮可以發現,當固定i,對于兩個不同的j,在前向匹配階段,即中有部分狀態值一直保持不變,因此我們在攻擊時對這些部分僅需計算一次.同樣的,在后向匹配階段,固定j,對于密鑰差分i和0,即V0,j和中那些狀態值不變的部分僅需計算一次.基于此特點,在匹配階段,選定匹配向量,預計算那些在不同的密鑰差分條件下仍保持不變的狀態值,并進行存儲,只對狀態值發生改變的部分進行重計算,再進行狀態匹配,能夠有效降低攻擊所需計算復雜度.

3 Piccolo-80算法的Biclique分析

首先,給出Piccolo 算法的幾點性質,有助于下一步實施Blicique 攻擊.

性質1通過統計Piccolo-80 算法的密鑰擴展算法中主密鑰的每一Ki,i∈{0,1,···,5} 出現的次數可得,除白化密鑰外,輪密鑰中(K0,K1)與(K2,K3)組合出現的概率均為10 次,(K4,K4)出現的概率為5 次.進而想要使得攻擊效果更好,在構造Biclique 結構時,應盡量選擇在K4上進行密鑰劃分.同樣的,對于Piccolo-128 算法的密鑰擴展算法中的每一Ki,i∈{0,1,···,8},除白化密鑰外,K0、K1出現的次數均為7 次,其余均為8 次.因此選擇在這兩個密鑰位置進行密鑰劃分能使得攻擊結果更優.

性質2[14]Piccolo 算法的非線性環節—F函數采用是SDS 結構,如圖2 所示.由于對于單個F函數進行計算所需的復雜度遠大于其他環節操作例如異或操作,因此,在本文的攻擊中,計算復雜度均以所需計算的F函數的個數作為衡量指標.在狀態匹配階段,當F函數輸入比特全部活動,輸出比特僅有一半活動時,也就是需計算4 個輸入S 盒和2 個輸出S 盒,則所需的計算復雜度約為個F函數,同樣的僅在輸入有一半比特不活動,所需計算復雜度也為個F函數;僅在輸入或輸出一側有比特活動時,另一側比特全部活動時,所需計算復雜度約為個F函數.

下面依據上述性質,介紹對于Piccolo 算法的非平衡Biclique 攻擊和Stars 攻擊.

3.1 Piccolo-80算法的(4,8)非平衡Biclique分析

在該部分,利用文獻[18]中構造Biclique 結構的方法,通過兩個低維的(4,4)平衡Biclique 結構結合得到一個(4,8)非平衡Biclique 結構,并依此對Piccolo-80 算法進行了Biclique 分析.根據密鑰擴展算法,為了得到更好的攻擊效果,選擇從密文方向進行Biclique 結構構造.

密鑰劃分借助性質1,選取為活動比特位,令K[0,0,0]為上述三個位置密鑰為0,其余比特遍歷的主密鑰.劃分80 bits 主密鑰為268個集合,每一子密鑰集合包含212個密鑰K[i,j1,j2],(i,j1,j2∈{0,1}4).K[i,j1,j2]定義為由K[0,0,0]與三個密鑰差分組成,其中

Biclique 結構構造首先依據劃分的密鑰空間,利用對應的輪密鑰構造相關密鑰差分路徑?i、?j1、?j2,如圖5 所示.顯然(?i,?j1)和(?i,?j2)中沒有重合的F函數,因此構造得到了兩個密文方向的6輪(4,4)平衡Biclique 結構.然后利用文獻[18]中的構造方法,將這兩個平衡Biclique 結構進行組合,就得到了一個6 輪(4,8)非平衡Biclique 結構({Sj1,j2},{Ci},K[i,j1,j2]).

狀態匹配根據構造得到的一個6 輪(4,8)非平衡Biclique 結構,得到24個狀態Ci,通過正確密鑰解密得到對應的24個明文狀態Pi.選擇與文獻[17]相同的匹配向量,即第10 輪的第6 個字節為匹配向量,也就是由Pi向下加密10 輪,定義為前向匹配過程,Sj1,j2向上解密9 輪,定義為后向匹配過程.結合引理1,在前向匹配時只需對圖中2.75 個F函數進行預計算,2.25 個F函數進行24次重計算,11.25 個F函數進行28次重計算,即可完成匹配,如圖6(c)所示.圖6 中(a)表示前向匹配過程中使用K[i,j1,j2]和K[i,0,j2]進行加密時的差分活動情況,(b)表示前向匹配過程中使用K[i,j1,j2]和K[i,j1,0]進行加密時的差分活動情況,(c)表示兩者結合,在前向匹配過程中需要重計算的活動比特情況.(d)表示后向匹配過程中重計算的活動比特情況.后向匹配過程需要對圖中2.75 個F函數進行預計算,13.5 個F函數進行24次重計算即可完成匹配.圖6 中黑色標識需28次重計算的活動比特塊,灰色標識需24次重計算的活動比特塊,白色表示非活動比特塊,下文中的圖中標識均與此相同.

圖6 Piccolo-80 算法的非平衡Biclique 攻擊匹配階段Figure 6 Matching phase of unbalanced Biclique attack for Piccolo-80

密鑰篩選由于使用的匹配向量共28個可能值,因此平均一個錯誤密鑰通過篩選的概率為2?8.又由每個密鑰子集合中含有212個密鑰,所以每個密鑰子集合平均有212×2?8=24個密鑰通過篩選,即得到了24個候選密鑰.最后,每次攻擊均對剩余的24個候選密鑰進行全輪加密,檢驗得到初始的正確密鑰.定理1 給出了上述Piccolo-80 算法非平衡Biclique 攻擊所需的復雜度.

定理1利用6 輪(4,8)非平衡Biclique 結構對Piccolo-80 算法進行攻擊,可恢復全輪Piccolo-80 算法的主密鑰,其數據復雜度為236,存儲復雜度為211.12,計算復雜度為279.03.

證明:數據復雜度主要由構造Biclique 結構所需的明密文量決定,由圖5 可得,對每一個Biclique結構,需要固定密文C0,,差分不活動,其余位置遍歷所有可能值,因此攻擊所需的數據復雜度為236個選擇密文.

存儲復雜度由存儲Biclique 結構以及利用預計算匹配技術,存儲預計算的F函數這兩部分構成.對于Biclique 結構的存儲,實際上就是對密文狀態和中間狀態之間的對應關系進行存儲,也就是需要順序存儲24個密文和28個中間狀態的對應關系,每個狀態為8 字節,共需存儲(24+28)×8 字節.另外,由于在匹配階段使用了預計算匹配技術,需要對攻擊中不受活動比特影響的F函數進行預計算并存儲,共有2.75+2.75 個F函數,每個F函數狀態均為8 字節,因此需要存儲(2.75+2.75)×8 個字節.綜上,上述攻擊所需存儲復雜度為211.12個字節.

攻擊所需的計算復雜度主要由三部分構成.一是構造Biclique 結構所需的復雜度,本節中利用文獻[18]的非平衡Biclique 結構構造方法,能夠有效降低結構構造所需的計算復雜度.由圖5 可知,構造過程所需的計算復雜度約為

次全輪Piccolo-80 加密.二是匹配階段的計算復雜度,主要包含前向匹配和后向匹配兩個部分.根據上述攻擊過程可得,前向匹配階段需2.75 個F函數進行預計算,2.25 個F函數進行24次重計算,11.25個F函數進行28次重計算,后向匹配需要對2.75 個F函數進行預計算,13.5 個F函數進行24次重計算.即匹配階段所需的計算復雜度總計為:Cmatch=29.87+210.13≈211.01次全輪Piccolo-80 加密.三是密鑰篩選階段的計算復雜度,由每一密鑰子集合剩余24候選密鑰,則Cfalse=24.因此上述攻擊所需的計算復雜度總計為C=268×(24.07+211.01+24)≈279.03次全輪Piccolo-80 加密.

綜上,對于Piccolo-80 算法的(4,8)非平衡Biclique 攻擊所需的數據復雜度為236個選擇密文,存儲復雜度為211.12個字節,計算復雜度為279.03次全輪Piccolo-80 加密.

3.2 Piccolo-80算法的Stars攻擊

Stars 攻擊是由Bogdanov 等人[19]在ICISC 2014 上提出的一種Biclique 攻擊方法,最先用于AES算法.其本質上與非平衡Biclique 攻擊相似,攻擊過程也基本一致,但所需數據復雜度很少,一般為2–3個已知明文,相應的攻擊所需計算復雜度就有所增加.本小節中就運用此方法對Piccolo-80 算法進行了安全性分析,給出了對于Piccolo-80 算法最低數據復雜度的攻擊結果.

密鑰劃分選取()為活動比特位,劃分80 bits 主密鑰為272個集合,每一子密鑰集合包含28個密鑰K[i,j],(i,j ∈{0,1}4).

Stars 結構構造首先依據劃分的密鑰空間,利用對應的輪密鑰構造相關密鑰差分路徑?i、?j,該兩條差分中沒有重合的F函數,因此構造得到了一個明文方向的4 輪8 維的Stars 結構.具體結構見圖7.

圖7 Piccolo-80 算法的4 輪8 維Stars 結構Figure 7 4 rounds of 8-dimensional Stars structure of Piccolo-80

狀態匹配與3.1 節介紹的狀態匹配過程類似,根據構造得到的8 維Stars 結構,在第10 輪進行匹配,選取匹配向量的位置為.由圖8 可得,前向匹配中需對2.75 個F函數進行預計算,2.25 個F函數進行24次重計算,11.25 個F函數進行28次重計算,后向匹配中完成匹配需要對1 個F函數進行24次重計算,19.25 個F函數進行28次重計算.

圖8 Piccolo-80 算法的Stars 攻擊匹配階段Figure 8 Matching phase of Stars attack for Piccolo-80

密鑰篩選由于使用的匹配向量共28個可能值,因此平均一個錯誤密鑰通過篩選的概率為2?8.又由每個密鑰子集合中含有28個密鑰,則平均得到了1 個候選密鑰.最后,對每一密鑰子集合進行一次全輪加密,檢驗得到初始的正確密鑰.對于Piccolo-80 算法的Stars 攻擊所需復雜度由定理2 給出.

定理2利用4 輪8 維Stars 結構對Piccolo-80 算法進行攻擊,能夠以最低的數據復雜度恢復出主密鑰,其數據復雜度為2,存儲復雜度為28.12,計算復雜度為279.31.

證明:存儲復雜度包括Stars 結構以及預計算的F函數這兩部分.對于Stars 結構,共需存儲(24+24)×8=28個字節,F函數需存儲2.75×8 個字節,即上述攻擊所需存儲復雜度為28.12個字節.

攻擊所需的計算復雜度包括構造Stars 結構、攻擊匹配階段以及密鑰篩選階段三部分.其中,結構構造所需的計算復雜度為CStars=匹配階段所需的計算復雜度總計為Cmatch=次全輪Piccolo-80 加密,密鑰篩選階段的計算復雜度為Cfalse=1.因此上述攻擊所需的計算復雜度總計為C=272×(2?0.9+27.30+1)≈279.31次全輪Piccolo-80 加密.數據復雜度方面,使用2 個明密文對,使得攻擊成功率為1.

4 Piccolo-128算法的Biclique分析

本節中主要介紹對Piccolo-128 算法的非平衡Biclique 攻擊和Stars 攻擊.在進行非平衡Biclique攻擊時,由于Piccolo-128 算法的密鑰擴展方式的約束,我們不采用第3 節中Biclique 結構的構造方法,而是通過選取特定的密鑰差分,基于文獻[8]的方法直接構造(4,8)非平衡Biclique 結構.雖然使得構造結構所需的計算復雜度增加,但相應的降低了匹配階段的計算復雜度,使得整體攻擊所需復雜度有所優化.下面對具體攻擊進行介紹.

4.1 Piccolo-128算法的(4,8)非平衡Biclique分析

基于密鑰擴展算法的影響,我們從明文方向直接構造Biclique 結構,攻擊步驟與第3.1 節對Piccolo-80算法的攻擊相同.

密鑰劃分選取()為活動比特位,令K[0,0]為上述兩個位置密鑰為0,其余比特遍歷的主密鑰.劃分128 bits 主密鑰為2116個集合,每一子密鑰集合包含212個密鑰K[i,j](i∈{0,1}4,j∈{0,1}8).K[i,j]定義為由K[0,0]與兩個密鑰差分、組成,其中

Biclique 結構構造基于劃分的密鑰空間,利用對應的輪密鑰構造相關密鑰差分路徑?i、?j,顯然(?i,?j)中沒有重合的活動F函數,因此構造得到了一個明文方向的5 輪(4,8)非平衡Biclique 結構({Pi},{Sj},K[i,j]),i∈{0,1}4,j∈{0,1}8.具體結構詳見圖9(a).

狀態匹配基于上述構造得到的一個5 輪(4,8)非平衡Biclique 結構,得到24個狀態Pi,在選擇明文條件下,得到對應的24個密文狀態Ci.選擇第17 輪的第6 個字節的左半部分為匹配向量,即,前向匹配過程為由Sj向下加密12 輪,后向匹配過程Ci向上解密9 輪.結合引理1,在前向匹配時只需對圖中5.875 個F函數進行預計算,14.375 個F函數進行24次重計算,即可完成匹配,完成后向匹配需要對圖中9.75 個F函數進行預計算,16.5 個F函數進行28次重計算.匹配過程如圖9(b)所示.

密鑰篩選由于使用的匹配向量共28個可能值,因此平均一個錯誤密鑰通過篩選的概率為2?8,即得到了24個候選密鑰.最后,每次攻擊均對剩余的24個候選密鑰進行全輪加密,檢驗得到初始的正確密鑰.上述對于Piccolo-128 算法非平衡Biclique 攻擊所需的復雜度由定理3 給出.

定理3基于5 輪(4,8)非平衡Biclique 結構對Piccolo-128 算法進行攻擊,可恢復全輪Piccolo-128算法的主密鑰,其數據復雜度為220,存儲復雜度為211.17,計算復雜度為2127.05.

證明:由圖9 可得,對每一個Biclique 結構,需要固定明文(P0,P1,,)差分不活動,其余位置遍歷所有可能值,因此攻擊所需的數據復雜度為220個選擇明文.攻擊中需順序存儲24個明文和28個中間狀態的對應關系以及匹配階段預計算的(5.875+9.75)個F函數,因此存儲復雜度為(24+28+5.875+9.75)×8 ≈211.17個字節.計算復雜度方面,在Biclique 結構構造時,需要預計算10 個F函數,0.625 個F函數進行24次重計算,8.25 個F函數進行28次重計算,即次全輪Piccolo-128 加密.匹配階段的計算復雜度為29.93+210.10≈211.01,又由Cfalse=24,因此,計算復雜度總計為C=2116×(25.10+211.01+24)≈2127.05次全輪Piccolo-128 加密.

4.2 Piccolo-128算法的Stars攻擊

該部分的攻擊過程與Piccolo-80 算法的Stars 攻擊相似,這里就進行簡要介紹.

密鑰劃分利用性質1,選取()為活動比特位,劃分128 bits 主密鑰為2120個集合,每一子密鑰集合包含28個密鑰K[i,j],(i,j∈{0,1}4).

Stars 結構構造首先依據劃分的密鑰空間,利用對應的輪密鑰構造相關密鑰差分路徑?i、?j,該兩條差分中沒有重合的F函數,因此構造得到了一個明文方向的4 輪8 維的Stars 結構.

狀態匹配根據構造得到的8 維Stars 結構,在第16 輪進行匹配,選取匹配向量的位置為.則前向匹配過程中需對1 個F函數進行24次重計算,19.25 個F函數進行28次重計算,后向匹配中完成匹配需要對4.75 個F函數進行預計算,2.25 個F函數進行24次重計算,21.25 個F函數進行28次重計算.

密鑰篩選由于使用的匹配向量共28個可能值,因此平均一個錯誤密鑰通過篩選的概率為2?8.因此可平均得到了1 個候選密鑰.最后,對每一密鑰子集合進行一次全輪加密,檢驗得到初始的正確密鑰.

圖9 Piccolo-128算法的非平衡Biclique 結構和攻擊匹配階段Figure 9 Structure and matching phase of unbalanced Biclique attack for Piccolo-128

Piccolo-128 算法的Stars 攻擊結構和匹配過程見圖10,圖10 中(a)表示4 輪8 維Stars 結構,(b)表示Stars 攻擊狀態匹配過程.定理4 給出了該攻擊的各類指標,證明過程與定理2 類似.

定理4利用4 輪8 維Stars 結構對Piccolo-128 算法進行攻擊,能夠以最低數據復雜度恢復主密鑰,其數據復雜度為2,存儲復雜度為28.19,計算復雜度為2127.40.

圖10 Piccolo-128 算法的Stars 攻擊結構和匹配階段示意圖Figure 10 Structure and matching phase of Stars attack for Piccolo-128

5 結束語

本文利用Biclique 攻擊方法對Piccolo 算法在非平衡Biclique 攻擊和Stars 攻擊下的安全性進行了評估,結合Piccolo-80 與Piccolo-128 算法的密鑰擴展的相關性質,分別給出了目前對于該兩種算法最低數據復雜度和最優計算復雜度的Biclique 攻擊結果.分析表明,對于同一分組密碼算法,使用非平衡Biclique 攻擊方法所需的計算復雜度較平衡Biclique 攻擊更低,使用Stars 攻擊方法能夠以最低的數據復雜度恢復出算法主密鑰.而這三類Biclique 攻擊之所以均能以低于窮舉攻擊的復雜度實現,主要在于密碼算法具有簡單的密鑰擴展,并且算法本身擴散性弱,存在多條獨立的差分路徑,從而能夠有效降低攻擊復雜度.

根據輕量級密碼算法擴散性強弱的不同,利用多種Biclique 攻擊方法所得的攻擊效果也不同,因此能否利用本文的方法,對更多的輕量級分組密碼算法,特別是SPN 結構類、ARX 結構類等算法有較好的攻擊效果是下一步研究的方向.

猜你喜歡
結構
DNA結構的發現
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
循環結構謹防“死循環”
論《日出》的結構
縱向結構
縱向結構
我國社會結構的重建
人間(2015年21期)2015-03-11 15:23:21
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 久久窝窝国产精品午夜看片| 免费又黄又爽又猛大片午夜| 国产爽歪歪免费视频在线观看| 玖玖免费视频在线观看| 国产精品所毛片视频| 国产精品护士| 日本久久网站| 欧美成人aⅴ| 欧美一道本| 国产又爽又黄无遮挡免费观看| 国产黄色爱视频| 精品亚洲国产成人AV| 91福利一区二区三区| 国产亚洲精品va在线| 天天综合天天综合| 国产成人毛片| 亚洲欧美综合精品久久成人网| yy6080理论大片一级久久| 国产成人一级| 欧美日韩一区二区三| 福利视频一区| 国内毛片视频| 久久五月天国产自| 久青草免费视频| 国产精品对白刺激| 日本影院一区| yjizz国产在线视频网| 久久久久久久97| 精品亚洲麻豆1区2区3区| 男人的天堂久久精品激情| 亚洲欧美另类专区| 日韩美一区二区| 久热99这里只有精品视频6| 日本人真淫视频一区二区三区| 亚洲性影院| 欧美亚洲香蕉| 亚洲色图欧美一区| 国产一区二区三区在线观看视频| 国产第四页| 色婷婷视频在线| 精品無碼一區在線觀看 | 欧美a在线视频| 亚洲一区毛片| 自拍欧美亚洲| 亚洲国产黄色| 国产乱人激情H在线观看| 尤物国产在线| 国产精品自在在线午夜区app| 在线不卡免费视频| 国产精品99在线观看| 亚洲成人一区二区| 欧美国产成人在线| 青青草久久伊人| 亚洲欧美日韩成人高清在线一区| 国产精品久久久精品三级| 国产在线一区视频| 青青青国产视频手机| 亚洲无码在线午夜电影| 亚洲精品成人福利在线电影| 曰AV在线无码| 91偷拍一区| 亚洲欧洲日韩综合| 亚洲综合天堂网| 欧美性色综合网| 亚洲欧美另类日本| 亚洲六月丁香六月婷婷蜜芽| 福利国产微拍广场一区视频在线 | av尤物免费在线观看| 亚洲人成网站在线观看播放不卡| 992tv国产人成在线观看| 国产综合色在线视频播放线视| 国产经典免费播放视频| 91亚洲免费| 欧美一级高清视频在线播放| 伊人久久福利中文字幕| 国产精品伦视频观看免费| 久久毛片网| 欧美激情,国产精品| 欧美在线伊人| 国产精品尤物在线| 色婷婷国产精品视频| 午夜免费视频网站|