• 
    

    
    

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

      Subterranean-SAE 算法的條件立方攻擊*

      2022-03-10 06:17:50陳思維張莎莎向澤軍曾祥勇
      密碼學(xué)報(bào) 2022年1期
      關(guān)鍵詞:代數(shù)比特密鑰

      劉 勇, 陳思維, 張莎莎, 向澤軍, 曾祥勇

      湖北大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)學(xué)院 應(yīng)用數(shù)學(xué)湖北省重點(diǎn)實(shí)驗(yàn)室, 武漢 430062

      1 引言

      隨著物聯(lián)網(wǎng)應(yīng)用等的大規(guī)模普及, 許多密碼算法需要應(yīng)用于低功耗、少存儲(chǔ)的應(yīng)用環(huán)境, 如射頻識(shí)別卡標(biāo)簽(RFID tag)、傳感器網(wǎng)絡(luò)(sensor network) 和智能卡(smart cards) 等, 這催生了輕量級(jí)密碼的研究與應(yīng)用. 美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST) 于2018 年開(kāi)始征集輕量級(jí)密碼算法加密標(biāo)準(zhǔn), 該活動(dòng)共接收到57 個(gè)算法. 截至2021 年3 月, 分別有56 和32 個(gè)算法成功進(jìn)入第一輪和第二輪, 第三輪的10 個(gè)候選算法也已公布. Daemen、Massolino 和Rotella 設(shè)計(jì)的Subterranean 2.0 密碼套件[1]是第二輪的32 個(gè)候選算法之一, 它包含哈希算法、認(rèn)證加密算法和消息認(rèn)證碼等多種工作模式. 本文研究的Subterranean-SAE 是Subterranean 2.0 密碼套件中的一種認(rèn)證加密算法[1].

      立方攻擊(cube attack)[2]是Dinur 和Shamir 在2009 年EUROCRYPT 上首次提出的一種攻擊方法, 它是高階差分分析(higher-order differential cryptanalysis)[3]的一種變體, 被成功應(yīng)用于分析各種對(duì)稱密碼[4–6]. 立方攻擊主要分析輸出比特在選定立方下的超級(jí)多項(xiàng)式(superpoly), 并從包含密鑰信息的低次超級(jí)多項(xiàng)式中恢復(fù)密鑰信息. 條件立方攻擊(conditional cube attack)[7]是黃森洋等人在2017年EUROCRYPT 上提出的一種立方攻擊變體, 該攻擊的核心是尋找只有在所有條件等式成立時(shí)才為0的超級(jí)多項(xiàng)式. 無(wú)論是立方攻擊還是條件立方攻擊, 分析超級(jí)多項(xiàng)式是此類攻擊的關(guān)鍵. 可分性(division property)[8]是目前恢復(fù)超級(jí)多項(xiàng)式的主要方法之一. Todo 于2015 年在EUROCRYPT 上首次提出基于字的可分性[8], 隨后基于字的可分性被進(jìn)一步精確為基于比特的可分性[9]. 緊接著, Todo 等人將比特可分性引入立方攻擊[10], 與傳統(tǒng)基于實(shí)驗(yàn)方法直接測(cè)試超級(jí)多項(xiàng)式不同, 可分性可以從理論上分析超級(jí)多項(xiàng)式的性質(zhì), 故基于可分性的立方攻擊[10]不再受限于立方維數(shù). 然而利用可分性進(jìn)行密碼分析需要刻畫(huà)并搜索可分性傳播, 向澤軍等人在2016 年ASIACRYPT 上首次將混合整數(shù)線性規(guī)劃(mixed integer linear programming, MILP) 引入可分性[11]. 該方法通過(guò)提出可分跡(division trail)[11]的概念解決了可分性傳播的刻畫(huà),并將可分性的傳播用一組線性不等式刻畫(huà),從而將可分性搜索轉(zhuǎn)化成一個(gè)MILP 問(wèn)題.相比于二子集可分性, 三子集可分性能更精確地描述可分性的傳播. 王森鵬等人在2019 年ASIACRYPT上提出了三子集可分性的MILP 模型,并利用該模型進(jìn)行了基于三子集可分性的立方攻擊[12]. 隨后,郝泳霖等人在2020 年EUROCRYPT 上研究了無(wú)未知子集的三子集可分性(three-subset division property without unknown subset), 提出了一種精確計(jì)算超級(jí)多項(xiàng)式的方法并成功應(yīng)用于Trivium 等算法[13]. 胡凱等人在2020 年ASIACRYPT 上運(yùn)用單項(xiàng)式跡(monomial trail) 的概念給出了三子集可分性的另一種刻畫(huà)方法, 并成功恢復(fù)了842 輪Trivium 算法一個(gè)78 維立方的超級(jí)多項(xiàng)式[14].

      目前, 已經(jīng)存在許多針對(duì)Subterranean 2.0 密碼套件安全性分析的公開(kāi)文獻(xiàn). Subterranean 2.0 密碼套件的設(shè)計(jì)文檔對(duì)該算法的密碼學(xué)性質(zhì)進(jìn)行了全面地評(píng)估, 包括差分分析(differential cryptanalysis)[15]、線性分析(linear cryptanalysis)[16]等. 2019 年, 劉富康等人分析了Subterranean-SAE 算法在三種攻擊場(chǎng)景下的安全性[17]. 首先是在nonce 重用場(chǎng)景下的全狀態(tài)恢復(fù)攻擊, 其數(shù)據(jù)復(fù)雜度為213, 時(shí)間復(fù)雜度的上界為216; 其次是在nonce 不重用場(chǎng)景下4 輪空白輪的區(qū)分攻擊, 該攻擊的數(shù)據(jù)和時(shí)間復(fù)雜度分別為233和233; 最后是在nonce 不重用場(chǎng)景下4 輪空白輪的條件立方攻擊, 其數(shù)據(jù)和時(shí)間復(fù)雜度分別為269.5和2122. 2020 年, 宋凌等人進(jìn)一步研究了Subterranean-SAE 算法密鑰流生成階段的密鑰流偏差、密鑰吸收階段的狀態(tài)碰撞和nonce 重用場(chǎng)景下的密鑰恢復(fù)攻擊[18]. 本文在上述研究工作的基礎(chǔ)上進(jìn)一步研究Subterranean-SAE 算法抗條件立方攻擊的安全性強(qiáng)度.

      1.1 本文的貢獻(xiàn)

      劉富康等人的條件立方攻擊首先構(gòu)造了一個(gè)65 維的條件立方, 并且假設(shè)當(dāng)條件變量滿足條件時(shí), 輸出代數(shù)次數(shù)為64; 否則為65[17]. 但是代數(shù)次數(shù)在不同情形下能否達(dá)到64 或65 并沒(méi)有被驗(yàn)證. 基于上述問(wèn)題, 本文首先研究了Subterranean-SAE 算法代數(shù)次數(shù)的評(píng)估方法, 提出了在初始狀態(tài)未知場(chǎng)景下評(píng)估輸出代數(shù)次數(shù)的新技術(shù). 利用該技術(shù), 本文成功評(píng)估得到4 輪空白輪Subterranean-SAE 算法的輸出代數(shù)次數(shù)上界為63, 因此劉富康等人構(gòu)造的條件立方攻擊輸出立方和恒為0, 即基于條件立方的密鑰恢復(fù)攻擊實(shí)際為區(qū)分攻擊.

      為了進(jìn)一步構(gòu)造有效的條件立方攻擊, 本文提出了降低立方維數(shù)、擴(kuò)展立方變量選取范圍的立方搜索策略, 利用該策略本文共搜索得到24 組33 維立方. 由于本文構(gòu)造的條件立方攻擊的維數(shù)在實(shí)際可行的計(jì)算范圍內(nèi), 因此我們通過(guò)實(shí)驗(yàn)驗(yàn)證了所構(gòu)造條件立方攻擊的有效性. 通過(guò)猜測(cè)部分密鑰并利用構(gòu)造的條件立方, 我們能夠成功恢復(fù)剩余密鑰比特, 該攻擊的數(shù)據(jù)和時(shí)間復(fù)雜度分別為241.8和2124.

      表1 給出了本文攻擊結(jié)果與已有結(jié)果的對(duì)比. 在nonce 不重用場(chǎng)景下, 文獻(xiàn)[17] 和本文均為4 輪空白輪(總共8 輪) Subterranean-SAE 算法的條件立方攻擊. 在nonce 不重用場(chǎng)景下, 這是首次實(shí)現(xiàn)4 輪縮減輪數(shù)Subterranean-SAE 算法的全密鑰恢復(fù)攻擊.

      表1 本文結(jié)果與已有結(jié)果的對(duì)比Table 1 Comparison between proposed and known results

      1.2 本文的結(jié)構(gòu)

      第2 節(jié)首先進(jìn)行符號(hào)說(shuō)明, 然后簡(jiǎn)單介紹Subterranean 2.0 密碼套件的輪函數(shù)Subterranean-P 和Subterranean-SAE 認(rèn)證加密算法, 最后介紹立方攻擊、混合整數(shù)線性規(guī)劃和基于可分性的立方攻擊等相關(guān)知識(shí); 第3 節(jié)主要介紹Subterranean-P 可分性傳播的刻畫(huà)和評(píng)估4 輪空白輪Subterranean-SAE 算法輸出代數(shù)次數(shù)的方法; 第4 節(jié)提出Subterranean-SAE 算法改進(jìn)的條件立方攻擊并通過(guò)實(shí)驗(yàn)驗(yàn)證其有效性;第5 節(jié)對(duì)全文工作進(jìn)行總結(jié).

      2 預(yù)備知識(shí)

      2.1 符號(hào)說(shuō)明

      2.2 Subterranean-P

      Subterranean 2.0 密碼套件采用一個(gè)內(nèi)部狀態(tài)為257 比特的公開(kāi)置換作為其輪函數(shù), 本文記為Subterranean-P. Subterranean-P 總共包含四個(gè)操作, 其中χ操作為Subterranean-P 的非線性部件,ι、θ、π操作均為Subterranean-P 的線性部件, 記L=π?θ?ι?χ, 則有如下表示:

      其中, 當(dāng)i=0 時(shí),δ[i]=1; 否則δ[i]=0.

      2.3 Subterranean-SAE 認(rèn)證加密算法

      首先介紹Subterranean-SAE 算法的兩個(gè)核心函數(shù).

      吸收函數(shù)(duplex call, duplex(S,σ)): 首先對(duì)257 比特狀態(tài)S執(zhí)行一次Subterranean-P, 然后將不超過(guò)32 比特的信息流σ填充為33 比特(先填充1 個(gè)1, 再填充若干個(gè)0), 最后將σ[i] 異或到S[G[i]],其中G[i] 表示G的第i個(gè)元素, 如表2 所示.

      表2 G 表格的取值Table 2 Details of G

      返回函數(shù)(extracted output, extract(S)): 返回32 比特?cái)?shù)據(jù)S[G[i]]⊕S[G[i+32]](0≤i ≤31).

      Subrranean-SAE 是Subrranean 2.0 密碼套件中以Subrranean-P 為底層置換的一種認(rèn)證加密算法,其密鑰K、nonceN、認(rèn)證標(biāo)簽(tag)T都為128 比特, 關(guān)聯(lián)數(shù)據(jù)(associated date)A和明文P的長(zhǎng)度不固定. 如圖1 所示, 算法流程共包含如下7 個(gè)階段, 算法詳情見(jiàn)文獻(xiàn)[1].

      圖1 Subterranean-SAE 的結(jié)構(gòu)Figure 1 Structure of Subterranean-SAE

      (1) 吸收密鑰K階段: 首先將128 比特的密鑰K分成4 個(gè)32 比特密鑰塊K0,K1,K2,K3, 然后利用duplex(S,σ) 將這些密鑰塊吸收到狀態(tài)中, 最后需要執(zhí)行1 次duplex(S,NULL) 更新內(nèi)部狀態(tài), 其中NULL 表示長(zhǎng)度為0 的塊;

      (2) 吸收nonceN階段: 首先將128 比特的nonceN分成4 個(gè)32 比特nonce 塊N0,N1,N2,N3,然后利用duplex(S,σ) 將這些nonce 塊吸收到狀態(tài)中, 最后需要執(zhí)行1 次duplex(S,NULL) 更新內(nèi)部狀態(tài);

      (3) 空白輪階段: 執(zhí)行8 次duplex(S,NULL) 更新內(nèi)部狀態(tài);

      (6) 空白輪階段: 執(zhí)行8 次duplex(S,NULL) 更新內(nèi)部狀態(tài);

      (7) 返回認(rèn)證標(biāo)簽T階段: 利用extract(S) 返回32 比特認(rèn)證標(biāo)簽T0,T1,T2,T3, 在每次返回32 比特認(rèn)證標(biāo)簽Ti(0≤i ≤3) 之間, 都需要執(zhí)行1 次duplex(S,NULL) 更新內(nèi)部狀態(tài).

      2.4 立方攻擊與混合整數(shù)線性規(guī)劃

      其中q(x,v) 的每一個(gè)單項(xiàng)式不含集合{vi0,vi1,··· ,vi|I|-1}中至少一個(gè)元素. 定義立方CI是遍歷立方變量{vi0,vi1,··· ,vi|I|-1}的2|I|種取值的集合, 則f(x,v) 關(guān)于CI求和滿足:

      條件立方攻擊是立方攻擊的變體, 此攻擊主要分為預(yù)處理階段和在線階段. 攻擊者在預(yù)處理階段通過(guò)選取合適的立方和條件變量構(gòu)造有效的條件立方區(qū)分器, 使其滿足當(dāng)條件變量滿足條件時(shí)立方和為0, 否則立方和不為0; 在攻擊的在線階段, 攻擊者遍歷預(yù)處理階段選定立方變量的所有可能取值從而求得立方和, 并通過(guò)立方和是否為0 判斷條件變量的取值. 若這些條件變量涉及秘密變量, 則可恢復(fù)部分秘密變量信息. 在實(shí)際進(jìn)行立方攻擊或條件立方攻擊時(shí), 分析超級(jí)多項(xiàng)式為核心步驟.

      可分性是目前恢復(fù)超級(jí)多項(xiàng)式的有效方法之一. 基于字的可分性是Todo 在2015 年提出的一種一般化的積分性質(zhì)[8], 可用于構(gòu)造對(duì)稱密碼更長(zhǎng)的積分區(qū)分器. 隨后, Todo 等人在2016 年提出基于比特的可分性, 并且將比特可分性分為二子集可分性和三子集可分性[9].

      MILP 是一類特殊的線性規(guī)劃, 能用于高效搜索密碼算法的相關(guān)密碼學(xué)性質(zhì). Mouha 等人在2011 年將MILP 運(yùn)用在搜索基于字的對(duì)稱密碼算法活躍S 盒的下界[19]. 隨后, MILP 被應(yīng)用于差分分析[20,21]、線性分析[21]、不可能差分分析[22,23]、零相關(guān)線性分析[22]和積分攻擊[11,24]等. 利用MILP 搜索密碼算法的相關(guān)密碼學(xué)性質(zhì)時(shí)首先需要將密碼學(xué)性質(zhì)的傳播用一組線性不等式進(jìn)行刻畫(huà); 然后通過(guò)選取合適的目標(biāo)函數(shù)構(gòu)造一個(gè)完整的MILP 模型; 最后借助公開(kāi)的自動(dòng)求解優(yōu)化器Gurobi[25]搜索密碼算法的相關(guān)密碼學(xué)性質(zhì).

      2.5 基于可分性的立方攻擊

      文獻(xiàn)[10] 首次提出基于可分性的立方攻擊, 建立了二子集可分性和立方攻擊之間的聯(lián)系. 由于三子集可分性描述可分性的傳播更精確, 文獻(xiàn)[12] 建立了三子集可分性和立方攻擊之間的聯(lián)系, 并提出了如下定理:

      由推論1 可知, 可分性可用于精確恢復(fù)超級(jí)多項(xiàng)式的代數(shù)正規(guī)型(ANF), 進(jìn)而推斷出該超級(jí)多項(xiàng)式的代數(shù)次數(shù). 在文獻(xiàn)[13] 中, 作者提出了可分性關(guān)于復(fù)制、與和異或的可分性傳播規(guī)則, 并用不等式組分別刻畫(huà)了三個(gè)基本操作的MILP 模型. 此外, 文獻(xiàn)[26] 研究了異或常數(shù)1 的可分性傳播規(guī)則, 并用不等式組刻畫(huà)了異或常數(shù)1 的MILP 模型. 在本文中:

      不等式組COPY(b,a0,a1,··· ,am-1) 表示將變量b復(fù)制成m個(gè)變量a0,a1,··· ,am-1(即b=a0=a1=···=am-1) 的MILP 模型.

      不等式組AND(a0,a1,··· ,am-1,b) 表示將m個(gè)變量a0,a1,··· ,am-1進(jìn)行與操作得到變量b(即b=a0·a1·····am-1) 的MILP 模型.

      不等式組XOR(a0,a1,··· ,am-1,b) 表示將m個(gè)變量a0,a1,··· ,am-1進(jìn)行異或操作得到變量b(即b=a0⊕a1⊕···⊕am-1) 的MILP 模型.

      行臺(tái),即行尚書(shū)臺(tái)。霸府行臺(tái),是由控制朝政的強(qiáng)臣組建的行臺(tái)。霸府行臺(tái)實(shí)際上是不受皇權(quán)約束、駕凌于皇權(quán)之上的,是為強(qiáng)臣控制政權(quán)服務(wù)的。北魏霸府行臺(tái)從孝莊帝建義元年(528年)爾朱榮擔(dān)任北道大行臺(tái)開(kāi)始,先后經(jīng)歷了爾朱仲遠(yuǎn)、爾朱兆、爾朱天光等爾朱氏霸府行臺(tái),高歡霸府行臺(tái)和宇文泰霸府行臺(tái)。下面討論一下這些論霸府行臺(tái)首長(zhǎng)的特征

      不等式組XOR(a,1,b) 表示將變量a和常數(shù)1 進(jìn)行異或操作得到變量b(即b=a ⊕1) 的MILP 模型.

      3 評(píng)估4 輪空白輪Subterranean-SAE 算法輸出的代數(shù)次數(shù)上界

      由于文獻(xiàn)[17] 的條件立方攻擊假設(shè)當(dāng)條件變量滿足條件時(shí), 輸出代數(shù)次數(shù)為64; 否則為65. 為了驗(yàn)證該條件立方攻擊的有效性, 本節(jié)研究4 輪空白輪Subterranean-SAE 算法的輸出代數(shù)次數(shù)評(píng)估.

      3.1 構(gòu)建4 輪空白輪Subterranean-SAE 算法的MILP 模型

      利用2.5 節(jié)給出的可分性傳播規(guī)則, 可將刻畫(huà)Subterranean-P 可分性傳播的MILP 模型分為以下三個(gè)部分, 具體細(xì)節(jié)如圖2 所示:

      圖2 Subterranean-P 和吸收nonce N 的MILP 模型Figure 2 MILP model for Subterranean-P and absorbing nonce N

      由算法流程可知, 在進(jìn)行4 輪空白輪之前, 內(nèi)部狀態(tài)需以異或的方式對(duì)nonce 信息(N0,N1,N2,N3)進(jìn)行吸收. 由于本節(jié)是對(duì)4 輪空白輪輸出比特關(guān)于nonce 變量(N1,N2,N3) 的代數(shù)次數(shù)進(jìn)行評(píng)估(見(jiàn)圖3), 因此需要考慮(N1,N2,N3) 的可分性對(duì)整體可分性傳播的影響. 另外, 在吸收nonce 的同時(shí), 狀態(tài)的某個(gè)比特還需要與常數(shù)1 異或. 令向量nr= (n0r,n1r,··· ,n31r) 表示nonceNr+1的可分性, 其中0≤r ≤2, 則刻畫(huà)吸收nonceNr+1可分性傳播的MILP 模型為:

      圖3 Subterranean-SAE 算法條件立方攻擊的攻擊區(qū)域Figure 3 Attack areas of conditional cube attacks for Subterranean-SAE

      3.2 評(píng)估4 輪空白輪Subterranean-SAE 算法輸出的代數(shù)次數(shù)上界

      由于劉富康等人攻擊區(qū)域的初始狀態(tài)S′0(如圖3) 的257 比特均包含密鑰信息(即未知), 且本文利用已有的技術(shù)無(wú)法在有限計(jì)算資源下評(píng)估出輸出代數(shù)次數(shù), 故本文提出定理2, 用于初始狀態(tài)未知場(chǎng)景下的輸出代數(shù)次數(shù)評(píng)估.

      證明: 由于MILP 模型中刻畫(huà)可分性u(píng)的約束條件的取值區(qū)間完全包含刻畫(huà)可分性u(píng)′的約束條件的取值區(qū)間, 所以u(píng)f→1 的可分跡條數(shù)一定大于等于u′f→1 的可分跡條數(shù). 故若無(wú)未知子集三子集可分性滿足uf→1 的可分跡條數(shù)為0, 則滿足u′f→1 的可分跡條數(shù)也一定為0.

      假設(shè)固定立方變量不變, 對(duì)于MILP 模型中未知比特的可分性無(wú)任何約束條件時(shí)模型無(wú)解, 即可分性跡條數(shù)為0, 那么由定理2 可知, 無(wú)論初始狀態(tài)未知比特的真實(shí)取值如何, 其對(duì)應(yīng)輸入可分性傳播到特定輸出可分性的可分跡條數(shù)也一定為0. 類似的, 在其他狀態(tài)位不變的情況下, 假設(shè)MILP 模型中對(duì)于nonce的非立方變量可分性無(wú)任何約束得到模型無(wú)解, 那么無(wú)論nonce 中非立方變量真實(shí)取值如何, 其對(duì)應(yīng)的可分跡條數(shù)也一定為0.

      通過(guò)以上分析, 構(gòu)建用于評(píng)估4 輪空白輪Subterranean-SAE 算法代數(shù)次數(shù)上界的MILP 模型具體流程如算法1 所示. 在算法1 中, 第1–11 行約束N1,N2和N3中立方變量的可分性為1, 非立方變量無(wú)任何約束條件; 第12–13 行約束輸出可分性的漢明重量為1, 且輸出可分性為1 的比特索引為op; 第15行表示利用3.1 節(jié)給出的MILP 模型對(duì)第i輪Subterranean-P 和吸收nonceN進(jìn)行刻畫(huà); 第18 行表示模型的優(yōu)化狀態(tài)為Status. 若Status = 2, 表示模型有解; 若Status = 3, 表示模型無(wú)解; 若Status 為其他值, 表示模型報(bào)錯(cuò). 在選定立方變量后, 若模型無(wú)解, 由定理2 可知輸出比特SR[G[op]]⊕SR[G[op+32]]中對(duì)應(yīng)的超級(jí)多項(xiàng)式為0, 進(jìn)一步可推斷輸出比特SR[G[op]]⊕SR[G[op+32]] 的ANF 中不存在以立方變量乘積構(gòu)成的單項(xiàng)式.

      算法1 返回MILP 模型的優(yōu)化狀態(tài)Input: 輪數(shù)R, N1,N2 和N3 中立方變量索引集I0,I1 和I2, 輸出比特索引op, 空MILP 模型M.Output: 模型的優(yōu)化狀態(tài)Status.1 for 0 ≤i ≤31 do 3 2 if G[i] ∈I0 then M.con ←ni0 = 1 4 end 5 if G[i] ∈I1 then M.con ←ni1 = 1 7 end 8 if G[i] ∈I2 then 6 M.con ←ni2 = 1 ?約束N1,N2 和N3 中立方變量的可分性為1, 非立方變量無(wú)任何約束條件.10 end 11 end 12 M.con ←uG[op]9 R +uG[op+32]R = 1 13 M.con ←Σi∈{0,1,···,256}uiR = 1 14 for i = 0 to R-1 do 15 刻畫(huà)第i 輪Subterranean-P 和異或nonce N 的可分性傳播16 end 17 M.optimize()18 Status = M.Status()19 return Status ?當(dāng)Status = 2 時(shí), 模型有解; 當(dāng)Status = 3 時(shí), 模型無(wú)解; 當(dāng)Status 為其他值時(shí), 模型報(bào)錯(cuò).

      為了評(píng)估輸出代數(shù)次數(shù)上界, 需要多次調(diào)用算法1. 記N1,N2和N3中的立方索引集合分別為I0,I1和I2, 假設(shè)初始的立方變量數(shù)為n, 即|I0|+|I1|+|I2|=n, 若算法返回值為2, 停止調(diào)用算法1 且可推斷代數(shù)次數(shù)上界為n; 若算法返回值為3, 則說(shuō)明代數(shù)次數(shù)小于n, 此時(shí)需要從立方集合中移除1 個(gè)立方變量, 使得|I0|+|I1|+|I2|=n-1, 更新I0,I1和I2并繼續(xù)運(yùn)行算法1. 對(duì)于()種新立方集合, 如果至少存在1 種情況使得算法1 返回值為2, 停止調(diào)用算法1 且可推斷代數(shù)次數(shù)上界為n-1, 否則代數(shù)次數(shù)小于n-1, 此時(shí)繼續(xù)從立方集合中移除1 個(gè)立方變量, 重復(fù)以上步驟, 直到模型無(wú)解為止.

      3.3 代數(shù)次數(shù)評(píng)估結(jié)果

      記Ii0,Ii1和Ii2(0≤i ≤21) 分別表示文獻(xiàn)[17] 的第i個(gè)立方中N1,N2和N3的立方變量索引集. 本文利用算法1 對(duì)4 輪空白輪Subterranean-SAE 算法輸出代數(shù)次數(shù)的評(píng)估結(jié)果如表3 所示.

      (1) 表3 中第2 行表示: 對(duì)于除第7 個(gè)之外的立方變量索引集, 32 個(gè)輸出比特關(guān)于立方變量的代數(shù)次數(shù)上界為62;

      (2) 表3 中第3 行表示: 對(duì)于第7 個(gè)立方變量索引集I70,I71,I72, 輸出第0,2,3,4,6,7,9,11,13,16,17,18,19,20,21,22,23,24,25,26,29,31 比特關(guān)于立方變量的代數(shù)次數(shù)上界為62;

      (3) 表3 中第4 行表示: 對(duì)于第7 個(gè)立方變量索引集I70,I71,I72, 輸出第1,5,8,10,12,14,15,27,28,30比特關(guān)于立方變量的代數(shù)次數(shù)上界為63.

      表3 算法1 的實(shí)驗(yàn)結(jié)果Table 3 Experimental results of Algorithm 1

      從表3 中的實(shí)驗(yàn)結(jié)果可知, 任意選取文獻(xiàn)[17] 中的立方變量集, 32 個(gè)輸出比特關(guān)于立方變量的代數(shù)次數(shù)上界為63, 而文獻(xiàn)[17] 中條件立方攻擊的立方變量總數(shù)為65, 因此輸出立方和恒為0. 此外, 文獻(xiàn)[17]中第3 個(gè)立方索引集的I31包含{30,111,137,223},I32包含{2,4,11,15,17,22,30,35,64,70,95,111,128,134,137,140,165,169,176,184,190,197,211,213,223,225,234,241,249}, 與其區(qū)分攻擊模型中的33 維立方區(qū)分器所選立方索引集完全一致, 而該區(qū)分攻擊已通過(guò)實(shí)驗(yàn)驗(yàn)證其正確性. 所以文獻(xiàn)[17] 中利用I30,I31,I32構(gòu)造條件立方攻擊時(shí), 無(wú)論條件變量取值如何, 其輸出立方和恒為0. 該結(jié)果從側(cè)面印證了本文算法1 評(píng)估代數(shù)次數(shù)上界的正確性.

      4 Subterranean-SAE 算法改進(jìn)的條件立方攻擊

      由于文獻(xiàn)[17] 的條件立方攻擊被證實(shí)為區(qū)分攻擊, 本節(jié)繼續(xù)深入研究并提出4 輪空白輪Subterranean-SAE 算法可被實(shí)驗(yàn)證實(shí)有效的條件立方攻擊.

      本節(jié)采用降低立方維數(shù)、擴(kuò)展立方變量選取范圍的策略, 實(shí)現(xiàn)對(duì)4 輪空白輪Subterranean-SAE 算法條件立方攻擊的改進(jìn). 本節(jié)通過(guò)在N2和N3中共挑選33 維立方構(gòu)造4 輪空白輪Subterranean-SAE 算法條件立方攻擊, 其中挑選的33 維立方要求當(dāng)條件滿足時(shí), 立方和恒為0; 否則立方和取值不定. 通過(guò)分析Subterranean-P 不難發(fā)現(xiàn), 經(jīng)Subterranean-P 更新后狀態(tài)的二次項(xiàng)由上一輪兩個(gè)相鄰狀態(tài)相乘產(chǎn)生,所以為了降低輸出關(guān)于立方變量的代數(shù)次數(shù), 本節(jié)選擇不相鄰且在經(jīng)過(guò)一輪狀態(tài)更新后仍不相鄰的狀態(tài)比特作為立方變量, 而條件變量的選取則取決于立方變量. 如圖3 所示, 搜尋立方變量及對(duì)應(yīng)條件的具體步驟如下:

      (1) 選擇N2中的n2個(gè)比特N2[i0],N2[i1],··· ,N2[in2-1] 作為立方變量, 其他變量設(shè)為常數(shù), 其中ij ∈{G[0],G[1],··· ,G[31]}(j ∈{0,1,··· ,n2-1}), 這些比特在S2互不相鄰;

      (2) 選擇N3中的n3個(gè)比特N3[i0],N3[i1],··· ,N3[in3-1] 作為立方變量, 其他變量設(shè)為常數(shù), 其中ij ∈{G[0],G[1],··· ,G[31]}(j ∈{0,1,··· ,n3-1}), 這些比特在S3互不相鄰;

      (3) 選擇S2中的1 個(gè)變量S2[condition] 作為條件變量. 當(dāng)條件變量S2[condition] 滿足條件f(S2[condition]) = 0 (f(S2[condition]) =S2[condition] 或S2[condition]⊕1) 時(shí),N2中的n2個(gè)立方變量經(jīng)一輪傳播后在S3互不相鄰, 并且與N3中的n3個(gè)立方變量在S3不相鄰; 當(dāng)S2[condition] 不滿足條件f(S2[condition])=0 時(shí),S3一定存在相鄰的立方變量.

      通過(guò)重復(fù)以上步驟, 本文共搜索到24 組33 維立方, 如附錄中表5 所示, 其中立方變量索引集I0和I1分別表示N2和N3的狀態(tài)位. 需要注意的是, 本文的立方變量在N2和N3中選取, 文獻(xiàn)[17] 的立方變量在N1,N2和N3中選取. 通過(guò)對(duì)比發(fā)現(xiàn), 本文找到的24 組立方中有17 組立方的立方變量索引與文獻(xiàn)[17] 中N1和N2的立方變量索引一致, 但挑選這些立方的nonce 塊有區(qū)別. 此外, 本文在搜索立方的過(guò)程中增加了立方變量的選取范圍, 即當(dāng)條件滿足時(shí),N2和N3的立方變量在S2和S3都不相鄰, 輸出的代數(shù)次數(shù)最高為32; 但是當(dāng)條件不滿足時(shí),N2的立方變量經(jīng)1 輪傳播后在S3相鄰, 并與N3的立方變量在S3不相鄰, 輸出的代數(shù)次數(shù)最高為33.

      由于本文挑選的立方維數(shù)均為33, 因此對(duì)于條件立方攻擊的有效性, 可直接通過(guò)計(jì)算其在不同條件下輸出的立方和進(jìn)行驗(yàn)證. 對(duì)于附錄中表5 的每個(gè)立方變量集合, 在無(wú)關(guān)聯(lián)數(shù)據(jù)場(chǎng)景下(即關(guān)聯(lián)數(shù)據(jù)的長(zhǎng)度為0), 本文共選取22 組不同的密鑰K0,K1,K2,K3進(jìn)行立方求和實(shí)驗(yàn). 對(duì)于每1 組密鑰, 固定N3中非立方變量,N0,N1以及P0為常數(shù)0, 選取N2中非立方變量為任意常數(shù), 對(duì)條件變量S2[condition] 滿足和不滿足條件分別進(jìn)行64 次實(shí)驗(yàn). 實(shí)驗(yàn)結(jié)果表明,在22×64=1408 次實(shí)驗(yàn)中,當(dāng)條件變量S2[condition]滿足條件時(shí), 32 個(gè)輸出比特立方和都恒為0; 當(dāng)條件變量S2[condition] 不滿足條件時(shí), 32 個(gè)輸出比特立方和存在不為0 的實(shí)驗(yàn)次數(shù)和概率如表4 所示. 該實(shí)驗(yàn)結(jié)果證實(shí)本文構(gòu)造的條件立方攻擊有效.

      表4 條件立方攻擊的實(shí)驗(yàn)結(jié)果Table 4 Experimental results of conditonal cube attacks

      一旦構(gòu)造有效的條件立方攻擊后, 即可恢復(fù)條件變量(中間狀態(tài)). 由表4 可知, 當(dāng)條件不滿足時(shí), 立方和為1 依概率存在, 故需要進(jìn)行多次立方求和實(shí)驗(yàn)來(lái)確定條件變量的真實(shí)值. 在恢復(fù)條件變量的過(guò)程中,N3中非立方變量以及N0,N1固定為常數(shù)0, 而N2中非立方變量選取不同的常數(shù)值. 條件變量(中間狀態(tài)) 恢復(fù)后, 即可用以構(gòu)造方程恢復(fù)密鑰, 其具體步驟如下:

      5 總結(jié)

      在利用無(wú)未知子集三子集可分性評(píng)估輸出代數(shù)次數(shù)時(shí), 若攻擊模型中初始狀態(tài)的具體取值未知, 則構(gòu)建MILP 模型時(shí)無(wú)法給出初始狀態(tài)的約束條件. 本文首次提出一種在初始狀態(tài)未知時(shí)利用MILP 模型評(píng)估輸出代數(shù)次數(shù)的技術(shù), 并證明了通過(guò)該技術(shù)構(gòu)建的模型無(wú)解時(shí), 無(wú)論初始狀態(tài)的真實(shí)取值如何, 其對(duì)應(yīng)的MILP 模型也一定無(wú)解, 即輸出立方和為0, 由此可評(píng)估輸出關(guān)于立方變量的代數(shù)次數(shù)上界. 在劉富康等人對(duì)4 輪空白輪Subterranean-SAE 算法進(jìn)行的基于條件立方的密鑰恢復(fù)攻擊模型中, 初始狀態(tài)均涉及未知的密鑰信息. 我們成功將本文的代數(shù)次數(shù)評(píng)估技術(shù)運(yùn)用于Subterranean-SAE 算法并證實(shí)劉富康等人的攻擊實(shí)際為區(qū)分攻擊. 進(jìn)一步, 本文通過(guò)分析Subterranean-P, 提出了一種新的立方變量選取策略,并搜尋到了更多的條件立方. 利用這些條件立方, 可以對(duì)縮減至4 輪空白輪的Subterranean-SAE 算法進(jìn)行全密鑰恢復(fù)攻擊, 并且本文通過(guò)實(shí)驗(yàn)驗(yàn)證了該攻擊的有效性. 通過(guò)統(tǒng)計(jì)分析, 該攻擊的正確率不低于99.83%. 在nonce 不重用場(chǎng)景下,這是首次實(shí)現(xiàn)4 輪縮減輪數(shù)Subterranean-SAE 算法的全密鑰恢復(fù)攻擊.

      猜你喜歡
      代數(shù)比特密鑰
      探索企業(yè)創(chuàng)新密鑰
      兩個(gè)有趣的無(wú)窮長(zhǎng)代數(shù)不等式鏈
      Hopf代數(shù)的二重Ore擴(kuò)張
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      什么是代數(shù)幾何
      科學(xué)(2020年1期)2020-08-24 08:08:06
      一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
      比特幣還能投資嗎
      海峽姐妹(2017年10期)2017-12-19 12:26:20
      比特幣分裂
      基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
      比特幣一年漲135%重回5530元
      銀行家(2017年1期)2017-02-15 20:27:20
      瑞丽市| 嘉黎县| 浠水县| 麻栗坡县| 临夏县| 诏安县| 炎陵县| 砀山县| 渭南市| 齐河县| 子洲县| 广水市| 青川县| 张家港市| 冀州市| 溧阳市| 老河口市| 得荣县| 黔西县| 老河口市| 明水县| 绍兴县| 东阿县| 和静县| 伊通| 姚安县| 上思县| 东丰县| 蓬溪县| 容城县| 和政县| 林州市| 苍梧县| 岳阳县| 吉林省| 拜泉县| 广宗县| 嘉禾县| 高密市| 灌阳县| 自治县|