本文作者:kaifamei

針對SIMECK算法的密碼分析方法

更新時間:2025-12-25 06:58:28 0條評論

針對SIMECK算法的密碼分析方法


針對simeck算法的密碼分析方法
技術領域
1.本發明涉及知識挖掘技術領域,特別是指一種針對simeck算法的密碼分析方法。


背景技術:



2.輕量級密碼算法是對稱密碼算法的一個子領域,旨在提供適合資源受限設備(例如rfid標簽,無線傳感器網絡節點等)的合適、安全和緊湊的密碼。例如present,led,lblock,simon/speck,prince,simeck,gift,hight等算法。
3.其中的simeck算法是由yang,zhu,suder,aagaard和gong在ches 2015提出來的輕量級分組密碼算法,加密和解密都由按位與(

)、按位異或()和循環左移γ位(s
γ
)運算組成。simeck算法結合simon和speck算法的設計組件,旨在降低simon算法的硬件實現成本。
4.通過分析截獲的密文來推斷出原來的明文或密鑰,這一過程叫做密碼分析或密碼攻擊;由于密碼分析所面臨的數據量普遍較大,通常無法獲得一些極其具體的中間數據以及精確的統計數據,因此研究人員總是根據某些成立的假設對算法進行安全分析。為了簡化差分密碼分析并提供參考安全證明,來學嘉等人在1991年引入了markov密碼假設,其中迭代算法在不同輪之間相對獨立或在不同輪密鑰之間獨立。基于markov密碼假設,對完整的16輪des的攻擊已成功執行。在輕量級分組密碼的安全性分析中,由于密鑰擴展算法相對簡單,輪密鑰之間的強相關性,基于該假設得出的結論可能與實際情況有較大偏差。已經有許多研究表明,在markov密碼假設下,通過簡單的分段差分概率乘法計算差分概率可能會導致不正確的概率、忽略一些區分器或產生不適當的密碼分析結果。


技術實現要素:



5.有鑒于此,本發明的目的在于提出一種針對simeck算法的密碼分析方法,基于構建的自動搜索模型進行密碼分析,相比于現有的基于markov密碼假設的方法,能保證搜索到有效的區分器,從而保證有效的密碼分析結果。
6.基于上述目的,本發明提供一種針對simeck算法的密碼分析方法,包括:
7.針對simeck算法的輪函數,建立使經過and運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;
8.對所有的約束方程通過求解器求解,得到針對simeck算法的輪函數密碼分析后的區分器。
9.進一步,所述方法還包括:
10.在相關密鑰的條件,進一步針對simeck算法的密鑰擴展算法,建立使經過and運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;
11.對進一步建立的約束方程通過求解器求解,得到針對simeck算法的密鑰擴展算法密碼分析后的區分器。
12.進一步,所述方法還包括:進行多次迭代運算,得到漢明重量最小的區分器;
13.其中,在一次迭代計算過程中,根據本次迭代中設置的以及建立的各公式,通過求解器求解;若無解,則結束迭代;若有解,得到本次迭代計算的區分器,并遞減用于下次迭代計算過程;
14.其中,為密鑰擴展算法中第r輪的非線性變換的漢明重量。
15.進一步,所述方法還包括:對得到的區分器進行過濾,得到有效的區分器。
16.本發明還提供一種電子設備,包括中央處理單元、信號處理和存儲單元,以及存儲在信號處理和存儲單元上并可在中央處理單元上運行的計算機程序,其中所述中央處理單元執行所述程序時實現如上所述的針對simeck算法的密碼分析方法。
17.本發明還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序可被至少一個處理器所執行,以使所述至少一個處理器執行如上所述的針對simeck算法的密碼分析方法的步驟。
18.本發明的技術方案中,針對simeck算法的輪函數,建立使經過and運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;對所有的約束方程通過求解器求解,得到針對simeck算法的輪函數密碼分析后的區分器。通過應用自動化搜索方法得到有效的區分器。
19.更優地,在相關密鑰的條件下,為simeck算法的輪函數部分,以及密鑰擴展算法部分分別建模,得到simeck算法全版本的有效區分器。
20.更優地,還可在目標函數的約束條件支撐下獲得更令人滿意的,即密鑰漢明重量盡量小,覆蓋盡可能多輪的區分器。
21.更優地,還可再額外增加一些約束條件,這些約束條件將差分變換和值變換連接起來,以過濾無效的區分器,進一步保證輸出的區分器的有效性。
附圖說明
22.為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
23.圖1為本發明實施例一提供的一種針對simeck算法的密碼分析方法流程圖;
24.圖2為本發明實施例一提供的simeck算函數的相關密鑰差分傳播示意圖;
25.圖3為本發明實施例二提供的一種針對simeck算法的密碼分析方法流程圖;
26.圖4為本發明實施例三提供的一種針對simeck算法的密碼分析方法流程圖;
27.圖5為本發明實施例五提供的電子設備硬件結構示意圖。
具體實施方式
28.為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本發明進一步詳細說明。
29.需要說明的是,除非另外定義,本發明實施例使用的技術術語或者科學術語應當
為本公開所屬領域內具有一般技能的人士所理解的通常意義。本公開中使用的“第一”、“第二”以及類似的詞語并不表示任何順序、數量或者重要性,而只是用來區分不同的組成部分。“包括”或者“包含”等類似的詞語意指出現該詞前面的元件或者物件涵蓋出現在該詞后面列舉的元件或者物件及其等同,而不排除其他元件或者物件。“連接”或者“相連”等類似的詞語并非限定于物理的或者機械的連接,而是可以包括電性的連接,不管是直接的還是間接的。“上”、“下”、“左”、“右”等僅用于表示相對位置關系,當被描述對象的絕對位置改變后,則該相對位置關系也可能相應地改變。
30.本文的符號及術語說明如下:
31.x=(x
n-1
,

,x1,x0):n位布爾向量;x0是最低有效位;
32.x

