專(zhuān)利名稱(chēng):密碼處理裝置、密碼處理方法及其計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
密碼處理裝置、密碼處理方法及其計(jì)算機(jī)程序,特別是涉及對(duì)已知為解密分析處理和密碼分析攻擊處理的線性分析和差分分析能力具有提高的抵抗力的密碼處理裝置、密碼處理方法及其計(jì)算機(jī)程序。
背景技術(shù):
近來(lái),隨著網(wǎng)絡(luò)通信和電子商務(wù)的發(fā)展,通信中的安全保證成為關(guān)鍵問(wèn)題。保證安全的一種方法是密碼技術(shù),且當(dāng)前實(shí)際上正在進(jìn)行使用各種密碼技術(shù)的通信。
例如,實(shí)際使用了一種系統(tǒng),其中將密碼處理模塊嵌入在諸如IC卡之類(lèi)的小設(shè)備中,在IC卡和用作數(shù)據(jù)讀和寫(xiě)的設(shè)備的讀出器/寫(xiě)入器之間執(zhí)行數(shù)據(jù)發(fā)送和接收,執(zhí)行發(fā)送/接收數(shù)據(jù)的認(rèn)證處理或加密/解密。
在密碼處理中存在各種算法,它們被廣泛地劃分成其中設(shè)置不同加密密鑰和解密密鑰(例如,公用密鑰和秘密密鑰)的一個(gè)密碼系統(tǒng)和其中將公鑰設(shè)置為加密解密和解密密鑰的公用密鑰密碼系統(tǒng)。
在公用密鑰密碼系統(tǒng)中存在各種算法。其中一種是其中將公用密鑰用作基礎(chǔ)來(lái)產(chǎn)生多個(gè)密鑰,然后用產(chǎn)生的多個(gè)密鑰對(duì)各分組單位(64比特、128比特等)重復(fù)執(zhí)行數(shù)據(jù)變換處理的系統(tǒng)。應(yīng)用這種密鑰產(chǎn)生方法和數(shù)據(jù)變換處理的典型算法是公用密鑰分組密碼方法。
作為一種典型的公用密鑰分組密碼處理的算法,例如,存在一種作為美國(guó)聯(lián)邦標(biāo)準(zhǔn)加密并被廣泛地用于各種領(lǐng)域的DES(數(shù)據(jù)加密標(biāo)準(zhǔn))算法。
以DES為典型的任何公用密鑰分組密碼處理的方法能主要被劃分成舍入(round)函數(shù)部分,用于執(zhí)行輸入數(shù)據(jù)的變換,和密鑰調(diào)度部分,用于產(chǎn)生要應(yīng)用于舍入函數(shù)(F函數(shù))部分的各舍入中的密鑰。要應(yīng)用于舍入函數(shù)的各舍入中的舍入密鑰(子密鑰)在輸入一個(gè)主密鑰(主鍵)的密鑰調(diào)度部分中產(chǎn)生,并被應(yīng)用于各舍入函數(shù)部分中。
然而,在這種公用密鑰密碼處理中,通過(guò)密碼分析泄漏密鑰已成為問(wèn)題。作為典型的密碼分析技術(shù)或攻擊技術(shù),已知有差分分析(也稱(chēng)為差分密碼分析方法或差分密碼分析攻擊),其中,通過(guò)分析許多輸入數(shù)據(jù)(明文)及其輸出數(shù)據(jù)(密文)來(lái)分析各舍入函數(shù)中的應(yīng)用密鑰,和根據(jù)明文和相應(yīng)的密文進(jìn)行分析的線性分析(也稱(chēng)為線性密碼分析方法或線性密碼分析攻擊)。
通過(guò)密碼分析裝置易于分析密鑰是指密碼處理的低安全性。在傳統(tǒng)的DES算法中,存在一個(gè)問(wèn)題因?yàn)橐獞?yīng)用于舍入函數(shù)(F函數(shù))部分中的線性變換部分中的處理(變換矩陣)在各級(jí)舍入中相等,密碼分析易于進(jìn)行,因此導(dǎo)致易于分析密鑰。
發(fā)明內(nèi)容
由本發(fā)明解決的問(wèn)題考慮到上述問(wèn)題作出本發(fā)明,且其目的在于提供一種實(shí)現(xiàn)高度抗線性分析和差分分析的公用密鑰分組密碼算法、密碼處理方法及其計(jì)算機(jī)程序。
解決問(wèn)題的手段本發(fā)明的第一方面是針對(duì)用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,它配置成在多個(gè)舍入上執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù),其中與多個(gè)舍入的每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換部分具有對(duì)m個(gè)非線性變換部分的每一個(gè)輸出的n比特執(zhí)行線性變換處理(作為應(yīng)用正方MDS(最大可分開(kāi)距離)矩陣的線性變換處理)的配置,且至少在連續(xù)偶數(shù)舍入中和在連續(xù)奇數(shù)舍入中應(yīng)用不同正方MDS矩陣La、Lb,且由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的。
另外,在本發(fā)明的密碼處理的一個(gè)實(shí)施例中,密碼處理的特征在于由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是正方MDS矩陣。
另外,在本發(fā)明的密碼處理的一個(gè)實(shí)施例中,其算法的特征在于Feistel型公用密鑰分組密碼處理的算法是舍入數(shù)2r的密碼算法,且F函數(shù)的線性變換部分配置成執(zhí)行將q(2≤q<r)種不同正方MDS矩陣依次并重復(fù)地應(yīng)用于所有r個(gè)偶數(shù)舍入和所有r個(gè)奇數(shù)舍入中的線性變換處理。
另外,在本發(fā)明的密碼處理的一個(gè)實(shí)施例中,密碼處理裝置的特征在于要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)正方MDS矩陣中的每一個(gè)為由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的且線性無(wú)關(guān)的正方MDS矩陣。
另外,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施例中,密碼處理裝置的特征在于要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)正方MDS矩陣中的每一個(gè)為使得由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的矩陣也組成一個(gè)正方MDS矩陣的正方MDS矩陣。
另外,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施例中,密碼處理裝置的特征在于要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)正方MDS矩陣中的每一個(gè)由從包括構(gòu)成多個(gè)正方MDS矩陣的所有元素的正方MDS矩陣選擇的行向量組成的矩陣M’提取的列向量組成的矩陣形成。
本發(fā)明的第二方面是執(zhí)行Feistel型公用密鑰分組密碼處理的密碼方法,其特征在于,在多個(gè)舍入上重復(fù)地執(zhí)行用于執(zhí)行非線性變換處理和線性變換處理的SPN型F函數(shù),與多個(gè)舍入相對(duì)應(yīng)的F函數(shù)的線性變換處理執(zhí)行從m個(gè)非線變換部分輸出的n比特,總共mn比特的線性變換處理,作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理,至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中應(yīng)用不同的正方MDS矩陣La-1、Lb-1,且對(duì)正方MDS矩陣進(jìn)行線性變換處理,以使由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的。
另外,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施例中,密碼處理裝置的特征在于,對(duì)正方MDS矩陣進(jìn)行線性變換處理,以使由從構(gòu)成逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是正方MDS矩陣。
另外,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施例中,F(xiàn)eistel型公用密鑰分組密碼處理的算法的特征在于是舍入數(shù)2r的密碼算法,其中,F(xiàn)函數(shù)的線性變換處理是通過(guò)將q(2≤q<r)種不同正方MDS矩陣依次并重復(fù)地應(yīng)用于所有r個(gè)偶數(shù)舍入和所有r個(gè)奇數(shù)舍入中執(zhí)行線性變換處理。
另外,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施例中,密碼處理方法的特征在于,應(yīng)用于F函數(shù)中的線性變換處理的多個(gè)不同正方MDS矩陣中的每一個(gè)是由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的正方MDS矩陣并且是線性無(wú)關(guān)的。
另外,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施例中,密碼處理方法的特征在于要應(yīng)用于F函數(shù)的線性變換處理的多個(gè)不同正方MDS矩陣中的每一個(gè)是正方MDS矩陣,使得從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的矩陣也是正方MDS矩陣。
另外,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施例中,密碼處理方法的特征在于要應(yīng)用于F函數(shù)的線性變換處理的多個(gè)不同正方MDS矩陣中的每一個(gè)是由從在包括構(gòu)成多個(gè)正方MDS矩陣的所有元素的正方MDS矩陣中選擇的行向量所組成的矩陣M’選擇的列向量組成的矩陣形成的。
本發(fā)明的第三個(gè)方面是用于執(zhí)行Feistel型公用密鑰分組密碼處理的計(jì)算機(jī)程序,它包括在多個(gè)舍入上重復(fù)執(zhí)行進(jìn)行非線性變換處理和線性變換處理的SPN型F函數(shù)的步驟,其中與多個(gè)舍入中的每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理是執(zhí)行從m個(gè)非線變換部分輸出的n比特,總共mn比特的線性變換處理,作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理的線性變換步驟。在線性變換步驟中,至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中應(yīng)用不同的正方MDS矩陣La、Lb,且各正方MDS矩陣是這樣使得由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的。
注意,本發(fā)明的計(jì)算機(jī)程序是能通過(guò)存儲(chǔ)媒體和通信媒體中任一種以計(jì)算機(jī)可讀形式(例如,CD、FD、MO的存儲(chǔ)媒體等或網(wǎng)絡(luò)等的通信媒體)向例如能執(zhí)行各種程序代碼的計(jì)算機(jī)系統(tǒng)提供的計(jì)算機(jī)程序。通過(guò)以計(jì)算機(jī)可讀的形式提供這一程序,在計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)與程序相應(yīng)的處理。
本發(fā)明的其它目的、特征和優(yōu)點(diǎn)將從如附圖中所描繪的本發(fā)明的較佳實(shí)施例的下列說(shuō)明中明顯地看出。注意,在此說(shuō)明書(shū)中,系統(tǒng)是具有多個(gè)設(shè)備的邏輯組合的結(jié)構(gòu)的系統(tǒng),但不限于在相同的揭示中具有其自己的設(shè)備的系統(tǒng)。
根據(jù)本發(fā)明的配置,在多個(gè)舍入上重復(fù)執(zhí)行具有非線性變換部分的SPN型F函數(shù)的Feistel型公用密鑰分組密碼處理中,密碼處理如下配置執(zhí)行與多個(gè)舍入中每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理。且它配置成對(duì)正方MDS矩陣執(zhí)行線性變換處理,其中應(yīng)用至少在連續(xù)偶數(shù)舍入和在連續(xù)奇數(shù)舍入中不同的正方MDS矩陣La、Lb,且由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的或形成正方MDS矩陣。因此,對(duì)公用密鑰分組密碼的線性密碼分析攻擊的抵抗力增強(qiáng)且分析加密密鑰等的難度增加;因此,實(shí)現(xiàn)了高安全性密碼處理。
另外,根據(jù)本發(fā)明的配置,在其中在多個(gè)舍入上重復(fù)執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù)的Feistel型公用密鑰分組密碼處理的處理中,執(zhí)行與多個(gè)舍入中每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理,同時(shí)該處理配置成應(yīng)用至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中不同的正方MDS矩陣,且這些正方MDS矩陣本身配置成呈現(xiàn)線性無(wú)關(guān)或形成正方MDS矩陣。因此,可以通過(guò)不出現(xiàn)有源S盒(S-box)確保同時(shí)差對(duì)消,從而放大整個(gè)密碼函數(shù)中的有源S盒(S-box)的最小數(shù),它是對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的抵抗力的指數(shù)之一。此配置提高對(duì)線性密碼分析和差分密碼分析攻擊的抵抗力并實(shí)現(xiàn)更高安全性的密碼處理。
附圖簡(jiǎn)要說(shuō)明
圖1為示出具有Feistel結(jié)構(gòu)的典型公用密鑰分組密碼的配置。
圖2A和2B為解釋設(shè)置為舍入函數(shù)部分的F函數(shù)的結(jié)構(gòu)。圖2A為示出一個(gè)舍入中的F函數(shù)120的輸入和輸出的圖。圖2B為示出F函數(shù)120的結(jié)構(gòu)的細(xì)節(jié)的圖。
圖3為示出要應(yīng)用于線性變換處理的一個(gè)例子的圖。
圖4為解釋m=8且n=8的128比特分組密碼中三級(jí)的同時(shí)差對(duì)消。
圖5為解釋通過(guò)對(duì)正方MDS矩陣執(zhí)行線性變換產(chǎn)生F函數(shù)輸出差ΔYi的圖。
圖6為解釋m=8且n=8的128比特分組密碼中五級(jí)的同時(shí)差對(duì)消。
圖7為解釋公用密鑰分組密碼處理中任意級(jí)的同時(shí)差對(duì)消的定義。
圖8示出正方MDS矩陣的一個(gè)例子。
圖9為解釋作為根據(jù)本發(fā)明的公用密鑰分組密碼算法中各舍入的F函數(shù)的線性變換矩陣的正方MDS矩陣的設(shè)置例子的圖。
圖10為解釋作為根據(jù)本發(fā)明的公用密鑰分組密碼算法中各舍入的F函數(shù)的線性變換矩陣的正方MDS矩陣的處理的流程圖。
圖11為將產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子a1解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖12為將產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子a2解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖13為將產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子a3解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖14為解釋產(chǎn)生正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的處理例子a3的具體技術(shù)的圖。
圖15為解釋將產(chǎn)生實(shí)現(xiàn)對(duì)于線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子b1解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖16為解釋將產(chǎn)生實(shí)現(xiàn)對(duì)于線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖17為解釋將產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣的處理例子解釋成正方MDS矩陣(要在各舍入的F函數(shù)中設(shè)置的線性變換矩陣)的產(chǎn)生技術(shù)的流程圖。
圖18為將IC模塊的配置的一個(gè)例子顯示為用于執(zhí)行根據(jù)本發(fā)明的密碼處理的密碼處理裝置的圖。
最佳實(shí)施例下面將解釋本發(fā)明的密碼處理裝置、密碼處理方法及其計(jì)算機(jī)程序的細(xì)節(jié)。將以如下項(xiàng)的次序給出解釋。
1.公用密鑰分組密碼算法中的差分分析處理2.公用密鑰分組密碼算法中的線性分析3.根據(jù)本發(fā)明的密碼算法(3-a)產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子(3-b)產(chǎn)生實(shí)現(xiàn)對(duì)于線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子(3-c)產(chǎn)生實(shí)現(xiàn)對(duì)于差分密碼分析攻擊和線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子。
首先,將使用公用密鑰分組密碼處理的通用模塊解釋以DES(數(shù)據(jù)加密標(biāo)準(zhǔn))密碼處理為典型的公用密鑰分組密碼算法中的差分分析處理的要點(diǎn)。
公用密鑰分組密碼處理的算法主要能劃分成用于執(zhí)行輸入數(shù)據(jù)的變換的舍入函數(shù)部分和用于產(chǎn)生要應(yīng)用于舍入部分的各舍入中的密鑰的密鑰調(diào)度部分。應(yīng)用于舍入函數(shù)中的各舍入中的密鑰(子密鑰)由輸入一個(gè)主密鑰(主鍵)的密鑰調(diào)度部分根據(jù)它產(chǎn)生,并被應(yīng)用于各舍入。在此共用密鑰密碼系統(tǒng)的典型系統(tǒng)中,存在作為美國(guó)聯(lián)邦標(biāo)準(zhǔn)系統(tǒng)的DES(數(shù)據(jù)加密標(biāo)準(zhǔn))。
下面將參照?qǐng)D1解釋稱(chēng)為Feistel結(jié)構(gòu)的典型的公用密鑰分組密碼處理的結(jié)構(gòu)。
Feistel結(jié)構(gòu)具有通過(guò)簡(jiǎn)單重復(fù)變換函數(shù)將明文變換成密文的配置。明文的長(zhǎng)度設(shè)置為2mn(2xmxn)比特。這里,m和n都是整數(shù)。首先將2mn比特的明文劃分成兩個(gè)輸入數(shù)據(jù)mn比特的PL(明文左)101和mn比特的PR(明文右),并把它們用作輸入值。
Feistel結(jié)構(gòu)通過(guò)重復(fù)稱(chēng)為舍入函數(shù)的基本結(jié)構(gòu)來(lái)表達(dá),且各舍入中所包括的數(shù)據(jù)變換函數(shù)稱(chēng)為F函數(shù)120。圖1示出由重復(fù)r級(jí)的F函數(shù)(舍入函數(shù))120組成的示例配置。
例如,在第一舍入中,將從密鑰產(chǎn)生單元(圖1中未示出)輸入的mn比特輸入數(shù)據(jù)x和mn比特舍入密鑰K1103輸入F函數(shù)120,該函數(shù)在其中進(jìn)行數(shù)據(jù)變換處理后輸出具有mn比特的數(shù)據(jù)Y。異或部分104對(duì)該輸出和來(lái)自上級(jí)的其它輸入數(shù)據(jù)執(zhí)行異或運(yùn)算,并將mn比特的運(yùn)算結(jié)果輸出至下一舍入函數(shù)。密碼處理通過(guò)應(yīng)用此處理(即,F(xiàn)函數(shù)重復(fù)預(yù)定舍入數(shù)(r))來(lái)完成并輸出密文的劃分的數(shù)據(jù)CL(密文左)和數(shù)據(jù)CR(密文右)。上述配置導(dǎo)致以下事實(shí)為了譯碼Feistel結(jié)構(gòu),只需將插入舍入密鑰的序列反轉(zhuǎn),而不必配置反函數(shù)。
將參照?qǐng)D2解釋設(shè)置成各舍入的函數(shù)的F函數(shù)120的結(jié)構(gòu)。圖2A為示出一個(gè)舍入中F函數(shù)120的輸入和輸出的圖。圖2B為示出F函數(shù)120的結(jié)構(gòu)的細(xì)節(jié)的圖。如圖2B中所示,F(xiàn)函數(shù)120具有由非線性變換層和線性變換層一起組成的所謂的SPN型結(jié)構(gòu)。
如圖2B中所示,SPN型F函數(shù)120具有多個(gè)用于執(zhí)行非線性變換處理的S盒121。對(duì)來(lái)自上級(jí)舍入函數(shù)部分的mn比特個(gè)輸入值x以及從密鑰調(diào)度部分輸入的舍入密鑰Ki執(zhí)行異或運(yùn)算,并將其輸出輸入至各執(zhí)行n比特非線性變換處理的多(m)個(gè)S盒。各S盒執(zhí)行應(yīng)用例如換算表的非線性變換處理。
將mn比特輸出值Z(來(lái)自S盒121的輸出數(shù)據(jù))輸入至用于執(zhí)行線性變換處理的線性變換部分122,它執(zhí)行線性變換處理,例如交換比特位置的處理等,并輸出mn比特輸出值Y。對(duì)輸出值Y以及來(lái)自上級(jí)的輸入數(shù)據(jù)進(jìn)行異或運(yùn)算,并將其結(jié)果分配給下一舍入的F函數(shù)的輸入值。
在圖2中所示的F函數(shù)120中,輸入/輸出的比特長(zhǎng)度為mxn(m,n整數(shù)),非線性變換層具有一種配置,其中平行排列各用作輸入和輸入為n比特的非線性變換層的m個(gè)S盒121,且作為線性變換層的線性變換部分122根據(jù)第m個(gè)方陣執(zhí)行線性變換處理,所述方陣具有在由第n個(gè)不可約分(irreducible)的多項(xiàng)式定義的擴(kuò)展域GF(2n)上的元素作為其元素。
圖3示出要應(yīng)用于線性變換部分122中的線性變換處理的方陣的一個(gè)例子。圖3中所示的方陣125是n=8且m=8的一個(gè)例子。對(duì)從應(yīng)用預(yù)定方陣125的非線性變換部分(S盒121)輸出的mn比特?cái)?shù)據(jù)z[1],z[2],...,z[m]進(jìn)行線性變換,并確定Y[1],Y[2],...,Y[m]作為F函數(shù)(舍入函數(shù))輸出的輸出。注意,在2的預(yù)定擴(kuò)展域GF(2n)上執(zhí)行各數(shù)據(jù)的矩陣的元素的線性運(yùn)算。
因?yàn)橹两袷褂玫腇eistel型密碼對(duì)所有級(jí)的F函數(shù)使用相同的線性變換層,存在在差傳播時(shí)多個(gè)差同時(shí)對(duì)消的特性。如背景技術(shù)中所述,作為典型的密碼分析技術(shù),已知一種差分分析(或差分解密技術(shù)),其中通過(guò)分析許多輸入數(shù)據(jù)(明文)及其輸出數(shù)據(jù)(密文)來(lái)分析用于各舍入函數(shù)的應(yīng)用密鑰。在諸如DES密碼算法之類(lèi)的傳統(tǒng)公用密鑰分組密碼處理中,因?yàn)橐獞?yīng)用于F函數(shù)120的線性變換部分122中的處理(變換矩陣)被設(shè)置為在各級(jí)的舍入中相等,所以易于進(jìn)行差分分析,從而易于密鑰的分析。
下面將參照?qǐng)D4解釋在傳播差時(shí)同時(shí)對(duì)消多個(gè)差。在本說(shuō)明中,當(dāng)表達(dá)差時(shí),差通過(guò)添加符號(hào)△(三角)來(lái)表示。
圖4為解釋在m=8且n=8的128比特塊密碼中三級(jí)的差同時(shí)消除。注意,在該圖中,64比特?cái)?shù)據(jù)應(yīng)按每字節(jié)劃分,每一個(gè)應(yīng)表達(dá)成向量,且每一元素應(yīng)以十六進(jìn)制來(lái)表示。
在具有三級(jí)結(jié)構(gòu)的F函數(shù)中差同時(shí)對(duì)消例如基于下列數(shù)據(jù)狀態(tài)1-4的設(shè)置機(jī)構(gòu)而發(fā)生。由下述機(jī)構(gòu)產(chǎn)生的數(shù)據(jù)狀態(tài)是能通過(guò)設(shè)置許多差輸入數(shù)據(jù)來(lái)產(chǎn)生的數(shù)據(jù)狀態(tài),即,這能在分析所謂的差分分析中的密鑰(舍入密鑰)來(lái)產(chǎn)生。
(狀態(tài)1)假設(shè)輸入至舍入i的差的左半部分由全部零的輸入差(ΔXi-1=(00,00,00,00,00,00,00,00))構(gòu)成,而其右半部分由除了輸入至僅一個(gè)S盒的輸入以外的全部零的輸入差(ΔXi-1=(34,00,00,00,00,00,00,00))構(gòu)成。此數(shù)據(jù)狀態(tài)指示通過(guò)設(shè)置許多差輸入數(shù)據(jù),能在舍入i中獲取這一數(shù)據(jù)狀態(tài)。
(ΔXi-1=(34,00,00,00,00,00,00,00))中的8個(gè)元素與對(duì)應(yīng)于F函數(shù)中構(gòu)成的相應(yīng)的m個(gè)S盒(m=8)的輸入差相對(duì)應(yīng)。差(34)被輸入第一S盒(圖4中的(S1)),且(00)是第二-第八個(gè)盒的輸入差。
這里,具有零(00)的輸入差的S盒的輸出差為零(00)。至于該差數(shù)據(jù),具有零(00)的輸入差的S盒不產(chǎn)生效果,因此被稱(chēng)為無(wú)效果的S盒,即無(wú)效S盒。另一方面,具有非零的輸入差(在圖4的例子中,差=34)的S盒產(chǎn)生與非零的輸入差相對(duì)應(yīng)的非線性變換結(jié)果,因此被稱(chēng)為有效S盒。
在圖4的例子中,產(chǎn)生輸入非零的輸入差(34)的一個(gè)有效S盒(S1)的輸出差(b7)。其它無(wú)效S盒S2-S8分別根據(jù)0的輸入差(00)產(chǎn)生輸出差(00),并提供它們作為線性變換部分的差輸入。
(狀態(tài)2)從具有非0的輸入差的S盒(下文稱(chēng)為有效S盒)到舍入i的輸出差在線性轉(zhuǎn)變層中傳播,并從F函數(shù)輸出(輸出值=ΔYi),按照原樣成為下一舍入的輸入差ΔXi+1。
圖4中的線性變換是對(duì)各舍入中共有的某特定方陣125執(zhí)行線性變換,例如,如圖5所示,以輸出ΔYi=(98,c4,b4,d3,ac,72,0f,32)作為舍入i的F函數(shù)輸出差。從圖5中示出線性變換結(jié)構(gòu)能理解將輸出差ΔYi=(98,c4,b4,d3,ac,72,0f,32)確定為只取決于來(lái)自一個(gè)有效S盒(S1)的輸出元素Z[1]=b7的值。
這一作為此舍入i的F函數(shù)輸出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的輸入差(ΔXi-1=(00,00,00,00,00,00,00,00))一起在圖4中所示的異或部分131中進(jìn)行異或(XOR)運(yùn)算。對(duì)下一舍入i+1的運(yùn)算結(jié)果給出為ΔXi+1。
因?yàn)閷?duì)作為舍入i的F函數(shù)輸出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的輸入差ΔXi-1=(00,00,00,00,00,00,00,00)的異或(XOR)運(yùn)算的結(jié)果為ΔYi,到下一舍入i+1的輸入差ΔXi+1變得等于ΔYi=(98,c4,b4,d3,ac,72,0f,32)。
(狀態(tài)3)來(lái)自舍入i+1的輸出差ΔYi+1只有在舍入i中的有效S盒的位置上具有非零值。此數(shù)據(jù)狀態(tài)指示通過(guò)設(shè)置許多差輸入數(shù)據(jù),能取得這一數(shù)據(jù)狀態(tài)。
即,ΔYi+1=(ad,00,00,00,00,00,00,00),且輸出差ΔYi+1只有在具有非零差值(與舍入i相似)的S盒(第一S盒(S1))的位置上具有非零值。另外,很清楚ad≠00。
(狀態(tài)4)如圖4中所示,在舍入i+2中的有效S盒(S1)的輸出差與舍入i中的有效S盒(S1)的輸出差一致的情況下,舍入i+2中的有效S盒(S1)的輸出差變?yōu)閎7并與有效S盒(S1)的輸出差(b7)一致。此數(shù)據(jù)狀態(tài)指示通過(guò)設(shè)置許多差輸入數(shù)據(jù),能獲得這一數(shù)據(jù)狀態(tài)。
當(dāng)這一數(shù)據(jù)狀態(tài)出現(xiàn)時(shí),舍入i+2中的有效S盒(S1)的輸出差ΔYi+2=(98,c4,b4,d3,ac,72,0f,32)將與先前的僅一個(gè)舍入-舍入i的F函數(shù)的輸出差ΔYi=(98,c4,b4,d3,ac,72,0f,32)相一致。
結(jié)果,異或部分133將對(duì)相同值的ΔXi+1=ΔYi=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+2=(98,c4,b4,d3,ac,72,0f,32)執(zhí)行異或運(yùn)算,并輸出全部零的值作為異或運(yùn)算的結(jié)果。
結(jié)果,來(lái)自產(chǎn)生到下一級(jí)(舍入i+3)的輸出差的前一級(jí)(舍入i+2)的左輸入差ΔXi+3變成ΔXi+3=(00,00,00,00,00,00,00,00)。
到此舍入i+3的左輸入ΔXi+3=(00,00,00,00,00,00,00,00)由全零組成,就象到舍入i的左輸入差ΔXi-1=(00,00,00,00,00,00,00,00),且可能在舍入i+3和后面的舍入中也重復(fù)與舍入i至i+2相同的處理。
結(jié)果,出現(xiàn)一個(gè)問(wèn)題與舍入數(shù)的增加相比,有效S盒的數(shù)量將不增加,對(duì)差分密碼分析攻擊的魯棒性將不增加那么多。
在公用密鑰分組密碼中,已知整個(gè)密碼函數(shù)中的有效S盒的最小數(shù)是對(duì)差分密碼分析攻擊的魯棒性指標(biāo)中的一個(gè)。有效S盒的最小數(shù)越大,則確定對(duì)差分密碼分析的抵抗力越高。
如上所述,差分分析(差分密碼攻擊)是通過(guò)設(shè)置許多具有一定差的輸入數(shù)據(jù)(明文)及它們的輸出數(shù)據(jù)(密文)來(lái)分析各舍入函數(shù)中的應(yīng)用密鑰并分析此對(duì)應(yīng)性的技術(shù)。如果在此差分分析中能減少有效S盒的數(shù)量,將變得易于分析并將減少分析處理的數(shù)量。
雖然參照上述圖4的例子,只有第一S盒(S1)是有效S盒的圖形的出現(xiàn)狀態(tài),對(duì)于其它S盒(S2-S8),通過(guò)設(shè)置差分分析的輸入數(shù)據(jù),其中將各S盒設(shè)置為有效盒的設(shè)置也是可能的。
因此,通過(guò)進(jìn)行象這樣的差分分析過(guò)程,可以分析各S盒的非線性變換處理,并進(jìn)一步分析為F函數(shù)輸入的舍入密鑰。
為了增加對(duì)這樣的差分分析的抵抗力,需要總是維持有效S盒的數(shù)量為大的狀態(tài),即,大的有效S盒的最小數(shù)。
在參照?qǐng)D4所述的例子中,在從右到左的方向上被給予輸入的F函數(shù)的情況中,即,當(dāng)只認(rèn)為舍入i和舍入i+2是有效S盒計(jì)算處理的目標(biāo)舍入時(shí),有效S盒的數(shù)量只是2,在從左到中的方向上被給予輸入的F函數(shù)中,舍入i+1中的有效S盒的數(shù)量為8,但有效S盒的數(shù)量通過(guò)同時(shí)差對(duì)消而變成0,從而各S盒通過(guò)差分分析的非線性變換處理的分析處理變得容易。
圖4中所示的公用密鑰分組密碼算法是應(yīng)用于相應(yīng)的舍入中的線性變換部分中的線性變換矩陣相等,且此特定配置導(dǎo)致可能由僅僅兩個(gè)有效S盒(特別在從右到左的方向上被給予輸入的F函數(shù)中)引起同時(shí)差對(duì)消。因此,存在一個(gè)問(wèn)題與舍入數(shù)的增加相比,有效S盒的最小數(shù)將不完全增加,對(duì)差分密碼分析攻擊的魯棒性不增加那么多。
下面,類(lèi)似地,在其中將相同的線性變換矩陣用于所有級(jí)(舍入)的F函數(shù)的配置中,將參照?qǐng)D6解釋在5個(gè)舍入上的同時(shí)差對(duì)消的出現(xiàn)機(jī)制。
圖6為解釋m=8且n=8的128比特塊密碼中五級(jí)的同時(shí)差對(duì)消。注意,在圖中,64比特?cái)?shù)據(jù)可以通過(guò)對(duì)一個(gè)字節(jié)劃分它而表示成向量且各元素應(yīng)以十六進(jìn)制來(lái)表示。
例如根據(jù)數(shù)據(jù)狀態(tài)1-7的下列設(shè)置機(jī)制,再現(xiàn)具有五級(jí)配置的F函數(shù)中的同時(shí)差對(duì)消。由下述機(jī)制產(chǎn)生的數(shù)據(jù)狀態(tài)是能通過(guò)設(shè)置許多差輸入數(shù)據(jù)來(lái)產(chǎn)生的數(shù)據(jù)狀態(tài),且該數(shù)據(jù)狀態(tài)可以在所謂的差分分析中分析密鑰(舍入密鑰)來(lái)產(chǎn)生。
(狀態(tài)1)使對(duì)舍入I的輸入差的左半部分由全部零的輸入差組成(ΔXi-1=(00,00,00,00,00,00,00,00))構(gòu)成,而其右半部分由除了輸入至僅一個(gè)S盒的輸入以外的全部零的輸入差(ΔXi-1=(34,00,00,00,00,00,00,00))構(gòu)成。此數(shù)據(jù)狀態(tài)指示通過(guò)設(shè)置許多差輸入數(shù)據(jù),能在舍入i中獲取這一數(shù)據(jù)狀態(tài)。
(ΔXi-1=(34,00,00,00,00,00,00,00))的8個(gè)元素與F函數(shù)中構(gòu)成的相應(yīng)m個(gè)S盒(m=8)的輸入差相對(duì)應(yīng)。差(34)被輸入第一S盒(圖6中的(S1)),且(00)是第二-第八個(gè)盒的輸入差。
如上所述,具有零(00)的輸入差的S盒的輸出差為零(00)。至于輸出差,具有零的輸入差的S盒不執(zhí)行任何運(yùn)算,因此被稱(chēng)為無(wú)效果的S盒,即無(wú)效S盒。另一方面,具有非零的輸入差(在圖6的例子中,差=34)的S盒產(chǎn)生與非零的輸入差相對(duì)應(yīng)的非線性變換結(jié)果作為輸出差,因此被稱(chēng)為有效S盒。
在圖6的例子中,產(chǎn)生輸入的非零的輸入差(34)的一個(gè)有效S盒(S1)的輸出差(b7)。其它無(wú)效S盒S2-S8根據(jù)0的輸入差(00)產(chǎn)生輸出差(00),并分配它們作為線性變換部分的差輸入。
(狀態(tài)2)從具有非0的輸入差的S盒(下文稱(chēng)為有效S盒)到舍入i的輸出差(圖4的例子中,差=34)散布在線性轉(zhuǎn)變層中,并從F函數(shù)輸出(輸出值=ΔYi),按照原樣成為下一舍入的輸入差ΔXi+1。
在圖6中,對(duì)每一舍入中共有的某特定方陣125執(zhí)行線性變換,例如,如圖5所示,輸出ΔYi=(98,c4,b4,d3,ac,72,0f,32)作為舍入i的F函數(shù)輸出差而被輸出。
作為舍入i的F函數(shù)輸出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的輸入差(ΔXi-1=(00,00,00,00,00,00,00,00))一起在圖6中所示的異或部分141中進(jìn)行異或(XOR)運(yùn)算,且運(yùn)算結(jié)果變成輸入至下一舍入i+1的輸入差。
因?yàn)閷?duì)作為舍入i的F函數(shù)輸出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的輸入差(ΔXi-1=(00,00,00,00,00,00,00,00))的異或(XOR)運(yùn)算的結(jié)果為ΔYi,輸入至下一舍入i+1的輸入差ΔXi+1變成ΔXi+1=ΔYi=(98,c4,b4,d3,ac,72,0f,32)。
(狀態(tài)3)來(lái)自舍入i+1的F函數(shù)的輸出差ΔYi+1只有在舍入i中的有效S盒的位置上具有非零值。此數(shù)據(jù)狀態(tài)指示通過(guò)設(shè)置許多差輸入數(shù)據(jù),能取得這一數(shù)據(jù)狀態(tài)。
即,ΔYi+1為ΔYi+1=(34,00,00,00,00,00,00,00),且如舍入i只有在具有非零差值(在圖6中的例子中,差=34)的S盒(第一S盒(S1))的位置上具有非零值。
(狀態(tài)4)到舍入i+2的F函數(shù)的輸入是在異或部分142中對(duì)相同的數(shù)據(jù)ΔXi=(34,00,00,00,00,00,00,00)和ΔYi+1=(34,00,00,00,00,00,00,00)的異或運(yùn)算的結(jié)果,并成為由全零構(gòu)成的輸入,ΔXi+2=(00,00,00,00,00,00,00,00)。結(jié)果,來(lái)自舍入i+2的F函數(shù)的輸出差也變成由全零構(gòu)成的輸出差,ΔYi+2=(00,00,00,00,00,00,00,00)。
(狀態(tài)5)至舍入i+3的F函數(shù)的輸入是在異或部分143中對(duì)為全零的舍入i+2的F函數(shù)輸出差的ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+2=(00,00,00,00,00,00,00,00)的異或運(yùn)算的結(jié)果,并成為到舍入i+3的F函數(shù)的輸入ΔXi+3=ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)。
(狀態(tài)6)舍入i+3的F函數(shù)輸出差變成ΔYi+3=(43,00,00,00,00,00,00,00)。在異或部分144中對(duì)這些差以及由全零構(gòu)成的ΔXi+2=(00,00,00,00,00,00,00,00)的異或運(yùn)算導(dǎo)致ΔXi+4=ΔYi+3=(43,00,00,00,00,00,00,00),它變成舍入i+4的F函數(shù)輸入差。
(狀態(tài)7)當(dāng)舍入i+4中的有效S盒(S1)的輸出差與舍入i中的有效S盒(S1)的輸出差一致時(shí),舍入i+4中的有效S盒(S1)的輸出差變成b7,如圖6中所示,并與舍入i中的有效S盒(S1)的輸出差(b7)一致。這一數(shù)據(jù)狀態(tài)指示,通過(guò)設(shè)置許多差輸入數(shù)據(jù),能取得這一數(shù)據(jù)狀態(tài)。
當(dāng)這一數(shù)據(jù)狀態(tài)出現(xiàn)時(shí),舍入i+4中的有效S盒(S1)的輸出差ΔYi+4=(98,c4,b4,d3,ac,72,0f,32)將與先前的僅一個(gè)舍入-舍入i+2的異或部分143的輸出差ΔXi+3=(98,c4,b4,d3,ac,72,0f,32)相一致。
結(jié)果,在異或部分145中,將對(duì)相同值的ΔXi+3=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+4=(98,c4,b4,d3,ac,72,0f,32)執(zhí)行異或運(yùn)算,并輸出全部零的值作為異或運(yùn)算的結(jié)果。
因此,將到下一級(jí)(舍入i+5)的輸出差設(shè)置為ΔXi+5=(00,00,00,00,00,00,00,00)。
對(duì)此舍入i+5的左輸入ΔXi+3=(00,00,00,00,00,00,00,00)由全零組成,就象對(duì)舍入i的左輸入ΔXi-1=(00,00,00,00,00,00,00,00),且可能在舍入i+5和后面的舍入中也重復(fù)與舍入i至i+4相同的處理。
結(jié)果,出現(xiàn)一個(gè)問(wèn)題與舍入數(shù)的增加相比,有效S盒的數(shù)量不增加,對(duì)差分密碼分析攻擊的魯棒性不增加那么多。
如上所述,差分分析(差分密碼攻擊)是通過(guò)設(shè)置許多具有一定差的輸入數(shù)據(jù)(明文)及它們的輸出數(shù)據(jù)(密文)來(lái)分析各舍入函數(shù)中的應(yīng)用密鑰并分析此對(duì)應(yīng)性的技術(shù)。在此差分分析中,如果能減少有效S盒的數(shù)量,將成為易于分析并將能減少分析處理的數(shù)量。
在參照?qǐng)D6所述的例子中,在從右到左的方向上被給予輸入的F函數(shù)的情況中,即,當(dāng)只認(rèn)為舍入i、舍入i+2和舍入i+4是有效S盒計(jì)算處理的目標(biāo)舍入時(shí),有效S盒的數(shù)量只是2,即,舍入i=1、舍入i+2=0和舍入i+4=1的和。在從左到中的方向上被給予輸入的F函數(shù)的情況中,即,在只認(rèn)為舍入i+1、舍入i+3是目標(biāo)舍入的情況下,雖然有效S盒的數(shù)量為8,舍入i+5中的有效S盒的數(shù)量因?yàn)橥瑫r(shí)差對(duì)消而變成0;因此,從而通過(guò)差分分析和密碼分析處理F函數(shù)的輸入舍入密鑰對(duì)各S盒所進(jìn)行的非線性變換處理的分析變得相對(duì)容易。
雖然參照?qǐng)D6的例子呈現(xiàn)只有第一S盒(S1)是有效S盒的圖形的出現(xiàn)狀態(tài),對(duì)于其它S盒(S2-S8),差分分析的輸入數(shù)據(jù)的設(shè)置使得能將其它S盒中任何一個(gè)設(shè)置為有效盒,因此,這一差分分析處理的執(zhí)行將使得能分析各S盒的非線性變換處理并進(jìn)一步分析輸入至F函數(shù)的舍入密鑰。
雖然參照?qǐng)D4和圖6解釋了在三和五舍入的情況中同時(shí)差對(duì)消的出現(xiàn),如果將這些情況推廣成任意舍入數(shù)來(lái)定義同時(shí)差對(duì)消,給出下列定義。參見(jiàn)圖7,將解釋任意舍入數(shù)中的同時(shí)差對(duì)消的定義。圖7示出執(zhí)行Feistel結(jié)構(gòu)的公用密鑰分組密碼處理的Feistel結(jié)構(gòu)的只一個(gè)(i,i+2,i+4,...,i+2j)系列舍入。
“定義”在舍入I中的Feistel結(jié)構(gòu)的輸入差的一半由0組成(在圖7中,ΔXi=(00,00,00,00,00,00,00,00))并對(duì)它們中每一個(gè)和舍入i+2j的F函數(shù)的輸出差的每一個(gè)進(jìn)行異或部分中的異或運(yùn)算的處理中,將異或運(yùn)算的結(jié)果變?yōu)?(在圖7中,ΔXi+2j+1=(00,00,00,00,00,00,00,00))的情況稱(chēng)為同時(shí)差對(duì)消。
此時(shí),舍入i,i+2,i+4,...,i+2k的F函數(shù)中存在的有效S盒被稱(chēng)為引起同時(shí)差對(duì)消的有效S盒。將向量A的非零元素的數(shù)量定義為漢明權(quán)重hw(A),能通過(guò)下列等式表達(dá)引起同時(shí)差對(duì)消的有效S盒數(shù)“a”。
a=Σj=0khw(ΔXi+2j)]]>在上述三個(gè)舍入和五個(gè)舍入的例子中,引起同時(shí)差對(duì)消的有效S盒的數(shù)量為兩個(gè),即,a=2。
如上所述,對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的魯棒性指標(biāo)中的一個(gè)是整個(gè)密碼函數(shù)中的有效S盒的最小數(shù),且確定有效S框的最小數(shù)越大,對(duì)差分密碼分析的抵抗力變得越高。
然而,在如DES算法中將相同的線性變換矩陣用于所有級(jí)F函數(shù)的配置中,可能只有兩個(gè)有效S盒引起同時(shí)差對(duì)消,如能從參照?qǐng)D4和圖6所作的解釋中理解的那樣。存在一個(gè)問(wèn)題因?yàn)檫@種特性的呈現(xiàn),有效S盒的最小數(shù)不充分增加,對(duì)差分分析攻擊的魯棒性沒(méi)有被增強(qiáng)那么多。
如上所述,差分分析處理需要分析的執(zhí)行者來(lái)準(zhǔn)備具有恒定差的輸入數(shù)據(jù)(明文)并分析其相應(yīng)的輸出數(shù)據(jù)(密文)。對(duì)于線性分析處理,不必準(zhǔn)備具有恒定差的輸入數(shù)據(jù)(明文)且根據(jù)其數(shù)量等于或大于預(yù)定數(shù)量的輸入數(shù)據(jù)(明文)及其相應(yīng)的輸出數(shù)據(jù)(密文)執(zhí)行分析。
如上所述,在公用密鑰分組密碼算法中,準(zhǔn)備作為非線變換部分的S盒且在輸入數(shù)據(jù)(明文)及其相應(yīng)的輸出數(shù)據(jù)(密文)之間沒(méi)有線性關(guān)系。在線性分析中,通過(guò)線性逼近此S盒的輸入/輸出,分析許多數(shù)據(jù)(明文)和相應(yīng)輸出數(shù)據(jù)(密文)的構(gòu)成比特值之間的線性關(guān)系,并縮小所采用的候選密鑰的范圍來(lái)進(jìn)行分析。在線性分析中,不必準(zhǔn)備具有特定差的輸入數(shù)據(jù),且只有通過(guò)準(zhǔn)備大量明文及它們相應(yīng)的密文才有可能分析。
下面將解釋本發(fā)明的密碼算法。本發(fā)明的密碼算法具有提高對(duì)上述線性分析攻擊、差分分析攻擊等的抵抗力的結(jié)構(gòu),即具有提高密鑰分析中的難度并增強(qiáng)安全性的結(jié)構(gòu)。
關(guān)于本發(fā)明的密碼算法的一個(gè)特征在于通過(guò)設(shè)置多個(gè)不同的正方MDS(最大可分離距離)矩陣來(lái)構(gòu)成算法,而不是象傳統(tǒng)DES算法那樣將共同處理(變換矩陣)應(yīng)用于各舍入的F函數(shù)的線性變換部分的結(jié)構(gòu)。具體來(lái)說(shuō),該算法配置成執(zhí)行線性變換處理,應(yīng)用至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中不同的正方MDS矩陣。
關(guān)于本發(fā)明的密碼算法實(shí)現(xiàn)一種結(jié)構(gòu),通過(guò)該結(jié)構(gòu),利用正方MDS(最大可分離距離)矩陣的特性,基于少數(shù)量的有效S盒的同時(shí)差對(duì)消不出現(xiàn)或至少較少可能出現(xiàn),使得有效S盒的最小數(shù)被放大并實(shí)現(xiàn)了對(duì)差分密碼分析攻擊更有魯棒性的公用密鑰分組密碼處理。另選地,本發(fā)明實(shí)現(xiàn)一種使作為已知明文密碼分析攻擊而執(zhí)行的具有線性分析的困難性的結(jié)構(gòu)。
本發(fā)明的密碼算法應(yīng)用一種稱(chēng)為具有參照?qǐng)D1和2所述的SPN型F函數(shù)的Feistel結(jié)構(gòu)的典型公用密鑰分組密碼結(jié)構(gòu),即應(yīng)用一種通過(guò)在多個(gè)舍入上簡(jiǎn)單重復(fù)具有非線性轉(zhuǎn)變部分和線性轉(zhuǎn)變部分的SPN型F函數(shù)將明文變換成密文或?qū)⒚芪淖儞Q成明文的結(jié)構(gòu)。
例如,假設(shè)明文的長(zhǎng)度為2mn(這里,m和n均為整數(shù))。該結(jié)構(gòu)將2mn比特的明文劃分為各mn比特的兩個(gè)數(shù)據(jù)PL(明文左和明文右),并將它們用作輸入值執(zhí)行各舍入中的F函數(shù)。F函數(shù)是具有由連接在一起的由S盒組成的非線性變換部分和線性變換部分組成的SPN型的F函數(shù)。
在本發(fā)明的配置中,作為用于要應(yīng)用于F函數(shù)中的線性變換部分中的線性變換處理的矩陣,從多個(gè)不同正方MDS(最大可分離距離)矩陣選擇的矩陣被設(shè)置成要應(yīng)用于各舍入的F函數(shù)的線性變換部分中。具體來(lái)說(shuō),應(yīng)用了至少在連續(xù)偶數(shù)舍入中和在連續(xù)奇數(shù)舍入中不同的正方MDS矩陣。
將解釋正方MDS矩陣。正方MDS矩陣是滿足下列(a)和(b)的特性的矩陣。(a)矩陣為正方矩陣。(b)包括在矩陣中的所有子矩陣都不是零,即det(子矩陣)≠0。
滿足上述(a)和(b)的條件的矩陣被稱(chēng)為正方MDS矩陣。在公用密鑰分組密碼的各舍入中執(zhí)行的到F函數(shù)的輸入/輸出位的長(zhǎng)度為mxn比特(m,n整數(shù))。圖8示出在用各具有n比特輸入/輸出的m個(gè)S盒構(gòu)成在F函數(shù)中配置的非線性變換部分,且該線性變換部分根據(jù)各具有由第n個(gè)不可約分多項(xiàng)式定義的2的擴(kuò)展域GF(2n)上的元素作為其元素的第m個(gè)方陣來(lái)執(zhí)行線性變換處理。圖8中所示的正方MDS矩陣的一個(gè)例子是n=8且m=8的正方MDS矩陣的一個(gè)例子。
由漢明權(quán)重hw(A)指定向量中的非零元素的數(shù)量,由M指定第m個(gè)正方MDS矩陣,并由x指定輸入至正方MDS矩陣的輸入向量,滿足上述(a)和(b)的正方MDS矩陣滿足下列不等式(方程式1)hw(x)+hw(Mx)≥m+1............(方程式1)上述表達(dá)式(方程式1)指示用正方MDS矩陣(M)線性變換的輸出數(shù)據(jù)Mx的非零元素hw(x)的總數(shù)加上用正方MDS矩陣(M)線性變換的輸入數(shù)據(jù)x的非零元素hw(Mx)的總數(shù)大于正方MDS矩陣的階數(shù)m。
另外,因?yàn)檎組DS代碼(最大可分離代碼)的生成矩陣的標(biāo)準(zhǔn)形式的右半部分滿足上述條件,給出正方MDS矩陣的名稱(chēng)。
已知,即使在單個(gè)矩陣被包含在所有F函數(shù)的傳統(tǒng)配置中,將正方MDS矩陣用作線性變換矩陣使得與使用正方MDS矩陣以外的矩陣的情況相比能將有效S盒的最小數(shù)維持在較高的水平。
本發(fā)明提出一種將滿足正方MDS矩陣的條件的矩陣用于各舍入的F函數(shù)并進(jìn)一步為各舍入設(shè)置不同矩陣的方法。明確地說(shuō),應(yīng)用了至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中不同的正方MDS矩陣。
下面將解釋配置的多個(gè)例子,在每一例子中,在級(jí)數(shù)2r(r為整數(shù))的Feistel型公用密鑰分組密碼中使得對(duì)差分密碼分析攻擊的抵抗力更高。
在下列說(shuō)明中,MLTj表示要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))Feistel型公用密鑰分組密碼結(jié)構(gòu)中的第j級(jí)的F函數(shù)的線性變換部分中的線性變換矩陣。
在本發(fā)明的配置中,作為用于要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分中的線性變換處理的矩陣,從多個(gè)不同的正方MDS(最大可分離距離)矩陣選擇的矩陣被設(shè)置為要應(yīng)用于各舍入的F函數(shù)的線性變換部分中選擇的矩陣。具體來(lái)說(shuō),應(yīng)用至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中的不同的正方MDS矩陣。
具體來(lái)說(shuō),產(chǎn)生符合級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)的q個(gè)正方MDS矩陣L1,L2,...,Lq(q≤r)。然后,作為用于要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的奇數(shù)級(jí)的F函數(shù)的線性變換部分中的線性變換處理的矩陣,重復(fù)設(shè)置q個(gè)正方MDS矩陣,從其上一級(jí)的F函數(shù)指定L1,L2,...,Lq,L1,L2,...。另外,對(duì)于偶數(shù)級(jí)的F函數(shù),重復(fù)設(shè)置q個(gè)正方MDS矩陣,從其下一級(jí)的F函數(shù)指定L1,L2,...,Lq,L1,L2,...。
圖9示出應(yīng)用于此設(shè)置的一個(gè)配置例子。作為將三種不同的正方MDS矩陣安排q=3(即舍入數(shù)12)的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的配置例子,即在將結(jié)構(gòu)定義成級(jí)數(shù)2r=12(即r=6)的Feistel型公用密鑰分組密碼結(jié)構(gòu)的情況中,要設(shè)置在各舍入的F函數(shù)的線性變換部分中的正方MDS矩陣(L1,L2,L3)如圖9中所示。
圖9的配置是將2mn比特的明文劃分成各mn比特的兩個(gè)數(shù)據(jù)PL(明文左)和PR(明文右)并將它們用作輸入值在各舍入中執(zhí)行F函數(shù)的結(jié)構(gòu)。第一舍入的函數(shù)以及其它舍入的函數(shù)是各具有由連接在一起的由S盒組成的非線性變換部分和線性變換部分組成的SPN型的F函數(shù)。
圖9的設(shè)置例屬于r=6且q=3,其中各F函數(shù)中所示的符號(hào)Ln表示正方MDS矩陣402。即,L1,L2和L3表示三種相互不同的正方MDS矩陣,每一矩陣是要應(yīng)用于各F函數(shù)的線性變換部分中的線性變換處理的正方MDS矩陣。
將參照?qǐng)D10說(shuō)明線性變換矩陣MLTj的設(shè)置處理順序。
選擇等于或小于舍入數(shù)2r的一半r即q滿足q≤r的數(shù)q。這里,q為等于或大于2的整數(shù)。
產(chǎn)生q個(gè)GF(2n)上的第m個(gè)正方MDS矩陣L1,L2,...,Lq。將在下面的章節(jié)中詳細(xì)說(shuō)明q個(gè)GF(2n)上的第m個(gè)正方MDS矩陣L1,L2,...,Lq。
在步驟S22中產(chǎn)生q個(gè)GF(2n)上的第m個(gè)正方MDS矩陣L1,L2,...,Lq后,執(zhí)行下列正方MDS矩陣設(shè)置處理。
將級(jí)數(shù)2i-1(1≤i≤r)的線性變換矩陣MLT2i-1設(shè)置為L(zhǎng)(i-1modq)+1。
將級(jí)數(shù)2i(1≤i≤r)的線性變換矩陣MLT2j設(shè)置為MLT2r-2i+1。
例如,在圖9中所示的示例配置的情況中,即,在密碼處理裝置具有12級(jí)(r=6)且q=3的情況中,設(shè)置將為MLT1=L1,MLT2=L3,MLT3=L2,MLT4=L2,MLT5=L3,MLT6=L1,MLT7=L1,MLT8=L3,MLT9=L2,MLT10=L1,MLT11=L3,MLT12=L1。
因此,本發(fā)明的密碼處理裝置使用下列結(jié)構(gòu)。產(chǎn)生符合級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)的q個(gè)正方MDS矩陣,其中q≤r。對(duì)于奇數(shù)級(jí)的F函數(shù),重復(fù)設(shè)置q個(gè)正方MDS矩陣,從上一級(jí)的F函數(shù)順序指定L1,L2,...,Lq,L1,L2,...,而對(duì)于偶數(shù)級(jí)的F函數(shù),重復(fù)設(shè)置q個(gè)正方MDS矩陣,從下一級(jí)的F函數(shù)順序指定L1,L2,...,Lq,L1,L2,...。
接著,將對(duì)圖10的處理流程中的步驟22中q個(gè)GF(2n)上的第m個(gè)正方MDS矩陣L1,L2,...,Lq并將它們?cè)O(shè)置至F函數(shù)的細(xì)節(jié)進(jìn)行說(shuō)明。將隨下列項(xiàng)給出說(shuō)明。
(3-a)產(chǎn)生實(shí)現(xiàn)對(duì)差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子(3-b)產(chǎn)生實(shí)現(xiàn)對(duì)線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子(3-c)產(chǎn)生實(shí)現(xiàn)對(duì)差分密碼分析攻擊和線性密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子。
(3-a)產(chǎn)生實(shí)現(xiàn)對(duì)差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子。首先,作為產(chǎn)生實(shí)現(xiàn)對(duì)差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子,將說(shuō)明三個(gè)處理例子a1,a2和a3。
(處理例子a1)將說(shuō)明實(shí)現(xiàn)對(duì)差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的第一例。首先,將參照?qǐng)D11中所示的流程圖對(duì)正方MDS矩陣的產(chǎn)生處理給出說(shuō)明。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階(order)并由m指定矩陣大小,在GF(2n)上隨機(jī)產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。圖11中的流程圖示出對(duì)正方MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
核查從q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq中所包括的qm列向量中取得的任意qm列向量是不是無(wú)線無(wú)關(guān)的。如果該程流通過(guò)核查,則流程進(jìn)入步驟S103;否則,流程返回至步驟S101。
輸出q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
雖然上述處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
根據(jù)以上參照?qǐng)D10所述的[步驟S23]和[步驟S24]的處理,以此方式產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq被設(shè)置為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分中的線性變換處理的矩陣。即,對(duì)于偶數(shù)級(jí),從上級(jí)F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,從下級(jí)的F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
因此,分別以相反的次序排列偶數(shù)舍入的正方MDS矩陣和奇數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列。(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。(b)來(lái)自密碼函數(shù)中的奇數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量是線性無(wú)關(guān)的。(c)來(lái)自其中的偶數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量是線性無(wú)關(guān)的。因?yàn)榇_保方面(a)-(c),由小于或等于m個(gè)有效S盒引起的同時(shí)差對(duì)消不發(fā)生。因此,在整個(gè)密碼函數(shù)中的有效S盒數(shù)的最小數(shù)將增加。
因此,此處理例子使得能放大整個(gè)密碼函數(shù)中的有效S盒數(shù)的最小數(shù),即對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的魯棒性指標(biāo)之一。結(jié)果,在嘗試差分分析(差分密碼分析攻擊)時(shí)有效S盒數(shù)將增加并將增加分析的難度。因此,實(shí)現(xiàn)難以分析密鑰的高安全性密碼處理。
(處理例a2)將說(shuō)明實(shí)現(xiàn)對(duì)差分密碼分析攻擊的提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的第二例。首先,將參照?qǐng)D12中所示的流程圖對(duì)正方MDS矩陣的產(chǎn)生處理給出說(shuō)明。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階并由m指定矩陣大小,在GF(2n)上隨機(jī)產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。圖12中的流程圖示出對(duì)正方MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
核查由從q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq中所包括的qm列中任意選擇的m列所組成的矩陣是不是正方MDS矩陣。如果該流程通過(guò)核查,則流程進(jìn)入步驟S203;否則,流程返回至步驟S201。這里,如上所述,正方MDS矩陣指滿足下列特性的矩陣。(a)它是方陣。(b)矩陣中所包括的所有子矩陣的行列式不為0,即det(子矩陣)≠0。
輸出q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
雖然上述處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
在圖11的處理順序中所述的上述處理例中的正方MDS矩陣產(chǎn)生處理中,由在步驟S102中從q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq中所包括的qm列取得的任意m列組成的矩陣的線性無(wú)關(guān)性被確定。在此處理例a2中的正方MDS矩陣產(chǎn)生處理中,核查從q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq中所包括的qm列取出的任意m列組成的矩陣是正方MDS矩陣。即,將執(zhí)行服務(wù)器核查。
與前述處理例a1相似,根據(jù)前面參照?qǐng)D10所述的[步驟23]和[步驟S24]的處理,將由按圖12中所示的處理順序的正方MDS矩陣產(chǎn)生處理產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq設(shè)置為要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理中矩陣。即,對(duì)于偶數(shù)級(jí),依次從上級(jí)F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,依次從下級(jí)的F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
因此,分別以互相相反的次序排列偶數(shù)舍入的正方MDS矩陣和偶數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列
(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。
(b)從奇數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。
(c)從偶數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。
因此,在具有多個(gè)級(jí)的舍入數(shù)的Feistel型公用密鑰分組密碼結(jié)構(gòu)中,確保在連續(xù)2q-1舍入中不出現(xiàn)由等于或小于m個(gè)有效S盒引起的同時(shí)差對(duì)消。另外,確保下列。
(d)通過(guò)“a”(a≤m)有效S盒從正方MDS矩陣的特性獲取的差值中的非零元素的數(shù)量變成等于或大于m+1-a。因此,整個(gè)密碼函數(shù)中的有效S盒的數(shù)量的最小值增加了。
因此,通過(guò)此處理例子,可以放大整個(gè)密碼函數(shù)中的有效S盒的數(shù)量的最小數(shù)(對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的魯棒性指標(biāo)之一),結(jié)果在嘗試差分分析(差分密碼分析攻擊)的情況中有效S盒的數(shù)量將增加且分析的難度將增強(qiáng)。因此,實(shí)現(xiàn)了難以分析密鑰的高安全性密碼處理。
(處理例a3)將說(shuō)明實(shí)現(xiàn)對(duì)差分密碼分析攻擊具有增加的抵抗力的正方MDS矩陣的產(chǎn)生并將它們?cè)O(shè)置到F函數(shù)的第三個(gè)例子。將參照?qǐng)D3的流程圖說(shuō)明正方MDS矩陣的產(chǎn)生處理。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階并由m指定矩陣大小,在GF(2n)上產(chǎn)生一個(gè)第qm正方MDS矩陣。圖1中所示的流程圖示出對(duì)MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
從一個(gè)第qm正方MDS矩陣M任意選擇和提取m行并組成具有m行,qm列的矩陣M’。
將m行,qm列的矩陣M’中所包括的qm列向量任意地劃分成各由m個(gè)列向量組成的q組,而任一列向量不出現(xiàn)在兩個(gè)或兩個(gè)以上組中。從各組中所包括的列向量中輸出第m正方矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
雖然上述處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
將參照?qǐng)D14更詳細(xì)地說(shuō)明處理例a3中的正方MDS矩陣產(chǎn)生技術(shù)3。
在GF(2n)上產(chǎn)生一個(gè)第qm正方MDS矩陣M。如圖14中所示,產(chǎn)生qmxqm的正方MDS矩陣。注意,在此步驟S301中所產(chǎn)生的矩陣M的階(order)可大于qm(階)。
如圖14中所示,從一個(gè)第qm正方MDS矩陣M任意選擇和提取m列并組成具有m行,qm列的矩陣M’。注意,雖然圖中的例子顯示為其中選擇和提取連續(xù)m行的例子,可以通過(guò)選擇和提取其間具有將構(gòu)成第m個(gè)正方MDS矩陣M的間隙的任意m行。
將m行和qm列的矩陣M’中所包括的qm列向量劃分成各具有m個(gè)列向量的x組,而沒(méi)有任一列向量出現(xiàn)在兩個(gè)或兩個(gè)以上組中,并從各組中包括的列向量中產(chǎn)生第m方陣L1,L2,...,Lx。
象前述的處理例a1和a2一樣,根據(jù)前面參照?qǐng)D10所述的[步驟S23]和[步驟S24]的處理,將通過(guò)按照參照?qǐng)D13和14所述的處理順序的正方MDS矩陣產(chǎn)生處理產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq設(shè)置為要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理中矩陣。即,對(duì)于奇數(shù)級(jí),依次從上級(jí)F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,對(duì)于偶數(shù)級(jí),依次從下級(jí)的F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
因此,分別以相反的次序排列偶數(shù)舍入的正方MDS矩陣和偶數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。(b)密碼函數(shù)中的奇數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量是線性無(wú)關(guān)的。(c)來(lái)自密碼函數(shù)中的偶數(shù)舍入中的至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量是線性無(wú)關(guān)的。因?yàn)榇_保了這些方面(a)至(c),所以確保在具有多個(gè)級(jí)的舍入數(shù)的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的連續(xù)2q-1舍入中不出現(xiàn)由等于或小于m個(gè)有效S盒引起的同時(shí)差對(duì)消。另外,確保下列。(d)通過(guò)“a”(a≤m)有效S盒從正方MDS矩陣的特性獲取的差值中的非零元素的數(shù)量變成等于或大于m+1-a。因此,整個(gè)密碼函數(shù)中的有效S盒的數(shù)量的最小數(shù)增加。
處理例a3特別產(chǎn)生一個(gè)效果的情況是這樣的情況上述處理例a1和a2的矩陣確定處理系統(tǒng)中所花費(fèi)的時(shí)間變得巨大,因此難以在現(xiàn)實(shí)的時(shí)間內(nèi)確定矩陣。即使在該情況下如果使用此處理例a3的正方MDS矩陣產(chǎn)生技術(shù)在相對(duì)短時(shí)間內(nèi)也將可能矩陣產(chǎn)生處理。
這是因?yàn)樵谔幚砝齛3中可以將能處理的系統(tǒng)應(yīng)用于實(shí)時(shí)中足夠大的m和r,例如,用于產(chǎn)生具有Reed-Solomon代碼的矩陣的產(chǎn)生方法。
同樣在此處理例a3中,如上所述,可以放大整個(gè)密碼函數(shù)中的有效S盒的數(shù)量的最小數(shù)(對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的魯棒性指標(biāo)之一)。結(jié)果,在嘗試差分分析(差分密碼分析攻擊)時(shí),有效S盒的數(shù)量將增加且分析的難度將增強(qiáng)。因此,實(shí)現(xiàn)了難以分析密鑰的高安全性密碼處理。
接著,將說(shuō)明兩個(gè)處理例子b1、b2,作為產(chǎn)生對(duì)差分密碼分析攻擊具有提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的例子。
(處理例子b1)將說(shuō)明產(chǎn)生對(duì)差分密碼分析攻擊具有提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的第一個(gè)例子。將參照?qǐng)D15中所示的流程圖說(shuō)明正方MDS矩陣的產(chǎn)生處理。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階并由m指定矩陣大小,在GF(2n)上隨機(jī)產(chǎn)生一個(gè)第qm正方MDS矩陣M1,M2,...,Mq。圖14中所示的流程圖示出對(duì)正方MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
核查從計(jì)算q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq的逆矩陣M1-1,M2-1,...,Mq-1后兩個(gè)相鄰逆矩陣中所包括的2m行向量中取得的任意m行向量是不是無(wú)線無(wú)關(guān)的。圖15中的tR表示行向量的轉(zhuǎn)置向量。如果該程流通過(guò)核查,則流程進(jìn)入步驟S403;否則,流程返回至步驟S401。這里,應(yīng)將矩陣M1-1,Mq-1認(rèn)作相鄰矩陣。
輸出q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
通過(guò)以上處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
根據(jù)前面參照?qǐng)D10所述的[步驟S23]和[步驟S24]的處理,以此方式產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq被設(shè)置為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分中的線性變換處理的矩陣。即,對(duì)于奇數(shù)級(jí),從上級(jí)F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,對(duì)于偶數(shù)級(jí),從下級(jí)的F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
以此方式,分別以相反的次序排列偶數(shù)舍入的正方MDS矩陣和偶數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列。(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。(b)密碼函數(shù)中連續(xù)奇數(shù)舍入中包括的逆矩陣中的以及其中連續(xù)偶數(shù)舍入所包括的逆矩陣中的m個(gè)列向量是線性無(wú)關(guān)的。這些特性使得在線性密碼分析攻擊中通過(guò)線性逼近的分析中的困難性會(huì)增加,并實(shí)現(xiàn)分析難度增加的,即難以分析密鑰的高安全性密碼處理。
(處理例子b2)將解釋產(chǎn)生對(duì)差分密碼分析攻擊具有提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的第二例子。將參照?qǐng)D16中所示的流程圖給出正方MDS矩陣的產(chǎn)生處理的說(shuō)明。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階并由m指定矩陣大小,在GF(2n)上隨機(jī)產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq。圖16中的流程圖示出對(duì)正方MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
核查從計(jì)算q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq的逆矩陣M1-1,M2-1,...,Mq-1后兩個(gè)相鄰逆矩陣中所包括的2m行向量中取得的任意m行向量是否構(gòu)成正方MDS矩陣。圖16中的tR表示行向量的轉(zhuǎn)置向量。如果該程流通過(guò)核查,則流程進(jìn)入步驟S503;否則,流程返回至步驟S401。這里,應(yīng)將矩陣M1-1,Mq-1認(rèn)作相鄰矩陣。正方MDS矩陣是滿足下列(a)和(b)的特性的矩陣。(a)矩陣為正方矩陣。(b)包括在矩陣中的所有子矩陣都不是零,即det(子矩陣)≠0。
輸出q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
通過(guò)以上處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
在上述處理例b1中的正方MDS矩陣產(chǎn)生處理中,當(dāng)在步驟S402中從q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq的的逆矩陣M1-1,M2-1,...,Mq-1中所包括的qm列向量取得的任意m列向量時(shí),所確定的是線性無(wú)關(guān)性。在此處理例b2中的正方MDS矩陣產(chǎn)生處理中,核查從q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq的逆矩陣M1-1,M2-1,...,Mq-1中所包括的qm列向量取得的任意m列向量是否構(gòu)成正方MDS矩陣。即,將執(zhí)行服務(wù)器核查。
象前述的處理例b1一樣,根據(jù)前面參照?qǐng)D10所述的[步驟S23]和[步驟S24]的處理,將通過(guò)按照參照?qǐng)D16中所示的處理順序的正方MDS矩陣產(chǎn)生處理產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq設(shè)置為要應(yīng)用于級(jí)數(shù)2r(舍入數(shù))Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理中矩陣。即,對(duì)于奇數(shù)級(jí),依次從上級(jí)F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,對(duì)于偶數(shù)級(jí),依次從下級(jí)的F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
因此,分別以相反的次序排列偶數(shù)舍入的正方MDS矩陣和偶數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。(b)來(lái)自密碼函數(shù)中的連續(xù)奇數(shù)舍入中所包括的線性變換矩陣和其中的連續(xù)偶數(shù)舍入中包括的線性變換矩陣的逆矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。這些特性使得在線性密碼分析攻擊中通過(guò)線性逼近的分析中的困難性會(huì)增加,并實(shí)現(xiàn)分析難度增加的,即難以分析密鑰的高安全性密碼處理。
接著,將說(shuō)明產(chǎn)生對(duì)差分密碼分析攻擊具有提高的抵抗力的正方MDS矩陣并將它們?cè)O(shè)置到F函數(shù)的一個(gè)例子。
通過(guò)應(yīng)用先前參照?qǐng)D10-13說(shuō)明的處理,即,通過(guò)應(yīng)用上述處理例子a1(圖11)至a3(圖13)中任何一個(gè)設(shè)置要應(yīng)用于線性處理部分中的線性變換的正方MDS矩陣,來(lái)實(shí)現(xiàn)對(duì)差分密碼分析攻擊具有抵抗力的密碼算法。另外,通過(guò)應(yīng)用先前參照?qǐng)D10、圖14和圖15說(shuō)明的處理,即,通過(guò)應(yīng)用上述處理例子b1(圖14)至b2(圖15)中任何一個(gè)設(shè)置要應(yīng)用于線性處理部分中的線性變換的正方MDS矩陣,來(lái)實(shí)現(xiàn)對(duì)差分密碼分析攻擊具有抵抗力的密碼算法。
使用實(shí)現(xiàn)對(duì)差分密碼分析攻擊具有提高的抵抗力的正方MDS矩陣的算法是通過(guò)設(shè)置通過(guò)執(zhí)行處理例子a1(圖11)至a3(圖12)之一和處理例子b1(圖14)和b2(圖15)之一所產(chǎn)生的正方MDS矩陣作為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理的矩陣來(lái)實(shí)現(xiàn)的。
即,q個(gè)正方MDS矩陣通過(guò)下列組合中任何一個(gè)來(lái)產(chǎn)生處理例a1和處理例b1;處理例a1和處理例b2;處理例a2和處理例b1;處理例a2和處理例b2;處理例a3和處理例b1;處理例a3和處理例b2;并被設(shè)置為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理的矩陣。即,對(duì)于奇數(shù)級(jí),從上級(jí)F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,對(duì)于偶數(shù)級(jí),從下級(jí)的F函數(shù)依次并重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。通過(guò)這一設(shè)置,可以實(shí)現(xiàn)對(duì)差分密碼分析攻擊和線性密碼分析攻擊具有提高的抵抗力的密碼處理。
將參照?qǐng)D17說(shuō)明用于實(shí)施實(shí)現(xiàn)對(duì)差分密碼分析攻擊和線性密碼分析攻擊具有提高的抵抗力的密碼處理的正方MDS矩陣的產(chǎn)生處理的一個(gè)例子。此處理是上述處理例子a2和處理例子b2的組合。
指定輸入由q指定必需的正方MDS矩陣數(shù),由n指定擴(kuò)展階并由m指定矩陣大小,在GF(2n)上隨機(jī)產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣。圖17中的流程圖示出對(duì)正方MDS矩陣數(shù)q=6,擴(kuò)展階n=8,和矩陣大小m=8的處理例子。
當(dāng)從q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq中所包括的qm列中取得m個(gè)列時(shí),核查它們是否構(gòu)成正方MDS矩陣。如果該程流通過(guò)核查,則流程進(jìn)入步驟S603;否則,流程返回至步驟S601。這里,正方MDS矩陣意味著滿足下列特性的矩陣。(a)它是正方矩陣。(b)包括在矩陣中的任何子矩陣的行列式,即det(子矩陣)≠0。
計(jì)算q個(gè)第m個(gè)正方MDS矩陣M1,M2,...,Mq的逆矩陣M1-1,M2-1,...,Mq-1,并核查從兩個(gè)相鄰逆矩陣中所包括的2m行向量取得的任意m行向量是否構(gòu)成正方MDS矩陣。圖17中的tR表示行向量的轉(zhuǎn)置向量。如果流程通過(guò)核查,則流程進(jìn)入步驟S604;否則流程返回步驟S601。這里,應(yīng)將矩陣M1-1、Mq-1認(rèn)作相鄰矩陣。
輸出q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq作為要應(yīng)用于舍入數(shù)2r的Feistel型公用密鑰分組密碼的正方MDS矩陣。
通過(guò)以上處理,產(chǎn)生q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq。這里,q滿足q≤r。
根據(jù)前面參照?qǐng)D10所述的[步驟S23]和[步驟S24]的處理,將通過(guò)遵循圖17中所示的處理順序的正方MDS矩陣產(chǎn)生處理而產(chǎn)生的q個(gè)第m個(gè)正方MDS矩陣L1,L2,...,Lq被設(shè)置為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r的Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分的線性變換處理中的矩陣。即,對(duì)于奇數(shù)級(jí),依次從上級(jí)F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...,對(duì)于偶數(shù)級(jí),依次從下級(jí)的F函數(shù)重復(fù)地將q個(gè)正方MDS矩陣指定為L(zhǎng)1,L2,...,Lq,L1,L2,...。
因此,分別以相反的次序排列偶數(shù)舍入的正方MDS矩陣和奇數(shù)舍入的正方MDS矩陣,從而確保除了替換密鑰的序列的處理以外,加密處理和解密處理相同。
此配置確保下列(a)到(c)各方面(a)各F函數(shù)的線性變換矩陣為正方MDS矩陣。(b)密碼函數(shù)中奇數(shù)舍入中至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。(c)密碼函數(shù)中偶數(shù)舍入中至少連續(xù)q個(gè)F函數(shù)中所包括的線性變換矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。因?yàn)榇_保這些方面(a)-(c),在具有多個(gè)步驟的舍入數(shù)的Feistel型公用密鑰分組密碼結(jié)構(gòu)中,確保在連續(xù)2q-1個(gè)舍入中,由小于或等于m個(gè)有效S盒的貢獻(xiàn)引起的同時(shí)差對(duì)消不發(fā)生。另外,(d)從正方MDS矩陣的特性,確保通過(guò)“a”(a≤m)有效S盒獲得的差值中的非零元素的數(shù)量變成等于或大于m+1-a。因此,在整個(gè)密碼函數(shù)中的有效S盒的數(shù)量的最小數(shù)增加。另外,確保下列。(e)密碼函數(shù)中來(lái)自連續(xù)奇數(shù)舍入中所包括的線性變換矩陣的逆矩陣的和連續(xù)偶數(shù)舍入中所包括的線性變換矩陣的任意m個(gè)列向量構(gòu)成正方MDS矩陣。這些特性使得在線性密碼分析攻擊中通過(guò)線性逼近的分析中的難度增加,且實(shí)現(xiàn)分析難度增加的,即難以分析密鑰的高安全性密碼處理。
因此,通過(guò)此處理例子,差分密碼分析攻擊和線性密碼分析攻擊中的難度均增加,并實(shí)現(xiàn)了難以分析密鑰的高安全性密碼處理。如上所述,圖17中所示的例子是通過(guò)組合上述處理例子a2和處理例子b2產(chǎn)生正方MDS矩陣的例子。然而,能采用其它產(chǎn)生。即,通過(guò)組合下列對(duì)之一來(lái)產(chǎn)生q個(gè)正方MDS矩陣處理例子a1和處理例子b1,處理例子a1和處理例子b2,處理例子a2和處理例子b1,處理例子a3和處理例子b1,處理例子a3和處理例子b2。對(duì)于奇數(shù)級(jí),重復(fù)指定q個(gè)正方MDS矩陣為從上一級(jí)的F函數(shù)指定L1,L2,...,Lq,L1,L2,...,而對(duì)于偶數(shù)級(jí)的F函數(shù),重復(fù)指定q個(gè)正方MDS矩陣為從下一級(jí)的F函數(shù)指定L1,L2,...,Lq,L1,L2,...,作為要應(yīng)用于級(jí)數(shù)(舍入數(shù))2r Feistel型公用密鑰分組密碼結(jié)構(gòu)中的各級(jí)的F函數(shù)的線性變換部分中的矩陣。從而能實(shí)現(xiàn)在差分密碼分析攻擊中和線性密碼分析攻擊中的難度增加和其密鑰難以分析的高安全性密碼處理。
雖然至今為止的說(shuō)明假設(shè)線性變換矩陣是在GF(2n)上定義的mxm的矩陣并且被用于從mn比特至mn比特的數(shù)據(jù)變換運(yùn)算中,即使在使用在GF(2)上定義的mnxmn矩陣的情況下也能有效地取得與差分密碼分析攻擊和線性密碼分析攻擊相似的效果。實(shí)際上,可以使GF(2n)上的任意矩陣與顯示相同變換的GF(2)上的矩陣一一對(duì)應(yīng)。因此,可以說(shuō)GF(2)上的矩陣顯示更一般的表示。GF(2)上的矩陣具有mn列和mn行,它是GF(2n)情況中的n倍。因此,GF(2n)上的矩陣的第一列與GF(2)上的矩陣的第一至第n列相對(duì)應(yīng),且GF(2n)上的矩陣的第一行與其第一至第n行相對(duì)應(yīng)。即,第i行對(duì)應(yīng)于第[(i-1)+1]至第[(i-1)+n]行,且第i列對(duì)應(yīng)于第[(i-1)+1]至第[(i-1)+n]列。因此,為了做提取GF(2n)上的列或行的運(yùn)算,如果使用在GF(2)上定義的矩陣,需要做相應(yīng)地提取與GF(2)上的列或行相對(duì)應(yīng)的n行或n列的運(yùn)算。提取GF(2)上的m行或列的運(yùn)算要求在GF(2)上提取m次n行或列,結(jié)果能獲得mnxmn矩陣。上述協(xié)調(diào)使得能將矩陣容易地?cái)U(kuò)展至在GF(2)上定義的矩陣。
最后,圖18示出作為用于執(zhí)行密碼處理的密碼處理裝置的IC模塊600的示例配置。在各種信息處理裝置(例如,PC、IC卡、讀出器/寫(xiě)入器等)中可執(zhí)行上述處理,且圖18中所示的IC模塊600能用作這些各種裝置的組成件。
圖18中所示的CPU(中央處理器)是用于執(zhí)行諸如啟動(dòng)密碼處理、結(jié)束它、控制數(shù)據(jù)的發(fā)送/接收、控制配置部分之間的數(shù)據(jù)傳輸之類(lèi)的各種程序的處理器,并執(zhí)行各種程序。存儲(chǔ)器602由用于存儲(chǔ)CPU 601執(zhí)行的程序或作為操作參數(shù)的固定數(shù)據(jù)的ROM,用作在CPU 601的處理中所執(zhí)行的程序的存儲(chǔ)區(qū)和工作區(qū)等的RAM(隨機(jī)存取存儲(chǔ)器),處理程序中參數(shù)一直變化。存儲(chǔ)器602還能用作密碼處理等所需的密鑰數(shù)據(jù)的存儲(chǔ)區(qū)。最好數(shù)據(jù)等的存儲(chǔ)區(qū)構(gòu)成具有防篡改結(jié)構(gòu)的存儲(chǔ)器。
密碼處理部分603按照例如上述Feistel型公用密鑰分組密碼處理執(zhí)行加密、解密等。雖然顯示其中將密碼處理裝置制成單個(gè)模塊的例子,它可以配置成例如將密碼程序存儲(chǔ)在ROM中,且CPU 601讀取并執(zhí)行存儲(chǔ)在ROM中的程序而不提供這種獨(dú)立的密碼模塊。
隨機(jī)數(shù)產(chǎn)生器604執(zhí)行生成產(chǎn)生密碼處理所需的密鑰所必需的隨機(jī)數(shù)的處理。
發(fā)送/接收部分605是用于執(zhí)行外部數(shù)據(jù)通信的數(shù)據(jù)通信部分,它與例如讀出器-寫(xiě)入器等進(jìn)行數(shù)據(jù)通信,和IC模塊,從外部讀出器寫(xiě)入器等輸出在IC模塊中產(chǎn)生的密文或?qū)?shù)據(jù)等輸入其中。
在上述中,參照特定實(shí)施例詳細(xì)說(shuō)明本發(fā)明。然而,很明顯本領(lǐng)域的技術(shù)人員能不偏離本發(fā)明的范圍和精神實(shí)現(xiàn)實(shí)施例的修改和替換。即,本發(fā)明以圖解的形式被公開(kāi),應(yīng)嚴(yán)格加以解釋。為了判斷本發(fā)明的要點(diǎn),應(yīng)考慮專(zhuān)利權(quán)利要求一欄。
注意,說(shuō)明中所述的系列處理可以通過(guò)硬件、軟件或通過(guò)它們的組合來(lái)實(shí)現(xiàn)。當(dāng)通過(guò)軟件執(zhí)行處理時(shí),記錄處理順序的程序可以通過(guò)將其安裝在計(jì)算機(jī)中的獨(dú)占硬件中的內(nèi)置存儲(chǔ)器中來(lái)執(zhí)行,或能通過(guò)將其安裝在能執(zhí)行各種處理的通用計(jì)算機(jī)中來(lái)執(zhí)行。
例如,能將程序預(yù)先記錄在作為記錄媒體的硬盤(pán)或ROM(只讀存儲(chǔ)器)上。另選地,可以將程序臨時(shí)或永久存儲(chǔ)在諸如軟盤(pán)、CD-ROM(光盤(pán)只讀存儲(chǔ)器)、MO(磁光)盤(pán)、DVD(數(shù)字通用盤(pán))、磁盤(pán)和半導(dǎo)體存儲(chǔ)器之類(lèi)的可移動(dòng)記錄媒體中。這種可移動(dòng)記錄媒體能作為所謂的軟件包來(lái)提供。
除了如上所述將程序從可移動(dòng)記錄媒體安裝在計(jì)算機(jī)中以外,能采用下列方案。將程序從下載地點(diǎn)無(wú)線傳輸至計(jì)算機(jī),或通過(guò)諸如LAN(局域網(wǎng))和因特網(wǎng)之類(lèi)的網(wǎng)絡(luò)由電纜傳輸至計(jì)算機(jī),而計(jì)算機(jī)接收正在以此方式傳輸?shù)某绦虿⑵浒惭b在記錄媒體(例如內(nèi)部硬盤(pán))中。
注意,根據(jù)執(zhí)行處理的裝置的處理能力在說(shuō)明書(shū)所寫(xiě)的各種處理可能并行地或分別地執(zhí)行,或按需要以按照說(shuō)明書(shū)中的時(shí)序來(lái)執(zhí)行。注意,在本說(shuō)明書(shū)中,系統(tǒng)是具有多個(gè)設(shè)備的邏輯組合的結(jié)構(gòu)的系統(tǒng),而不限于在相同的外殼中各具有其自己的設(shè)備的系統(tǒng)。
如上所述,根據(jù)本發(fā)明的配置,在為多個(gè)舍入重復(fù)執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù)的Feistel型公用密鑰分組密碼處理中,配置成執(zhí)行下列。在分別執(zhí)行與多個(gè)舍入中每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理作為應(yīng)用至少在連續(xù)奇數(shù)舍入中和連續(xù)偶數(shù)舍入中不同的正方MDS(最大可分離距離)矩陣,正方MDS矩陣La、Lb的線性變換處理并執(zhí)行對(duì)正方MDS矩陣的線性變換處理時(shí),其中應(yīng)用了至少在連續(xù)奇數(shù)舍入中和連續(xù)偶數(shù)舍入中不同的正方MDS矩陣,且由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的,或組成正方MDS矩陣。結(jié)果,提高了對(duì)公用密鑰分組密碼中的線性密碼分析攻擊的抵抗力,并增加了分析加密密鑰等的難度,從而實(shí)現(xiàn)了高安全性密碼處理。因此,本發(fā)明能應(yīng)用于提高找到密鑰的分析難度并具有高安全性所需的密碼處理裝置。
另外,根據(jù)本發(fā)明的配置,在多個(gè)舍入上重復(fù)執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù)的Feistel型公用密鑰分組密碼處理中,配置成執(zhí)行與多個(gè)舍入中每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理,作為應(yīng)用正方MDS(最大可分離距離)矩陣同時(shí)應(yīng)用至少在連續(xù)偶數(shù)舍入中和在連續(xù)奇數(shù)舍入中不同的MDS矩陣的線性變換處理,其中,這些正方MDS矩陣顯示線性無(wú)關(guān)性或組成正方MDS矩陣。因此,確保通過(guò)有效S盒的同時(shí)差對(duì)消不出現(xiàn),并且可以放大整個(gè)密碼函數(shù)中的有源S盒的最小數(shù),它是對(duì)公用密鑰分組密碼中的差分密碼分析攻擊的魯棒性的指數(shù)之一。通過(guò)此配置,提高對(duì)線性密碼分析和差分密碼分析攻擊的抵抗力,從而實(shí)現(xiàn)更高安全性的密碼處理。因此,可以將本發(fā)明應(yīng)用于增加分析密鑰的難度并具有高安全性所需的密碼處理裝置。
權(quán)利要求
1.一種用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,具有在多個(gè)舍入上重復(fù)執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù)的結(jié)構(gòu),其中與多個(gè)舍入的每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換部分的每一個(gè)被配置成對(duì)從m個(gè)非線性變換部分的每一個(gè)輸出的n比特的輸入執(zhí)行線性變換處理,作為應(yīng)用正方MDS(最大可分開(kāi)距離)矩陣的線性變換處理,至少在連續(xù)奇數(shù)舍入中和在連續(xù)偶數(shù)舍入中應(yīng)用不同的正方MDS矩陣La、Lb,且由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的。
2.如權(quán)利要求1所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,其特征在于,由從構(gòu)成所述逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是正方MDS矩陣。
3.如權(quán)利要求1所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,其特征在于,F(xiàn)eistel型公用密鑰分組密碼處理的算法是舍入數(shù)2r的密碼算法,且F函數(shù)的線性變換部分被配置成執(zhí)行將q(2≤q<r)種不同的正方MDS矩陣依次并重復(fù)地應(yīng)用于所有r個(gè)偶數(shù)舍入和所有r個(gè)奇數(shù)舍入中的線性變換。
4.如權(quán)利要求1所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,其特征在于,要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)不同的正方MDS矩陣中的每一個(gè)是由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的且線性無(wú)關(guān)的正方MDS矩陣。
5.如權(quán)利要求1所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,其特征在于,要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)不同的正方MDS矩陣中的每一個(gè)是使得由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的矩陣也是一個(gè)正方MDS矩陣的正方MDS矩陣。
6.如權(quán)利要求1所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理裝置,其特征在于,要應(yīng)用于F函數(shù)的線性變換部分中的多個(gè)不同的正方MDS矩陣中的每一個(gè)由從包括構(gòu)成多個(gè)正方MDS矩陣的所有元素的正方MDS矩陣M選擇的行向量組成的矩陣M’提取的行向量組成的矩陣組成。
7.一種用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,包括下列步驟在多個(gè)舍入上重復(fù)地執(zhí)行用于實(shí)行非線性變換處理和線性變換處理的SPN型F函數(shù);并且在與多個(gè)舍入中每一個(gè)相對(duì)應(yīng)的F函數(shù)的變換處理中,執(zhí)行從m個(gè)非線變換部分輸出的n比特,總共mn比特的線性變換,作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理;其中,對(duì)正方MDS矩陣的線性變換處理使得至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中應(yīng)用不同的正方MDS矩陣La、Lb,由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的且構(gòu)成一個(gè)正方MDS矩陣。
8.如權(quán)利要求7所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,其特征在于,通過(guò)正方MDS矩陣的線性變換處理,以使由從構(gòu)成所述逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是正方MDS矩陣。
9.如權(quán)利要求7所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,其特征在于,F(xiàn)eistel型公用密鑰分組密碼處理的算法是舍入數(shù)2r的密碼算法,且,F(xiàn)函數(shù)的線性變換處理執(zhí)行依次并重復(fù)地應(yīng)用q(2≤q<r)種不同的正方MDS矩陣的線性變換處理。
10.如權(quán)利要求7所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,其特征在于,應(yīng)用于F函數(shù)中的線性變換處理的多個(gè)不同的正方MDS矩陣中的每一個(gè)使得由從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的并構(gòu)成正方MDS矩陣。
11.如權(quán)利要求7所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,其特征在于,要應(yīng)用于F函數(shù)的線性變換處理的多個(gè)不同的正方MDS矩陣中的每一個(gè)是正方MDS矩陣,使得從構(gòu)成多個(gè)正方MDS矩陣的列向量任意選擇的m個(gè)列向量組成的矩陣成為正方MDS矩陣。
12.如權(quán)利要求7所述的用于執(zhí)行Feistel型公用密鑰分組密碼處理的密碼處理方法,其特征在于,要應(yīng)用于F函數(shù)的線性變換處理的多個(gè)不同的正方MDS矩陣中的每一個(gè)是由從在包括構(gòu)成多個(gè)正方MDS矩陣的所有元素的正方MDS矩陣M中選擇的行向量所組成的矩陣M’提取的列向量組成的矩陣構(gòu)成的。
13.一種執(zhí)行如權(quán)利要求7所述的Feistel型公用密鑰分組密碼處理的計(jì)算機(jī)程序,包括下列步驟在多個(gè)舍入上執(zhí)行進(jìn)行非線性變換處理和線性變換處理的SPN型F函數(shù)的步驟,其中與多個(gè)舍入中的每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性變換處理是執(zhí)行從m個(gè)非線變換部分輸出的n比特,總共mn比特的線性變換處理,作為應(yīng)用正方MDS(最大可分離距離)矩陣的線性變換處理的線性變換步驟,且在所述線性變換步驟中,以這樣的方式通過(guò)正方MDS矩陣執(zhí)行線性變換,使得至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中應(yīng)用不同的正方MDS矩陣,且由從構(gòu)成正方MDS矩陣的逆矩陣La-1、Lb-1的列向量任意選擇的m個(gè)列向量組成的矩陣是線性無(wú)關(guān)的。
全文摘要
本發(fā)明實(shí)現(xiàn)一種增加分析其密鑰的難度的高安全性密碼處理裝置及其方法。在多個(gè)舍入上重復(fù)執(zhí)行具有非線性變換部分和線性變換部分的SPN型F函數(shù)的Feistel型公用密鑰分組密碼處理中,與多個(gè)舍入的每一個(gè)相對(duì)應(yīng)的F函數(shù)的線性處理通過(guò)應(yīng)用正方MDS(最大可分開(kāi)距離)矩陣的線性變換處理來(lái)實(shí)現(xiàn)。本發(fā)明使用一種設(shè)置至少在連續(xù)偶數(shù)舍入中和連續(xù)奇數(shù)舍入中設(shè)置的正方MDS矩陣的逆矩陣中所包括的任意m個(gè)列向量構(gòu)成正方MDS矩陣。此結(jié)構(gòu)實(shí)現(xiàn)密碼處理,從而提高公用密鑰分組中對(duì)線性密碼分析攻擊的抵抗力。
文檔編號(hào)G09C1/00GK1879138SQ200580001259
公開(kāi)日2006年12月13日 申請(qǐng)日期2005年8月30日 優(yōu)先權(quán)日2004年9月3日
發(fā)明者白井太三, P·巴特 申請(qǐng)人:索尼株式會(huì)社