專利名稱:密碼處理裝置、方法、算法構(gòu)建方法和信息處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密碼處理裝置、密碼處理算法構(gòu)建方法和密碼處理方法、以及計(jì) 算機(jī)程序。更詳細(xì)地說(shuō),涉及一種執(zhí)行Feistel型共用密鑰塊密碼處理的密碼處理裝置、密 碼處理算法構(gòu)建方法和密碼處理方法、以及計(jì)算機(jī)程序。
背景技術(shù):
最近,隨著網(wǎng)絡(luò)通信、電子商務(wù)的發(fā)展,確保通信中的安全成為重要的問(wèn)題。確保 安全的方法之一是密碼技術(shù),現(xiàn)在實(shí)際進(jìn)行著使用了各種加密方法的通信。例如實(shí)際應(yīng)用有如下的系統(tǒng)在IC卡等小型裝置中嵌入密碼處理模塊,在IC卡與 作為數(shù)據(jù)讀取寫(xiě)入裝置的讀寫(xiě)器之間進(jìn)行數(shù)據(jù)的發(fā)送接收,進(jìn)行認(rèn)證處理或者發(fā)送接收數(shù) 據(jù)的加密、解密。在密碼處理算法中存在各種算法,大致分類為公開(kāi)密鑰密碼方式和共用密鑰密碼 方式,其中,上述公開(kāi)密鑰密碼方式將加密密鑰和解密密鑰設(shè)定為不同的密鑰、例如公開(kāi)密 鑰和私人密鑰,上述共用密鑰密碼方式將加密密鑰和解密密鑰設(shè)定為共用的密鑰。在共用密鑰密碼方式中也存在各種算法,其中之一是如下的方式以共用密鑰為 基礎(chǔ)生成多個(gè)密鑰,使用所生成的多個(gè)密鑰來(lái)反復(fù)執(zhí)行塊單位(64比特、128比特等)的數(shù) 據(jù)變換處理。應(yīng)用了這種密鑰生成方式和數(shù)據(jù)變換處理的算法的代表方式是共用密鑰塊密 碼方式。作為代表的共用密鑰塊密碼的算法,例如存在作為美國(guó)標(biāo)準(zhǔn)密碼的DES (Data Encryption Standard 數(shù)據(jù)加密標(biāo)準(zhǔn))算法,在各種領(lǐng)域中廣泛使用。以DES為代表的共用密鑰塊密碼的算法主要可分為循環(huán)函數(shù)部和密鑰調(diào)度部,其 中,上述循環(huán)函數(shù)部執(zhí)行輸入數(shù)據(jù)的變換,上述密鑰調(diào)度部生成在循環(huán)函數(shù)(F函數(shù))部的 各循環(huán)中應(yīng)用的密鑰。根據(jù)一個(gè)主密鑰(Master key),將其輸入到密鑰調(diào)度部來(lái)生成在循 環(huán)函數(shù)部的各循環(huán)中應(yīng)用的,在各循環(huán)函數(shù)部中應(yīng)用該循環(huán)密鑰(副密鑰)。作為執(zhí)行應(yīng)用了這種循環(huán)函數(shù)的算法的具體結(jié)構(gòu),已知有Feistel結(jié)構(gòu)。Feistel 結(jié)構(gòu)具有如下結(jié)構(gòu)通過(guò)簡(jiǎn)單的反復(fù)被稱為循環(huán)函數(shù)的變換函數(shù),將明文變換為密文。作為 記載有應(yīng)用了 Feistel結(jié)構(gòu)的密碼處理的文獻(xiàn),例如存在非專利文獻(xiàn)1、非專利文獻(xiàn)2。但是,例如在應(yīng)用Feistel結(jié)構(gòu)的共用密鑰密碼處理中,由密碼分析引起的密鑰 的泄漏成為問(wèn)題。作為密碼分析或者攻擊方法的代表方法,已知有差分分析(也稱為差分 解讀法或者差分攻擊)、線性分析(也稱為線性解讀法或者線性攻擊),其中,上述差分分析 通過(guò)多次分析具有某個(gè)差分的輸入數(shù)據(jù)(明文)及其輸出數(shù)據(jù)(密文)來(lái)分析各循環(huán)函數(shù) 中的應(yīng)用密鑰,上述線性分析根據(jù)明文和對(duì)應(yīng)的密文進(jìn)行分析。
8
利用密碼分析容易分析密鑰是指其密碼處理的安全性較低。在現(xiàn)有的密碼算法 中,在循環(huán)函數(shù)(F函數(shù))部的線性變換部中應(yīng)用的處理(變換矩陣)在各級(jí)的循環(huán)中相同, 因此容易進(jìn)行分析,其結(jié)果導(dǎo)致容易分析密鑰。作為應(yīng)對(duì)這種問(wèn)題的結(jié)構(gòu),提出在Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù))部的線性變 換部中配置兩個(gè)以上不同的矩陣的結(jié)構(gòu)。該技術(shù)被稱為擴(kuò)散矩陣切換機(jī)構(gòu)(DSM diffusion SwitchingMechanism,下面為DSM)。通過(guò)該DSM能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。該擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)被表示為對(duì)于通常的具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié) 構(gòu)的應(yīng)用結(jié)構(gòu)。另一方面,與這種一般的具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)不同,存在具有 三個(gè)以上數(shù)據(jù)序列的擴(kuò)展型Feistel結(jié)構(gòu)。但是,并沒(méi)有公開(kāi)在這種具有三個(gè)以上數(shù)據(jù)序 列的擴(kuò)展型Feistel結(jié)構(gòu)中應(yīng)用上述擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)來(lái)提高對(duì)差分攻擊、線性攻 擊的抵抗性的結(jié)構(gòu)。非專利文獻(xiàn) 1 :K. Nyberg, "Generalized Feistel networks", ASIACRYPT,96,Springer Verlag,1996,pp. 91 104.非專禾丨J文獻(xiàn) 2 Yuliang Zheng,Tsutomu Matsumoto,HidekiImai :Qn the Construction of Block Ciphers Provably Secure andNot Relying on Any Unproved Hypotheses. CRYPTO 1989 461-480
發(fā)明內(nèi)容
發(fā)明要解決的問(wèn)題本發(fā)明是鑒于上述問(wèn)題點(diǎn)而完成的,其目的在于提供一種實(shí)現(xiàn)對(duì)線性分析、差分 分析的抵抗性較高的共用密鑰塊密碼算法的密碼處理裝置、密碼處理算法構(gòu)建方法和密碼 處理方法、以及計(jì)算機(jī)程序。更具體地說(shuō),本發(fā)明的目的在于提供如下的密碼處理裝置、密碼處理算法構(gòu)建方 法和密碼處理方法、以及計(jì)算機(jī)程序在擴(kuò)展具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)得到的 Feistel結(jié)構(gòu)、即例如具有三個(gè)、四個(gè)等兩個(gè)以上的任意數(shù)據(jù)序列的擴(kuò)展型Feistel結(jié)構(gòu) 中,設(shè)定應(yīng)用了多個(gè)不同的線性變換矩陣的循環(huán)函數(shù)部,實(shí)現(xiàn)對(duì)線性分析、差分分析的抵抗 性較高的共用密鑰塊密碼算法。用于解決問(wèn)題的方案本發(fā)明的第一側(cè)面在于,一種密碼處理裝置,其特征在于,具有密碼處理部,該密 碼處理部執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共用密鑰塊密碼處理,其中,上述 SP型F函數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù)據(jù)變換處理,上述密碼處理部是 執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 3的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu),具 有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的 矩陣的結(jié)構(gòu),上述兩個(gè)以上的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于 線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為 預(yù)先決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn) 行輸入的F函數(shù)中,具有在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配 置上述多個(gè)不同的矩陣的結(jié)構(gòu)。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,在上述密碼處理
9部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣 而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支 數(shù)[BkD]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i) 進(jìn)行輸入的連續(xù)的k個(gè)(其中,k為2以上的整數(shù))F函數(shù)中。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,在上述密碼處理 部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣 而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2D(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支 數(shù)[B2d]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i) 進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,在上述密碼處理 部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣 而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2Wi))]中選擇的全部數(shù)據(jù)序列中的最小分支 數(shù)[B2I為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i) 進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 具有如下結(jié)構(gòu)在將上述多個(gè)不同的矩陣設(shè)為η個(gè)(其中,η為2以上的整數(shù))不同的矩陣 M0^M1, · · Mlri時(shí),在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)配置 這些不同的矩陣Mc^M1. · · Μη_10并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu)。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié) 構(gòu)。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 是如下結(jié)構(gòu)在設(shè)為a ^ 2的任意的整數(shù)、χ ^ 1的任意的整數(shù)時(shí),執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù) d = 2ax的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,所述擴(kuò)展Feistel結(jié)構(gòu)利用了由上述多個(gè)不同的 矩陣執(zhí)行不同的線性變換處理的a種F函數(shù),在一個(gè)循環(huán)中均等地執(zhí)行所有種類(a種類) 的F函數(shù)各χ個(gè)。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 具備F函數(shù)執(zhí)行部,其執(zhí)行在一個(gè)循環(huán)中并行地執(zhí)行的ax個(gè)F函數(shù);以及控制部,其執(zhí)行 對(duì)上述F函數(shù)執(zhí)行部的數(shù)據(jù)輸入輸出控制。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理部 具備多個(gè)F函數(shù)執(zhí)行部,其利用上述多個(gè)不同的矩陣執(zhí)行不同的線性變換處理;以及控制 部,其根據(jù)設(shè)定而變更上述多個(gè)F函數(shù)執(zhí)行部的利用順序,其中,上述控制部是選擇性地執(zhí) 行(a)、(bl)、(b2)中的任一個(gè)的密碼處理的結(jié)構(gòu),其中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 3的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者(bl)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許 執(zhí)行一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并行執(zhí)行多個(gè)F函數(shù)的密碼處理。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特征在于,上述控制部是根 據(jù)成為加密或解密處理的對(duì)象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處理方式的結(jié)構(gòu)。并且,本發(fā)明的第二側(cè)面在于,一種密碼處理方法,在密碼處理裝置中執(zhí)行密碼處 理,其特征在于,具有密碼處理步驟,在密碼處理部中執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的 Feistel型共用密鑰塊密碼處理,其中,上述SP型F函數(shù)執(zhí)行包括非線性變換處理和線性變 換處理的數(shù)據(jù)變換處理,上述密碼處理步驟是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d > 3的整 數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的步驟,具有運(yùn)算步驟,在該運(yùn)算步驟中,執(zhí)行在各循環(huán) 的F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用了至少兩個(gè)以上的多個(gè)不同的矩陣的運(yùn) 算,在上述運(yùn)算步驟中應(yīng)用的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于 線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為 預(yù)先決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn) 行輸入的F函數(shù)中,上述運(yùn)算步驟是在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函 數(shù)中執(zhí)行基于上述多個(gè)不同的矩陣的線性變換運(yùn)算的步驟。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述多個(gè)不同的 矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的 最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[BkD]為3以上,其中,上述 線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的連續(xù)的k個(gè)(其 中,k為2以上的整數(shù))F函數(shù)中。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述多個(gè)不同的 矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的 最小分支數(shù)[B2D(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[B211]為3以上,其中,上述 線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的連續(xù)的兩個(gè)F函 數(shù)中。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述多個(gè)不同的 矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的 最小分支數(shù)[B2Wi))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[B2I為3以上,其中,上述 線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的連續(xù)的兩個(gè)F函 數(shù)中。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,在將上述多個(gè)不 同的矩陣設(shè)為η個(gè)(其中,η為2以上的整數(shù))不同的矩陣IMp · · Mlri時(shí),上述運(yùn)算步 驟是在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)執(zhí)行這些不同的矩 陣MpMp · .Mlri的步驟。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理步 驟是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的步驟。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理步 驟是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的步
馬聚ο并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理步驟是如下的步驟在設(shè)為a ^ 2的任意的整數(shù)、χ ^ 1的任意的整數(shù)時(shí),執(zhí)行應(yīng)用了數(shù)據(jù)序 列數(shù)d = 2ax的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,所述擴(kuò)展Feistel結(jié)構(gòu)利用了由上述多個(gè) 不同的矩陣執(zhí)行不同的線性變換處理的a種F函數(shù),在一個(gè)循環(huán)中均等地執(zhí)行所有種類(a 種類)的F函數(shù)各χ個(gè)。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述密碼處理步 驟是應(yīng)用F函數(shù)執(zhí)行部,按照控制部的控制來(lái)執(zhí)行密碼處理的步驟,其中,上述F函數(shù)執(zhí)行 部執(zhí)行在一個(gè)循環(huán)中并行地執(zhí)行的ax個(gè)F函數(shù),上述控制部執(zhí)行對(duì)上述F函數(shù)執(zhí)行部的數(shù) 據(jù)輸入輸出控制。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,在上述密碼處理 步驟中,利用由上述多個(gè)不同的矩陣執(zhí)行不同的線性變換處理的多個(gè)F函數(shù)執(zhí)行部和根據(jù) 設(shè)定而變更上述多個(gè)F函數(shù)執(zhí)行部的利用順序的控制部來(lái)執(zhí)行密碼處理,通過(guò)上述控制部 的控制,選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理,其中,上述(a)、(bl)、(b2) 為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 3的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者(bl)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許 執(zhí)行一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并 行執(zhí)行多個(gè)F函數(shù)的密碼處理。并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特征在于,上述控制部根據(jù) 成為加密或解密處理的對(duì)象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處理方式。并且,本發(fā)明的第三側(cè)面在于,一種密碼處理算法構(gòu)建方法,在信息處理裝置中構(gòu) 建密碼處理算法,其特征在于,具有以下步驟矩陣決定步驟,在應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè) 為d彡3的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理算法的結(jié)構(gòu)中,信息處理裝置中的控制部 決定在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中應(yīng)用的至少兩個(gè)以上的多個(gè)不同的矩陣; 以及矩陣設(shè)定步驟,上述控制部在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中 反復(fù)配置在上述矩陣決定步驟中決定的多個(gè)不同的矩陣,其中,上述矩陣決定步驟是執(zhí)行 以下處理的步驟作為上述兩個(gè)以上的多個(gè)不同的矩陣,將滿足從基于線性變換矩陣的與 數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先決定的值以上 的條件的多個(gè)不同的矩陣決定為應(yīng)用矩陣,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel 結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中。并且,本發(fā)明的第四側(cè)面在于,一種計(jì)算機(jī)程序,使密碼處理裝置執(zhí)行密碼處理, 其特征在于,具有密碼處理步驟,使密碼處理部執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Fei stel型共用密鑰塊密碼處理,其中,上述SP型F函數(shù)執(zhí)行包括非線性變換處理和線性變換 處理的數(shù)據(jù)變換處理,上述密碼處理步驟是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 2的整數(shù) 的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的步驟,包括運(yùn)算步驟,在該運(yùn)算步驟中,執(zhí)行在各循環(huán)的 F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用了至少兩個(gè)以上的多個(gè)不同的矩陣的運(yùn)算, 在上述運(yùn)算步驟中應(yīng)用的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于線性 變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先 決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中,上述運(yùn)算步驟是在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中 執(zhí)行基于上述多個(gè)不同的矩陣的線性變換運(yùn)算的步驟。 并且,本發(fā)明的第五側(cè)面在于,一種計(jì)算機(jī)程序,在信息處理裝置中構(gòu)建密碼處理 算法,其特征在于,具有以下步驟矩陣決定步驟,在應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的 整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理算法的結(jié)構(gòu)中,使信息處理裝置中的控制部決定在各 循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中應(yīng)用的至少兩個(gè)以上的多個(gè)不同的矩陣;以及矩陣 設(shè)定步驟,使上述控制部在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配 置在上述矩陣決定步驟中決定的多個(gè)不同的矩陣,其中,上述矩陣決定步驟是執(zhí)行以下處 理的步驟作為上述兩個(gè)以上的多個(gè)不同的矩陣,將滿足從基于線性變換矩陣的與數(shù)據(jù)序 列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先決定的值以上的條件 的多個(gè)不同的矩陣決定為應(yīng)用矩陣,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu) 的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中。 并且,本發(fā)明的第六側(cè)面在于,一種信息處理裝置,包括有形存儲(chǔ)單元,用于存儲(chǔ) 密碼處理所需的密鑰數(shù)據(jù);處理器,用于執(zhí)行各種程序以及控制密碼處理的開(kāi)始和結(jié)束; 以及密碼處理裝置,用于進(jìn)行密碼處理,所述密碼處理裝置具有密碼處理部,該密碼處理部 執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共用密鑰塊密碼處理,其中,上述SP型F函 數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù)據(jù)變換處理,上述密碼處理部是執(zhí)行應(yīng)用 了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 3的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu),具有在各循 環(huán)的F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié) 構(gòu),其中,上述兩個(gè)以上的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于線性 變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先 決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸 入的F函數(shù)中,具有在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配置上 述多個(gè)不同的矩陣的結(jié)構(gòu)。此外,本發(fā)明的計(jì)算機(jī)程序例如是以計(jì)算機(jī)可讀形式提供的能夠通過(guò)存儲(chǔ)介質(zhì)、 通信介質(zhì)、例如CD、FD、M0等記錄介質(zhì)、或網(wǎng)絡(luò)等通信介質(zhì)來(lái)對(duì)可執(zhí)行各種程序代碼的計(jì)算 機(jī)系統(tǒng)提供的計(jì)算機(jī)程序。通過(guò)以計(jì)算機(jī)可讀形式提供這種程序,在計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)與 程序相應(yīng)的處理。通過(guò)基于后述的本發(fā)明的實(shí)施例、附圖的更詳細(xì)的說(shuō)明,本發(fā)明的進(jìn)一步的其它 目的、特征、優(yōu)點(diǎn)會(huì)更清楚。此外,在本說(shuō)明書(shū)中的系統(tǒng)是多個(gè)裝置的邏輯集合結(jié)構(gòu),并不限 于各結(jié)構(gòu)的裝置在同一殼體內(nèi)。發(fā)明的效果根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在將具有非線性變換部和線性變換部的SP型 F函數(shù)反復(fù)執(zhí)行多個(gè)循環(huán)的Feistel型共用密鑰塊密碼處理中,在將具有兩個(gè)數(shù)據(jù)序列的 Feistel結(jié)構(gòu)擴(kuò)展得到的Feistel結(jié)構(gòu)、即具有例如三個(gè)、四個(gè)等兩個(gè)以上的任意的數(shù)據(jù)序 列的擴(kuò)展型Feistel結(jié)構(gòu)中,通過(guò)設(shè)定應(yīng)用了多個(gè)不同的線性變換矩陣的循環(huán)函數(shù)部來(lái)實(shí) 現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),能夠構(gòu)建對(duì)線性分析、差分分析的抵抗性較高的共用密鑰塊密 碼算法以及執(zhí)行密碼處理。根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的整
13數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu)中,具有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處 理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu),作為兩個(gè)以上多個(gè)不同的矩陣 設(shè)定為滿足從基于線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列 中的最小分支數(shù)為預(yù)先決定的值以上的條件的多個(gè)不同的矩陣,由此實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī) 構(gòu)(DSM),能夠構(gòu)建對(duì)線性分析、差分分析的抵抗性較高的共用密鑰塊密碼算法以及執(zhí)行密 碼處理,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函 數(shù)中。并且,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在利用由多個(gè)不同的矩陣執(zhí)行不同的線 性變換處理的彡2)種F函數(shù)執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù)d = 2ax的擴(kuò)展Feistel結(jié)構(gòu) (x^ 1)的密碼處理的結(jié)構(gòu)中,設(shè)為在一個(gè)循環(huán)中均等地執(zhí)行所有種類(a種類)的F函數(shù) 各χ個(gè)的結(jié)構(gòu),因此實(shí)現(xiàn)沒(méi)有設(shè)置多余的電路的小型密碼處理裝置。并且,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),設(shè)為構(gòu)成由多個(gè)不同的矩陣執(zhí)行不同的 線性變換處理的多個(gè)F函數(shù)執(zhí)行部、并根據(jù)設(shè)定來(lái)變更多個(gè)F函數(shù)執(zhí)行部的利用順序的結(jié) 構(gòu),由此實(shí)現(xiàn)能夠選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理的密碼處理裝置, 其中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)為d = 2的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者(bl)是設(shè)為數(shù)據(jù)序列數(shù)為d ^ 2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允 許執(zhí)行一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)為d ^ 2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許 并行執(zhí)行多個(gè)F函數(shù)的密碼處理。
圖1是表示具有Feistel結(jié)構(gòu)的代表性的共用密鑰塊密碼的結(jié)構(gòu)的圖。圖2是說(shuō)明作為循環(huán)函數(shù)部設(shè)定的F函數(shù)的結(jié)構(gòu)的圖。圖3是說(shuō)明利用了兩個(gè)不同的線性變換矩陣的Feistel型密碼算法的圖。圖4是說(shuō)明利用了三個(gè)不同的線性變換矩陣的Feistel型密碼算法的圖。圖5是說(shuō)明擴(kuò)展Feistel結(jié)構(gòu)的定義的圖。圖6是表示具有7個(gè)數(shù)據(jù)序列(d = 7)的擴(kuò)展Feistel結(jié)構(gòu)例的圖。圖7是說(shuō)明擴(kuò)展Feistel結(jié)構(gòu)的各結(jié)構(gòu)部以及各結(jié)構(gòu)部的輸入輸出數(shù)據(jù)的定義的 圖。圖8是說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM應(yīng)用的圖。圖9是說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM應(yīng)用的圖。圖10是說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM應(yīng)用的圖。圖11是說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM應(yīng)用的圖。圖12是說(shuō)明提高了擴(kuò)展Feistel結(jié)構(gòu)的安裝效率的結(jié)構(gòu)的圖。圖13是說(shuō)明提高了擴(kuò)展Feistel結(jié)構(gòu)的安裝效率的硬件結(jié)構(gòu)例的圖。圖14是說(shuō)明用于有效安裝三種F函數(shù)的配置例的圖。圖15是表示設(shè)為數(shù)據(jù)序列d = 2的Feistel結(jié)構(gòu)的2mn比特的塊密碼結(jié)構(gòu)的圖。圖16是表示滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的數(shù)據(jù)序列數(shù)d = 4的擴(kuò)展Feistel結(jié)構(gòu)的圖。圖17是說(shuō)明能夠執(zhí)行不同比特?cái)?shù)的塊密碼的電路共用結(jié)構(gòu)的圖。圖18是說(shuō)明應(yīng)用了三種F函數(shù)F1、F2、F3的F函數(shù)的數(shù)據(jù)序列d = 2的Feistel 結(jié)構(gòu)的圖。圖19是說(shuō)明執(zhí)行三種F函數(shù)Fl、F2、F3的密碼處理裝置的結(jié)構(gòu)例的圖。圖20是表示作為本發(fā)明所涉及的執(zhí)行密碼處理的密碼處理裝置的IC模塊的結(jié)構(gòu) 例的圖。
具體實(shí)施例方式下面,詳細(xì)說(shuō)明本發(fā)明的密碼處理裝置和密碼處理方法、以及計(jì)算機(jī)程序。按照以 下項(xiàng)目進(jìn)行說(shuō)明。1.具有SP型F函數(shù)的Feistel結(jié)構(gòu)2.分支數(shù)運(yùn)算函數(shù)和抵抗性評(píng)價(jià)函數(shù)2-1.分支數(shù)運(yùn)算函數(shù)BranchO2-2.對(duì)差分攻擊的抵抗性評(píng)價(jià)指標(biāo)2-3.對(duì)線性攻擊的抵抗性評(píng)價(jià)指標(biāo)3.對(duì)于具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的DSM的設(shè)定方法4.擴(kuò)展Feistel結(jié)構(gòu)中的DSM的設(shè)定4-1.關(guān)于擴(kuò)展Feistel結(jié)構(gòu)4-2.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié)構(gòu)4-2-1.使最小分支數(shù)B211的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu)4-2-2.使最小分支數(shù)BkD的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu)4-3.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)線性攻擊的抵抗性的結(jié)構(gòu)4-3-1.使最小分支數(shù)B2L的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu)5.對(duì)于具有特定形式的擴(kuò)展Feistel結(jié)構(gòu)的DSM的利用結(jié)構(gòu)5-1.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM的應(yīng)用5-2.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM的應(yīng)用6.擴(kuò)展Feistel結(jié)構(gòu)的各類型的有效S-box數(shù)與基于F函數(shù)中的線性變換矩陣的 最小分支數(shù)之間的關(guān)系式的證明6-1.擴(kuò)展Feistel結(jié)構(gòu)的類型1的有效S-box數(shù)與基于F函數(shù)中的線性變換矩陣 的最小分支數(shù)之間的關(guān)系式的證明6-2.擴(kuò)展Feistel結(jié)構(gòu)的類型2的有效s-box數(shù)與基于F函數(shù)中的線性變換矩陣 的最小分支數(shù)之間的關(guān)系式的證明7.基于F函數(shù)的設(shè)定以及利用處理的方法的安裝中的改進(jìn)結(jié)構(gòu)7-1.擴(kuò)展Feistel的類型2的有效的F函數(shù)配置方法7-2. Feistel結(jié)構(gòu)與擴(kuò)展Feistel結(jié)構(gòu)中的部件的共用化8.本發(fā)明的密碼處理以及密碼算法構(gòu)建處理的歸納9.密碼處理裝置的結(jié)構(gòu)例[1.具有SP型F函數(shù)的Feistel結(jié)構(gòu)]
首先,說(shuō)明具有SP型F函數(shù)的Feistel結(jié)構(gòu)。作為共用密鑰塊密碼的設(shè)計(jì),已知 有Feistel結(jié)構(gòu)。Feistel結(jié)構(gòu)具有如下結(jié)構(gòu)通過(guò)被稱為循環(huán)函數(shù)的基本處理單位的重 復(fù),將明文變換為密文。參照?qǐng)D1說(shuō)明Feistel結(jié)構(gòu)的基本結(jié)構(gòu)。在圖1中示出具有r個(gè)循環(huán)的循環(huán)數(shù)= r的具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的例子。此外,循環(huán)數(shù)r是在設(shè)計(jì)階段決定的參數(shù), 例如是能夠根據(jù)所輸入的密鑰的長(zhǎng)度而改變的值。在圖1所示的Feistel結(jié)構(gòu)中,將作為加密對(duì)象而輸入的明文的長(zhǎng)度設(shè)為2mn 比特。其中,m、n都是整數(shù)。首先,將2mn比特的明文分割為mn比特的兩個(gè)輸入數(shù)據(jù) Pl(Plain-Left 左明文)101、Pk (Plain-Right 右明文)102,并將其設(shè)為輸入值。以被稱為循環(huán)函數(shù)的基本處理單位的重復(fù)來(lái)表現(xiàn)Feistel結(jié)構(gòu),各循環(huán)中所包含 的數(shù)據(jù)變換函數(shù)被稱為F函數(shù)120。在圖1的結(jié)構(gòu)中,示出有F函數(shù)(循環(huán)函數(shù))120重復(fù) 了 r級(jí)的結(jié)構(gòu)例。例如在第一個(gè)循環(huán)中,將mn比特的輸入數(shù)據(jù)X和從密鑰生成部(未圖示)輸入的 mn比特的循環(huán)密鑰&103輸入到F函數(shù)120,在F函數(shù)120中進(jìn)行數(shù)據(jù)變換處理之后輸出mn 比特的數(shù)據(jù)Y。在異或部104中對(duì)輸出與來(lái)自另一方前級(jí)的輸入數(shù)據(jù)(第1級(jí)的情況下是輸 入數(shù)據(jù)1\)進(jìn)行異或運(yùn)算,并向下一個(gè)循環(huán)函數(shù)輸出mn比特的運(yùn)算結(jié)果。應(yīng)用該處理、即僅 反復(fù)應(yīng)用F函數(shù)決定的循環(huán)數(shù)(r)來(lái)完成加密處理,輸出密文的分割數(shù)據(jù)(^(Cipher-Left 左密碼)、CK(Cipher-Right 右密碼)。通過(guò)以上結(jié)構(gòu)得出Feistel結(jié)構(gòu)的解密處理只要使 插入循環(huán)密鑰的順序反轉(zhuǎn)即可、不需要構(gòu)成反函數(shù)。參照?qǐng)D2說(shuō)明設(shè)定為各循環(huán)的函數(shù)的F函數(shù)120的結(jié)構(gòu)。圖2的(a)是表示對(duì)一 個(gè)循環(huán)中的F函數(shù)120的輸入以及輸出的圖,圖2的(b)是表示F函數(shù)120的詳細(xì)結(jié)構(gòu)的 圖。如圖2的(b)所示,F(xiàn)函數(shù)120具有連接了非線性變換層(S層)和線性變換層(P層) 的所謂的SP型結(jié)構(gòu)。圖2所示的F函數(shù)120是輸入輸出比特長(zhǎng)度具有mXn (m、η為整數(shù))比特的設(shè)定 的函數(shù)。在SP型F函數(shù)內(nèi)部中,首先執(zhí)行密鑰數(shù)據(jù)Ki與數(shù)據(jù)Xi之間的異或,然后應(yīng)用非線 性變換層(S層),接著應(yīng)用線性變換層(P層)。具體地說(shuō),在非線性變換層(S層)中排列了 m個(gè)被稱為S盒(S-box) 121的η比 特輸入η比特輸出的非線性變換表,將mn比特的數(shù)據(jù)以每η比特進(jìn)行分割、并分別輸入到 對(duì)應(yīng)的S盒(S-box) 121來(lái)變換數(shù)據(jù)。在各S盒中例如執(zhí)行應(yīng)用了變換表的非線性變換處理。線性變換層(P層)由線性變換部122構(gòu)成,對(duì)線性變換部122輸入來(lái)自S盒121 的作為輸出數(shù)據(jù)的mn比特的輸出值Z,線性變換部122對(duì)該輸入實(shí)施線性變換而輸出mn比 特的結(jié)果。線性變換部122執(zhí)行輸入比特位置的替換處理等線性變換處理,輸出mn比特的 輸出值Y。該輸出值Y與來(lái)自前級(jí)的輸入數(shù)據(jù)進(jìn)行異或,被設(shè)為下一個(gè)循環(huán)的F函數(shù)的輸入值。此外,在下面說(shuō)明的本實(shí)施例的結(jié)構(gòu)中,將在作為線性變換層(P層)的線性變換 部122中執(zhí)行的線性變換定義為應(yīng)用在GF(2)上定義的mnXmn矩陣而進(jìn)行的線性變換,另 外,將包含在第i個(gè)循環(huán)中的矩陣稱為虬。此外,將在本發(fā)明中說(shuō)明的結(jié)構(gòu)中的作為非線性 變換部的S盒和線性變換都設(shè)為雙射。
[2.分支數(shù)運(yùn)算函數(shù)和抵抗性評(píng)價(jià)函數(shù)]接著,說(shuō)明為了理解本發(fā)明而需要的分支數(shù)運(yùn)算函數(shù)和抵抗性評(píng)價(jià)函數(shù)。(2_1·分支數(shù)運(yùn)算函數(shù)BranchO)將作為在線性變換部122中執(zhí)行的線性變換的例子的最優(yōu)擴(kuò)散變換(Optimal Diffusion Mappings)的分支數(shù)運(yùn)算函數(shù)Branch()定義為如下,其中,上述線性變換部 122作為上述F函數(shù)內(nèi)的線性變換層(P層)。對(duì)于進(jìn)行從nXa比特?cái)?shù)據(jù)向nXb比特?cái)?shù)據(jù)的線性變換的映射,θ :{0,l}na— {0,l}nb將分支數(shù)BranChn( θ )定義為如下。Branchn( θ ) = mina ^0 {hwn( a )+hwn( θ (a))}其中,將mina#{Xa}設(shè)為表示滿足α興0的所有Xa中的最小值的Xa,將hwn (Y) 設(shè)為在將比特列Y按每η比特進(jìn)行分割來(lái)表示時(shí)η比特的數(shù)據(jù)都返回不是0的(非零)元 素的數(shù)的函數(shù)。此外,此時(shí),將Branchje)為b+1那樣的映射θ定義為最優(yōu)擴(kuò)散變換。(2-2.對(duì)差分攻擊的抵抗性評(píng)價(jià)指標(biāo))在應(yīng)用Feistel結(jié)構(gòu)的共用密鑰密碼處理中,由密碼分析引起的密鑰的泄漏成為 問(wèn)題。作為密碼分析或者攻擊方法的代表方法,已知有差分分析(也稱為差分解讀法或者 差分攻擊)、線性分析(也稱為線性解讀法或者線性攻擊),其中,上述差分分析通過(guò)多次分 析具有某個(gè)差分(ΔΧ)的輸入數(shù)據(jù)(明文)及其輸出數(shù)據(jù)(密文)來(lái)分析各循環(huán)函數(shù)中的 應(yīng)用密鑰,上述線性分析根據(jù)明文與對(duì)應(yīng)的密文進(jìn)行分析。作為實(shí)現(xiàn)對(duì)差分攻擊的抵抗性的指標(biāo),能夠應(yīng)用包含在表現(xiàn)差分的連接關(guān)系的差 分路徑中的差分有效S盒的最小數(shù)。差分路徑是對(duì)除了加密函數(shù)中的密鑰數(shù)據(jù)以外的所有數(shù)據(jù)部分指定特定的差分 值而得到的。差分值并不是自由決定的,而是變換處理前后的差分值互相關(guān)聯(lián)。在線性變 換處理的前后,一對(duì)一地決定輸入差分與輸出差分之間的關(guān)系。在非線性變換的前后,不是 一對(duì)一地決定輸入差分與輸出差分之間的關(guān)系,而是導(dǎo)入概率的概念。設(shè)為能夠事先計(jì)算 對(duì)于某個(gè)輸入差分和輸出差分的概率。將對(duì)于所有輸出的概率全部相加為1。在具有SP型F函數(shù)的Feistel結(jié)構(gòu)中,非線性變換僅為由S盒進(jìn)行處理的部分。 因而,在這種情況下,具有0以外的概率的差分路徑是從對(duì)明文(輸入)的差分值開(kāi)始直到 密文(輸出)的差分值為止的差分?jǐn)?shù)據(jù)的集合,在所有的S盒前后提供的差分值具有0以 外的概率。設(shè)為將具有0以外的概率的某個(gè)差分路徑的輸入到S盒的差分值不是0的S盒 稱為差分有效S盒。已知將具有0以外的概率的所有差分路徑的有效S盒數(shù)之中最小的數(shù) 稱為最小差分有效S盒數(shù),該數(shù)值作為對(duì)差分攻擊的安全性指標(biāo)。此外,所有差分值為0那 樣的差分路徑概率為1,作為攻擊沒(méi)有意義,因此以后不予考慮。在本發(fā)明的一個(gè)實(shí)施例中,具有通過(guò)保證該最小差分有效S盒數(shù)較大來(lái)提高對(duì)差 分攻擊的安全性的結(jié)構(gòu)。(2-3.對(duì)線性攻擊的抵抗性評(píng)價(jià)指標(biāo))并且,作為實(shí)現(xiàn)對(duì)線性攻擊的抵抗性的指標(biāo),能夠應(yīng)用包含在表現(xiàn)線性掩模的連 接關(guān)系的線性路徑(多被稱為線性近似,但是為了與差分對(duì)應(yīng),在此使用稱為“路徑”的詞
17語(yǔ))中的線性有效S盒的最小數(shù)。線性路徑是對(duì)除了加密函數(shù)中的密鑰數(shù)據(jù)以外的所有數(shù)據(jù)部分指定特定的線性 掩模值而得到的。線性掩模值并不是自由決定的,而是變換處理前后的線性值互相關(guān)聯(lián)。在 線性變換處理的前后,一對(duì)一地決定輸入線性掩模值與輸出線性掩模值之間的關(guān)系。在非 線性變換的前后,不是一對(duì)一地決定輸入線性掩模值與輸出線性掩模值之間的關(guān)系,而是 導(dǎo)入概率的概念。對(duì)于輸入線性掩模值,存在能夠輸出的一個(gè)以上的線性掩模值的集合,能 夠事先計(jì)算各線性掩模值被輸出的概率。對(duì)所有輸出的概率全部相加為1。在具有SP型F函數(shù)的Feistel結(jié)構(gòu)中,非線性變換僅為由S盒進(jìn)行處理的部分。 因而,在這種情況下,具有0以外的概率的線性路徑是從對(duì)明文(輸入)的線性值開(kāi)始直到 密文(輸出)的線性值為止的線性掩模值數(shù)據(jù)的集合,在所有的S盒前后提供的線性值是 具有0以外的概率的線性值。設(shè)為將具有0以外的概率的某個(gè)線性路徑的輸入到S盒的線 性值不是0的S盒稱為線性有效S盒。將具有0以外的概率的所有線性路徑的有效S盒數(shù) 之中最小的數(shù)稱為最小線性有效S盒數(shù),已知該數(shù)值作為對(duì)線性攻擊的安全性指標(biāo)。此外, 所有線性掩模值為0那樣的線性路徑概率為1,作為攻擊沒(méi)有意義,因此以后不予考慮。在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)保證該最小線性有效S盒數(shù)較大來(lái)提高對(duì)線性攻 擊的安全性。[3.對(duì)于具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的D SM的設(shè)定方法]如之前所說(shuō)明的那樣,在應(yīng)用了 Feistel結(jié)構(gòu)的密碼處理中,作為提高對(duì)上述 的差分攻擊、線性攻擊的抵抗性的結(jié)構(gòu),提出應(yīng)用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM=Diffusion Switching Mechanism,下面是DSM)的結(jié)構(gòu)。DSM是在Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù)) 部的線性變換部中配置兩個(gè)以上不同的矩陣的結(jié)構(gòu)。通過(guò)該DSM能夠保證最小線性有效S 盒數(shù)較大,能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。關(guān)于該DSM,說(shuō)明其概要。在Feistel結(jié)構(gòu)中,在應(yīng)用了擴(kuò)散矩陣切換機(jī)構(gòu)(DSM) 的情況下,在構(gòu)成Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù))部的線性變換部(P層)中應(yīng)用的矩 陣為多個(gè)不同的矩陣。例如,如圖1所示的r個(gè)循環(huán)的Feistel結(jié)構(gòu)的各循環(huán)中的應(yīng)用矩 陣不是設(shè)定為全部相同的線性變換矩陣,而是按照特定的規(guī)則排列至少兩種以上的矩陣。例如,圖3示出通過(guò)兩個(gè)線性變換矩陣M0、M1來(lái)實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的 Feistel結(jié)構(gòu)例,圖4示出通過(guò)三個(gè)線性變換矩陣MpMpM2來(lái)實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM) 的Feistel結(jié)構(gòu)例。在圖3所示的Feistel結(jié)構(gòu)例中,兩個(gè)線性變換矩陣Mc^M1由不同的矩陣構(gòu)成。另 外,在圖4所示的Feistel結(jié)構(gòu)例中,三個(gè)線性變換矩陣禮、M1、M2由不同的矩陣構(gòu)成。為了實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),所應(yīng)用的矩陣需要滿足規(guī)定的條件。該條件之 一是與上述分支數(shù)(Branch)有關(guān)的限制。下面,說(shuō)明該限制。在Feistel結(jié)構(gòu)中的循環(huán)函數(shù)部的線性變換所應(yīng)用的多個(gè)不同的矩陣Mtl Mn各 自的分支數(shù)中,將應(yīng)用矩陣中的分支數(shù)的最小值ΒΛ與所應(yīng)用的多個(gè)矩陣的關(guān)聯(lián)矩陣對(duì)應(yīng)的分支數(shù)的最小值=BtB31^B2L定義為如下。[數(shù)1]
[οι 52] 在上式中,Mi表示在Feistel結(jié)構(gòu)中的第i個(gè)循環(huán)的線性變換處理中應(yīng)用的線性變換矩陣,[MjMi+2 · ·]表示通過(guò)MiIMiJ · 各矩陣關(guān)聯(lián)得到的關(guān)聯(lián)矩陣,tM表示矩陣M的轉(zhuǎn)置矩陣,M—1表示矩陣M的逆矩陣。在上式中,B2D、B3D、B,具體表示將在Feistel結(jié)構(gòu)中的一個(gè)數(shù)據(jù)序列中連續(xù)的兩 個(gè)循環(huán)或者三個(gè)循環(huán)的F函數(shù)所包含的矩陣關(guān)聯(lián)得到的矩陣的分支數(shù)的最小值??芍缤ㄟ^(guò)設(shè)定各矩陣使得上述各分支數(shù)滿足以下條件、即B211 彡 3、B311 彡 3、B2L 彡 3在Feistel結(jié)構(gòu)中能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。此外,ΒΛΒΛΒΛΒ^中的各上下標(biāo)具有下面的意思。Bn11的η表示所關(guān)聯(lián)的矩陣數(shù),BnD的D表示用于具有對(duì)差分攻擊(Differential Attack)的抵抗性的條件,BnL中的L表示用于具有對(duì)線性攻擊(Linear Attack)的抵抗性 的條件。[4.擴(kuò)展Feistel結(jié)構(gòu)中的DSM的設(shè)定]在本發(fā)明中,提出對(duì)具有例如三個(gè)序列、四個(gè)序列等兩個(gè)以上的任意的數(shù)據(jù)序 列的Feistel結(jié)構(gòu)實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的結(jié)構(gòu),而不是對(duì)具有兩個(gè)數(shù)據(jù)序列的 Feistel結(jié)構(gòu)實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的結(jié)構(gòu)。下面,詳細(xì)說(shuō)明該結(jié)構(gòu)。在本發(fā)明中要處理的Feistel結(jié)構(gòu)在使用SP型F函數(shù)這點(diǎn)上與上述具有兩個(gè)數(shù) 據(jù)序列的Feistel結(jié)構(gòu)相同,但是以將數(shù)據(jù)序列數(shù)的分割數(shù)一般化為d的擴(kuò)展Feistel結(jié) 構(gòu)為對(duì)象。其中,d是2以上的整數(shù)。如上所述,提出了對(duì)于限定為數(shù)據(jù)序列數(shù)=2的Feistel結(jié)構(gòu)的DSM的應(yīng)用結(jié)構(gòu), 但是并不知道對(duì)于具有將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的任意數(shù)的d的擴(kuò)展Feistel結(jié)構(gòu)應(yīng)用 DSM來(lái)提高抵抗性的方法。本發(fā)明實(shí)現(xiàn)對(duì)具有設(shè)為d ^ 2的任意數(shù)的數(shù)據(jù)序列數(shù)d的擴(kuò)展 Feistel結(jié)構(gòu)應(yīng)用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)來(lái)提高對(duì)差分攻擊、線性攻擊的抵抗性的結(jié)構(gòu)。下面,說(shuō)明本發(fā)明的具體結(jié)構(gòu)以及處理例。(4-1.關(guān)于擴(kuò)展 Feistel 結(jié)構(gòu))下面,參照?qǐng)D5說(shuō)明擴(kuò)展Feistel結(jié)構(gòu)的定義。在本說(shuō)明書(shū)中將擴(kuò)展Feistel結(jié) 構(gòu)定義為如下。1.具有d個(gè)(d是2以上)數(shù)據(jù)序列,各數(shù)據(jù)序列的大小是mn比特。2. F函數(shù)的輸入輸出大小是mn比特。3.具有稱為循環(huán)的處理單位,在循環(huán)內(nèi)對(duì)一個(gè)或多個(gè)數(shù)據(jù)序列實(shí)施由F函數(shù)進(jìn)行 的變換處理,在其它的數(shù)據(jù)序列中對(duì)其結(jié)果進(jìn)行異或。其中,設(shè)為在一個(gè)循環(huán)內(nèi)包含兩個(gè)以 上F函數(shù)的情況下,在所有的成為F函數(shù)的輸入輸出的數(shù)據(jù)序列中不存在重復(fù)的序列。
參照?qǐng)D5說(shuō)明由上述定義構(gòu)建的擴(kuò)展Feistel結(jié)構(gòu)的例子。上述定義1.具有d個(gè)(d是2以上)數(shù)據(jù)序列,各數(shù)據(jù)序列的大小是mn比特。參照?qǐng)D5說(shuō)明該定義。在圖5中,意味著數(shù)據(jù)序列1 d的各數(shù)據(jù)序列的輸入輸 出大小是mn比特,輸入輸出的總比特?cái)?shù)是dmn比特。上述定義2. F函數(shù)的輸入輸出大小是mn比特。參照?qǐng)D5說(shuō)明該定義。例如從數(shù)據(jù)序列2的上一級(jí)的異或(XOR)運(yùn)算部201對(duì)F 函數(shù)202輸入作為運(yùn)算結(jié)果的mn比特,并且輸入循環(huán)密鑰K來(lái)執(zhí)行運(yùn)算處理。該運(yùn)算處理 是參照?qǐng)D2的(b)所說(shuō)明的處理,包括S盒中的非線性變換和線性變換部中的應(yīng)用線性變 換矩陣Mi的線性變換處理。F函數(shù)202的輸出是mn比特,被輸入到數(shù)據(jù)序列4的異或(XOR) 運(yùn)算部203。上述定義3.具有稱為循環(huán)的處理單位,在循環(huán)內(nèi)對(duì)一個(gè)或多個(gè)數(shù)據(jù)序列實(shí)施由F 函數(shù)進(jìn)行的變換處理,在其它的數(shù)據(jù)序列中對(duì)其結(jié)果進(jìn)行異或。其中,設(shè)為在一個(gè)循環(huán)內(nèi)包 含兩個(gè)以上的F函數(shù)的情況下,在所有成為F函數(shù)的輸入輸出的數(shù)據(jù)序列中不存在重復(fù)的 序列。參照?qǐng)D5說(shuō)明該定義。圖5示出具有r個(gè)循環(huán)的結(jié)構(gòu)的擴(kuò)展Feistel結(jié)構(gòu)。在各 循環(huán)中包含一個(gè)以上的F函數(shù),在其它的數(shù)據(jù)序列中對(duì)其結(jié)果進(jìn)行異或。圖5所示的循環(huán) n,在一個(gè)循環(huán)內(nèi)包含多個(gè)F函數(shù)。是圖5所示的F函數(shù)211和F函數(shù)212。這樣,在一個(gè)循環(huán)中包含多個(gè)F函數(shù)的情況下,各F函數(shù)的輸入輸出序列分別是不 同的數(shù)據(jù)序列,設(shè)定為重復(fù)的數(shù)據(jù)序列不作為輸入輸出序列來(lái)應(yīng)用。圖5所示的F函數(shù)211的輸入數(shù)據(jù)序列是數(shù)據(jù)序列1,輸出數(shù)據(jù)序列是數(shù)據(jù)序列 2,F(xiàn)函數(shù)212的輸入數(shù)據(jù)序列是數(shù)據(jù)序列5以上的任一個(gè),輸出數(shù)據(jù)序列是數(shù)據(jù)序列 3,設(shè)定為任意的輸入輸出數(shù)據(jù)序列都不重復(fù)。此外,也如圖5所示,在本說(shuō)明書(shū)中,F(xiàn)函數(shù)表示為[F],循環(huán)密鑰表示為[K]。對(duì) 這些各標(biāo)識(shí)符F、K設(shè)定的上下標(biāo)具有下面的意思。Fi1Mn的i表示循環(huán),η表示同一循環(huán)中的F函數(shù)或者循環(huán)密鑰的識(shí)別編號(hào)。此外,雖然沒(méi)有圖示,但是在以下的說(shuō)明中,在各循環(huán)的F函數(shù)的線性變換部中應(yīng) 用的線性變換矩陣表示為[Μ],對(duì)M設(shè)定的上下標(biāo)也與上述同樣地,設(shè)Mi11的i表示循環(huán),η表示與設(shè)定在同一循環(huán)中的多個(gè)F函數(shù)分別對(duì)應(yīng)的線性變 換矩陣的識(shí)別編號(hào)。圖6表示滿足上述定義的具有7個(gè)數(shù)據(jù)序列(d = 7)的擴(kuò)展Feistel結(jié)構(gòu)例。此 外,在圖6中,省略各F函數(shù)的輸出與各數(shù)據(jù)序列之間的異或運(yùn)算(XOR)部的標(biāo)記,但是是 如下的結(jié)構(gòu)各F函數(shù)的輸出與各數(shù)據(jù)序列在各交叉點(diǎn)上利用各自的輸入執(zhí)行異或運(yùn)算 (XOR),向同一數(shù)據(jù)序列的下方向輸出該異或運(yùn)算(XOR)結(jié)果。在圖6所示的例子中,循環(huán) i+4、循環(huán)i+5、循環(huán)i+9、循環(huán)i+10是在一個(gè)循環(huán)中包含兩個(gè)以上F函數(shù)的循環(huán),在這些循 環(huán)中示出的F函數(shù)[F]和循環(huán)密鑰[K]的右上方顯示表示同一循環(huán)中的F函數(shù)或循環(huán)密鑰 的識(shí)別編號(hào)的編號(hào)。當(dāng)根據(jù)上述定義1 3構(gòu)建將序列數(shù)d設(shè)為d = 2的Feistel結(jié)構(gòu)時(shí),成為由兩
20個(gè)數(shù)據(jù)序列構(gòu)成的Feistel結(jié)構(gòu)、即之前參照?qǐng)D1所說(shuō)明的Feistel結(jié)構(gòu)。S卩,成為F函 數(shù)交替往來(lái)于兩個(gè)數(shù)據(jù)序列間那樣的結(jié)線結(jié)構(gòu),但是在具有三個(gè)以上的數(shù)據(jù)序列的擴(kuò)展 Feistel結(jié)構(gòu)的情況下,由于存在多個(gè)被選為F函數(shù)的輸入和輸出的數(shù)據(jù)序列,因此無(wú)法唯 一地確定結(jié)線結(jié)構(gòu)。也就是說(shuō),在擴(kuò)展Feistel結(jié)構(gòu)中,d越大F函數(shù)的設(shè)置位置的自由度 呈指數(shù)函數(shù)增大。在本發(fā)明中,提出在這種擴(kuò)展Feistel結(jié)構(gòu)中實(shí)現(xiàn)提高對(duì)差分攻擊、線性攻擊的 抵抗性的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM diffusion Switching Mechanism)的結(jié)構(gòu)。在將序列數(shù)d設(shè)為d = 2的Feistel結(jié)構(gòu)中,例如如圖3、圖4所示,通過(guò)將在構(gòu)成 Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù))部的線性變換部(P層)中應(yīng)用的矩陣設(shè)為兩個(gè)不同的 線性變換矩陣IM1、或者三個(gè)不同的線性變換矩陣Mc^MpM2等來(lái)實(shí)現(xiàn)D SM。其中,為了實(shí) 現(xiàn)D SM,需要所應(yīng)用的矩陣滿足規(guī)定的條件。該條件之一是與上述分支數(shù)(Branch)有關(guān)的 限制。在說(shuō)明在將數(shù)據(jù)序列數(shù)d設(shè)為d:d彡2的任意的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中實(shí)現(xiàn)D SM的結(jié)構(gòu)之前,參照?qǐng)D7說(shuō)明在下面的說(shuō)明中使用 的擴(kuò)展Feistel結(jié)構(gòu)的各結(jié)構(gòu)部以及各結(jié)構(gòu)部的輸入輸出數(shù)據(jù)的定義。圖7是僅提取表示例如構(gòu)成如圖6所示的擴(kuò)展Feistel結(jié)構(gòu)的一個(gè)數(shù)據(jù)序列的 圖。如圖7所示,可知對(duì)某一個(gè)數(shù)據(jù)序列的輸入數(shù)據(jù)與一次以上的F函數(shù)的輸出進(jìn)行異或 (XOR)而輸出。該處理適用于擴(kuò)展Feistel結(jié)構(gòu)所包含的任意的數(shù)據(jù)序列。在圖7中,表示對(duì)一個(gè)數(shù)據(jù)序列[s(i)]通過(guò)異或運(yùn)算(XOR)將多個(gè)F函數(shù)[Fs(i), ^Fsajj2,…]的輸出相加的情形。此外,將擴(kuò)展Feistel結(jié)構(gòu)中具有d個(gè)的數(shù)據(jù)序列分別設(shè)為s (i) (1 ^ i ^ d),將 對(duì)數(shù)據(jù)序列s(i)進(jìn)行輸入的F函數(shù)從靠近數(shù)據(jù)序列s⑴的輸入起依次命名為Fs(i),PFsii), 2、…0另外,將數(shù)據(jù)序列s(i)的輸入數(shù)據(jù)設(shè)為Ιω’0,將對(duì)F函數(shù)Fs(i), j的輸出進(jìn)行異或之后的數(shù)據(jù)設(shè)為Ws(i), j。另外,將對(duì)F函數(shù)Fsii)^的輸入數(shù)據(jù)設(shè)為Xsiihj0各Xs(i),j是屬于數(shù)據(jù)序列s(i)以外的其它的序列的數(shù)據(jù),在此設(shè)為不追究其屬于 哪個(gè)序列。此時(shí),能夠認(rèn)為擴(kuò)展Feistel結(jié)構(gòu)是將這種數(shù)據(jù)序列d個(gè)相互連接而構(gòu)成的結(jié)構(gòu)。在擴(kuò)展Feistel結(jié)構(gòu)中用于實(shí)現(xiàn)DSM的結(jié)構(gòu)下面,說(shuō)明在設(shè)為d :d彡2的任意的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中用于實(shí)現(xiàn)DSM的 結(jié)構(gòu)。針對(duì)(4-2)在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié)構(gòu)(4-3)在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)線性攻擊的抵抗性的結(jié)構(gòu)這些各個(gè)結(jié)構(gòu)依次進(jìn)行說(shuō)明。(4-2.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié)構(gòu))首先,說(shuō)明在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié)構(gòu)。如上所述,差分攻擊是通過(guò)多次分析具有某個(gè)差分(ΔΧ)的輸入數(shù)據(jù)(明文)及其輸出數(shù)據(jù)(密文)來(lái)分析各循環(huán)函數(shù)中的應(yīng)用密鑰的攻擊,作為實(shí)現(xiàn)對(duì)差分攻擊的抵抗 性的指標(biāo),應(yīng)用包含在表現(xiàn)差分的連接關(guān)系的差分路徑中的差分有效S盒的最小數(shù)。差分 路徑是除了加密函數(shù)中的密鑰數(shù)據(jù)之外的數(shù)據(jù)部分的差分值。在線性變換處理的前后,一 對(duì)一地決定輸入差分與輸出差分之間的關(guān)系,在非線性變換處理的前后,不是一對(duì)一地決 定,而是算出對(duì)某個(gè)輸入差分的輸出差分的出現(xiàn)概率。將對(duì)于所有輸出的概率全部相加為 1。在具有SP型F函數(shù)的Feistel結(jié)構(gòu)中,非線性變換僅是S盒。在這種情況下,具 有0以外的概率的差分路徑是從對(duì)明文(輸入)的差分值開(kāi)始直到密文(輸出)的差分值 為止的差分?jǐn)?shù)據(jù)的集合,在所有的S盒前后提供的差分值具有0以外的概率。將具有0以 外的概率的某個(gè)差分路徑的輸入到S盒的差分值不是0的S盒稱為差分有效S盒。將具有 0以外的概率的所有差分路徑的有效S盒數(shù)之中最小的數(shù)稱為最小差分有效S盒數(shù),使用該 數(shù)值作為對(duì)差分攻擊的安全性指標(biāo)。使最小差分有效S盒數(shù)變大來(lái)提高對(duì)差分攻擊的抵抗性。下面說(shuō)明在將數(shù)據(jù)序列 數(shù)d設(shè)為d > 2的任意整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中構(gòu)建使最小差分有效S盒數(shù)的數(shù)量變大 的D SM結(jié)構(gòu)的方法。將擴(kuò)展Feistel結(jié)構(gòu)所包含的F函數(shù)[Fs(i),J中使用的線性變換矩陣設(shè)為[Ms(i), J。此時(shí),將應(yīng)用了分支數(shù)運(yùn)算函數(shù)BranchO的分支數(shù)算出式B211 (s (i))定義為如下。[數(shù)2] 上式是求出在對(duì)構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意的數(shù)據(jù)序列s (i)進(jìn)行輸入的兩個(gè) 相鄰的F函數(shù)[Fs(i),j、Fs(i),J+1]中使用的兩個(gè)線性變換矩陣[Ms(i),j、Ms(i),J+1]的關(guān)聯(lián)矩陣 [Ms⑴,j I Ms(i), J+1]中的分支數(shù)的最小值的式子。在構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意的數(shù)據(jù)序列s (i)中,將與從上一級(jí)輸入到數(shù)據(jù)序 列s(i)的F函數(shù)的個(gè)數(shù)相當(dāng)?shù)腫j]設(shè)為任意的j,考慮數(shù)據(jù)序列s(i)上的數(shù)據(jù)[WswJ。針對(duì)夾著對(duì)數(shù)據(jù)序列s⑴進(jìn)行輸入的兩個(gè)F函數(shù)[Fs(i), J+1]、[Fs(i),J+2]的對(duì)數(shù)據(jù) 序列s(i)的輸入部的數(shù)據(jù)序列s(i)上的輸入輸出數(shù)據(jù)%ω,』和[Ws(i),j+2],考慮W^j = 0、Ws(i) j+2 = 0 的情況。此時(shí),在向?qū)?shù)據(jù)序列s (i)進(jìn)行輸入的F函數(shù)中相鄰的F函數(shù)[Fs(i),j+1]和[Fs(i),j+2]輸 入的各輸入差分值[AXs(i),j+1]和[AXs(i),j+2]之間,[數(shù)3] 的關(guān)系式成立。此外,在上式中,hw是漢明重量,上式的左邊表示F函數(shù)的輸入差分?jǐn)?shù)據(jù)中的非零 的要素?cái)?shù)、即有效S盒數(shù)之和。保證該數(shù)為較大的值是能夠期望提高對(duì)差分攻擊的抵抗性 的條件。因而,如果其以外的條件相同,則得出優(yōu)選為選擇構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的各F函數(shù)內(nèi)的矩陣使得B2d (s (i))盡可能變大。在目前為止的擴(kuò)展Feistel型密碼中一般為在所有F函數(shù)內(nèi)的線性變換部中利用 一個(gè)線性變換矩陣的結(jié)構(gòu)。然而,當(dāng)對(duì)數(shù)據(jù)序列s (i)進(jìn)行輸入的兩個(gè)相鄰的F函數(shù)[&ω,」、&ω,」+1]中使用 的兩個(gè)線性變換矩陣[Ms(i) J和[Ms(^+1]是相同的矩陣時(shí),導(dǎo)致應(yīng)用了上述分支數(shù)運(yùn)算函 數(shù)BranchO的分支數(shù)的算出式、即B211 (S ⑴)一定是最低的值、即2。因此,無(wú)法期望得到抵抗性提高的效果。另外,即使在使用不同的矩陣的情況下,當(dāng)隨意選擇兩個(gè)矩陣時(shí),也存在B2d(s (i)) 為2的情況。將由上述分支數(shù)算出式定義的B2D(s(i))設(shè)為更大的分支數(shù)能夠保證局部的最 小差分有效S盒數(shù)較大,從而提高對(duì)差分攻擊的抵抗性。因而,例如通過(guò)選擇矩陣使得 B211 (s (i))為3以上,能夠提高對(duì)差分攻擊的抵抗性。對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B211 (s⑴),將它們之中最小值的 B211 (s(i))設(shè)為B2d。下面說(shuō)明選擇F函數(shù)中的矩陣使得該B211為3以上的方法。(4-2-1.使最小分支數(shù)B211的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu))首先,下面說(shuō)明只要存在最少兩種矩陣就能夠?qū)崿F(xiàn)使擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù) 據(jù)序列的最小分支數(shù)[B2D(s(i))]中最小的分支數(shù)[B2d]為3以上的情形。首先,準(zhǔn)備兩個(gè)不同的矩陣[AJ和[A1]的關(guān)聯(lián)矩陣[AcJA1]的分支數(shù)為3以上、即 兩足Branchn ([A01A1]) ^ 3的兩個(gè)不同的矩陣[AJ和[A1]。接著,將對(duì)擴(kuò)展Feistel結(jié)構(gòu)的數(shù)據(jù)序列s(i)進(jìn)行輸入的多個(gè)F函數(shù)的線性變換 部的線性變換矩陣設(shè)定為如下。設(shè)定在最初的F函數(shù)Fsi^的線性變換部中的線性變換矩陣為A0、設(shè)定在第二個(gè)F函數(shù)Fs(i),2的線性變換部中的線性變換矩陣為~、設(shè)定在第三個(gè)F函數(shù)Fs(i),3的線性變換部中的線性變換矩陣為A0、如上那樣,對(duì)向數(shù)據(jù)序列s(i)進(jìn)行輸入的多個(gè)F函數(shù)從上開(kāi)始依次交替地配置兩 個(gè)不同的矩陣[A0]和[A1]。在這樣設(shè)定線性變換矩陣的情況下,求出對(duì)任意的數(shù)據(jù)序列s(i)進(jìn)行輸入的兩 個(gè)相鄰的F函數(shù)[&ω,」、&ω,」+1]中使用的兩個(gè)線性變換矩陣[Μ3ω,」、Μ3ω,」+1]的關(guān)聯(lián)矩陣 [Ms⑴,j I Ms(i), J+1]中的分支數(shù)的最小值的上式是[數(shù)4] S卩,保證最小分支數(shù)為3以上。當(dāng)然,即使輪換矩陣[AJ和[AJ,效果也相同。另外,如果對(duì)擴(kuò)展Feistel結(jié)構(gòu)的 所有數(shù)據(jù)序列S (i)同樣地設(shè)定矩陣,則僅使用兩個(gè)矩陣就能夠使B211的值為3以上。
這樣,準(zhǔn)備滿足BranchJ^lAj)彡3的兩個(gè)不同的矩陣[Aj和[A1],通過(guò)設(shè)定為 在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的F函數(shù)中交替地配置這些各個(gè)矩陣, 能夠使最小分支數(shù)B211的值為3以上,從而實(shí)現(xiàn)利用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)提高對(duì)差分攻 擊的抵抗性。上述的說(shuō)明是應(yīng)用兩個(gè)不同的矩陣[AJ和[A1]的例子。接著,下面說(shuō)明將不同的矩陣一般化為2以上的任意數(shù)[k]的例子。將在擴(kuò)展Feistel結(jié)構(gòu)所包含的F函數(shù)[F&),」]中使用的線性變換矩陣設(shè)為[Ms(i), 」]。此時(shí),將應(yīng)用了分支數(shù)運(yùn)算函數(shù)BranchO的分支數(shù)的算出式B211 (s (i))定義為如下。[數(shù)5] 上式是求出在對(duì)構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意數(shù)據(jù)序列s(i)進(jìn)行輸入的k個(gè)相 鄰的F函數(shù)[Fs⑴,」、&),,”…、Fs^1]中使用的k個(gè)線性變換矩陣[Μυ.、Μ3ω#、…、 Msfi),^]的關(guān)聯(lián)矩陣[Μ3(υ,」|Μ3ω,」+1|··· IMsw,^]中的分支數(shù)的最小值的式子。在構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意數(shù)據(jù)序列s (i)中,將與從上一級(jí)輸入到數(shù)據(jù)序列 s(i)的F函數(shù)的個(gè)數(shù)相當(dāng)?shù)腫j]設(shè)為任意的j,考慮數(shù)據(jù)序列s(i)上的數(shù)據(jù)[Wsii),+對(duì)夾著對(duì)數(shù)據(jù)序列s⑴進(jìn)行輸入的k個(gè)F函數(shù)[Fs(i),j+1]…[Fs(i),j+k]的對(duì)數(shù)據(jù)序 列s(i)的輸入部的數(shù)據(jù)序列s(i)上的輸入輸出數(shù)據(jù)和[Ws(i),j+k],考慮1ω,」= 0、WsW,J+k = 0 的情況。此時(shí),在向?qū)?shù)據(jù)序列s(i)進(jìn)行輸入的F函數(shù)中相鄰的k個(gè)F函數(shù)[Fs(i),j+1] "JFsii), J+k]輸入的各輸入差分值[AXs(i),j+1]…[AXs(i),j+k]之間,得到[數(shù)6] j+k 的關(guān)系式。此外,在上式中,hw是漢明重量,上式的左邊表示F函數(shù)的輸入差分?jǐn)?shù)據(jù)中的非零 要素?cái)?shù)、即有效S盒數(shù)之和。保證該數(shù)為較大的值是能夠期望提高對(duì)差分攻擊的抵抗性的 條件。因而,如果其以外的條件相同,則得出優(yōu)選為選擇構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的各F函數(shù) 內(nèi)的矩陣使得BkD (s (i))盡可能大。然而,即使在向數(shù)據(jù)序列s (i)進(jìn)行輸入的k個(gè)相鄰的F函數(shù)[&ω,」] "'[FsiiWt1] 中使用的k個(gè)線性變換矩陣[Ms(i)J…[Msii^1]中存在一個(gè)相同的矩陣,也會(huì)導(dǎo)致應(yīng)用了 上述分支數(shù)運(yùn)算函數(shù)=BranchO的分支數(shù)的算出式、即BkD(s(i))一定是最低的值、即2。因此,無(wú)法期望得到抵抗性提高的效果。另外,即使在k個(gè)線性變換矩陣[Ms(i)J…[Ms(m]中使用不同的矩陣的情況下, 當(dāng)隨意選擇矩陣時(shí),也存在BkD (s (i))為2的情況。將由上述分支數(shù)算出式定義的BkD(s(i))設(shè)為更大的分支數(shù)能夠保證局部的最小線性有效S盒數(shù)變大,從而提高對(duì)差分攻擊的抵抗性。因而,例如通過(guò)選擇矩陣使得 BkD(s(i))為3以上,能夠提高對(duì)差分攻擊的抵抗性。對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算BkD(s⑴),將它們之中最小值的 BkD(s(i))設(shè)為BkD。下面說(shuō)明選擇F函數(shù)中的矩陣使得該BkD為3以上的方法。(4-2-2.使最小分支數(shù)Bk11的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu))下面說(shuō)明只要存在至少k種矩陣就能夠?qū)崿F(xiàn)使擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列 的最小分支數(shù)[BkD(s(i))]中最小的分支數(shù)[BkD]為3以上的情形。首先,準(zhǔn)備k個(gè)不同的矩陣[AJ、[A1]、[A2]、…[Ak_J的關(guān)聯(lián)矩陣[A01 Aj... |Ak_J 的分支數(shù)為3以上、即滿足Branchn ([A01 Aj... I Ak_J)彡 3的k 個(gè)不同的矩陣[A0]、[A1]、[A2]、... [Ak_J。接著,將對(duì)擴(kuò)展Feistel結(jié)構(gòu)的數(shù)據(jù)序列s(i)進(jìn)行輸入的多個(gè)F函數(shù)的線性變換 部的線性變換矩陣設(shè)定為如下。
設(shè)定在最初的F函數(shù)Fs(i),1的線性變換部中的線性變換矩陣為K、 設(shè)定在第二個(gè)F函數(shù)Fs(i),2的線性變換部中的線性變換矩陣為~、 設(shè)定在第三個(gè)F函數(shù)Fs(i),3的線性變換部中的線性變換矩陣為A2、
設(shè)定在第k個(gè)F函數(shù)Fs(i),k的線性變換部中的線性變換矩陣為Au、 設(shè)定在第k+Ι個(gè)F函數(shù)Fs(i),k+1的線性變換部中的線性變換矩陣為A0、 設(shè)定在第k+2個(gè)F函數(shù)Fs(i),k+2的線性變換部中的線性變換矩陣為Ap
如上那樣,對(duì)向數(shù)據(jù)序列s (i)進(jìn)行輸入的多個(gè)F函數(shù)從上開(kāi)始依次重復(fù)配置k個(gè) 不同的矩陣[A0]、[A1]、[A2]、... [Ak_J。在這樣設(shè)定線性變換矩陣[AJ、[A1]、[A2]、…[Ak_J的情況下,求出對(duì)任意數(shù)據(jù)序 列s(i)進(jìn)行輸入的k個(gè)相鄰的F函數(shù)[Fs(^Fsii)J1…&ω,」+Η]中使用的k個(gè)線性變換 矩陣[M s(i), j> Ms(i), j+r"Ms(i), j+k-J 的關(guān)聯(lián)矩陣[Ms⑴,j |MS⑴,j+11 ...Ms(i), j+k_J 中的分支數(shù)的最 小值的式子是[數(shù)7]
= min(Branchn([Mmj | M明川 | M吼J+21
IMmj^])) >3SP,保證最小分支數(shù)為3以上。當(dāng)然,即使輪換矩陣[A0]、[A1]、[A2]、-[AkJ,效果也相同。另外,如果對(duì)擴(kuò)展 Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列s(i)同樣地設(shè)定矩陣,則僅使用k個(gè)矩陣就能夠使BkD的值 為3以上。這樣,準(zhǔn)備滿足Branchn ([A01 Aj... I Ak_J)彡 3的k個(gè)不同的矩陣[A0]、[A1]、[A2]、... [Ak_J,通過(guò)設(shè)定為在對(duì)擴(kuò)展Feistel結(jié)構(gòu) 的各數(shù)據(jù)序列s(i)進(jìn)行輸入的F函數(shù)中依次反復(fù)配置這些各矩陣,能夠使最小分支數(shù)BkD
25的值為3以上,從而實(shí)現(xiàn)利用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)提高對(duì)差分攻擊的抵抗性。此外,關(guān)于k的值的選擇,只要k至少為2以上就能夠期望得到上述效果。k越大, 被保證的范圍越大,因此能夠進(jìn)一步期望抵抗性的提高。但是,另一方面,由于所需的矩陣 種類的最小數(shù)變大,因此有可能不適于有效安裝。因此,k的值應(yīng)該是在設(shè)計(jì)階段根據(jù)狀況 而選擇的值。(4-3.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)線性攻擊的抵抗性的結(jié)構(gòu))接著,說(shuō)明在擴(kuò)展Feistel結(jié)構(gòu)中提高對(duì)線性攻擊的抵抗性的結(jié)構(gòu)。首先,如所說(shuō)明的那樣,作為實(shí)現(xiàn)對(duì)線性攻擊的抵抗性的指標(biāo),能夠應(yīng)用表現(xiàn)線性 掩模的連接關(guān)系的線性路徑(多被稱為線性近似,但是為了與差分對(duì)應(yīng),在此使用稱為“路 徑”的詞語(yǔ))所包含的線性有效S盒的最小數(shù)。線性路徑是對(duì)除了加密函數(shù)中的密鑰數(shù)據(jù) 以外的所有數(shù)據(jù)部分指定特定的線性掩模值而得到的。在線性變換處理的前后,一對(duì)一地 決定輸入線性掩模值與輸出線性掩模值之間的關(guān)系,在非線性變換處理的前后,不是一對(duì) 一地決定,而是算出對(duì)某輸入線性掩模的輸出線性掩模的出現(xiàn)概率。對(duì)所有輸出的概率全 部相加為1。在具有SP型F函數(shù)的Feistel結(jié)構(gòu)中,非線性變換僅為由S盒進(jìn)行處理的部分。 因而,在這種情況下,具有0以外的概率的線性路徑是從對(duì)明文(輸入)的線性值開(kāi)始直到 密文(輸出)的線性值為止的線性掩模值數(shù)據(jù)的集合,在所有S盒前后提供的線性值具有 0以外的概率。將具有0以外的概率的某線性路徑的輸入到S盒的線性值不是0的S盒稱 為線性有效S盒。將具有0以外的概率的所有線性路徑的有效S盒數(shù)之中最小的數(shù)稱為最 小線性有效S盒數(shù),使用該數(shù)值作為對(duì)線性攻擊的安全性指標(biāo)。使最小線性有效S盒數(shù)變大來(lái)提高對(duì)線性攻擊的抵抗性。下面說(shuō)明在將數(shù)據(jù)序列 數(shù)d設(shè)為d > 2的任意整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中構(gòu)建使最小線性有效S盒數(shù)的數(shù)量變大 的DSM結(jié)構(gòu)的方法。將在擴(kuò)展Feistel結(jié)構(gòu)所包含的F函數(shù)[Fs(i),J中使用的線性變換矩陣設(shè)為[Ms(i), J。此時(shí),將應(yīng)用了分支數(shù)運(yùn)算函數(shù)BranchO的分支數(shù)的算出式B2Vs (i))定義為如下。[數(shù) 8] 上式是求出在對(duì)構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意數(shù)據(jù)序列s(i)進(jìn)行輸入的兩個(gè)相 鄰的F函數(shù)[Fs(i)d、Fs(i)d+1]中使用的兩個(gè)線性變換矩陣[Ms(u]、[Ms(u+1]各自的逆矩陣 的轉(zhuǎn)置矩陣[tM4s⑴,」]、ΓΜ、⑴,j+1]的關(guān)聯(lián)矩陣[^、⑴^^⑴,判]中的分支數(shù)的最小值的 式子。在構(gòu)成擴(kuò)展Feistel結(jié)構(gòu)的任意數(shù)據(jù)序列s (i)中,將與從上一級(jí)對(duì)數(shù)據(jù)序列s (i) 進(jìn)行輸入的F函數(shù)的個(gè)數(shù)相當(dāng)?shù)腫j]設(shè)為任意的j,對(duì)于某j,對(duì)第j個(gè)F函數(shù)的輸入Χ3ω,」、第j個(gè)F函數(shù)的輸出與數(shù)據(jù)序列s (i)上的數(shù)據(jù)之間的異或(XOR)結(jié)果Ws(i),”對(duì)第j+Ι個(gè)F函數(shù)的輸入Xsa),J+1,當(dāng)將這些各數(shù)據(jù)的線性掩模分別設(shè)為rXs(i)jJ,
Γ1ω,”rXs(i),J+1時(shí),如果它們之中任一個(gè)都不為0,則滿足下式。艮P,[數(shù)9] 滿足上式。意味著上式左邊的值越大,局部的線性有效S盒數(shù)越大。因而,可以說(shuō) 優(yōu)選為選擇矩陣以使B2Wi))變大。然而,當(dāng)在對(duì)數(shù)據(jù)序列s⑴進(jìn)行輸入的兩個(gè)相鄰的F函數(shù)[Fs(i), j, Fs(i),J+1]中使 用的兩個(gè)線性變換矩陣[Μ3ω,』、[Ms(^+1]是相同的矩陣時(shí),上述的分支數(shù)算出式、即B2L (S ⑴)一定是最低的值、即2。因此無(wú)法期望得到抵抗性提高的效果。將B2Wi))設(shè)為 更大的分支數(shù)能夠保證最小線性有效S盒數(shù)變大,從而提高對(duì)線性攻擊的抵抗性。因而,例 如通過(guò)選擇矩陣使得B2Wi))為3以上,能夠提高對(duì)線性攻擊的抵抗性。對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B21 (s (i)),將它們之中最小值的 B2Wi))設(shè)為Β2\下面說(shuō)明選擇F函數(shù)中的矩陣使得該B2L為3以上的方法。(4-3-1.使最小分支數(shù)B,的值為3以上的F函數(shù)中的矩陣選擇結(jié)構(gòu))下面說(shuō)明只要存在至少兩種矩陣就能夠?qū)崿F(xiàn)使擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序 列的最小分支數(shù)[B2Wi))]中最小的分支數(shù)[B2I為3以上的情形。首先,準(zhǔn)備兩個(gè)不同的矩陣[AJ和[A1]的關(guān)聯(lián)矩陣[tAcT1ItAr1]的分支數(shù)為3以 上、即滿足Branchn ([tA0"11 tA1-1])彡 3的兩個(gè)不同的矩陣[Α。]和[A1]。接著,將對(duì)擴(kuò)展Feistel結(jié)構(gòu)的數(shù)據(jù)序列s(i)進(jìn)行輸入的多個(gè)F函數(shù)的線性變換 部的線性變換矩陣設(shè)定為如下。設(shè)定在最初的F函數(shù)Fsi^的線性變換部中的線性變換矩陣為A0、設(shè)定在第二個(gè)F函數(shù)Fs(i),2的線性變換部中的線性變換矩陣為~、設(shè)定在第三個(gè)F函數(shù)Fs(i),3的線性變換部中的線性變換矩陣為A。、如上那樣,對(duì)向數(shù)據(jù)序列s(i)進(jìn)行輸入的多個(gè)F函數(shù)從上開(kāi)始依次交替地配置兩 個(gè)不同的矩陣[A0]和[A1]。在這樣設(shè)定線性變換矩陣的情況下,求出在對(duì)任意數(shù)據(jù)序列s(i)進(jìn)行輸入的兩 個(gè)相鄰的F函數(shù)[Fs(i)d、Fs(i)d+1]中使用的兩個(gè)線性變換矩陣[Ms(u]、[Ms(u+1]各自的逆 矩陣的轉(zhuǎn)置矩陣[tM4s⑴,^、[、、⑴,判]的關(guān)聯(lián)矩陣ΓΜ、ω,」I tM4sii),j+1]中的分支數(shù)的最小 值的上式成為[數(shù) 10]
27 SP,保證最小分支數(shù)為3以上。當(dāng)然,即使輪換矩陣[AJ和[AJ,效果也相同。另外,如果對(duì)擴(kuò)展Feistel結(jié)構(gòu)的 所有數(shù)據(jù)序列S (i)同樣地設(shè)定矩陣,則僅使用兩個(gè)矩陣就能夠使B2L的值為3以上。這樣,準(zhǔn)備滿足Branchn([tAcT11 tV1])彡3的兩個(gè)不同的矩陣[Aj和[A1],通過(guò)設(shè) 定為在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的F函數(shù)中交替地配置這些各矩 陣,能夠使最小分支數(shù)B2L的值為3以上,從而實(shí)現(xiàn)利用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)提高對(duì)線 性攻擊的抵抗性。[5.對(duì)于具有特定形式的擴(kuò)展Feistel結(jié)構(gòu)的DSM的利用結(jié)構(gòu)]如上所述,通過(guò)在將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 2的任意整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中 應(yīng)用DSM技術(shù),能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。下面,說(shuō)明能夠以較高的水平保 證對(duì)差分攻擊、線性攻擊的安全性指標(biāo)的具體的擴(kuò)展Feistel結(jié)構(gòu)。如之前參照?qǐng)D5、圖6所說(shuō)明的那樣,將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的任意整數(shù)的擴(kuò) 展Feistel結(jié)構(gòu)是能夠進(jìn)行從其它各種數(shù)據(jù)序列對(duì)一個(gè)數(shù)據(jù)序列的輸入、并且能夠在一個(gè) 循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)等的各種結(jié)構(gòu)。下面,將擴(kuò)展Feistel結(jié)構(gòu)大致分類為兩個(gè) 類型(類型1、類型2),按每各個(gè)類型說(shuō)明能夠以較高的水平保證對(duì)差分攻擊、線性攻擊的 安全性指標(biāo)的具體的擴(kuò)展Feistel結(jié)構(gòu)。(5-1.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM的應(yīng)用)首先,參照?qǐng)D8說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM的應(yīng)用。設(shè)擴(kuò)展Feistel結(jié)構(gòu)的類型1具有以下參數(shù)。參數(shù)(a)數(shù)據(jù)分割數(shù)d(d為3以上)(b)輸入輸出數(shù)據(jù)長(zhǎng)度dmn比特(c)分割數(shù)據(jù)長(zhǎng)度mn比特(d)每一個(gè)循環(huán)的F函數(shù)的數(shù)量1如圖8所示,在各循環(huán)內(nèi),對(duì)圖8所示的左端的數(shù)據(jù)序列上的mn比特?cái)?shù)據(jù)應(yīng)用F 函數(shù),將F函數(shù)的處理結(jié)果輸出到緊鄰的數(shù)據(jù)序列并進(jìn)行異或。此外,在圖8中省略異或的 運(yùn)算標(biāo)記。如圖8所示,采用如下結(jié)構(gòu)在各循環(huán)中對(duì)F函數(shù)進(jìn)行數(shù)據(jù)輸入的左端的數(shù)據(jù)序列 在下一個(gè)循環(huán)中移動(dòng)到右端,其以外的數(shù)據(jù)序列逐一向左移動(dòng)。說(shuō)明這樣在各循環(huán)的每一個(gè)循環(huán)中執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中應(yīng)用 DSM來(lái)提高對(duì)差分攻擊和線性攻擊的抵抗性的結(jié)構(gòu)。在之前所說(shuō)明的(4-2.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié) 構(gòu))中,說(shuō)明了以下情形對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B2D(s(i)),將它們之中 最小值的B211 (s (i))設(shè)為B2D,選擇F函數(shù)中的矩陣使得該B211為3以上,由此提高對(duì)差分攻 擊的抵抗性。并且,在之前所說(shuō)明的(4-3.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)線性攻擊的抵抗 性的結(jié)構(gòu))中,說(shuō)明了以下情形對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B^(s (i)),將它
28們之中最小值的B2Wi))設(shè)為B2L,選擇F函數(shù)中的矩陣使得該B2L為3以上,由此提高對(duì) 線性攻擊的抵抗性。除了該B211和B2S還將B111設(shè)為包含在如圖8所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中 的F函數(shù)中的線性變換矩陣的分支數(shù)中的最小的分支數(shù)。此時(shí),當(dāng)將包含在如圖8所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中的連續(xù)ρ個(gè)循環(huán)中 的差分有效S盒數(shù)記載為ActD(P)、將線性有效S盒數(shù)記載為ActL(P)時(shí),存在下面的關(guān)系 式。ActD (3d)彡 B11^B211ActL (3d) ^ 2B2L在上式中,ActD (3d)表示包含在連續(xù)的3d個(gè)循環(huán)中的差分有效S盒數(shù),ActL (3d)表示包含在連續(xù)的3d個(gè)循環(huán)中的線性有效S盒數(shù)。稍后記述這些關(guān)系式成立的證明。根據(jù)該內(nèi)容,通過(guò)利用使ΒΛ B2d、B2l變大那樣的矩陣,能夠確保有效S盒數(shù)變大, 其結(jié)果,能夠提高對(duì)差分攻擊和線性攻擊的抵抗性。此外,已知這些ΒΛΒΛΒ;的邏輯上的最大值為m+1。在上述的式子、即ActD (3d)彡 B11^B211ActL (3d) ^ 2B2L這些式子的右邊包含之前所說(shuō)明的最小分支數(shù)B211或B2S使這些最小分支數(shù)的值 變大有助于確保有效S盒數(shù)變大,對(duì)提高對(duì)差分攻擊和線性攻擊的抵抗性是有效的。因而, 在如圖8所示的擴(kuò)展Feistel結(jié)構(gòu)的類型1的結(jié)構(gòu)中,之前所說(shuō)明的使最小分支數(shù)B211或B, 為3以上的結(jié)構(gòu)是有效的,通過(guò)設(shè)為該結(jié)構(gòu)能夠保證對(duì)差分攻擊和線性攻擊的抵抗性比以
往更高。(5-2.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM的應(yīng)用)接著,參照?qǐng)D9說(shuō)明對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM的應(yīng)用。設(shè)擴(kuò)展Feistel結(jié)構(gòu)的類型2具有以下參數(shù)。參數(shù)(a)數(shù)據(jù)分割數(shù)d(其中,d為4以上的偶數(shù))(b)輸入輸出數(shù)據(jù)長(zhǎng)度dmn比特(c)分割數(shù)據(jù)長(zhǎng)度mn比特(d)每一個(gè)循環(huán)的F函數(shù)的數(shù)量d/2如圖9所示,在各循環(huán)內(nèi),對(duì)從左端起處于第奇數(shù)個(gè)的mn比特的數(shù)據(jù)序列應(yīng)用F 函數(shù),將F函數(shù)的處理結(jié)果輸出到緊鄰的數(shù)據(jù)序列并進(jìn)行異或。此外,在圖9中省略異或的 運(yùn)算標(biāo)記。如圖9所示,采用如下結(jié)構(gòu)在各循環(huán)中,對(duì)F函數(shù)進(jìn)行數(shù)據(jù)輸入的左端的數(shù)據(jù)序 列在下一個(gè)循環(huán)中移動(dòng)到右端,其以外的數(shù)據(jù)序列逐一向左移動(dòng)。說(shuō)明這樣在各循環(huán)的每一個(gè)循環(huán)中執(zhí)行d/2個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)中應(yīng)用 DSM來(lái)提高對(duì)差分攻擊和線性攻擊的抵抗性的結(jié)構(gòu)。
在之前所說(shuō)明的(4-2.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)差分攻擊的抵抗性的結(jié) 構(gòu))中,說(shuō)明了以下情形對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B2D(s(i)),將它們之中 最小值的B211 (s (i))設(shè)為B2D,選擇F函數(shù)中的矩陣使得該B211為3以上,由此提高對(duì)差分攻 擊的抵抗性。并且,在之前所說(shuō)明的(4-3.在擴(kuò)展Feistel結(jié)構(gòu)中用于提高對(duì)線性攻擊的抵抗 性的結(jié)構(gòu))中,說(shuō)明了以下情形對(duì)擴(kuò)展Feistel結(jié)構(gòu)的所有數(shù)據(jù)序列計(jì)算B^(s (i)),將它 們之中最小值的B2Wi))設(shè)為B2L,選擇F函數(shù)中的矩陣使得該B2L為3以上,由此提高對(duì) 線性攻擊的抵抗性。除了該B211和B2S還將B111設(shè)為如圖9所示的類型2的擴(kuò)展Feistel結(jié)構(gòu)中包含的 F函數(shù)中的線性變換矩陣的分支數(shù)中的最小的分支數(shù)。此時(shí),當(dāng)將包含在如圖9所示的類型2的擴(kuò)展Feistel結(jié)構(gòu)中的連續(xù)ρ個(gè)循環(huán)中 的差分有效S盒數(shù)記載為ActD(P)、將線性有效S盒數(shù)記載為ActL(P)時(shí),存在下面的關(guān)系式。ActD (6)彡 B11^B211ActL (6) ^ 2B2L在上式中,ActD (6)表示包含在連續(xù)的6個(gè)循環(huán)中的差分有效S盒數(shù),ActL (6)表示包含在連續(xù)的6個(gè)循環(huán)中的線性有效S盒數(shù)。稍后記述這些關(guān)系式成立的證明。根據(jù)該內(nèi)容,通過(guò)利用使ΒΛ B2d、B2l變大那樣的矩陣,能夠確保有效S盒數(shù)變大, 其結(jié)果,能夠提高對(duì)差分攻擊和線性攻擊的抵抗性。此外,已知這些ΒΛΒΛΒ;的邏輯上的最大值為m+1。在上述的式子、即ActD (6)彡 B11^B211ActL (6) ^ 2B2L這些式子的右邊包含之前所說(shuō)明的最小分支數(shù)B211或B2S使這些最小分支數(shù)的值 變大有助于確保有效S盒數(shù)變大,對(duì)提高對(duì)差分攻擊和線性攻擊的抵抗性是有效的。因而, 在如圖9所示的擴(kuò)展Feistel結(jié)構(gòu)的類型2的結(jié)構(gòu)中,之前所說(shuō)明的使最小分支數(shù)B211或B, 為3以上的結(jié)構(gòu)是有效的,通過(guò)設(shè)為該結(jié)構(gòu)能夠保證對(duì)差分攻擊和線性攻擊的抵抗性比以
往更高。[6.擴(kuò)展Feistel結(jié)構(gòu)各類型的有效S盒數(shù)與基于F函數(shù)中的線性變換矩陣的最 小分支數(shù)之間的關(guān)系式的證明]接著,說(shuō)明在上述的(5-1.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型1的DSM的應(yīng)用)(5-2.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM的應(yīng)用)中所說(shuō)明的有效S盒數(shù)與基于F函數(shù)中的線性變換矩陣的最小分支數(shù)之間的關(guān)系 式的證明。(6-1.擴(kuò)展Feistel結(jié)構(gòu)的類型1的有效S盒數(shù)與基于F函數(shù)中的線性變換矩陣 的最小分支數(shù)之間的關(guān)系式的證明)
30
首先,說(shuō)明之前參照?qǐng)D8所說(shuō)明的擴(kuò)展Feistel結(jié)構(gòu)的類型1的有效S盒數(shù)與基 于F函數(shù)中的線性變換矩陣的最小分支數(shù)之間的關(guān)系式的證明。S卩,證明將包含在類型1的擴(kuò)展Feistel結(jié)構(gòu)中的連續(xù)的ρ個(gè)循環(huán)中的差分有效 S盒數(shù)記載為ActD(P)、將線性有效S盒數(shù)記載為ActL(P)的情況下的關(guān)系式、ActD (3d)彡 B11^B211ActL (3d) ^ 2B2L該關(guān)系式成立。能夠如圖10那樣以其它的形式表示之前參照?qǐng)D8所說(shuō)明的擴(kuò)展Feistel結(jié)構(gòu)的 類型1的結(jié)構(gòu)。在圖8中在每個(gè)循環(huán)中輪換表示各數(shù)據(jù)序列的排列使得對(duì)F函數(shù)進(jìn)行輸 入的數(shù)據(jù)序列位于左端,但是圖10不進(jìn)行數(shù)據(jù)序列在每個(gè)循環(huán)中的輪換,而以一條直線表 示。在圖10中示出循環(huán)1 6d。將d個(gè)的循環(huán)(循環(huán)1 d、d+1 2d、...、5d+l 6d) 排列在一條橫線上來(lái)表示,但是它們并不是被并行地執(zhí)行,而是依次執(zhí)行各循環(huán)、例如循環(huán) 1 d。另外,圖中省略了在F函數(shù)的輸出與各數(shù)據(jù)序列的交點(diǎn)的異或(XOR)運(yùn)算標(biāo)記,但 是在F函數(shù)的輸出與各數(shù)據(jù)序列的交點(diǎn)上執(zhí)行異或(XOR)運(yùn)算,其結(jié)果成為下一個(gè)循環(huán)的 F函數(shù)的輸入。證明在該擴(kuò)展Feistel結(jié)構(gòu)的類型1的結(jié)構(gòu)中之前在(5-1.對(duì)于擴(kuò)展Feistel結(jié) 構(gòu)的類型1的DSM的應(yīng)用)中所說(shuō)明的關(guān)系式、 成立。在上式中,ActD (3d)、ActL (3d)意味著包含在圖8或圖10所示的類型1的擴(kuò)展Feistel結(jié) 構(gòu)中的連續(xù)的3d個(gè)循環(huán)中的差分有效S盒數(shù)和線性有效S盒數(shù)。B111是包含在類型1的擴(kuò)展Feistel結(jié)構(gòu)中的F函數(shù)中的線性變換矩陣的分支數(shù) 中的最小的分支數(shù),ΒΛΒ,是在之前在(4-2)、(4-3)中所說(shuō)明的對(duì)擴(kuò)展Feistel結(jié)構(gòu)中包含的一個(gè)數(shù) 據(jù)序列進(jìn)行輸入的連續(xù)的F函數(shù)中的線性變換矩陣的關(guān)聯(lián)矩陣的最小分支數(shù)、以及逆矩陣 的轉(zhuǎn)置矩陣的關(guān)聯(lián)矩陣的最小分支數(shù)。將BAB21^B2L定義為如下。[數(shù)11] 此外,在上述定義中,Bf >
的關(guān)系成立。另外,設(shè)為用Dk表示包含在圖8或圖10所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中的 第k個(gè)F函數(shù)中的差分有效S盒數(shù),用Lk表示線性有效S盒數(shù)。(證明1. ActD (3d)彡 B11^B211 的證明)首先證明ActD (3d)彡 B11^B211。S卩,證明包含在圖8、圖10所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中連續(xù)的3d個(gè)循環(huán) 中的差分有效S盒的個(gè)數(shù)為B11^B211以上??疾煸陬愋?的擴(kuò)展Feistel結(jié)構(gòu)中提供輸入不是零的差分(ΔΧ)的情況。在這 種情況下,類型1的擴(kuò)展Feistel結(jié)構(gòu)具有以下四個(gè)性質(zhì)。(性質(zhì)1)在連續(xù)的d個(gè)循環(huán)中至少一個(gè)循環(huán)中存在不是0的差分有效S盒(性質(zhì)2)如果 Dk = 0,則 Dk_d+1 = Dk+1(性質(zhì)3)如果 Dk 乒 0,則 Dk_d+1+Dk+Dk+1 彡 B111(性質(zhì)4)如果 Dk+Dk+d 乒 0,則 Dk_d+1+Dk+Dk+d+Dk+d+1 彡 B211利用以上四個(gè)性質(zhì),進(jìn)行ActD (3d)彡 B11^B211的證明、即證明“包含在連續(xù)的3d個(gè)循環(huán)中的差分有效S盒的個(gè)數(shù)為B11^B211以 上”??紤]作為對(duì)象的循環(huán)為從第i+Ι個(gè)到第i+3d個(gè)的循環(huán)。情況1 假設(shè)在從第i+d+2個(gè)循環(huán)到第i+2d_l個(gè)循環(huán)中存在不是0的有效S盒的 情況。當(dāng)將存在不是0的有效S盒的循環(huán)設(shè)為k時(shí),表示為Dk Φ 0。情況1-1 除了情況1,在D1^1 Φ 0的情況下,根據(jù)性質(zhì)3,Dk+Dk+1+Dk_d+1 彡 B;根據(jù)性質(zhì)4,Dk+H+Dkj+DH+Dk+d 彡 B2D,因此得出[數(shù) 12] i+3d 情況1-2 除了情況1,在Dk+1 Φ 0的情況下,根據(jù)性質(zhì)3,Dk+1+Dk+2+Dk_d+2 彡 B111根據(jù)性質(zhì)4,Dk+Dk_d+1+Dk+d+Dk+d+1 彡 B211,因此得出[數(shù)13] i+3d 情況1-3 除了情況1,在Dk^1 = 0并且Dk+1 = 0的情況下,
根據(jù)性質(zhì)2,Dk = Dk+d Φ 0根據(jù)性質(zhì)3,Dk+Dk+1+Dk_d+1 彡 B;根據(jù)性質(zhì)3,Dk+d+Dk+d+1+Dk+1 彡 B211Dk+1 = 0,因此得出[數(shù)14] i+3d
片+1
ο情況2 假設(shè)在從第i+d+2個(gè)循環(huán)到第i+2d_l個(gè)循環(huán)中不存在不是0的有效S盒 的情況。根據(jù)性質(zhì)1,Di+d+1 乒 0、或者 Di+2d Φ 0。情況2-1 在Di+d+1乒0而Di+2d = 0的情況下,根據(jù)性質(zhì)2,D 根據(jù)性質(zhì)3,Di+d+1+Di+d+2+Di+2 彡 B111根據(jù)性質(zhì)3,Di+2d+1+Di+2d+2+Di+d+2 彡 B111Di+d+2 = 0,因此得出[數(shù) 15]
片+1 。
情況2-2 在Di+d+1 = OM Di+2d Φ 0的情況下,
根據(jù)性質(zhì) 2,Di+2d = Di+d Φ 0
根據(jù)性質(zhì) 3,Di+d+Di+d+1+Di+1 彡 B111
根據(jù)性質(zhì) 3,Di+2d+Di+2d+1+Di+d+1 彡 B111
Di+d+1 = 0,因此得出
[數(shù) 16] 情況2-3 在Di+d+1乒0并且Di+2d Φ 0的情況下,根據(jù)性質(zhì)3,D1+d+1+D1+d+2+D1+2 彡 B111根據(jù)性質(zhì)4,Di+2d+Di+2d+1+Di+d+Di+1 彡 B2D,因此得出[數(shù)17] 當(dāng)綜合以上的情況1和情況2時(shí),證明出[數(shù) I8] ActD (3d)彡 B11^B211成立,證明出包含在圖8、圖10所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中連續(xù)的3d個(gè) 循環(huán)中的差分有效S盒的個(gè)數(shù)為B11^B211以上。(證明2. ActL (3d)彡 2B2L 的證明)接著,證明ActL(3d)彡 2B2l。S卩,證明包含在圖8、圖10所示的類型1的擴(kuò)展Feistel結(jié)構(gòu)中連續(xù)的3d個(gè)循環(huán) 中的線性有效S盒的個(gè)數(shù)為2B,以上。此夕卜,B2l如上所述那樣,定義為[數(shù) 19] 另外,設(shè)為用Lk表示包含在第k個(gè)F函數(shù)中的線性有效S盒的數(shù)量。在類型1的擴(kuò)展Feistel結(jié)構(gòu)中提供了輸入不是零的線性掩模的情況下,具有以 下兩個(gè)性質(zhì)。(性質(zhì)5)在連續(xù)的d個(gè)循環(huán)中的至少一個(gè)循環(huán)中存在不是0的線性有效S盒(性質(zhì)6) Lk+Lk+1+Lk+d 彡 B2L、或者 Lk+Lk+1+Lk+d = 0。此外,在 Lk+Lk+1+Lk+d 彡 B21 的情 況下,左邊包含的兩個(gè)以上的項(xiàng)不會(huì)同時(shí)為0。利用以上兩個(gè)性質(zhì),進(jìn)行ActL (3d) ^ 2B2L的證明、即證明“包含在連續(xù)的3d個(gè)循環(huán)中的線性有效S盒的個(gè)數(shù)為2B2l以上”??紤]作為對(duì)象的循環(huán)為從第i+Ι個(gè)到第i+3d個(gè)的循環(huán)。情況1 假設(shè)在從第i+d+2個(gè)循環(huán)到第i+2d個(gè)循環(huán)中存在不是0的有效S盒的情況。當(dāng)將存在不是0的有效S盒的循環(huán)設(shè)為k時(shí),Lk興0。情況1-1 除了情況1,在Lk+d Φ 0或者Lh Φ 0的情況下,根據(jù)性質(zhì)6,Lk+Lk+d+Lk+1 彡 B21根據(jù)性質(zhì)6,LH+Lk+d+Lk—d 彡 B2S因此得出[數(shù) 20] 情況1 -2 除了情況1,在Lk+d = 0并且Lh = 0的情況下,
的情況
根據(jù)性質(zhì)6,Lk_d+1 Φ 0 根據(jù)性質(zhì)6,Lk+L k-ι+Lk+d-1 ^ B
根據(jù)性質(zhì)6,L k-d+1
+Lk+1+Lk_d+2 ^ B2 此時(shí)如果4,則得出 [數(shù) 21] i+3d^^ Lj〉^B2
片+1
ο如果d = 3,則雖然Llri重復(fù),但是已知Llri = 0,因此同樣得出[數(shù)22] i+3d^^ lj ^ ilb2
J=i+l。
情況2 假設(shè)在從第i+d+2個(gè)循環(huán)到第i+2d-l個(gè)循環(huán)中不存在不是0的有效S盒
根據(jù)性質(zhì)5,得出Li+d+1興0。 根據(jù)性質(zhì)6,Li+d豐0 根據(jù)性質(zhì)6,L
根據(jù)性質(zhì)6,I^+I^H+Lwh彡B2L 此時(shí),如果d彡4,則得出 [數(shù) 23] i+3d^^ Lj 2 2^2
片+1。如果d = 3,則雖然Li+5重復(fù),但是已知Li+5 = 0,因此同樣得出[數(shù)24]
i+3d〉Lj ^ ^B2 ./=/+1
ο當(dāng)綜合以上的情況1和情況2時(shí),證明出[數(shù)25]
i+3d
Σ jiV - 即,
片+1
35
ActL(3d)彡2B2L成立,證明出包含在圖8、圖10所示的類型1的擴(kuò)展Feistel結(jié) 構(gòu)中連續(xù)的3d個(gè)循環(huán)中的線性有效S盒的個(gè)數(shù)為2B2l以上。(6-2.擴(kuò)展Feistel結(jié)構(gòu)的類型2的有效S盒數(shù)與基于F函數(shù)中的線性變換矩陣 的最小分支數(shù)之間的關(guān)系式的證明)接著,說(shuō)明參照?qǐng)D9所說(shuō)明的擴(kuò)展Feistel結(jié)構(gòu)的類型2的有效S盒數(shù)與基于F 函數(shù)中的線性變換矩陣的最小分支數(shù)之間的關(guān)系式的證明。S卩,證明將包含在類型2的擴(kuò)展Feistel結(jié)構(gòu)中的連續(xù)的ρ個(gè)循環(huán)中的差分有效 S盒數(shù)記載為ActD(P)、將線性有效S盒數(shù)記載為ActL(P)的情況下的關(guān)系式ActD (6)彡 B11^B211ActL (6) ^ 2B2L該關(guān)系式成立。能夠如圖11所示那樣以其它的形式表示之前參照?qǐng)D9所說(shuō)明的擴(kuò)展Feistel結(jié) 構(gòu)的類型2的結(jié)構(gòu)。在圖9中,在每個(gè)循環(huán)中輪換表示各數(shù)據(jù)序列的排列,但是圖11不進(jìn) 行數(shù)據(jù)序列的輪換,而以一條直線表示。在圖11中,表示循環(huán)1 12。將兩個(gè)循環(huán)(1
2、3 4、··)的F函數(shù)排列在一條橫線上來(lái)顯示。例如,在第一個(gè)循環(huán)中并行地執(zhí)行圖 11所示的循環(huán)1 2的橫線上表示出的F函數(shù)Fu F1, η中的F1,ρ Flj2,…、F1, d_2的每 隔一個(gè)的F函數(shù)(輸出的箭頭向上)。在接下來(lái)的第二個(gè)循環(huán)中并行地執(zhí)行剩余的F^F1,
3、…、F^1的每隔一個(gè)的F函數(shù)(輸出的箭頭向下)。在圖11中,用于識(shí)別F函數(shù)的編號(hào)是為了容易理解證明而新導(dǎo)入的編號(hào),使用兩 個(gè)數(shù)字決定F函數(shù)的位置。Fijj的i表示循環(huán)數(shù)(1 = 1、2循環(huán),2 = 3、4循環(huán)· ·),j表示兩個(gè)循環(huán)中的F函 數(shù)之一。此外,如果j是0、2、4的偶數(shù),則為先行循環(huán)中的F函數(shù),如果j是1、3、5的奇數(shù), 則為后續(xù)循環(huán)中的F函數(shù)。此外,將包含在F函數(shù)Fy中的線性變換矩陣稱為[My]。證明在該擴(kuò)展Feistel結(jié)構(gòu)的類型2的結(jié)構(gòu)中之前在(5_2.對(duì)于擴(kuò)展Feistel結(jié) 構(gòu)的類型2的DSM的應(yīng)用)中說(shuō)明的關(guān)系式ActD (6)彡 B11^B211ActL (6)彡 2B2L成立。在上式中,ActD (6), ActL (6)意味著包含在圖9或圖11所示的類型2的擴(kuò)展Feistel結(jié)構(gòu) 中的連續(xù)的6個(gè)循環(huán)中的差分有效S盒數(shù)和線性有效S盒數(shù)。B111是包含在類型2的擴(kuò)展Feistel結(jié)構(gòu)中的F函數(shù)中的線性變換矩陣的分支數(shù) 中的最小的分支數(shù),B211、B,是包含在之前在(4-2)、(4-3)中所說(shuō)明的擴(kuò)展Feistel結(jié)構(gòu)中的對(duì)一個(gè)數(shù) 據(jù)序列進(jìn)行輸入的連續(xù)的F函數(shù)中的線性變換矩陣的關(guān)聯(lián)矩陣的最小分支數(shù)、以及逆矩陣 的轉(zhuǎn)置矩陣的關(guān)聯(lián)矩陣的最小分支數(shù)。將ΒΛΒΛΒ,定義為如下。[數(shù) 26]
36 B^ = mm(Branchn(Mi ))
IjB^ = min(Branchn({Mj . | M/+1/]))
Bt2 = mm(Branchn ([iM') ^ M^1,]))
Uj,J,J此外,在上述定義中,B111 ^ B2d的關(guān)系成立。另外,用Dp, q表示包含在Fp, q中的有效S盒數(shù)。此外,以后,在下標(biāo)q的部分具有 負(fù)值或d以上的值的情況下,設(shè)為利用d進(jìn)行剩余運(yùn)算(q mod d)來(lái)進(jìn)行補(bǔ)正使得總是成 為 q < d。(證明3. ActD (6)彡 B11^B211 的證明)首先,證明ActD (6)彡 B11^B211。 S卩,證明包含在圖9、圖11所示的類型2的擴(kuò)展Fei ste 1結(jié)構(gòu)中連續(xù)的6個(gè)循環(huán)中 的差分有效S盒的個(gè)數(shù)為ΒΛΒ/以上。考察在類型2的擴(kuò)展Feistel結(jié)構(gòu)中提供輸入了不是零的差分(ΔΧ)的情況。在 這種情況下,類型2的擴(kuò)展Feistel結(jié)構(gòu)具有以下四個(gè)性質(zhì)。(性質(zhì)1)對(duì)于某個(gè)丨,在?吣⑦=i、qe {0、…d_l})中存在不是0的差分有效 S盒(性質(zhì)2)如果D1^= O,則Dlri,村=Dp,i+1(q 是偶數(shù)時(shí))Dp, q+1 = Dp+1, q+1 (q 是奇數(shù)時(shí))(性質(zhì)3)如果D^^O,則Dp, q+D…+1+Dp, q+1 彡 B111 (q 是偶數(shù)時(shí))Dp, q+Dp, q+1+Dp+1, q+1 彡 B111 (q 是奇數(shù)時(shí))(性質(zhì)4)如果 Dp, q+Dp+1,q 乒 0,則 Dp, ,+DlrtW1, q+1+Dp+1, q+1 ^ B2D (q 是偶數(shù)時(shí))Dp, q+Dp+1,q+Dp, q+1+Dp+2, q+1 彡 B2D (q 是奇數(shù)時(shí))利用以上四個(gè)性質(zhì),進(jìn)行ActD (6)彡 B11^B211的證明、即證明“對(duì)于1以上的任意整數(shù)i,包含在滿足ρ e {i、i+l、i+2}、q e {0、 1、…d-1}的3d個(gè)F函數(shù)Fp,,中的差分有效S盒的總數(shù)為V+B/以上”。在任意取出Dm(p = i+l、q e {0,-d-l})的非零要素時(shí),將其設(shè)為Djik乒0。根 據(jù)上述的(性質(zhì)1)示出一定存在。情況1 在Djjk^1 Φ 0的情況下,根據(jù)性質(zhì)3,Dj.k+Dj—u+i+Dj.k+i 彡 B1dQc 是偶數(shù)時(shí)),k+l+Dj+i,k+1 彡B1dGc是奇數(shù)時(shí)) 根據(jù)性質(zhì)4,
(k 是偶數(shù)時(shí)) 口口-沖州丄沖計(jì)巧,"^ B211 (k是奇數(shù)時(shí)), 因此 [數(shù) 27]
成立。
情況2 在Dp1^O的情況下, 根據(jù)性質(zhì)3,
是偶數(shù)時(shí)) Dj.w+D^.^+Dj,^ ^ B1dGc 是奇數(shù)時(shí)) 根據(jù)性質(zhì)4, (k是奇數(shù)時(shí)), 因此 [數(shù) 28]
成立。
情況3 在Dm = 0并且Dj,k+1 = 0的情況下, 根據(jù)性質(zhì)2,Dj^ = 0,因此 DJ+1,k = Dj,k^0(k 是偶數(shù)時(shí)) Dj-Uk = Djjk ^ 0(k 是奇數(shù)時(shí)) 根據(jù)性質(zhì)3,
Dj^DwADp1彡B1dGc是偶數(shù)時(shí))
彡B1dGc是奇數(shù)時(shí))
還根據(jù)性質(zhì)3,
彡B1dGc是偶數(shù)時(shí)) Dj-^+D^.^+Dj,^ ^ B1dGc 是奇數(shù)時(shí)) DJjk+1 = 0,因此 [數(shù) 29] 成立。
當(dāng)綜合以上時(shí),證明出[數(shù) 30] /+2 d-\ 艮P,ActD (6)彡 B11^B211成立,證明出包含在圖9、圖11所示的類型2的擴(kuò)展Feistel結(jié)構(gòu)中連續(xù)6個(gè)循環(huán) 中的差分有效S盒的個(gè)數(shù)為B11^B211以上。(證明4. ActL (6)彡 2B2L 的證明)接著,證明ActL(6)彡 2B2l。即,證明包含在圖9、圖11所示的類型2的擴(kuò)展Feistel結(jié)構(gòu)中連續(xù)6個(gè)循環(huán)中的 線性有效S盒的個(gè)數(shù)為2B,以上。此外,如上所述,B21定義為[數(shù)31]Bl2 = mm{Branchn ([tM;) ItM^1lj ]))
iJ。另外,設(shè)為用Lp, q表示包含在第Fp, q個(gè)F函數(shù)中的線性有效S盒數(shù)。在類型2的擴(kuò)展Feistel結(jié)構(gòu)中提供了輸入不是零的線性掩模的情況下,具有以 下兩個(gè)性質(zhì)。(性質(zhì)5)對(duì)于某個(gè)土,在?吣⑦=i、qe{0、…d_l})中存在不是0的線性有效 S盒(性質(zhì)6)!^+!^?!^+丨 >B2L、或者!^+!^?!^洲=0(k 是偶數(shù)時(shí))!^+!^?!^舊 >B2L、或者 Lj.k+Lj+u+Lj+u+i = 0(k 是奇數(shù)時(shí))此夕卜,在La+Lb+L。彡B,的形式的情況下,左邊包含的兩個(gè)以上的項(xiàng)不會(huì)同時(shí)為0。利用以上兩個(gè)性質(zhì),進(jìn)行ActL (6) ^ 2B2L的證明、即證明“對(duì)于1以上的任意整數(shù)i,包含在滿足ρ e {i、i+l、i+2}、q e {0、 1、…d-1}的3d個(gè)F函數(shù)Fp,,中的線性有效S盒的總數(shù)為2B,以上”。在任意取出LpJp = i+l、qe {0、…d_l})的不是0的要素時(shí),將其設(shè)為L(zhǎng)」,k乒0。 根據(jù)性質(zhì)5示出一定存在上述Ljikt5根據(jù)性質(zhì)6,Ljmj^Lj, k+I^, k+1 彡 B2l (k 是偶數(shù)時(shí))
(k 是奇數(shù)時(shí))情況1 在Lj^1 ^ 0的情況下,根據(jù)性質(zhì)6, Lj, h+L州,h+L州,k 彡 B2L (k 是偶數(shù)時(shí))
Ljm+Lj.H+Vu 彡 B2L (k 是奇數(shù)時(shí))
因而,在這種情況下,[數(shù) 32] i+2 d-l 成立。情況2 在Ljjk^1 = 0的情況下,根據(jù)性質(zhì)6,Lj^1乒0(k是偶數(shù)時(shí))LjH1乒0(k是奇數(shù)時(shí))因此,Lj^.^+Lj,h+Lw,η 彡 B2L (k 是偶數(shù)時(shí))Lj, k_2+LJ+1, k_2+L州,η 彡 B2L (k 是奇數(shù)時(shí))此時(shí)d彡4,因此,在這種情況下[數(shù)33] 1+2 d-\ 成立。當(dāng)綜合以上的情況1和情況2時(shí),證明出[數(shù)34]
即, p=i q=0ActL (6) ≥2B2l成立,證明出包含在圖9、圖11所示的類型2的擴(kuò)展Fei ste 1結(jié)構(gòu)中連續(xù)的6個(gè)循 環(huán)中的線性有效S盒的個(gè)數(shù)為2B,以上。[7.基于F函數(shù)的設(shè)定以及利用處理的方法的安裝中的改進(jìn)結(jié)構(gòu)]如上所述,在本發(fā)明中實(shí)現(xiàn)如下結(jié)構(gòu)在將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的整數(shù)的擴(kuò) 展Feistel結(jié)構(gòu)中,作為各循環(huán)的F函數(shù)的線性變換處理,應(yīng)用選擇性地應(yīng)用至少兩個(gè)以 上的不同的矩陣的所謂的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),由此提高對(duì)線性分析、差分分析的抵抗 性。這樣,在利用硬件來(lái)實(shí)現(xiàn)執(zhí)行選擇應(yīng)用不同的多個(gè)矩陣的運(yùn)算處理的結(jié)構(gòu)的情況 下,需要具有進(jìn)行與各個(gè)矩陣對(duì)應(yīng)的運(yùn)算的硬件結(jié)構(gòu)的不同的F函數(shù)處理部。特別是要在 一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的情況下,需要用于進(jìn)行并行處理的多個(gè)F函數(shù)用電路。即,在之前參照?qǐng)D9、圖11說(shuō)明的類型2的擴(kuò)展Feistel結(jié)構(gòu)中,是并行地執(zhí)行在 同一循環(huán)中應(yīng)用了多個(gè)F函數(shù)的數(shù)據(jù)變換處理的結(jié)構(gòu),在利用硬件執(zhí)行基于該類型2的結(jié)構(gòu)的處理的情況下,需要安裝在一個(gè)循環(huán)中并行執(zhí)行的個(gè)數(shù)的F函數(shù)的硬件。即使在這種 被要求并行執(zhí)行的F函數(shù)是相同結(jié)構(gòu)的情況下,也必須具備多個(gè)具有該相同結(jié)構(gòu)的F函數(shù) 的硬件。如上所述,本發(fā)明的密碼處理結(jié)構(gòu)具有如下結(jié)構(gòu)通過(guò)設(shè)為在各循環(huán)的F函數(shù)中 執(zhí)行的線性變換處理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu),提高了對(duì)各 種攻擊的抵抗性。即,設(shè)為具備擴(kuò)散矩陣切換機(jī)構(gòu)(DSM =DiffusionSwitching Mechanism) 的結(jié)構(gòu)。為了滿足該擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),只要滿足設(shè)定為多個(gè)不同的矩陣等條件即 可,并不特別限定在各循環(huán)中并行執(zhí)行的F函數(shù),其中,上述多個(gè)不同的矩陣滿足如下條 件從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全 部數(shù)據(jù)序列中的最小分支數(shù)[BkD]為3以上,其中,所述線性變換矩陣包含在對(duì)擴(kuò)展Feistel 結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的連續(xù)的k個(gè)(其中,k為2以上的整數(shù))F函數(shù)中。下面,根據(jù)該特性說(shuō)明在擴(kuò)展Feistel結(jié)構(gòu)中維持基于擴(kuò)散矩陣切換機(jī)構(gòu)(DSM) 的抵抗性的同時(shí)提高了安裝效率的結(jié)構(gòu)例。(7-1.擴(kuò)展Feistel的類型2的有效的F函數(shù)配置方法)首先,說(shuō)明之前參照?qǐng)D9、圖11所說(shuō)明的擴(kuò)展Feistel的類型2的有效的F函數(shù)配 置結(jié)構(gòu)。如在之前所說(shuō)明的項(xiàng)目(5-2.對(duì)于擴(kuò)展Feistel結(jié)構(gòu)的類型2的DSM的應(yīng)用)中 記述的那樣,類型2的擴(kuò)展Feistel結(jié)構(gòu)具有以下參數(shù)。參數(shù)(a)數(shù)據(jù)分割數(shù)d(其中,d為4以上的偶數(shù))(b)輸入輸出數(shù)據(jù)長(zhǎng)度dmn比特(c)分割數(shù)據(jù)長(zhǎng)度mn比特(d)每一個(gè)循環(huán)的F函數(shù)的數(shù)量d/2S卩,如圖9所示,在各循環(huán)內(nèi),對(duì)從左端起處于第奇數(shù)個(gè)的mn比特的數(shù)據(jù)序列應(yīng)用 F函數(shù),將F函數(shù)的處理結(jié)果輸出到緊鄰的數(shù)據(jù)序列并進(jìn)行異或。此外,在圖9中省略異或 的運(yùn)算標(biāo)記。下面,說(shuō)明提高對(duì)于具有這種結(jié)構(gòu)的類型2的擴(kuò)展Feistel結(jié)構(gòu)的安裝效率的結(jié) 構(gòu)。作為一例,參照?qǐng)D12說(shuō)明數(shù)據(jù)序列數(shù)(分割數(shù))d = 4的情況。在圖12中,將由兩個(gè) 不同的線性變換矩陣MpM2執(zhí)行線性變換的不同的兩個(gè)F函數(shù)分別設(shè)為F1、F2。圖12所示的Feistel結(jié)構(gòu)是使用F函數(shù)Fl、F2這兩個(gè)F函數(shù)的d = 4的擴(kuò)展 Feistel結(jié)構(gòu)的類型2。即,是具有(a)數(shù)據(jù)分割數(shù)4(b)輸入輸出數(shù)據(jù)長(zhǎng)度4mn比特(c)分割數(shù)據(jù)長(zhǎng)度mn比特(d)每一個(gè)循環(huán)的F函數(shù)的數(shù)量4/2 = 2的結(jié)構(gòu)。在該圖12所示的結(jié)構(gòu)的情況下,為了使用兩個(gè)F函數(shù)滿足DSM條件而考慮幾種配 置。即,為了滿足DSM條件,如上所述那樣,只要滿足設(shè)定為多個(gè)不同的矩陣等條件即可,并 不特別限定在各循環(huán)中并行執(zhí)行的F函數(shù),其中,上述多個(gè)不同的矩陣滿足以下條件從根
41據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù)據(jù)序 列中的最小分支數(shù)[BkD]為3以上,其中,所述線性變換矩陣包含在對(duì)各數(shù)據(jù)序列s (i)進(jìn)行 輸入的連續(xù)的k個(gè)(其中,k為2以上的整數(shù))F函數(shù)中。因而,作為F函數(shù)的設(shè)定方式,(a)將設(shè)定在一個(gè)循環(huán)中的多個(gè)F函數(shù)設(shè)為相同的F函數(shù)的設(shè)定、(b)將設(shè)定在一個(gè)循環(huán)中的多個(gè)F函數(shù)設(shè)為不同的F函數(shù)的設(shè)定能夠設(shè)定為上述兩種方式。在此,如圖12所示,采用如下結(jié)構(gòu)選擇在一個(gè)循環(huán)中存在的兩個(gè)F函數(shù)使得相互 成為F1、F2。在以一個(gè)循環(huán)的處理為基礎(chǔ)進(jìn)行硬件(H/W)安裝的情況下,該結(jié)構(gòu)的優(yōu)點(diǎn)表 現(xiàn)得明顯。S卩,作為硬件(H/W)安裝,設(shè)定具有僅能夠執(zhí)行一個(gè)循環(huán)的處理的結(jié)構(gòu)、即如圖13 所示那樣能夠并行地執(zhí)行F函數(shù)F 1和函數(shù)F2的結(jié)構(gòu)的硬件。圖13是表示具有執(zhí)行基于 圖12所示的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的硬件結(jié)構(gòu)的密碼處理裝置250的框圖。密碼處理裝置250由執(zhí)行F函數(shù)Fl的第一 F函數(shù)(Fl)專用處理電路251、執(zhí)行F 函數(shù)F2的第二 F函數(shù)(F2)專用處理電路252、控制電路253以及輔助電路254構(gòu)成。第一 F函數(shù)(Fl)專用處理電路251和第二 F函數(shù)(F2)專用處理電路252是能夠并行地進(jìn)行動(dòng) 作的結(jié)構(gòu),在各循環(huán)中,應(yīng)用這兩個(gè)電路執(zhí)行基于兩個(gè)不同的F函數(shù)的數(shù)據(jù)變換??刂齐娐?53執(zhí)行對(duì)各F函數(shù)專用處理電路251、252以及輔助電路254的輸入輸 出數(shù)據(jù)的控制。輔助電路254執(zhí)行F函數(shù)以外的運(yùn)算處理等。通過(guò)應(yīng)用該結(jié)構(gòu),應(yīng)用第一 F函數(shù)(Fl)專用處理電路251、第二 F函數(shù)(F2)專用 處理電路252能夠進(jìn)行僅所需的循環(huán)數(shù)的循環(huán)運(yùn)算。在所有的循環(huán)中并行地執(zhí)行兩個(gè)F函 數(shù)專用電路,能夠?qū)崿F(xiàn)沒(méi)有設(shè)置多余的電路的安裝。如圖12所示,在各循環(huán)中并行地執(zhí)行的F函數(shù)是兩個(gè)的情況下,通過(guò)將這兩個(gè)F 函數(shù)設(shè)定為不同的F函數(shù),利用圖13所示的硬件安裝,能夠進(jìn)行所有的循環(huán)運(yùn)算。順便提 及,在設(shè)為在一個(gè)循環(huán)中執(zhí)行的F函數(shù)相同的設(shè)定、例如在第一循環(huán)中并行地執(zhí)行Fl、Fl, 在第二循環(huán)中執(zhí)行F2、F2的結(jié)構(gòu)的情況下,作為硬件,需要設(shè)置F 1執(zhí)行電路和F2執(zhí)行電 路各兩個(gè),與圖13所示的結(jié)構(gòu)相比,需要增大電路規(guī)模。通過(guò)如圖12所示那樣將在各循環(huán)中執(zhí)行的F函數(shù)的組合全部設(shè)定為F1、F2,應(yīng)用 圖13所示的硬件,能夠在各循環(huán)中始終同時(shí)執(zhí)行F1、F2,不會(huì)產(chǎn)生多余的電路,而實(shí)現(xiàn)減小 電路規(guī)模的小型裝置。圖12所示的結(jié)構(gòu)是數(shù)據(jù)序列d = 4的情況,但是在其它數(shù)據(jù)序列數(shù)的情況下,通 過(guò)設(shè)為同樣的設(shè)定,也能夠?qū)崿F(xiàn)有效的安裝。例如在數(shù)據(jù)序列數(shù)d = 8的情況下,設(shè)為如下 結(jié)構(gòu)在一個(gè)循環(huán)中設(shè)定4個(gè)F函數(shù),將該4個(gè)F函數(shù)設(shè)定為兩個(gè)不同的F函數(shù)Fl、F2各兩 個(gè)。這種情況下的安裝結(jié)構(gòu)設(shè)為如下結(jié)構(gòu)設(shè)置F函數(shù)F1、F2各兩個(gè),能夠并行地執(zhí)行 4個(gè)F函數(shù)(F1、F1、F2、F2)。通過(guò)該結(jié)構(gòu),能夠在所有的循環(huán)中并行地執(zhí)行全部4個(gè)F函 數(shù),實(shí)現(xiàn)沒(méi)有設(shè)置多余的電路的安裝。另外,在數(shù)據(jù)序列數(shù)d = 16的情況下,將在一個(gè)循環(huán)中存在的8個(gè)F函數(shù)設(shè)定為 FU F2各四個(gè)。并且,一般化為在數(shù)據(jù)序列數(shù)d = 4x的情況下在各循環(huán)中利用F函數(shù)F1、
42F2各χ個(gè)的結(jié)構(gòu),作為硬件安裝,如果設(shè)為設(shè)定F函數(shù)F1、F2各χ個(gè)的結(jié)構(gòu),則由于在每個(gè) 循環(huán)中需要的Fl、F2的個(gè)數(shù)相同,因此不會(huì)過(guò)多或過(guò)少地執(zhí)行F函數(shù),能夠提高安裝效率。上述的處理例是為了滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)而設(shè)定了應(yīng)用兩個(gè)線性變換 矩陣的兩個(gè)不同的F函數(shù)的例子,但是即使在使用三種以上的線性變換矩陣來(lái)設(shè)定三種以 上的F函數(shù)的情況下也可以說(shuō)是相同的。圖14示出用于有效安裝三種F函數(shù)的配置例。圖14是數(shù)據(jù)序列數(shù)d = 6的擴(kuò)展 Feistel的類型2的結(jié)構(gòu)例。在該圖14所示的結(jié)構(gòu)中,進(jìn)行設(shè)定使其成為在一個(gè)循環(huán)中存 在的三個(gè)F函數(shù)一定利用Fl、F2、F3各一個(gè)的結(jié)構(gòu)。通過(guò)該結(jié)構(gòu),在硬件(H/W)安裝時(shí)僅安裝F1、F2、F3各一個(gè),就能夠成為在各循環(huán) 中并行地執(zhí)行F函數(shù)的結(jié)構(gòu),從H/W方面來(lái)看實(shí)現(xiàn)沒(méi)有多余的電路的電路結(jié)構(gòu)。并且,在數(shù)據(jù)序列數(shù)d = 12的情況下,將在一個(gè)循環(huán)中存在的6個(gè)F函數(shù)設(shè)定為 F1、F2、F3各兩個(gè)。另外,在數(shù)據(jù)序列數(shù)d= 18的情況下,關(guān)于在一個(gè)循環(huán)中設(shè)定的9個(gè)F 函數(shù),設(shè)定為F1、F2、F3各三個(gè)。將它們一般化為在數(shù)據(jù)序列數(shù)d = 6x的情況下將在各循 環(huán)中設(shè)定的F函數(shù)設(shè)定為F1、F2、F3各χ個(gè)。即,設(shè)為在各循環(huán)中均等地利用不同的F函數(shù) 的結(jié)構(gòu)。通過(guò)設(shè)為這種F函數(shù)的設(shè)定結(jié)構(gòu),能夠?qū)⒚總€(gè)循環(huán)中需要的F1、F2、F3的個(gè)數(shù)設(shè)定 為相同的數(shù)量,在硬件安裝中能夠設(shè)定不會(huì)過(guò)多或者過(guò)少地利用的電路,能夠提高安裝效 率。在軟件的情況下,也由于用于獲取輸入輸出值的表的利用方式在各循環(huán)中相同,因此不 用構(gòu)成設(shè)想各種模式的表,而能夠設(shè)定與一個(gè)利用方式相應(yīng)的表并保存到存儲(chǔ)器中。當(dāng)將上述各處理例進(jìn)一步一般化時(shí),如下所述。(1)在構(gòu)成利用了 a種F函數(shù)的Type2的擴(kuò)展Feistel結(jié)構(gòu)的情況下,通過(guò)設(shè)為如 下結(jié)構(gòu)能夠提高安裝效率當(dāng)設(shè)數(shù)據(jù)序列數(shù)(分割數(shù))d = 2ax、其中a為2以上的整數(shù)、χ 為1以上的整數(shù)時(shí),均等地設(shè)定全部種類的F函數(shù)各χ個(gè)作為在一個(gè)循環(huán)內(nèi)設(shè)定的ax個(gè)F 函數(shù)。此外,在上述F函數(shù)的設(shè)定中,通過(guò)將對(duì)各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)的設(shè)定設(shè)為 滿足上述DSM條件的設(shè)定,能夠維持抵抗性。(7-2. Feistel結(jié)構(gòu)與擴(kuò)展Feistel結(jié)構(gòu)中的部件的共用化)如上所述,通過(guò)對(duì)目前為止所說(shuō)明的Feistel結(jié)構(gòu)、擴(kuò)展Feistel的類型1、擴(kuò)展 Feistel的類型2中的任一個(gè)利用DSM機(jī)構(gòu),而具有提高對(duì)攻擊的抵抗性的優(yōu)點(diǎn)。S卩,將Feistel結(jié)構(gòu)大致分類為(a)設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d = 2的Feistel結(jié)構(gòu)(b)設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),并且,擴(kuò)展Feistel結(jié)構(gòu)為(bl)在各循環(huán)中僅允許執(zhí)行一個(gè)F函數(shù)的類型1、(b2)在各循環(huán)中允許并行執(zhí)行多個(gè)F函數(shù)的類型2,從而,能夠?qū)eistel結(jié)構(gòu)分類為(a)、(bl)、(b2)這三種。在這三種Feistel結(jié)構(gòu)的任一種中都通過(guò)應(yīng)用DSM機(jī)構(gòu)實(shí)現(xiàn)抵抗性的提高。為了應(yīng)用DSM機(jī)構(gòu),需要安裝執(zhí)行至少兩個(gè)以上不同的線性變換矩陣的不同的F 函數(shù),但是,通過(guò)具有該不同的多個(gè)F函數(shù)的安裝結(jié)構(gòu),能夠?qū)崿F(xiàn)可選擇性地執(zhí)行上述多個(gè)不同的Feistel結(jié)構(gòu)(a)、(bl)、(b2)的裝置。下面說(shuō)明執(zhí)行這種選擇處理的裝置結(jié)構(gòu)。決定執(zhí)行滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的線性變換矩陣的多個(gè)不同的F函數(shù),將 這些各F函數(shù)中的輸入輸出數(shù)據(jù)的數(shù)據(jù)大小設(shè)為mn比特。通過(guò)應(yīng)用這種F函數(shù),例如在如 圖15所示的數(shù)據(jù)序列d = 2的Feistel結(jié)構(gòu)中執(zhí)行2mn比特的塊密碼。圖15所示的數(shù)據(jù)序列d = 2的Feistel結(jié)構(gòu)的各F函數(shù)Fl、F2的輸入輸出數(shù)據(jù) 大小是mn比特。該數(shù)據(jù)序列d = 2的Feistel結(jié)構(gòu)進(jìn)行將2mn比特的明文轉(zhuǎn)換為2mn比 特的密文的處理、或者與其相反的解密處理,執(zhí)行2mn比特的塊密碼。另外,通過(guò)利用該圖15所示的輸入輸出數(shù)據(jù)大小為mn比特的F函數(shù)F1、F2,能夠 構(gòu)成滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的數(shù)據(jù)序列數(shù)d = 4的擴(kuò)展Feistel結(jié)構(gòu)。圖16示出 該結(jié)構(gòu)。圖16所示的數(shù)據(jù)序列d = 4的擴(kuò)展Feistel結(jié)構(gòu)的各F函數(shù)Fl、F2是輸入輸出 數(shù)據(jù)大小為mn比特、按原樣應(yīng)用圖15所示的F函數(shù)Fl、F2的F函數(shù)。該數(shù)據(jù)序列d = 4 的擴(kuò)展Feistel結(jié)構(gòu)進(jìn)行將4mn比特的明文轉(zhuǎn)換為4mn比特的密文的處理、或者與其相反 的解密處理,執(zhí)行4mn比特的塊密碼。并且,一般化為在設(shè)為數(shù)據(jù)序列數(shù)d = χ、其中χ為2以上的整數(shù)的情況下,能夠使 用相同的F函數(shù)執(zhí)行結(jié)構(gòu)來(lái)構(gòu)建執(zhí)行xmn比特的加密或者解密處理的塊密碼結(jié)構(gòu)。例如,僅使用輸入輸出比特為64比特的不同的F函數(shù)Fl、F2,就能夠構(gòu)成可選擇 性地執(zhí)行實(shí)現(xiàn)DSM機(jī)構(gòu)的輸入輸出128比特塊密碼處理和256比特塊密碼處理。即,安裝輸入輸出比特為64比特的不同的兩個(gè)F函數(shù)Fl、F2作為F函數(shù),并控制 它們的利用方式。例如,在執(zhí)行基于設(shè)為數(shù)據(jù)序列數(shù)d = 2的Feistel結(jié)構(gòu)(圖15)的密 碼處理的情況下,設(shè)為在各循環(huán)中執(zhí)行各F函數(shù)F1、F2之一的結(jié)構(gòu)。另一方面,在執(zhí)行基于 設(shè)為數(shù)據(jù)序列數(shù)d = 4的擴(kuò)展Feistel結(jié)構(gòu)(圖16)的密碼處理的情況下,設(shè)為在各循環(huán) 中并行地執(zhí)行各F函數(shù)F1、F2的結(jié)構(gòu)。這樣,通過(guò)安裝兩種F函數(shù),實(shí)現(xiàn)能夠選擇性地執(zhí)行 輸入輸出128比特塊密碼和256比特塊密碼的裝置。即,通過(guò)使用相同的F函數(shù)、改變連接 方法,能夠執(zhí)行不同比特?cái)?shù)的塊密碼,在S/W、H/W兩者中能夠期望通過(guò)電路、代碼的共享等 來(lái)提高安裝效率。圖17示出具有這種結(jié)構(gòu)的密碼處理裝置的結(jié)構(gòu)例。圖17所示的密碼處理裝置 270由執(zhí)行F函數(shù)Fl的第一 F函數(shù)(Fl)專用處理電路271、執(zhí)行F函數(shù)F2的第二 F函數(shù) (F2)專用處理電路272、控制電路273以及輔助電路274構(gòu)成。第一 F函數(shù)(Fl)專用處理 電路271和第二 F函數(shù)(F2)專用處理電路272是能夠并行地進(jìn)行動(dòng)作的結(jié)構(gòu)。控制電路 273對(duì)各處理部進(jìn)行數(shù)據(jù)輸入輸出控制,并且執(zhí)行Feistel結(jié)構(gòu)選擇處理。輔助電路274執(zhí) 行F函數(shù)以外的運(yùn)算處理等。作為Feistel結(jié)構(gòu)選擇處理,控制電路273選擇執(zhí)行基于以下的任一個(gè)結(jié)構(gòu)的密 碼處理(a)設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d = 2的Feistel結(jié)構(gòu)(bl)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中僅允許執(zhí)行一個(gè)F函數(shù)的類型1、(b2)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中允許并行執(zhí)行多個(gè)F函數(shù)的類型2。
44
此外,例如從外部輸入設(shè)定信息?;蛘咭部梢栽O(shè)為根據(jù)成為加密或解密處理的對(duì) 象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處理方式的結(jié)構(gòu)??刂齐娐?73進(jìn)行根據(jù)選擇變更各 F函數(shù)專用電路的應(yīng)用順序,執(zhí)行按照各Feistel結(jié)構(gòu)的循環(huán)函數(shù)的控制。通過(guò)應(yīng)用該結(jié)構(gòu),應(yīng)用第一 F函數(shù)(Fl)專用處理電路271和第二 F函數(shù)(F2)專 用處理電路272能夠進(jìn)行應(yīng)用了各種Feistel結(jié)構(gòu)的密碼處理,能夠執(zhí)行加密處理或解密 處理的處理比特不同的對(duì)應(yīng)各種比特的密碼處理。另外,圖17示出具有兩個(gè)F函數(shù)的例子,但是并不限于使用兩個(gè)F函數(shù)的例子,在 使用任意個(gè)數(shù)的F函數(shù)的結(jié)構(gòu)中也能夠期望得到同樣的效果。例如,在之前參照?qǐng)D14所說(shuō) 明的擴(kuò)展Feistel結(jié)構(gòu)中,應(yīng)用三個(gè)不同的F函數(shù)Fl、F2、F3構(gòu)成滿足擴(kuò)散矩陣切換機(jī)構(gòu) (DSM)的數(shù)據(jù)序列數(shù)d = 6的擴(kuò)展Feistel結(jié)構(gòu)。能夠應(yīng)用與其相同的三種F函數(shù)F1、F2、 F3的F函數(shù)來(lái)構(gòu)建圖18所示的具有數(shù)據(jù)序列d = 2的Feistel結(jié)構(gòu)的密碼處理結(jié)構(gòu)。在 該數(shù)據(jù)序列d = 2的結(jié)構(gòu)中,也利用滿足D SM機(jī)構(gòu)的設(shè)定來(lái)配置各函數(shù)F1、F2、F3。圖19示出執(zhí)行這樣的三種F函數(shù)Fl、F2、F3的密碼處理裝置的結(jié)構(gòu)例。圖19所 示的密碼處理裝置280由執(zhí)行F函數(shù)Fl的第一 F函數(shù)(Fl)專用處理電路281、執(zhí)行F函數(shù) F2的第二 F函數(shù)(F2)專用處理電路282、執(zhí)行F函數(shù)F3的第三F函數(shù)(F3)專用處理電路 283、控制電路284以及輔助電路285構(gòu)成。第一 F函數(shù)(Fl)專用處理電路281、第二 F函 數(shù)(F2)專用處理電路282以及第三F函數(shù)(F3)專用處理電路283是能夠并行地進(jìn)行動(dòng)作 的結(jié)構(gòu)??刂齐娐?84對(duì)各處理部進(jìn)行數(shù)據(jù)輸入輸出控制,并且執(zhí)行Feistel結(jié)構(gòu)選擇處 理。輔助電路285執(zhí)行F函數(shù)以外的運(yùn)算處理等。作為Feistel結(jié)構(gòu)選擇處理,控制電路284選擇執(zhí)行基于以下的任一個(gè)結(jié)構(gòu)的密 碼處理(a)設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d = 2的Feistel結(jié)構(gòu)(bl)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中僅允許執(zhí)行一個(gè)F函數(shù)的類型1、(b2)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中允許并行執(zhí)行多個(gè)F函數(shù)的類型2。此外,例如從外部輸入設(shè)定信息??刂齐娐?84進(jìn)行根據(jù)設(shè)定變更各F函數(shù)專用 電路的應(yīng)用順序,執(zhí)行按照各Feistel結(jié)構(gòu)的循環(huán)函數(shù)的控制。通過(guò)應(yīng)用該結(jié)構(gòu),應(yīng)用第一 F函數(shù)(Fl)專用處理電路281 第三F函數(shù)(F3)專 用處理電路283能夠進(jìn)行應(yīng)用了各種Feistel結(jié)構(gòu)的密碼處理,能夠執(zhí)行加密處理或解密 處理的處理比特不同的對(duì)應(yīng)各種比特的密碼處理。此外,也可以是具有4個(gè)以上F函數(shù)執(zhí) 行部的結(jié)構(gòu)。如上所述,決定執(zhí)行滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的線性變換矩陣的多個(gè)不同的 F函數(shù),安裝這些各F函數(shù),變更應(yīng)用了 F函數(shù)的處理順序,由此實(shí)現(xiàn)選擇性地執(zhí)行基于以下 任一個(gè)結(jié)構(gòu)的密碼處理的結(jié)構(gòu),并實(shí)現(xiàn)能夠變更加密處理或解密處理中的處理比特?cái)?shù)的裝 置,(a)設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d = 2的Feistel結(jié)構(gòu)(bl)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d≥2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中僅允許執(zhí)行一個(gè)F函數(shù)的類型1、
(b2)是設(shè)為數(shù)據(jù)序列數(shù)(分割數(shù))d彡2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán) 中允許并行執(zhí)行多個(gè)F函數(shù)的類型2。例如,通過(guò)構(gòu)成a種(a為2以上的整數(shù))F函數(shù)、執(zhí)行基于上述三種Feistel結(jié)構(gòu) 的密碼處理、并且滿足擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的處理結(jié)構(gòu),能夠進(jìn)行抵抗性較高的密碼處理。[8.本發(fā)明的密碼處理以及密碼算法構(gòu)建處理的歸納]最后統(tǒng)一說(shuō)明上述的本發(fā)明的密碼處理以及密碼算法構(gòu)建處理。如參照?qǐng)D1、圖2所說(shuō)明的那樣,本發(fā)明的密碼處理裝置具有密碼處理部,該密碼 處理部執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共用密鑰塊密碼處理,其中,上述SP 型F函數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù)據(jù)變換處理。并且,如參照?qǐng)D5之 后的圖所說(shuō)明的那樣,密碼處理部是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的整數(shù)的擴(kuò)展 Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu),具有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中選擇性 地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu)。設(shè)定這些兩個(gè)以上的多個(gè)不同的矩陣使其實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM: Diffusion Switching Mechanism),通過(guò)DSM實(shí)現(xiàn)提高對(duì)差分攻擊、線性攻擊的抵抗性的密 碼處理。為了通過(guò)該DSM實(shí)現(xiàn)提高抵抗性,按照特定的條件進(jìn)行矩陣的選擇、配置。S卩,作為在F函數(shù)中執(zhí)行的線性變換處理所應(yīng)用的多個(gè)矩陣,選擇滿足條件的多 個(gè)不同的矩陣,在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配置這些多 個(gè)不同的矩陣,其中,上述條件為從基于對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函 數(shù)所包含的線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最 小分支數(shù)為預(yù)先決定的值以上。并且,具體地說(shuō),在密碼處理部中利用的多個(gè)不同的矩陣是滿足如下條件的多個(gè) 不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中 選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[BkD]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò) 展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的k個(gè)(其中,k為2以上的整數(shù))F函 數(shù)中。或者,是滿足如下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù) 序列對(duì)應(yīng)的最小分支數(shù)[B2Wi))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[B2I為3以 上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸入的連 續(xù)的兩個(gè)F函數(shù)中。本發(fā)明的密碼處理裝置的密碼處理部具有如下結(jié)構(gòu)在將這些多個(gè)不同的矩陣設(shè) 為η個(gè)(其中,η為2以上的整數(shù))不同的矩陣Mc^Mp · · Mlri時(shí),在對(duì)擴(kuò)展Feistel結(jié)構(gòu) 的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)配置這些矩陣。作為具體的擴(kuò)展Feistel結(jié)構(gòu) 的例子,例如具有參照?qǐng)D8、圖10所說(shuō)明的在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的類型1的擴(kuò)展 Feistel結(jié)構(gòu)、參照?qǐng)D9、圖11所說(shuō)明的在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的類型2的擴(kuò) 展Feistel結(jié)構(gòu)。此外,本發(fā)明包括執(zhí)行應(yīng)用了這種擴(kuò)展Fei stel結(jié)構(gòu)的密碼處理的密碼處理裝 置和方法、以及執(zhí)行密碼處理的計(jì)算機(jī)程序,還包括構(gòu)建用于執(zhí)行應(yīng)用了上述擴(kuò)展Feistel 結(jié)構(gòu)的密碼處理的密碼 理算法的信息處理裝置、方法以及計(jì)算機(jī)程序。
構(gòu)建密碼處理算法的信息處理裝置例如能夠應(yīng)用一般的PC等信息處理裝置,具 有能夠執(zhí)行以下處理步驟的控制部。艮口,矩陣決定步驟,在應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 2的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu) 的密碼處理算法的結(jié)構(gòu)中,決定在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中應(yīng)用的至少兩 個(gè)以上的多個(gè)不同的矩陣;以及矩陣設(shè)定步驟,在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配 置在矩陣決定步驟中決定的多個(gè)不同的矩陣。上述矩陣決定步驟作為執(zhí)行如下處理的步驟而被執(zhí)行作為兩個(gè)以上的多個(gè)不同 的矩陣,將滿足從基于線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序 列中的最小分支數(shù)為預(yù)先決定的值以上的條件的多個(gè)不同的矩陣決定為應(yīng)用矩陣,其中, 上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中。在應(yīng)用了通過(guò)這種處理算法設(shè)定的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理中,實(shí)現(xiàn)擴(kuò)散矩 陣切換機(jī)構(gòu)(DSM diffusion SwitchingMechanism),通過(guò)DSM實(shí)現(xiàn)提高對(duì)差分攻擊、線性 攻擊的抵抗性的密碼處理。[9.密碼處理裝置的結(jié)構(gòu)例]最后,在圖20中示出了作為執(zhí)行按照上述實(shí)施例的密碼處理的密碼處理裝置的 IC模塊300的結(jié)構(gòu)例。能夠在例如PC、IC卡、讀寫(xiě)器、其它各種信息處理裝置中執(zhí)行上述 處理,圖20所示的IC模塊300能夠構(gòu)成在這些各種設(shè)備中。圖20所示的CPU (Central proce ssing Unit 中央處理單元)301是執(zhí)行密碼 處理的開(kāi)始、結(jié)束、數(shù)據(jù)的發(fā)送和接收的控制、各結(jié)構(gòu)部之間的數(shù)據(jù)傳輸控制、其它各種程 序的處理器。存儲(chǔ)器 302 由 ROM (Read-Only-Memory 只讀存儲(chǔ)器)、RAM (Random Access Memory 隨機(jī)存取存儲(chǔ)器)等構(gòu)成,其中,上述ROM保存由CPU 301所執(zhí)行的程序、或運(yùn)算 參數(shù)等固定數(shù)據(jù),上述RAM作為在CPU 301的處理中執(zhí)行的程序以及在程序處理中適當(dāng)變 化的參數(shù)的保存區(qū)域、工作區(qū)域而使用。另外,存儲(chǔ)器302能夠作為密碼處理所需的密鑰 數(shù)據(jù)、在密碼處理中應(yīng)用的變換表(置換表)、在變換矩陣中應(yīng)用的數(shù)據(jù)等的保存區(qū)域而使 用。此外,數(shù)據(jù)保存區(qū)域優(yōu)選構(gòu)成為具有耐短波結(jié)構(gòu)的存儲(chǔ)器。密碼處理部303例如執(zhí)行按照上述Feistel型共用密鑰塊密碼處理算法的密碼處 理、解密處理。此外,在此示出了將密碼處理單元設(shè)為單獨(dú)模塊的例子,但是也可以構(gòu)成為 不設(shè)置這種獨(dú)立的密碼處理模塊,例如將密碼處理程序保存在ROM中,由CPU 301讀出ROM 保存程序來(lái)執(zhí)行。隨機(jī)數(shù)產(chǎn)生器304執(zhí)行在密碼處理所需的密鑰的生成等中所必需的隨機(jī)數(shù)的產(chǎn) 生處理。發(fā)送接收部305是執(zhí)行與外部的數(shù)據(jù)通信的數(shù)據(jù)通信處理部,例如執(zhí)行與讀寫(xiě)器 等IC模塊之間的數(shù)據(jù)通信,執(zhí)行在IC模塊內(nèi)生成的密文的輸出、或者來(lái)自外部讀寫(xiě)器等設(shè) 備的數(shù)據(jù)輸入等。該IC模塊300例如按照上述實(shí)施例執(zhí)行將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 2的整數(shù)的擴(kuò)展 Feistel型密碼處理。按照上述實(shí)施例的方式設(shè)定不同的線性變換矩陣作為擴(kuò)展Feistel 結(jié)構(gòu)中的F函數(shù)的線性變換矩陣,由此實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM =DiffusionSwitching Mechanism),能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。
以上,參照特定的實(shí)施例詳細(xì)說(shuō)明了本發(fā)明。然而,顯然在不脫離本發(fā)明的要旨的 范圍內(nèi),本領(lǐng)域技術(shù)人員可進(jìn)行該實(shí)施例的修改、代用。即,以例示的形式公開(kāi)了本發(fā)明,但 不是限定性地解釋本發(fā)明。為了判斷本發(fā)明的要旨,應(yīng)該參考權(quán)利要求書(shū)的范圍一欄。此外,在說(shuō)明書(shū)中說(shuō)明的一系列處理能夠通過(guò)硬件、或軟件、或兩者的復(fù)合結(jié)構(gòu)來(lái) 執(zhí)行。在通過(guò)軟件執(zhí)行處理的情況下,能夠?qū)⒂涗浟颂幚眄樞虻某绦虬惭b到嵌入在專用硬 件中的計(jì)算機(jī)內(nèi)的存儲(chǔ)器中來(lái)執(zhí)行、或?qū)⒊绦虬惭b到可執(zhí)行各種處理的通用計(jì)算機(jī)中來(lái)執(zhí) 行。例如,可將程序預(yù)先記錄在作為記錄介質(zhì)的硬盤、ROM (Read Only Memory)中。 或者,可將程序暫時(shí)或永久性地保存(記錄)在軟盤、⑶-ROM(Compact Disc Read Only Memory 光盤只讀存儲(chǔ)器)、M0(Magneto optical 磁光)盤、DVD(DigitalVersatile Disc 數(shù)字多功能光盤)、磁盤、半導(dǎo)體存儲(chǔ)器等可移動(dòng)記錄介質(zhì)中??蓪⑦@種可移動(dòng)記錄介質(zhì)作 為所謂的封裝軟件進(jìn)行提供。此外,程序除了從如上所述的可移動(dòng)記錄介質(zhì)安裝到計(jì)算機(jī)之外,還能夠從下載 站點(diǎn)無(wú)線傳送到計(jì)算機(jī)、或通過(guò)稱為L(zhǎng)AN(Local Area Nerwork 局域網(wǎng))、因特網(wǎng)的網(wǎng)絡(luò) 而有線傳送到計(jì)算機(jī),在計(jì)算機(jī)中接收這樣傳送來(lái)的程序并安裝到內(nèi)置的硬盤等記錄介質(zhì) 中。此外,不僅按照記載以時(shí)間序列執(zhí)行,也可以根據(jù)執(zhí)行處理的裝置的處理能力或 需要來(lái)并行或單獨(dú)地執(zhí)行說(shuō)明書(shū)中記載的各種處理。另外,在本說(shuō)明書(shū)中系統(tǒng)是多個(gè)裝置 的邏輯集合結(jié)構(gòu),并不限于各結(jié)構(gòu)的裝置在同一殼體內(nèi)。產(chǎn)業(yè)上的可利用性如上所述,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在反復(fù)多個(gè)循環(huán)執(zhí)行具有非線性變 換部和線性變換部的SP型F函數(shù)的Feistel型共用密鑰塊密碼處理中,在擴(kuò)展具有兩個(gè)數(shù) 據(jù)序列的Feistel結(jié)構(gòu)得到的Feistel結(jié)構(gòu)、即具有例如三個(gè)、四個(gè)等兩個(gè)以上的任意的數(shù) 據(jù)序列的擴(kuò)展型Feistel結(jié)構(gòu)中,通過(guò)設(shè)定應(yīng)用了多個(gè)不同的線性變換矩陣的循環(huán)函數(shù)部 來(lái)實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),能夠構(gòu)建對(duì)線性分析、差分分析的抵抗性較高的共用密鑰 塊密碼算法以及執(zhí)行密碼處理。根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d > 2的整 數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu)中,具有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處 理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu),作為兩個(gè)以上的多個(gè)不同的矩 陣,設(shè)定為滿足從基于包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中的線 性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù) 先決定的值以上的條件的多個(gè)不同的矩陣,由此實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),能夠構(gòu)建對(duì) 線性分析、差分分析的抵抗性較高的共用密鑰塊密碼算法以及執(zhí)行密碼處理。并且,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù)d = 2ax的擴(kuò)展 Feistel結(jié)構(gòu)(x ^ 1)的密碼處理的結(jié)構(gòu)中,設(shè)為在一個(gè)循環(huán)中均等地執(zhí)行所有種類(a種 類)的F函數(shù)各χ個(gè)的結(jié)構(gòu),因此實(shí)現(xiàn)沒(méi)有設(shè)置多余的電路的小型的密碼處理裝置,其中, 所述擴(kuò)展Feistel結(jié)構(gòu)利用了由多個(gè)不同的矩陣執(zhí)行不同的線性變換處理的a (a ^ 2)種 F函數(shù)。并且,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),構(gòu)成由多個(gè)不同的矩陣執(zhí)行不同的線性變換處理的多個(gè)F函數(shù)執(zhí)行部,設(shè)為根據(jù)設(shè)定來(lái)變更多個(gè)F函數(shù)執(zhí)行部的利用順序的結(jié)構(gòu), 由此實(shí)現(xiàn)能夠選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理的密碼處理裝置,其 中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 2的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者(bl)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許 執(zhí)行一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 2的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并 行執(zhí)行多個(gè)F函數(shù)的密碼處理。
49
權(quán)利要求
一種密碼處理裝置,其特征在于,具有密碼處理部,該密碼處理部執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共用密鑰塊密碼處理,其中,上述SP型F函數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù)據(jù)變換處理,上述密碼處理部是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d≥3的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu),具有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用至少兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu),其中,上述兩個(gè)以上的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中,具有在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配置上述多個(gè)不同的矩陣的結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的密碼處理裝置,其特征在于,在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[BkD]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的k個(gè)F函數(shù)中,其中,k為2以上的整數(shù)。
3.根據(jù)權(quán)利要求1所述的密碼處理裝置,其特征在于,在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2D (S (i))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[B2d]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。
4.根據(jù)權(quán)利要求1所述的密碼處理裝置,其特征在于,在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2Wi))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[B2I為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。
5.根據(jù)權(quán)利要求1所述的密碼處理裝置,其特征在于,上述密碼處理部具有如下結(jié)構(gòu)當(dāng)將上述多個(gè)不同的矩陣設(shè)為η個(gè)不同的矩陣ΜρΜ” · -Mlri時(shí),在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)配置這些不同的矩 陣ΜρΜρ· .Mlri,其中,η為2以上的整數(shù)。
6.根據(jù)權(quán)利要求1 5中的任一項(xiàng)所述的密碼處理裝置,其特征在于,上述密碼處理部是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的 密碼處理的結(jié)構(gòu)。
7.根據(jù)權(quán)利要求1 5中的任一項(xiàng)所述的密碼處理裝置,其特征在于,上述密碼處理部是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的擴(kuò)展Feistel結(jié) 構(gòu)的密碼處理的結(jié)構(gòu)。
8.根據(jù)權(quán)利要求1 5中的任一項(xiàng)所述的密碼處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)在設(shè)為a ^ 2的任意的整數(shù)、χ ^ 1的任意的整數(shù)時(shí),執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù)d = 2ax 的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,其中,所述擴(kuò)展Feistel結(jié)構(gòu)利用了由上述多個(gè)不同的矩 陣執(zhí)行不同的線性變換處理的a種F函數(shù),在一個(gè)循環(huán)中均等地執(zhí)行所有種類即a種類的F函數(shù)各χ個(gè)。
9.根據(jù)權(quán)利要求8所述的密碼處理裝置,其特征在于, 上述密碼處理部具備F函數(shù)執(zhí)行部,其執(zhí)行在一個(gè)循環(huán)中并行地執(zhí)行的ax個(gè)F函數(shù);以及 控制部,其執(zhí)行對(duì)上述F函數(shù)執(zhí)行部的數(shù)據(jù)輸入輸出控制。
10.根據(jù)權(quán)利要求1 5中的任一項(xiàng)所述的密碼處理裝置,其特征在于, 上述密碼處理部具備多個(gè)F函數(shù)執(zhí)行部,其利用上述多個(gè)不同的矩陣執(zhí)行不同的線性變換處理;以及 控制部,其根據(jù)設(shè)定而變更上述多個(gè)F函數(shù)執(zhí)行部的利用順序, 其中,上述控制部是選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理的結(jié)構(gòu),其 中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 3的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者 (bl)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許執(zhí)行 一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并行執(zhí) 行多個(gè)F函數(shù)的密碼處理。
11.根據(jù)權(quán)利要求10所述的密碼處理裝置,其特征在于,上述控制部是根據(jù)成為加密或解密處理的對(duì)象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處 理方式的結(jié)構(gòu)。
12.—種密碼處理方法,在密碼處理裝置中執(zhí)行密碼處理,其特征在于,具有密碼處理步驟,在密碼處理部中執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共 用密鑰塊密碼處理,其中,上述SP型F函數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù) 據(jù)變換處理,上述密碼處理步驟是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 3的整數(shù)的擴(kuò)展Feistel結(jié) 構(gòu)的密碼處理的步驟,具有運(yùn)算步驟,在該運(yùn)算步驟中,執(zhí)行在各循環(huán)的F函數(shù)中執(zhí)行的線 性變換處理中選擇性地應(yīng)用了至少兩個(gè)以上的多個(gè)不同的矩陣的運(yùn)算,在上述運(yùn)算步驟中應(yīng)用的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于 線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為 預(yù)先決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn) 行輸入的F函數(shù)中,上述運(yùn)算步驟是在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中執(zhí)行基于上 述多個(gè)不同的矩陣的線性變換運(yùn)算的步驟。
13.根據(jù)權(quán)利要求12所述的密碼處理方法,其特征在于,上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[BkD] 為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸 入的連續(xù)的k個(gè)F函數(shù)中,其中,k為2以上的整數(shù)。
14.根據(jù)權(quán)利要求12所述的密碼處理方法,其特征在于,上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出 的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2D(s(i))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[B2d] 為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸 入的連續(xù)的兩個(gè)F函數(shù)中。
15.根據(jù)權(quán)利要求12所述的密碼處理方法,其特征在于,上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從根據(jù)線性變換矩陣而算出 的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2Wi))]中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)[B,] 為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列s(i)進(jìn)行輸 入的連續(xù)的兩個(gè)F函數(shù)中。
16.根據(jù)權(quán)利要求12所述的密碼處理方法,其特征在于,在將上述多個(gè)不同的矩陣設(shè)為η個(gè)不同的矩陣ΜρΜ” · ^Mlri時(shí),上述運(yùn)算步驟是在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)執(zhí) 行這些不同的矩陣ΜρΜρ · · Mlri的步驟,其中,η為2以上的整數(shù)。
17.根據(jù)權(quán)利要求12 16中的任一項(xiàng)所述的密碼處理方法,其特征在于,上述密碼處理步驟是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu) 的密碼處理的步驟。
18.根據(jù)權(quán)利要求12 16中的任一項(xiàng)所述的密碼處理方法,其特征在于,上述密碼處理步驟是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的擴(kuò)展Feistel 結(jié)構(gòu)的密碼處理的步驟。
19.根據(jù)權(quán)利要求12 16中的任一項(xiàng)所述的密碼處理方法,其特征在于,上述密碼處理步驟是如下的步驟在設(shè)為a ^ 2的任意的整數(shù)、χ ^ 1的任意的整數(shù)時(shí),執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù)d = 2ax 的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,其中所述擴(kuò)展Feistel結(jié)構(gòu)利用了由上述多個(gè)不同的矩 陣執(zhí)行不同的線性變換處理的a種F函數(shù),在一個(gè)循環(huán)中均等地執(zhí)行所有種類即a種類的F函數(shù)各χ個(gè)。
20.根據(jù)權(quán)利要求19所述的密碼處理方法,其特征在于,上述密碼處理步驟是應(yīng)用F函數(shù)執(zhí)行部,按照控制部的控制來(lái)執(zhí)行密碼處理的步驟, 其中,上述F函數(shù)執(zhí)行部執(zhí)行在一個(gè)循環(huán)中并行地執(zhí)行的ax個(gè)F函數(shù),上述控制部執(zhí)行對(duì) 上述F函數(shù)執(zhí)行部的數(shù)據(jù)輸入輸出控制。
21.根據(jù)權(quán)利要求12 16中的任一項(xiàng)所述的密碼處理方法,其特征在于,在上述密碼處理步驟中,利用由上述多個(gè)不同的矩陣執(zhí)行不同的線性變換處理的多個(gè)F函數(shù)執(zhí)行部和根據(jù)設(shè) 定而變更上述多個(gè)F函數(shù)執(zhí)行部的利用順序的控制部來(lái)執(zhí)行密碼處理,通過(guò)上述控制部的 控制,選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理,其中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 3的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者(b 1)是設(shè)為數(shù)據(jù)序列數(shù)d > 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許執(zhí)行 一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并行執(zhí) 行多個(gè)F函數(shù)的密碼處理。
22.根據(jù)權(quán)利要求21所述的密碼處理方法,其特征在于,上述控制部根據(jù)成為加密或解密處理的對(duì)象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處理 方式。
23.—種密碼處理算法構(gòu)建方法,在信息處理裝置中構(gòu)建密碼處理算法,其特征在于, 具有以下步驟矩陣決定步驟,在應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 3的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密 碼處理算法的結(jié)構(gòu)中,信息處理裝置中的控制部決定在各循環(huán)的F函數(shù)中執(zhí)行的線性變換 處理中應(yīng)用的至少兩個(gè)以上的多個(gè)不同的矩陣;以及矩陣設(shè)定步驟,上述控制部在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中 反復(fù)配置在上述矩陣決定步驟中決定的多個(gè)不同的矩陣,其中,上述矩陣決定步驟是執(zhí)行以下處理的步驟作為上述兩個(gè)以上的多個(gè)不同的矩 陣,將滿足從基于線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中 的最小分支數(shù)為預(yù)先決定的值以上的條件的多個(gè)不同的矩陣決定為應(yīng)用矩陣,其中,上述 線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中。
24.—種信息處理裝置,包括有形存儲(chǔ)單元,用于存儲(chǔ)密碼處理所需的密鑰數(shù)據(jù); 處理器,用于執(zhí)行各種程序以及控制密碼處理的開(kāi)始和結(jié)束;以及 密碼處理裝置,用于進(jìn)行密碼處理,所述密碼處理裝置具有密碼處理部,該密碼處理部 執(zhí)行將SP型F函數(shù)反復(fù)多次循環(huán)的Feistel型共用密鑰塊密碼處理,其中,上述SP型F函 數(shù)執(zhí)行包括非線性變換處理和線性變換處理的數(shù)據(jù)變換處理,上述密碼處理部是執(zhí)行應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d ^ 3的整數(shù)的擴(kuò)展Feistel結(jié) 構(gòu)的密碼處理的結(jié)構(gòu),具有在各循環(huán)的F函數(shù)中執(zhí)行的線性變換處理中選擇性地應(yīng)用至少 兩個(gè)以上的多個(gè)不同的矩陣的結(jié)構(gòu),其中,上述兩個(gè)以上的多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣從基于線 性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù) 先決定的值以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行 輸入的F函數(shù)中,具有在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中反復(fù)配置上述多個(gè)不同 的矩陣的結(jié)構(gòu)。
25.根據(jù)權(quán)利要求24所述的信息處理裝置,其特征在于,在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[BkD(s(i))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[BkD]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的k個(gè)F函數(shù)中,其中,k為2以上的整數(shù)。
26.根據(jù)權(quán)利要求24所述的信息處理裝置,其特征在于,5在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2D (S (i))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[B2d]為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。
27.根據(jù)權(quán)利要求24所述的信息處理裝置,其特征在于,在上述密碼處理部中利用的上述多個(gè)不同的矩陣是滿足以下條件的多個(gè)不同的矩陣 從根據(jù)線性變換矩陣而算出的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)[B2Wi))]中選擇的全部數(shù) 據(jù)序列中的最小分支數(shù)[B2I為3以上,其中,上述線性變換矩陣包含在對(duì)擴(kuò)展Feistel結(jié) 構(gòu)的各數(shù)據(jù)序列s (i)進(jìn)行輸入的連續(xù)的兩個(gè)F函數(shù)中。
28.根據(jù)權(quán)利要求24所述的信息處理裝置,其特征在于, 上述密碼處理部具有如下結(jié)構(gòu)當(dāng)將上述多個(gè)不同的矩陣設(shè)為η個(gè)不同的矩陣ΜρΜ” · -Mlri時(shí), 在對(duì)擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列進(jìn)行輸入的F函數(shù)中依次反復(fù)配置這些不同的矩 陣ΜρΜρ· .Mlri,其中,η為2以上的整數(shù)。
29.根據(jù)權(quán)利要求24 28中的任一項(xiàng)所述的信息處理裝置,其特征在于,上述密碼處理部是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中僅執(zhí)行一個(gè)F函數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的 密碼處理的結(jié)構(gòu)。
30.根據(jù)權(quán)利要求24 28中的任一項(xiàng)所述的信息處理裝置,其特征在于,上述密碼處理部是執(zhí)行應(yīng)用了在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)F函數(shù)的擴(kuò)展Feistel結(jié) 構(gòu)的密碼處理的結(jié)構(gòu)。
31.根據(jù)權(quán)利要求24 28中的任一項(xiàng)所述的信息處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)在設(shè)為a ≥ 2的任意的整數(shù)、χ ≥1的任意的整數(shù)時(shí),執(zhí)行應(yīng)用了數(shù)據(jù)序列數(shù)d = 2ax 的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,其中,所述擴(kuò)展Feistel結(jié)構(gòu)利用了由上述多個(gè)不同的矩 陣執(zhí)行不同的線性變換處理的a種F函數(shù),在一個(gè)循環(huán)中均等地執(zhí)行所有種類即a種類的F函數(shù)各χ個(gè)。
32.根據(jù)權(quán)利要求31所述的信息處理裝置,其特征在于, 上述密碼處理部具備F函數(shù)執(zhí)行部,其執(zhí)行在一個(gè)循環(huán)中并行地執(zhí)行的ax個(gè)F函數(shù);以及 控制部,其執(zhí)行對(duì)上述F函數(shù)執(zhí)行部的數(shù)據(jù)輸入輸出控制。
33.根據(jù)權(quán)利要求24 28中的任一項(xiàng)所述的信息處理裝置,其特征在于, 上述密碼處理部具備多個(gè)F函數(shù)執(zhí)行部,其利用上述多個(gè)不同的矩陣執(zhí)行不同的線性變換處理;以及 控制部,其根據(jù)設(shè)定而變更上述多個(gè)F函數(shù)執(zhí)行部的利用順序, 其中,上述控制部是選擇性地執(zhí)行(a)、(bl)、(b2)中的任一個(gè)的密碼處理的結(jié)構(gòu),其 中,上述(a)、(bl)、(b2)為(a)通過(guò)設(shè)為數(shù)據(jù)序列數(shù)d = 3的Feistel結(jié)構(gòu)進(jìn)行的密碼處理、或者 (bl)是設(shè)為數(shù)據(jù)序列數(shù)d ≥3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中僅允許執(zhí)行 一個(gè)F函數(shù)的密碼處理、或者(b2)是設(shè)為數(shù)據(jù)序列數(shù)d ^ 3的任意數(shù)的擴(kuò)展Feistel結(jié)構(gòu),在各循環(huán)中允許并行執(zhí) 行多個(gè)F函數(shù)的密碼處理。
34.根據(jù)權(quán)利要求33所述的信息處理裝置,其特征在于,上述控制部是根據(jù)成為加密或解密處理的對(duì)象的數(shù)據(jù)的比特長(zhǎng)度來(lái)選擇要執(zhí)行的處 理方式的結(jié)構(gòu)。
全文摘要
本發(fā)明提供了一種密碼處理裝置、方法、算法構(gòu)建方法和信息處理裝置。實(shí)現(xiàn)應(yīng)用了擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展Feistel型共用密鑰塊密碼處理結(jié)構(gòu)。在應(yīng)用了將數(shù)據(jù)序列數(shù)d設(shè)為d≥2的整數(shù)的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理結(jié)構(gòu)中,在F函數(shù)部的線性變換處理中選擇性地應(yīng)用多個(gè)不同的多個(gè)矩陣。作為矩陣,選擇滿足從基于線性變換矩陣的與數(shù)據(jù)序列對(duì)應(yīng)的最小分支數(shù)中選擇的全部數(shù)據(jù)序列中的最小分支數(shù)為預(yù)先決定的值以上的條件的多個(gè)不同的矩陣,其中上述線性變換矩陣包含在輸入到擴(kuò)展Feistel結(jié)構(gòu)的各數(shù)據(jù)序列的F函數(shù)中。根據(jù)本發(fā)明,實(shí)現(xiàn)對(duì)基于DSM的線性分析、差分分析的抵抗性較高的共用密鑰塊密碼。
文檔編號(hào)H04L9/06GK101908958SQ201010219870
公開(kāi)日2010年12月8日 申請(qǐng)日期2007年7月17日 優(yōu)先權(quán)日2006年7月28日
發(fā)明者澀谷香士, 白井太三 申請(qǐng)人:索尼株式會(huì)社