y:x和y按位與;
33.:x和y按位異或;
34.x|y:x和y按位或;
35.x||y:x和y級聯;
36.:x按位取反;
37.wt(x):布爾向量x的漢明重量;
38.x<<<γ,s
γ
(x):x循環左移γ位;
39.x>>>γ,s-γ
(x):x循環右移γ位;
40.δar:第r輪的左半支輸入差分;
41.δbr:第r輪的左半支輸入差分;
42.δdr:第r輪and運算的輸出差分;
43.由于simeck算法的密鑰長度始終為4n,因此在本文中簡單的記為simeck2n。simeck算法的輪函數定義為:
44.simeck算法的非線性密鑰擴展算法直接重用該算法的輪函數來生成輪密鑰。為了從給定的主密鑰k=(k3,k2,k1,k0)生成第i輪的輪密鑰ki,首先將主密鑰k分割成四個字并作為反饋移位寄存器的初始狀態(t2,t1,t0,k0)加載,其中k的最低有效n比特加載到k0中;而最高有效n比特被放入t2中;即:k=k3||k2||k1||k0。為了更新寄存器并生成輪密鑰,直接重用輪函數操作,其中輪常數cr∈{0xfffc,0xfffd}。密鑰序列更新操作可以表示如下公式1示:
[0045][0046]
本發明的發明人考慮到,自動化搜索方法是密碼分析的最新趨勢,已成功應用于許多密碼分析技術,其背后的思想是到覆蓋盡可能多輪的區分器。對于使用布爾和算術運算的密碼,它可以轉換為布爾可滿足性問題(sat)或可滿足性模塊問題(smt)。在密碼分析問題被成功建模后,可以調用某個特定的求解器來評估它,最終返回它是否可滿足。如果該分析模型是可滿足的,還提供了一個解決方案,則可用于算法區分。
[0047]
當輸入差分經過線性操作時,將以概率“1”進行傳播,輸出差分唯一,如and-rx操作中的按位異或和循環移位操作。當輸入差分經過非線性操作時,輸出差分不唯一,概率小
于“1”,如and-rx操作中的按位與操作。差分經過and運算時的傳播規律,如下定理1所示。
[0048]
定理1.令其中gcd(n,a-b)=1,n為偶數,a>b,設α和β分別為輸入差分和輸出差分,則差分α傳播到差分β的概率為:
[0049][0050]
其中,varibits=sa(α)∣sb(α),
[0051]
在定理1的基礎上,可以構造合適的基于sat/smt的有效(相關密鑰)差分模型。基于此,本發明的基本思路為:
[0052]
在單密鑰的條件下,為simeck算法的輪函數部分建模,得到區分器;
[0053]
在相關密鑰的條件下,為simeck算法的輪函數部分,以及密鑰擴展算法部分分別建模,得到區分器;
[0054]
更優地,還可在目標函數的約束條件支撐下獲得更令人滿意的,即密鑰漢明重量盡量小,覆蓋盡可能多輪的區分器。
[0055]
更優地,還可再額外增加一些約束條件,這些約束條件將差分變換和值變換連接起來,以過濾無效的區分器,進一步保證輸出的區分器的有效性;而根據有效的區分器可以獲得全部或大部分的密鑰,也就是說,相比于現有的基于markov密碼假設的方法,能保證搜索到有效的區分器,從而保證有效的密碼分析結果。
[0056]
下面結合附圖詳細說明本發明的技術方案。
[0057]
實施例一
[0058]
本發明實施例一提供了一種針對simeck算法的密碼分析方法,具體流程如圖1所示,包括如下步驟:
[0059]
步驟s101:針對simeck算法的輪函數,建立使經過and運算的差分的傳播有效的約束方程;
[0060]
具體地,本文使用δar和δbr來分別表示輪函數的第r輪的n比特左支和右支輸入差分特征,使用δdr表示經過and運算的n比特輸出差分。這種表示法的示意圖如圖2所示。
[0061]
從上述定理1中了解到差分通過and運算時的傳播規則,布爾約束條件可以從定理1中導出。當and運算的輸入差分為δar時,為了使經過and運算的差分的傳播有效,即δar經過sa(x)

