一種分組密碼相關(guān)密鑰不可能差分路徑的搜索方法
【專利摘要】本發(fā)明公開了一種分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,將不可能差分攻擊方法和相關(guān)密鑰攻擊方法相結(jié)合,以解決密碼分析中自動(dòng)搜索相關(guān)密鑰不可能差分路徑并尋找最長(zhǎng)分析路徑的問題,得以對(duì)密碼算法進(jìn)行更深入、更透徹的分析。本發(fā)明使尋找相關(guān)密鑰不可能差分路徑的方法從傳統(tǒng)的手動(dòng)分析升級(jí)到計(jì)算機(jī)自動(dòng)搜索,避免了現(xiàn)有的手動(dòng)分析方法在對(duì)密碼算法進(jìn)行分析時(shí)繁瑣、易出錯(cuò)的弊端,能夠快速準(zhǔn)確地計(jì)算出分組密碼算法的相關(guān)密鑰不可能差分路徑的最大長(zhǎng)度,提高了密碼分析的效率。本發(fā)明實(shí)現(xiàn)了密碼算法的非廣義Feistel結(jié)構(gòu)到廣義Feistel結(jié)構(gòu)的轉(zhuǎn)化,可以廣泛應(yīng)用于多種不同結(jié)構(gòu)密碼算法的相關(guān)密鑰不可能差分路徑的自動(dòng)搜索。
【專利說明】
一種分組密碼相關(guān)密鑰不可能差分路徑的搜索方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于信息安全技術(shù)領(lǐng)域,尤其涉及一種分組密碼相關(guān)密鑰不可能差分路徑 的搜索方法。
【背景技術(shù)】
[0002] 隨著技術(shù)的不斷發(fā)展,信息安全的作用日益突出,人們的生活與信息密不可分,密 碼學(xué)作為信息安全的基礎(chǔ)快速發(fā)展起來。密碼編碼學(xué)與密碼分析是共同演化的,所以在密 碼編碼學(xué)發(fā)展之時(shí),密碼分析也隨之備受關(guān)注。但是一直以來密碼分析主要都是以手動(dòng)分 析為主,雖然期間也有人提出過不可能差分搜索方法,借助計(jì)算機(jī)輔助密碼分析。不管是手 動(dòng)分析方法還是已提出的不可能差分搜索方法,均存在不足:
[0003] 1.手動(dòng)分析方法完全是依靠人工對(duì)密碼算法結(jié)構(gòu)的了解來進(jìn)行理論分析,如果對(duì) 所有可能的情形進(jìn)行遍歷,耗費(fèi)的時(shí)間過長(zhǎng),而且計(jì)算過程中容易出錯(cuò),效率太低;
[0004] 2.對(duì)于已經(jīng)提出的不可能差分路徑搜索方法,雖然能夠借助計(jì)算機(jī)自動(dòng)搜索到最 長(zhǎng)的不可能差分路徑,但并沒有結(jié)合相關(guān)密鑰的攻擊方法,所以對(duì)密碼算法的分析不如本 方法深入、透徹。
[0005] 3.已存在的不可能差分路徑的搜索方法只是對(duì)于廣義Feistel結(jié)構(gòu)的密碼算法而 言,并沒有涉及到任何非廣義Feistel結(jié)構(gòu)的密碼算法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,旨在 將相關(guān)密鑰差分搜索方法和不可能差分搜索方法相結(jié)合用以解決現(xiàn)有具有廣義Feistel結(jié) 構(gòu)或能轉(zhuǎn)化成廣義Feistel結(jié)構(gòu)、加解密矩陣滿足1-特性以及輪函數(shù)滿足雙射的分組密碼 算法的最大相關(guān)密鑰不可能差分路徑計(jì)算機(jī)自動(dòng)搜索的問題。
[0007] 本發(fā)明是這樣實(shí)現(xiàn)的,所述分組密碼相關(guān)密鑰不可能差分路徑的搜索方法將不可 能差分攻擊方法和相關(guān)密鑰攻擊方法相結(jié)合,并將相關(guān)密鑰搜索方法和不可能差分搜索方 法結(jié)合在一起設(shè)計(jì)并實(shí)現(xiàn)了分組密碼算法的相關(guān)密鑰不可能差分路徑的自動(dòng)搜索。將該方 法應(yīng)用于任何一種具有廣義Feistel結(jié)構(gòu)或能轉(zhuǎn)化成廣義Feistel結(jié)構(gòu)、加解密矩陣滿足1-特性以及輪函數(shù)滿足雙射的分組密碼算法時(shí),改變相應(yīng)的加解密矩陣,根據(jù)密鑰擴(kuò)展方法 對(duì)密鑰差分搜索方法進(jìn)行修改即可自動(dòng)搜索最大的相關(guān)密鑰不可能差分路徑。本發(fā)明使尋 找相關(guān)密鑰不可能差分路徑的方法實(shí)現(xiàn)了計(jì)算機(jī)的自動(dòng)搜索,不需要再手動(dòng)的計(jì)算尋找相 關(guān)密鑰不可能差分路徑,能夠遍歷所有路徑,克服了手動(dòng)分析不全面、容易出錯(cuò)、效率低的 缺點(diǎn),并且能夠計(jì)算出分組密碼算法的相關(guān)密鑰不可能差分路徑的最大長(zhǎng)度。
[0008] 進(jìn)一步,所述分組密碼相關(guān)密鑰不可能差分路徑的搜索方法包括:
[0009] 步驟一,若分組密碼算法為非廣義Feistel結(jié)構(gòu)但是能轉(zhuǎn)化成廣義Feistel結(jié)構(gòu), 則將其轉(zhuǎn)化成廣義Feistel結(jié)構(gòu),求出其加密矩陣ε和解密矩陣D;若分組密碼算法為廣義 Feistel結(jié)構(gòu),則直接計(jì)算其加解密矩陣。
[0010] 步驟二,搜索相關(guān)密鑰差分路徑。
[0011] 步驟三,將密鑰差分搜索方法與不可能差分搜索方法相結(jié)合。
[0012] 步驟四,計(jì)算加密方向最大輪數(shù)M£i(a,m)和解密方向最大輪數(shù)將加密 方向的最大輪數(shù)和解密方向的最大輪數(shù)相加,若輪數(shù)之和與相關(guān)密鑰差分路徑輪數(shù)相等, 則說明存在該輪數(shù)的相關(guān)密鑰不可能差分路徑,否則不存在該輪數(shù)的相關(guān)密鑰不可能差分 路徑。
[0013]進(jìn)一步,所述步驟二具體包括:
[0014] 第一步,根據(jù)密鑰擴(kuò)展算法設(shè)定密鑰差分搜索過程中的最佳概率仏和輪數(shù)η。
[0015] 第二步,對(duì)所有滿足條件的密鑰輸入差分做以下迭代搜索:計(jì)算i輪差分特征概率 ρορι…Pi,若poprii^Bn且i<n則進(jìn)入i+Ι輪的搜索;若ρ〇ρι···ρ0Β η且i=n則搜索到的密鑰 差分符合要求,輸出該密鑰差分。
[0016] 進(jìn)一步,第二步中所有滿足條件的密鑰輸入差分是根據(jù)密碼算法中密鑰擴(kuò)展算法 的弱點(diǎn)來選擇的漢明重量較小的密鑰差分。一般選取漢明重量為1的密鑰差分,此時(shí)所有滿 足條件的密鑰輸入差分的數(shù)量為初始密鑰的長(zhǎng)度。
[0017]進(jìn)一步,所述步驟三具體包括:
[0018] 對(duì)步驟二輸出的每一密鑰差分做下述操作:
[0019] 第一步,根據(jù)找到的重量小、擴(kuò)散慢的非零密鑰差分路徑確定不可能差分路徑的 輸入差分向量甚和輸出差分向量各a
[0020] 第二步,根據(jù)求得的密碼算法的加解密矩陣的規(guī)模將密鑰差分進(jìn)行轉(zhuǎn)化,使其適 合矩陣運(yùn)算。
[0021] 進(jìn)一步,所述第二步中的轉(zhuǎn)化與密碼算法結(jié)構(gòu)相關(guān),具體如下:將所求的相關(guān)密鑰 差分根據(jù)加解密矩陣進(jìn)行轉(zhuǎn)化使其適合矩陣運(yùn)算,一般將加密方向中每輪密鑰差分之前添 加一半規(guī)模的〇,解密方向中每輪密鑰差分之后添加一半規(guī)模的〇;或者將加密方向中每輪 密鑰差分之后添加一半規(guī)模的〇,解密方向中每輪密鑰差分之前添加一半規(guī)模的0。
[0022]進(jìn)一步,所述步驟四具體包括:
[0023] 對(duì)步驟三中確定的每對(duì)相關(guān)密鑰不可能差分路徑的輸入差分向量δ和輸出差分向 量做下述操作:
[0024] 第一步,根據(jù)輸入差分向量3進(jìn)行加密方向密鑰差分和加密矩陣ε的矩陣運(yùn)算,直 到經(jīng)過r輪后f的所有分量都為不確定為止
[0025] 第二步,根據(jù)輸出差分向量系進(jìn)行解密方向密鑰差分和解密矩陣D的矩陣運(yùn)算,直
到經(jīng)過r'輪后1/的所有分量都為不確定為止, ,其中琢是m 的補(bǔ)集。
[0026] 第三步,計(jì)算M = maX/+ ,若存在M = n,則存在該輪數(shù)的相 關(guān)密鑰不可能差分路徑,否則不存在。
[0027] 進(jìn)一步,所述第一步中的運(yùn)算如下:每輪的輸入差分先和密鑰差分相加之后再和 加密矩陣進(jìn)行矩陣運(yùn)算。由于Feistel結(jié)構(gòu)的特殊性,每一輪的輸出中有一部分為該輪未經(jīng) 過任何變化的輸入部分,因此上述計(jì)算的輪輸出結(jié)果要人為保持這種不變性。每輪重復(fù)相 同的操作,直到經(jīng)過r輪后f所有分量均為不確定為止。所述第二步中的運(yùn)算類似。
[0028] 本發(fā)明提供的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,將不可能差分攻擊 方法和相關(guān)密鑰攻擊方法相結(jié)合,以解決密碼分析中相關(guān)密鑰不可能差分路徑的自動(dòng)搜索 和最長(zhǎng)分析路徑的尋找問題,對(duì)密碼算法能夠做更深入、更透徹的分析。本發(fā)明使尋找相關(guān) 密鑰不可能差分路徑的方法從傳統(tǒng)的手動(dòng)分析升級(jí)到使用計(jì)算機(jī)自動(dòng)搜索,大大加快了尋 找相關(guān)密鑰不可能差分路徑的速度,也就加快了密碼算法的分析速度,推動(dòng)了密碼算法分 析的進(jìn)展。并且實(shí)現(xiàn)相關(guān)密鑰不可能差分路徑的計(jì)算機(jī)自動(dòng)搜索后,在搜索具體的密碼算 法的相關(guān)密鑰不可能差分路徑時(shí)能夠遍歷所有可能的路徑,解決了手動(dòng)分析不全面以及容 易出錯(cuò)的問題。本發(fā)明可以計(jì)算出分組密碼算法的相關(guān)密鑰不可能差分路徑的最大長(zhǎng)度, 為進(jìn)一步分析分組密碼算法提供了更好、更強(qiáng)的保障。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu) 占.
[0029] (1)由于本發(fā)明使用相關(guān)密鑰攻擊與不可能差分攻擊相結(jié)合,充分利用了密鑰差 分對(duì)不可能差分路徑的影響,因此在對(duì)密碼算法進(jìn)行攻擊時(shí),比現(xiàn)有的不可能差分分析方 法有了更高輪數(shù)的分析,而且使用該方法有望實(shí)現(xiàn)密碼算法的攻破。在使用該方法自動(dòng)搜 索LBlock密碼算法的相關(guān)密鑰不可能差分路徑時(shí),首次給出了 18輪相關(guān)密鑰不可能差分路 徑,這是目前的最好結(jié)果。
[0030] (2)由于本發(fā)明使相關(guān)密鑰不可能差分路徑的搜索得以計(jì)算機(jī)實(shí)現(xiàn),因此避免了 現(xiàn)有手動(dòng)分析方法在對(duì)密碼算法進(jìn)行分析時(shí)繁瑣、易出錯(cuò)的弊端,更重要的是借助計(jì)算機(jī) 實(shí)現(xiàn)自動(dòng)搜索能夠遍歷所有可能的路徑,使路徑的查找更全面,大大提高密碼分析效率的 同時(shí)也提高了密碼分析的深度。
[0031 ] (3)由于本發(fā)明實(shí)現(xiàn)了將非廣義Feistel密碼結(jié)構(gòu)轉(zhuǎn)化成廣義Feistel結(jié)構(gòu),因此 可以廣泛的應(yīng)用于多種密碼結(jié)構(gòu)的密碼算法的相關(guān)密鑰不可能差分路徑搜索,更好地實(shí)現(xiàn) 對(duì)密碼算法的分析。
【附圖說明】
[0032] 圖1是本發(fā)明實(shí)施例提供的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法流程 圖。
[0033] 圖2是本發(fā)明實(shí)施例提供的加密結(jié)構(gòu)示意圖。
[0034] 圖3是本發(fā)明實(shí)施例提供的密鑰差分路徑搜索的子流程圖。
[0035]圖4是本發(fā)明實(shí)施例提供的非廣義Feistel結(jié)構(gòu)轉(zhuǎn)化成廣義Feistel結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明 進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于 限定本發(fā)明。
[0037]下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
[0038]參照?qǐng)D1,本發(fā)明的實(shí)施步驟如下:
[0039] 步驟1,計(jì)算非廣義Feistel結(jié)構(gòu)密碼算法的加解密矩陣
[0040] 本實(shí)施例選取非廣義Feistel結(jié)構(gòu)的分組密碼LBlock為例進(jìn)行說明。LBlock的分 組規(guī)模為64bit,每4bit為一塊,主密鑰為80bit,其加密結(jié)構(gòu)參照?qǐng)D2。
[0041] 參照?qǐng)D4,將本實(shí)施例中非廣義Feistel結(jié)構(gòu)轉(zhuǎn)化成廣義Feistel結(jié)構(gòu),進(jìn)而求得加 密特征矩陣ε (nxn)和解密特征矩陣D(NXN),其中N為分組密碼子塊的規(guī)模,本實(shí)施例中取N = 16。
[0042] 步驟2,搜索相關(guān)密鑰差分路徑 [0043]參照?qǐng)D3,本步驟的實(shí)現(xiàn)如下:
[0044] 2a)根據(jù)密鑰擴(kuò)展算法設(shè)定密鑰差分搜索過程中的最佳概率Bn和輪數(shù)n,本實(shí)施例 中選擇B n=0.25,n = 18進(jìn)行相關(guān)密鑰差分路徑的搜索。
[0045] 2b)對(duì)所有滿足條件的密鑰輸入差分做以下迭代搜索:計(jì)算i輪差分特征概率 ρορι…Pi,若poprii^Bn且i<n則進(jìn)入i+Ι輪的搜索;若ρ〇ρι···ρ0Β η且i=n則搜索到的密鑰 差分符合要求,輸出該密鑰差分。
[0046] 2c)步驟2b)中所有滿足條件的密鑰輸入差分是根據(jù)密碼算法中密鑰擴(kuò)展算法的 弱點(diǎn)來選擇的漢明重量較小的密鑰差分。本實(shí)施例中選取漢明重量為1的密鑰差分,此時(shí)本 實(shí)施例中所有滿足條件的密鑰輸入差分的數(shù)量為80。
[0047] 步驟3,將密鑰差分搜索方法與不可能差分搜索方法相結(jié)合
[0048] 對(duì)步驟2中輸出的每一密鑰差分做下述操作:
[0049] 3a)根據(jù)找到的重量小、擴(kuò)散慢的非零密鑰差分路徑確定相關(guān)密鑰不可能差分路 徑的輸入差分向量3和輸出差分向量J。
[0050] 本實(shí)施例中經(jīng)過密鑰差分搜索的結(jié)果,發(fā)現(xiàn)每三輪會(huì)出現(xiàn)一輪的非零密鑰,所以 搜到的密鑰差分在加密方向和解密方向分別會(huì)出現(xiàn)三種情況,分別用flag和flagl表示。變 量flag的取值為1、2、3,分別表示加密密鑰可能出現(xiàn)的三種輸入情況,即第一輪的密鑰為非 零;第一輪的密鑰為全零,而第二輪的密鑰為非零;第一輪和第二輪的密鑰均為全零,第三 輪的密鑰為非零(注此處還需設(shè)置變量記錄密鑰差分非零子塊的位置)。變量flagl的取值 為1、2、3,分別表示解密密鑰可能出現(xiàn)的三種輸入情況,即倒數(shù)第一輪的密鑰為非零;倒數(shù) 第一輪的密鑰為全零,而倒數(shù)第二輪的密鑰為非零;倒數(shù)第一輪和倒數(shù)第二輪的密鑰均為 全零,倒數(shù)第三輪的密鑰為非零。
[0051 ]本步驟的具體實(shí)現(xiàn)步驟如下:
[0052] 3al)根據(jù)flag的值確定不可能差分路徑的輸入差分,比如flag=l時(shí),要想使相關(guān) 密鑰不可能差分路徑加密方向達(dá)到最長(zhǎng),選擇分組密碼結(jié)構(gòu)的輸入差分也應(yīng)該為全0。根據(jù) 使相關(guān)密鑰不可能差分路徑達(dá)到最長(zhǎng)的原則得到輸入差分i。
[0053] 3a2)根據(jù)flag2的值確定不可能差分路徑的輸出差分f,選取原則和步驟3al)的 相同。
[0054] 3b)根據(jù)步驟2中所求得的密碼算法的加解密矩陣的規(guī)模將密鑰差分進(jìn)行轉(zhuǎn)化使 其適合矩陣運(yùn)算,一般將加密方向中每輪密鑰差分之前添加一半規(guī)模的〇,解密方向中每輪 密鑰差分之后添加一半規(guī)模的〇;或者將加密方向中每輪密鑰差分之后添加一半規(guī)模的〇, 解密方向中每輪密鑰差分之前添加一半規(guī)模的0。本實(shí)施例中每輪加密密鑰后32位補(bǔ)零,每 輪解密密鑰前32位補(bǔ)零。
[0055] 步驟4,計(jì)算加密方向最大輪數(shù)M(a,m)和解密方向最大輪數(shù)A/D,(/v77) :,:i表示分 組密碼的第i個(gè)子塊,本實(shí)施例中i取0~15,沉是m的補(bǔ)集,m表示每一輪中每個(gè)子塊的狀態(tài)。
[0056] m有四種狀態(tài),分別為全零用0表示,非零固定差分用1表示,非零非固定差分用2表 示,非零非固定差分異或非零固定差分記為3。
[0057] 對(duì)步驟3中確定的每對(duì)相關(guān)密鑰不可能差分路徑的輸入差分向量δ和輸出差分向 量g做下述操作:
[0058] 4a)根據(jù)輸入差分向量5進(jìn)行加密方向密鑰差分和加密矩陣ε的矩陣運(yùn)算,直到經(jīng) 過r輪后a 1·的所有分量都為不確定為止,
[0059] 4al)令r = 0,由于flag值的不同因而一開始的運(yùn)算也不同,如當(dāng)flag = 2時(shí),r = r+ 1,對(duì)于第i = 〇~7個(gè)半字節(jié),< ,對(duì)于第i = 8~15個(gè)半字節(jié)< =Ag:。
[0060] 4a2)之后的操作為每輪的輸入差分先和密鑰差分相加之后再和加密矩陣進(jìn)行矩 陣運(yùn)算。由于Feistel結(jié)構(gòu)的特殊性,每一輪的輸出中有一部分為該輪未經(jīng)過任何變化的輸 入部分,因此上述計(jì)算的輪輸出結(jié)果要人為保持這種不變性。每輪重復(fù)相同的操作,直到經(jīng) 過r輪后a 1·所有分量均為不確定為止。
[0061] 4b)根據(jù)輸出差分向量?進(jìn)行解密方向密鑰差分和解密矩陣D的矩陣運(yùn)算,直到經(jīng) 過r '輪后1/的所有分量都為不確定為止:
[0062] 該步的實(shí)現(xiàn)和4a)中相似,只是進(jìn)彳丁的是解密方向的操作,求得=
[0063] 4c)計(jì)算.Μ = max, "?Η-Μ A(/),爪);,其中m=〇,1,2,3,i = 0~15,若存在Μ =n,則存在該輪數(shù)的相關(guān)密鑰不可能差分路徑,否則不存在。
[0064] 名詞解釋:
[0065] Bn:設(shè)定的相關(guān)密鑰差分路徑搜索過程中的最佳概率。
[0066] Pl:搜索相關(guān)密鑰差分時(shí)每一輪的概率。
[0067] ε :NXN階加密特征矩陣,N的取值由分組密碼的規(guī)模決定。
[0068] D: N X N階解密特征矩陣,N的取值由分組密碼的規(guī)模決定。
[0069] S:相關(guān)密鑰不可能差分路徑的輸入差分向量。
[0070] 相關(guān)密鑰不可能差分路徑的輸出差分向量。
[0071 ] 經(jīng)過r輪加密運(yùn)算后輸出差分的第i個(gè)半字節(jié)。
[0072] # :經(jīng)過r'輪解密運(yùn)算后輸出差分的第i個(gè)半字節(jié)。
[0073] 釔:第r輪子密鑰的第i個(gè)半字節(jié)。
[0074]以上描述僅是本發(fā)明的一個(gè)具體實(shí)施例,且用該方法首次搜索到了 LBlock算法的 最大相關(guān)密鑰不可能差分路徑的輪數(shù)為18輪,是目前最好的結(jié)果。顯然對(duì)于本領(lǐng)域的專業(yè) 人員來說,在了解本
【發(fā)明內(nèi)容】
和原理后,都可以在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,對(duì)其 他具有廣義或非廣義Feistel結(jié)構(gòu)的分組密碼進(jìn)行細(xì)節(jié)上的修改后實(shí)施相關(guān)密鑰不可能差 分路徑最大長(zhǎng)度的搜索,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保 護(hù)范圍之內(nèi)。
[0075]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所述分組密碼相 關(guān)密鑰不可能差分路徑的搜索方法將不可能差分攻擊方法和相關(guān)密鑰攻擊方法相結(jié)合,不 僅適用于廣義Feistel結(jié)構(gòu)的密碼算法而且適用于非廣義Feistel結(jié)構(gòu)的密碼算法,使尋找 相關(guān)密鑰不可能差分路徑的方法使用計(jì)算機(jī)自動(dòng)搜索,并能夠計(jì)算分組密碼算法的相關(guān)密 鑰不可能差分路徑的最大長(zhǎng)度。2. 如權(quán)利要求1所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述分組密碼相關(guān)密鑰不可能差分路徑的搜索方法包括: 步驟一,分組密碼算法為非廣義Fei stel結(jié)構(gòu)但是能轉(zhuǎn)化成廣義Feistel結(jié)構(gòu)則將其轉(zhuǎn) 化成廣義Feistel結(jié)構(gòu),求出其加密矩陣ε和解密矩陣D;若分組密碼算法為廣義Feistel結(jié) 構(gòu),則直接計(jì)算其加解密矩陣。 步驟二,搜索相關(guān)密鑰差分路徑。 步驟三,將密鑰差分搜索方法與不可能差分搜索方法相結(jié)合。 步驟四,計(jì)算加密方向最大輪數(shù)Μεi(a,m)和解密方向最大輪數(shù).WD.(/Mi),將加密方向 的最大輪數(shù)和解密方向的最大輪數(shù)相加,若輪數(shù)之和與相關(guān)密鑰差分路徑輪數(shù)相等,則說 明存在該輪數(shù)的相關(guān)密鑰不可能差分路徑,否則不存在該輪數(shù)的相關(guān)密鑰不可能差分路 徑。3. 如權(quán)利要求2所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述步驟二具體包括: 第一步,根據(jù)密鑰擴(kuò)展算法設(shè)定密鑰差分搜索過程中的最佳概率心和輪數(shù)η。 第二步,對(duì)所有滿足條件的密鑰輸入差分做以下迭代搜索:計(jì)算i輪差分特征概率 ρορι…Pi,若口叩1'101311且;[<11則進(jìn)入丨+1輪的搜索;若口叩1'1013 11且丨=11則搜索到的密鑰 差分符合要求,輸出該密鑰差分。4. 如權(quán)利要求3所述第二步中所有滿足條件的密鑰輸入差分是根據(jù)密碼算法中密鑰擴(kuò) 展算法的弱點(diǎn)來選擇的漢明重量較小的密鑰差分。一般選取漢明重量為1的密鑰差分,此時(shí) 所有滿足條件的密鑰輸入差分的數(shù)量為初始密鑰的長(zhǎng)度。5. 如權(quán)利要求2所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述步驟三具體包括: 對(duì)步驟二輸出的每一密鑰差分做下述操作: 第一步,根據(jù)找到的重量小、擴(kuò)散慢的非零密鑰差分路徑確定相關(guān)密鑰不可能差分路 徑的輸入差分向量5和輸出差分向量S。 第二步,根據(jù)求得的密碼算法加解密矩陣的規(guī)模將密鑰差分進(jìn)行轉(zhuǎn)化,使其適合矩陣 運(yùn)算。6. 如權(quán)利要求5所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述第二步中的轉(zhuǎn)化與密碼算法結(jié)構(gòu)相關(guān),具體如下:將所求的相關(guān)密鑰差分根據(jù)加解密矩 陣進(jìn)行轉(zhuǎn)化使其適合矩陣運(yùn)算,一般將加密方向中每輪密鑰差分之前添加一半規(guī)模的0,解 密方向中每輪密鑰差分之后添加一半規(guī)模的〇;或者將加密方向中每輪密鑰差分之后添加 一半規(guī)模的〇,解密方向中每輪密鑰差分之前添加一半規(guī)模的〇。7. 如權(quán)利要求2所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述步驟四具體包括: 對(duì)步驟三中確定的每對(duì)相關(guān)密鑰不可能差分路徑的輸入差分向量δ和輸出差分向量g 做下述操作: 第一步,根據(jù)輸入差分向量3進(jìn)行加密方向密鑰差分和加密矩陣ε的矩陣運(yùn)算,直到經(jīng) 過r輪后a11的所有分莖都為不確走為止,記= 丨=叫。. 第二步,根據(jù)輸出差分向量石進(jìn)行解密方向密鑰差分和解密矩陣D的矩陣運(yùn)算,直到經(jīng) 過r'輪后1/的所有分量都為不確定為止,記/71)^丨,其中琢是m的補(bǔ) 集。 第三步,計(jì)算M = + 汍而丨,若存在M = n,則存在該輪數(shù)的相關(guān)密 鑰不可能差分路徑,否則不存在。8.如權(quán)利要求7所述的分組密碼相關(guān)密鑰不可能差分路徑的搜索方法,其特征在于,所 述第一步中的運(yùn)算如下:每輪的輸入差分先和密鑰差分相加之后再和加密矩陣進(jìn)行矩陣運(yùn) 算。由于Feistel結(jié)構(gòu)的特殊性,每一輪的輸出中有一部分為該輪未經(jīng)過任何變化的輸入部 分,因此上述計(jì)算的輪輸出結(jié)果要人為保持這種不變性。每輪重復(fù)相同的操作,直到經(jīng)過r 輪后#所有分量均為不確定為止。所述第二步中的運(yùn)算類似。
【文檔編號(hào)】H04L9/06GK106027226SQ201610317137
【公開日】2016年10月12日
【申請(qǐng)日】2016年5月13日
【發(fā)明人】謝敏, 牟彥利, 李靜靜, 裴慶祺, 楊盼, 臧越川
【申請(qǐng)人】西安電子科技大學(xué)