sb(x)運算后的輸出差分δdr的概率不為0且不小于2-n+1
,應同時滿足以下約束方程,如公式3、4所示:
[0062][0063][0064]
其中,δar為and運算的輸入差分,δdr為δar經過sa(x)

sb(x)運算后的輸出差
分,sa(
·
)表示循環左移a位,sb(
·
)表示循環左移b位,s
a-b
(
·
)表示循環左移a-b位,s
2a-b
(
·
)表示循環左移2a-b位;a、b為設定常數。
[0065]
步驟s102:針對simeck算法的輪函數,建立線性運算的差分傳播的約束方程;
[0066]
具體地,為了保證輪函數部分下一輪的輸入差分是上一輪的輸出差分,在單密鑰的條件下,線性運算的差分傳播的過程由如下公式6、7所示的約束方程進行建模:
[0067]
δb
r+1
=δar???
(公式6)
[0068][0069]
在相關密鑰的條件下,線性運算的差分傳播的過程由如上公式6和如下公式8所示的約束方程進行建模:
[0070][0071]
其中,δar和δbr來分別表示輪函數的第r輪的n比特左支和右支輸入差分特征,sc(
·
)表示循環左移c位,δkr表示第r輪的n比特密鑰差分。
[0072]
步驟s103:針對simeck算法的輪函數,建立差分傳播的概率的約束方程;
[0073]
具體地,如果上述公式(3)和(4)的傳播有效,則第r輪的傳播概率由給出,建立的線性運算的差分傳播的約束方程如公式5所示:
[0074][0075]
其中,為第r輪輪函數中非線性變換的漢明重量,為設定值;比如,可以設定為0,1,2,3等整數;wt(
·
)表示計算的漢明重量,即,計算二進制序列中1的個數。
[0076]
步驟s104:對上述的約束方程通過求解器求解,得到針對simeck算法的輪函數密碼分析后的區分器;
[0077]
具體地,若在單密鑰的條件,則得到漢明重量不超過設定值的、針對simeck算法的輪函數密碼分析后的區分器,可以作為針對simeck算法全部的密碼分析后的區分器。
[0078]
若在相關密鑰的條件下,則還進一步需要對simeck算法的密鑰擴展部分建立約束方程,對密鑰擴展部分的差分傳播進行建模。對simeck算法的密鑰擴展部分建立約束方程,對密鑰擴展部分的差分傳播進行建模的具體方法將在實施例二中詳述。
[0079]
實施例二
[0080]
在相關密鑰的條件下,本發明實施例二提供了的一種針對simeck算法的密碼分析方法中,除了包括上述實施例一中的圖1所示的各步驟中的方法,還包括得到針對simeck算法的密鑰擴展算法密碼分析后的區分器;由于simeck算法的密鑰擴展算法直接復用輪函數操作,所以密鑰擴展算法建模類似于輪函數部分,具體流程如圖3所示,包括如下步驟:
[0081]
步驟s301:針對simeck算法的密鑰擴展算法,建立使經過and運算的差分的傳播有效的約束方程;
[0082]
具體地,令δkar,δkbr和δkdr為第r輪的n比特差分向量,它們分別表示左支輸入差分、右支輸入差分和經過and運算的輸出差分。類似地,要使密鑰部分的差分的傳播有效,應同時滿足以下如公式9、10所示的布爾表達式:
[0083]
[0084][0085]
步驟s302:針對simeck算法的密鑰擴展算法,建立線性運算的差分傳播的約束方程;
[0086]
具體地,密鑰擴展算法中的線性運算傳播的過程由如下約束方程公式12、13、14進行建模:
[0087]
δkb
r+1
=δkar???
(公式12)
[0088][0089]
δkr=δkbr???
(公式14)
[0090]
其中,s1(
·
)表示循環左移1位。
[0091]
步驟s303:針對simeck算法的密鑰擴展算法,建立差分傳播的概率的約束方程;
[0092]
具體地,若約束方程(9)和(10)傳播有效,則密鑰擴展部分的概率由給出,建立的差分傳播的概率的約束方程如公式11所示:
[0093][0094]
其中,為密鑰擴展算法中第r輪的非線性變換的漢明重量,為設定值;比如,可以設定為0,1,2,3等整數。
[0095]
步驟s304:對上述步驟s301-s303建立的約束方程通過求解器求解,得到針對simeck算法的相關密鑰差分密碼分析后的區分器。
[0096]
實施例三
[0097]
simeck算法的區分器的漢明重量計算方式是明文部分的漢明重量加上密鑰擴展部分的漢明重量,r輪最優區分器是指r輪的漢明重量w已達到最小,即漢明重量小于w時程序無解(unsat),即漢明重量小于w時沒有滿足條件的區分器。
[0098]
基于上述分析,本發明實施例三提供的一種針對simeck算法的密碼分析方法中,基于目標函數進行多次迭代運算,得到漢明重量最小的區分器;在一次迭代計算過程中,根據本次迭代中設置的以及建立的如公式公式3-14,通過求解器求解;若無解,則結束迭代;若有解,得到本次迭代計算的區分器,并遞減用于下次迭代計算過程。
[0099]
由于simeck密鑰擴展算法的反饋移位寄存器的結構原因,在第r輪注入的密鑰差分實際上是在第r-4輪產生的,在那里它的成本被“支付”。因此,密鑰擴展部分r輪特征的總概率只需考慮第1輪至第r-4輪的成本。因此,將目標函數設置如公式15所示:
[0100][0101]
其中,r表示輪數,wd表示輪函數中非線性變換的漢明重量,2n表示針對simeck算法的密碼分析過程中待解密的密文的長度。
[0102]
基于上述分析,本發明實施例三提供的一種針對simeck算法的密碼分析方法中,為實現上述的目標函數可以進行多次迭代運算,得到漢明重量最小的區分器的具體方法,流程如圖4所示,包括如下步驟:
[0103]
步驟s401:迭代初始化。
[0104]
本步驟中,設置迭代次數j=1;設置為初始值,為初始值。
[0105]
步驟s402:基于設置的以及針對simeck算法建立的約束方程,通過求解器進行求解。
[0106]
本步驟中,針對simeck算法建立的約束方程包括上述的公式3-14,此處不再贅述;進而,基于設置的針對建立的約束方程通過求解器進行求解。
[0107]
步驟s403:若建立的約束方程通過求解器求解得到區分器,則將遞減,并將迭代次數j加1后,跳轉到步驟s402進行下一次迭代計算;若建立的約束方程通過求解器無解,則執行如下步驟s404;
[0108]
步驟s404:結束迭代,并將上次迭代計算得到的區分器,作為漢明重量最小的區分器,即最優區分器進行輸出。
[0109]
本步驟中,結束迭代,并將第j-1次迭代計算得到的區分器,作為漢明重量最小的區分器,即最優區分器進行輸出。
[0110]
通過上述的迭代計算,可以得到實現上述的目標函數、漢明重量最小的最優區分器;也就是說,本發明實施例三的技術方案,在目標函數的約束條件支撐下獲得更令人滿意的,即密鑰漢明重量盡量小,覆蓋盡可能多輪的區分器。
[0111]
實施例四
[0112]
本發明實施例四的技術方案中,可以對得到的區分器進行有效性過濾。具體地,對于上述實例一、二或三的技術方案所得到的區分器均可采用本發明實施例四的技術方案進行有效性過濾。
[0113]
為了優化過濾無效區分器(無效的相關密鑰差分特征)并獲得相關密鑰差分特征的緊界,我們添加了一個描述值轉換和差分關系的模型。其思想是先獨立地對差分轉換和值轉換進行建模,然后對每一輪的差值關系進行建模,用于連接差分轉換和值轉換。一旦構建了這樣的模型,就可以確保發現的軌跡是有效的。具體建模過程如下所示。
[0114]
令其中表示從第r輪中密鑰擴展算法的寄存器狀態和輪常數cr導出輪密鑰k
r+1
的函數。進一步令kr和(kr)

分別表示第r輪與主密鑰k和k

相對應的n位輪密鑰。
[0115]
為了保證密鑰部分差分特征的有效性,即過濾得到的有效區分器,應滿足如下約束方程,如公式16-19所示:
[0116][0117]
[0118][0119][0120]
簡單來說,約束方程公式16、17確保輪密鑰可以從主密鑰(一致性)導出,而約束方程公式18、19確保它們具有相應的差分。
[0121]
一旦確定密鑰擴展算法的差分特征是有效的,令表示第r輪的加密函數,其中(xr,yr)作為第r輪的加密函數的輸入對,kr為第r輪的加密函數的輪密鑰;并返回(x
r+1
,y
r+1
)作為第r輪的加密函數的輸出。
[0122]
接下來,為了使區分器與公式16-19中到的輪密鑰有效,也就是說,過濾得到的有效區分器,還應滿足以下約束方程,如公式20-25所示:
[0123]
(x
r+1
,y
r+1
)=r(xr,yr,kr)
???
(公式20)
[0124]
((x
r+1
)

,(y
r+1
)

)=r((xr)

,(yr)

,(kr)

)
???
(公式21)
[0125][0126][0127][0128][0129]
綜上,通過如上述公式16-25所示的約束方程,可以過濾得到有效區分器。而根據有效的區分器可以獲得全部或大部分的密鑰,也就是說,相比于現有的基于markov密碼假設的方法,能保證搜索到有效的區分器,從而保證有效的密碼分析結果。
[0130]
表1列出了本發明技術方案與現有技術的對比情況。
[0131]
表1
[0132][0133]
與現有技術中基于milp求解器的方法相比,本發明的方法不僅保證了simeck算法全版本的區分器最優性,同時本發明也保證了區分器的有效性,這對于利用區分器進行密鑰恢復攻擊來說至關重要。而現有技術除了simeck32/64參數,其他參數仍然難以獲得更長的最優區分器。在有效性條件下,simeck32的區分器依舊能達到現有技術的復雜度為2
30
的14輪,該特征見表2。
[0134]
表2
[0135][0136]
對于simeck48版本,現有技術搜索到復雜度為2
48
的19輪非最優區分器,但是在有效條件下,根據本發明的搜索結果,19輪最低復雜度為2
50
,復雜度不超過2
48
的最優有效區分器不超過18輪,18輪的復雜度2
46
,該特征見表3。
[0137]
表3
[0138][0139][0140]
對于simeck64版本,現有技術搜索到復雜度為2
62
的22輪區分器,但是本發明能夠搜索到的最優的兼容相關區分器不超過22輪,22輪的復雜度為2
63
,該特征見表3。綜上,本發
明技術方案搜索到的區分器,相比于現有技術方案搜索到的區分器更優,更有效。
[0141]
實施例五
[0142]
圖5示出了本實施例所提供的一種更為具體的電子設備硬件結構示意圖,該設備可以包括:處理器1010、存儲器1020、輸入/輸出接口1030、通信接口1040和總線1050。其中處理器1010、存儲器1020、輸入/輸出接口1030和通信接口1040通過總線1050實現彼此之間在設備內部的通信連接。
[0143]
處理器1010可以采用通用的cpu(central processing unit,中央處理單元)、微處理器、應用專用集成電路(application specific integrated circuit,asic)、或者一個或多個集成電路等方式實現,用于執行相關程序,以實現本說明書實施例所提供的基于稠密鄰居的知識圖譜表示增強方法。
[0144]
存儲器1020可以采用rom(read only memory,只讀存儲器)、ram(random access memory,隨機存取存儲器)、靜態存儲設備,動態存儲設備等形式實現。存儲器1020可以存儲操作系統和其他應用程序,在通過軟件或者固件來實現本說明書實施例所提供的技術方案時,相關的程序代碼保存在存儲器1020中,并由處理器1010來調用執行。
[0145]
輸入/輸出接口1030用于連接輸入/輸出模塊,可以與非線性接收機相連,從非線性接收機接收信息,實現信息輸入及輸出。輸入輸出/模塊可以作為組件配置在設備中(圖中未示出),也可以外接于設備以提供相應功能。其中輸入設備可以包括鍵盤、鼠標、觸摸屏、麥克風、各類傳感器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。
[0146]
通信接口1040用于連接通信模塊(圖中未示出),以實現本設備與其他設備的通信交互。其中通信模塊可以通過有線方式(例如usb、網線等)實現通信,也可以通過無線方式(例如移動網絡、wifi、藍牙等)實現通信。
[0147]
總線1050包括一通路,在設備的各個組件(例如處理器1010、存儲器1020、輸入/輸出接口1030和通信接口1040)之間傳輸信息。
[0148]
需要說明的是,盡管上述設備僅示出了處理器1010、存儲器1020、輸入/輸出接口1030、通信接口1040以及總線1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。
[0149]
本技術實施例還提供一種計算機可讀存儲介質,計算機可讀存儲介質其上存儲有計算機程序,計算機程序被處理器執行時實現實施例中的針對simeck算法的密碼分析方法的步驟。
[0150]
本實施例中,計算機可讀存儲介質包括閃存、硬盤、多媒體卡、卡型存儲器(例如,sd或dx存儲器等)、隨機訪問存儲器(ram)、靜態隨機訪問存儲器(sram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、可編程只讀存儲器(prom)、磁性存儲器、磁盤、光盤等。在一些實施例中,計算機可讀存儲介質可以是計算機設備的內部存儲單元,例如該計算機設備的硬盤或內存。在另一些實施例中,計算機可讀存儲介質也可以是計算機設備的外部存儲設備,例如該計算機設備上配備的插接式硬盤,智能存儲卡(smart media card,簡稱為smc),安全數字(secure digital,簡稱為sd)卡,閃存卡(flash card)等。當然,計算機可讀存儲介質還可以既包括計算機設備的內部存儲單元也包括其外部存儲設備。本實施例中,計算機可讀存儲介質通常用于存儲安裝于計算機設備的操作系統和各類應用軟件,例
如實施例中基于ssh反向隧道的內網設備連接方法的程序代碼等。此外,計算機可讀存儲介質還可以用于暫時地存儲已經輸出或者將要輸出的各類數據。
[0151]
本實施例的計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。
[0152]
本發明技術方案中,針對simeck算法的輪函數,建立使經過and運算的差分的傳播有效的約束方程、非線性變換的漢明重量的約束方程,以及線性運算的差分傳播的約束方程;對所有的約束方程通過求解器求解,得到針對simeck算法的輪函數密碼分析后的區分器。通過應用自動化搜索方法得到有效的區分器。
[0153]
更優地,在相關密鑰的條件下,為simeck算法的輪函數部分,以及密鑰擴展算法部分分別建模,得到simeck算法全版本的有效區分器。
[0154]
更優地,還可在目標函數的約束條件支撐下獲得更令人滿意的,即密鑰漢明重量盡量小,覆蓋盡可能多輪的區分器。
[0155]
更優地,還可再額外增加一些約束條件,這些約束條件將差分變換和值變換連接起來,以過濾無效的區分器,進一步保證輸出的區分器的有效性。
[0156]
所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權利要求)被限于這些例子;在本發明的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現,并存在如上所述的本發明的不同方面的許多其它變化,為了簡明它們沒有在細節中提供。
[0157]
另外,為簡化說明和討論,并且為了不會使本發明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(ic)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發明難以理解,并且這也考慮了以下事實,即關于這些框圖裝置的實施方式的細節是高度取決于將要實施本發明的平臺的(即,這些細節應當完全處于本領域技術人員的理解范圍內)。在闡述了具體細節(例如,電路)以描述本發明的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節的情況下或者這些具體細節有變化的情況下實施本發明。因此,這些描述應被認為是說明性的而不是限制性的。
[0158]
盡管已經結合了本發明的具體實施例對本發明進行了描述,但是根據前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態ram(dram))可以使用所討論的實施例。
[0159]
本發明的實施例旨在涵蓋落入所附權利要求的寬泛范圍之內的所有這樣的替換、修改和變型。因此,凡在本發明的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

技術特征:


1.一種針對simeck算法的密碼分析方法,包括:針對simeck算法的輪函數,建立使經過and運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;對所有的約束方程通過求解器求解,得到針對simeck算法的密碼分析后的區分器。2.根據權利要求1所述的方法,其特征在于,所述使經過and運算的差分的傳播有效的約束方程,具體如公式3、4所示:約束方程,具體如公式3、4所示:其中,δa
r
為and運算的輸入差分,δd
r
為δa
r
經過s
a
(x)

s
b
(x)運算后的輸出差分,s
a
(
·
)表示循環左移a位,s
b
(
·
)表示循環左移b位,s
a-b
(
·
)表示循環左移a-b位,s
2a-b
(
·
)表示循環左移2a-b位。3.根據權利要求2所述的方法,其特征在于,所述線性運算的差分傳播的約束方程,在單密鑰的條件下,具體如公式6、7所示:δb
r+1
=δa
r
????????????
(公式6)在相關密鑰的條件下,線性運算的差分傳播的過程由如上公式6和如下公式8所示:其中,δa
r
和δb
r
來分別表示輪函數的第r輪的左支和右支輸入差分特征,s
c
(
·
)表示循環左移c位,δk
r
表示第r輪的密鑰差分。4.根據權利要求3所述的方法,其特征在于,所述差分傳播的概率的約束方程,具體如公式5所示:其中,為第r輪輪函數中非線性變換的漢明重量,為設定值;wt(
·
)表示計算的漢明重量。5.根據權利要求4所述的方法,其特征在于,還包括:在相關密鑰的條件,進一步針對simeck算法的密鑰擴展算法,建立使經過and運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;對進一步建立的約束方程通過求解器求解,得到針對simeck算法的相關密鑰差分密碼分析后的區分器。6.根據權利要求5所述的方法,其特征在于,還包括:進行多次迭代運算,得到漢明重量最小的區分器;其中,在一次迭代計算過程中,根據本次迭代中設置的以及建立的各公式,通過求解器求解;若無解,則結束迭代;若有解,得到本次迭代計算的區分器,并遞減
用于下次迭代計算過程;其中,為密鑰擴展算法中第r輪的非線性變換的漢明重量。7.根據權利要求1、5或6所述的方法,其特征在于,還包括:對得到的區分器進行過濾,得到有效的區分器。8.根據權利要求7所述的方法,其特征在于,所述有效的區分器滿足如下公式16-25所示的約束方程:示的約束方程:示的約束方程:示的約束方程:(x
r+1
,y
r+1
)=r(x
r
,y
r
,k
r
)
?????????
(公式20)((x
r+1
)

,(y
r+1
)

)=r((x
r
)

,(y
r
)

,(k
r
)

)
??????
(公式21)(公式21)(公式21)(公式21)其中,其中表示從第r輪中密鑰擴展算法的寄存器狀態和輪常數c
r
導出輪密鑰k
r+1
的函數;k
r
和(k
r
)

分別表示第r輪與主密鑰k和k

相對應的n位輪密鑰;其中,表示第r輪的加密函數,其中(x
r
,y
r
)作為第r輪的加密函數的輸入對,k
r
為第r輪的加密函數的輪密鑰;并返回(x
r+1
,y
r+1
)作為第r輪的加密函數的輸出。9.一種電子設備,包括中央處理單元、信號處理和存儲單元,以及存儲在信號處理和存儲單元上并可在中央處理單元上運行的計算機程序,其特征在于,所述中央處理單元執行所述程序時實現如權利要求1-8任一所述的方法。10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序可被至少一個處理器所執行,以使所述至少一個處理器執行權利要求1-8中任意一項所述的針對simeck算法的密碼分析方法的步驟。

技術總結


本發明公開了一種針對SIMECK算法的密碼分析方法,所述方法包括:針對SIMECK算法的輪函數,建立使經過AD運算的差分的傳播有效的約束方程、線性運算的差分傳播的約束方程,以及差分傳播的概率的約束方程;對所有的約束方程通過求解器求解,得到針對SIMECK算法的輪函數密碼分析后的區分器。應用本發明能保證搜索到有效的區分器,從而保證有效的密碼分析結果。果。果。


技術研發人員:

陸金玉 于博 劉國強 孫兵 李超 張若琳

受保護的技術使用者:

中國人民解放軍國防科技大學

技術研發日:

2022.10.14

技術公布日:

2023/1/19


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-87413-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2023-01-29 16:32:13

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論