加密處理裝置、加密處理方法和程序的制作方法
【專利摘要】為了實現(xiàn)具有改進擴散特性的極度安全的加密處理,本發(fā)明的一方面包括加密處理單元,該加密處理單元將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成多行并輸入,然后對各行數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換處理。在加密處理單元中,將n/d位數(shù)據(jù)輸入到各行,所述n/d位數(shù)據(jù)是將作為輸入數(shù)據(jù)的n位數(shù)據(jù)以劃分數(shù)(d)劃分而獲得的,并且重復(fù)執(zhí)行包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換處理的計算作為回合計算。以d/2個單位對具有回合函數(shù)的行的輸出數(shù)據(jù)的n/d位數(shù)據(jù)進行劃分,對劃分的數(shù)據(jù)進行組合,對d組n/d位數(shù)據(jù)進行重構(gòu),所述數(shù)據(jù)與先前階段的回合計算的輸出數(shù)據(jù)不同,并且執(zhí)行得到下一階段的回合計算的輸入數(shù)據(jù)的處理。由于該配置,可以實現(xiàn)具有改進擴散特性的極度安全的加密處理。
【專利說明】加密處理裝置、加密處理方法和程序
【技術(shù)領(lǐng)域】
[0001]本公開涉及加密處理裝置、加密處理方法和程序。更具體地,本公開涉及包括對稱密鑰加密術(shù)的加密處理裝置、加密處理方法和程序。
【背景技術(shù)】
[0002]隨著面向信息社會的發(fā)展,用于保證正處理的信息的安全的信息安全技術(shù)的重要性變得更高。信息安全技術(shù)的要素之一是加密技術(shù),并且加密技術(shù)當前用在各種產(chǎn)品和系統(tǒng)中。
[0003]存在各種加密處理算法,并且基本技術(shù)之一是所謂的對稱密鑰塊加密術(shù)。在對稱密鑰塊加密術(shù)中,用于加密的密鑰和用于解密的密鑰是相同的。在加密操作和解密操作中,根據(jù)共同密鑰來生成密鑰,并且重復(fù)執(zhí)行具有特定塊數(shù)據(jù)單位(諸如64位、128位或256位)的數(shù)據(jù)轉(zhuǎn)換操作。
[0004]廣泛公知的對稱密鑰塊加密算法包括作為美國的先前標準的DES (數(shù)據(jù)加密標準)和作為美國的當前標準的AES (高級加密標準)。當今仍正提出其它各種對稱密鑰塊加密技術(shù),并且由索尼公司在2007年提出的CLEFIA也是對稱密鑰塊加密技術(shù)之一。
[0005]這樣的對稱密鑰塊加密算法主要由加密處理單元來構(gòu)成,該加密處理單元具有:回合函數(shù)執(zhí)行單元,重復(fù)地對輸入數(shù)據(jù)進行轉(zhuǎn)換;以及密鑰安排單元,生成要在各個回合的回合函數(shù)單元中使用的回合密鑰。密鑰安排單元首先基于作為秘密密鑰的主密鑰(主要密鑰)而生成具有增加位數(shù)的擴大密鑰,然后基于所生成的擴大密鑰而生成要在加密處理單元的各個回合函數(shù)單元中使用的回合密鑰(副密鑰)。
[0006]作為執(zhí)行這樣的算法的具體結(jié)構(gòu),存在重復(fù)地執(zhí)行包括線性轉(zhuǎn)換單元和非線性轉(zhuǎn)換單元的回合函數(shù)的已知結(jié)構(gòu)。典型的示例結(jié)構(gòu)包括Feistel結(jié)構(gòu)和一般化Feistel結(jié)構(gòu)。Feistel結(jié)構(gòu)和一般化Feistel結(jié)構(gòu)均具有如下結(jié)構(gòu):其通過簡單重復(fù)包括作為數(shù)據(jù)轉(zhuǎn)換函數(shù)的F函數(shù)的回合函數(shù)而將明文轉(zhuǎn)換為密文。在每個F函數(shù)中,執(zhí)行線性轉(zhuǎn)換和非線性轉(zhuǎn)換。非專利文獻I和非專利文獻2是公開使用Feistel結(jié)構(gòu)的加密處理的文獻示例。
[0007]評估塊加密的安全性時所使用的指示之一是擴散特性。該特性可以被視為將輸入數(shù)據(jù)改變擴展(擴散)至輸出數(shù)據(jù)的特性,并且在安全塊加密中,期望輸入數(shù)據(jù)的這種改變的影響盡可能塊地被傳送到輸出數(shù)據(jù)。
[0008]可以預(yù)測,為了改進擴散特性,例如,回合函數(shù)重復(fù)次數(shù)的增加將是有效的。然而,沒有公開用于以較小的回合函數(shù)重復(fù)次數(shù)來改進擴散特性的傳統(tǒng)技術(shù)。
[0009]引用列表
[0010]非專利文獻
[0011]非專利文獻1:K.Nyberg, “Generalized Feistel networks,,,ASIACRYPT 96, SpringerVerlag, 1996,pp.91—104.[0012]非專利文獻2:Yuliang Zheng, Tsutomu Matsumotoj Hideki Ima1:0n theConstruction of Block Ciphers Provably Secure and Not Relying on Any UnprovedHypotheses.CRYPTO 1989:461-480
【發(fā)明內(nèi)容】
[0013]本發(fā)明要解決的問題
[0014]本公開是考慮到例如上述情形而做出的,并且其目的是提供具有改進擴散特性的、具有高安全性水平的加密處理裝置、加密處理方法和程序。
[0015]問題的解決方案
[0016]本公開的第一方面在于一種加密處理裝置,其包括:
[0017]加密處理單元,被配置成將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作,
[0018]其中,加密處理單元具有如下結(jié)構(gòu):該結(jié)構(gòu)被設(shè)計成將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行,并且重復(fù)執(zhí)行包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及
[0019]加密處理單元執(zhí)行如下操作:在該操作中,將具有回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),并且對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
[0020]此外,在本公開的加密處理裝置的實施例中,回合函數(shù)包括F函數(shù)和F函數(shù)的輸出或輸入與其它行的數(shù)據(jù)之間的異或運算,該F函數(shù)包括使用回合密鑰的計算、非線性轉(zhuǎn)換和線性轉(zhuǎn)換。
[0021 ] 此外,在本公開的加密處理裝置的實施例中,加密處理單元通過執(zhí)行滿足以下分配條件(I)至(3)的操作而將先前階段的回合計算的結(jié)果設(shè)置為下一階段的回合計算的輸Λ:
[0022](I) F函數(shù)輸入側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的異或(XOR)側(cè)數(shù)據(jù)序列,
[0023](2)X0R側(cè)數(shù)據(jù)序列被不變地分配給下一回合計算的F函數(shù)輸入側(cè)數(shù)據(jù)序列,以及
[0024](3)被劃分成d/2組的每一個數(shù)據(jù)序列被分配給下一回合函數(shù)的d/2個數(shù)據(jù)序列
而沒有重疊。
[0025]此外,在本公開的加密處理裝置的實施例中,加密處理單元具有輸入數(shù)據(jù)的劃分數(shù)d等于或大于4的一般化Feistel結(jié)構(gòu)。
[0026]此外,在本公開的加密處理裝置的實施例中,加密處理單元執(zhí)行如下操作:在該操作中,通過將具有回合計算的輸出數(shù)據(jù)的d行中的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù)而生成dX (n/d)組再劃分數(shù)據(jù),對選自與劃分數(shù)d對應(yīng)的d行當中的不同行的d/2組再劃分數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
[0027]此外,在本公開的加密處理裝置的實施例中,當所有輸出位處于滿足以下兩個條件的擴散狀態(tài)時,或者當輸出位以關(guān)于輸入位的關(guān)系式來表示時,加密處理單元具有實現(xiàn)了滿足以下兩個條件的完全擴散狀態(tài)的結(jié)構(gòu):
[0028](條件I)所有輸入位都包括在關(guān)系式中,以及[0029](條件2)所有輸入位都已通過回合函數(shù)至少一次。
[0030]此外,在本公開的加密處理裝置的實施例中,加密處理單元還通過四個回合的回合計算而實現(xiàn)完全擴散狀態(tài)。
[0031]此外,在本公開的加密處理裝置的實施例中,確定先前階段的回合計算的輸出數(shù)據(jù)與下一階段的回合計算的再劃分數(shù)據(jù)之間的輸入-輸出關(guān)系的連接結(jié)構(gòu)是選自如下連接結(jié)構(gòu)的連接結(jié)構(gòu):該連接結(jié)構(gòu)以作為通過組合dX (n/d)組再劃分數(shù)據(jù)而生成的數(shù)據(jù)的(d/2)組2n/d位數(shù)據(jù)為單位,所述dX (n/d)組再劃分數(shù)據(jù)是通過對具有回合計算的輸出數(shù)據(jù)的行中的n/d位數(shù)據(jù)執(zhí)行再劃分操作而生成的。
[0032]此外,在本公開的加密處理裝置的實施例中,加密處理單元具有適用于加密操作和解密操作兩者的對合(involution)特性。
[0033]此外,在本公開的加密處理裝置的實施例中,用于在加密處理單元中對各個回合計算的再劃分數(shù)據(jù)進行重構(gòu)的操作包括:根據(jù)預(yù)定規(guī)則將先前階段的回合函數(shù)輸入側(cè)序列的再劃分數(shù)據(jù)分配給下一階段的異或側(cè)序列;以及根據(jù)預(yù)定規(guī)則將先前階段的異或側(cè)序列的再劃分數(shù)據(jù)分配給下一階段的回合函數(shù)輸入側(cè)序列。
[0034]此外,在本公開的加密處理裝置的實施例中,加密處理單元執(zhí)行用于將作為輸入數(shù)據(jù)的明文轉(zhuǎn)換為密文的加密操作或者用于將作為輸入數(shù)據(jù)的密文轉(zhuǎn)換為明文的解密操作。
[0035]此外,本公開的第二方面在于在加密處理裝置中實現(xiàn)的加密處理方法,
[0036]該加密處理方法包括:
[0037]加密處理步驟,將要經(jīng)受數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作,
[0038]其中,加密處理步驟包括:將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行;以及重復(fù)執(zhí)行包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及
[0039]加密處理步驟包括如下操作:在該操作中,將具有回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
[0040]此外,本公開的第三方面在于一種用于使得加密處理裝置執(zhí)行加密處理的程序,[0041 ] 該程序使得加密處理單元執(zhí)行:
[0042]加密處理步驟,將要經(jīng)受數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作,
[0043]其中,加密處理步驟包括:將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行;以及重復(fù)執(zhí)行包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及
[0044]加密處理步驟包括如下操作:在該操作中,將具有回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。[0045]應(yīng)注意,本公開的程序是記錄在存儲介質(zhì)上然后被提供到例如可以執(zhí)行各種程序代碼的信息處理裝置或計算機系統(tǒng)的程序。當信息處理裝置或計算機系統(tǒng)中的程序執(zhí)行單元執(zhí)行這樣的程序時,執(zhí)行根據(jù)該程序的操作。
[0046]本公開的其它目的、特征和優(yōu)點將根據(jù)以下結(jié)合稍后描述的本發(fā)明的實施例和附圖的詳細描述而變得明顯。在該說明書中,系統(tǒng)是裝置的邏輯集成,并且各個組成裝置不一定位于同一殼體中。
[0047]本發(fā)明的效果
[0048]根據(jù)本公開的實施例,實現(xiàn)了具有改進的擴散特性和高安全性水平的加密處理。
[0049]具體地,加密處理單元將要經(jīng)受數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成行并輸入,并且對各行的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作。加密處理單元將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而獲得的n/d位數(shù)據(jù)輸入到各行,并且重復(fù)執(zhí)行作為包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的計算的回合計算。具有回合計算的輸出數(shù)據(jù)的每行中的n/d位數(shù)據(jù)被劃分成d/2組數(shù)據(jù),并且劃分的數(shù)據(jù)被組合以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù)。重構(gòu)的數(shù)據(jù)被設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。利用該結(jié)構(gòu),可以實現(xiàn)具有改進的擴散特性和高安全性水平的加密處理。
【專利附圖】
【附圖說明】
[0050]圖1是用于說明與k位的密鑰長度兼容的η位對稱密鑰塊加密算法的圖。
[0051]圖2是用于說明與圖1所示的與k位的密鑰長度兼容的η位對稱密鑰塊加密算法對應(yīng)的解密算法的圖。
[0052]圖3是用于說明密鑰安排單元與數(shù)據(jù)加密單元之間的關(guān)系的圖。
[0053]圖4是用于說明數(shù)據(jù)加密單元的示例結(jié)構(gòu)的圖。
[0054]圖5是用于說明具有SPN結(jié)構(gòu)的回合函數(shù)的示例的圖。
[0055]圖6是用于說明具有Feistel結(jié)構(gòu)的回合函數(shù)的示例的圖。
[0056]圖7是用于說明擴展Feistel結(jié)構(gòu)的示例的圖。
[0057]圖8是用于說明擴展Feistel結(jié)構(gòu)的示例的圖。
[0058]圖9是用于說明非線性轉(zhuǎn)換單元的示例結(jié)構(gòu)的圖。
[0059]圖10是用于說明線性轉(zhuǎn)換處理單元的示例結(jié)構(gòu)的圖。
[0060]圖11是用于說明具有Feistel結(jié)構(gòu)的塊加密中的擴散狀態(tài)的圖。
[0061]圖12是用于說明具有Feistel結(jié)構(gòu)的塊加密中的擴散狀態(tài)的圖。
[0062]圖13是用于說明在具有在一個階段使用兩個F函數(shù)的4行一般化Feistel結(jié)構(gòu)的塊加密中的擴散狀態(tài)的圖。
[0063]圖14是用于說明在具有在一個階段使用兩個F函數(shù)的4行一般化Feistel結(jié)構(gòu)的塊加密中的擴散狀態(tài)的圖。
[0064]圖15是用于說明在具有在一個階段使用兩個F函數(shù)的4行一般化Feistel結(jié)構(gòu)的塊加密中的擴散狀態(tài)的圖。
[0065]圖16是用于說明在d是6的情況下的傳統(tǒng)一般化Feistel結(jié)構(gòu)的圖。
[0066]圖17是示出在d是6的情況下在傳統(tǒng)一般化Feistel結(jié)構(gòu)中實現(xiàn)完全擴散狀態(tài)的路徑不例的圖。[0067]圖18是用于說明在劃分數(shù)d是6或更大的情況下通過改變回合間的線而使得完全擴散回合數(shù)比傳統(tǒng)結(jié)構(gòu)的完全擴散回合數(shù)小的示例結(jié)構(gòu)的圖。
[0068]圖19是示出在劃分數(shù)d是6或更大的情況下通過改變回合間的線而使得完全擴散回合數(shù)比傳統(tǒng)結(jié)構(gòu)的完全擴散回合數(shù)小的結(jié)構(gòu)中實現(xiàn)完全擴散狀態(tài)的路徑示例的圖。
[0069]圖20是用于說明作為本公開的實施例的加密處理結(jié)構(gòu)的圖。
[0070]圖21是用于說明作為本公開的實施例的d是4的示例情況的圖。
[0071]圖22示出了在d是4的情況下通過該方法實現(xiàn)完全擴散狀態(tài)的路徑的示例。
[0072]圖23是用于說明作為本公開的實施例的d是6的示例情況的圖。
[0073]圖24示出了在d是6的情況下通過該方法實現(xiàn)完全擴散狀態(tài)的路徑的示例。
[0074]圖25是示出在d是6的情況下以2來劃分每組n/d位數(shù)據(jù)的示例結(jié)構(gòu)的圖。
[0075]圖26是示出η位輸入數(shù)據(jù)的劃分數(shù)d、每組n/d位數(shù)據(jù)的劃分數(shù)p和完全擴散回合數(shù)之間的關(guān)系的一部分的圖。
[0076]圖27是示出以彼此不同的方式來劃分F函數(shù)輸入側(cè)數(shù)據(jù)序列和異或側(cè)數(shù)據(jù)序列的示例結(jié)構(gòu)的圖。
[0077]圖28是示出除了擴大密鑰的插入位置之外與圖21所示的示例結(jié)構(gòu)相同的示例結(jié)構(gòu)的圖。
[0078]圖29是用于說明更高效的數(shù)據(jù)分配方法的圖。
[0079]圖30是用于說明更高效的數(shù)據(jù)分配方法的圖。
[0080]圖31是用于說明更高效的數(shù)據(jù)分配方法的圖。
[0081]圖32是用于說明Feistel結(jié)構(gòu)的對合特性的圖。
[0082]圖33是用于說明Feistel結(jié)構(gòu)的對合特性的圖。
[0083]圖34是示出可以實現(xiàn)出色的擴散特性的4行結(jié)構(gòu)的類型的圖。
[0084]圖35是用于說明用于實現(xiàn)對合特性的操作的圖。
[0085]圖36是用于說明在4行(d=4)結(jié)構(gòu)中具有對合特性的示例結(jié)構(gòu)的圖。
[0086]圖37是用于說明在6行(d=6)結(jié)構(gòu)中具有對合特性的示例結(jié)構(gòu)的圖。
[0087]圖38是用于說明具有對合特性的示例結(jié)構(gòu)的圖。
[0088]圖39是用于說明具有對合特性的示例結(jié)構(gòu)的圖。
[0089]圖40是示出作為加密處理裝置的IC模塊700的示例結(jié)構(gòu)的圖。
【具體實施方式】
[0090]以下是參照附圖的根據(jù)本公開的加密處理裝置、加密處理方法和程序的詳細描述。將按以下章節(jié)順序進行說明。
[0091]1.對稱密鑰塊加密術(shù)的概況
[0092]2.擴散特性的概況
[0093](2-1)擴散特性的描述
[0094]( 2-2 )將擴散特性納入考慮的傳統(tǒng)示例結(jié)構(gòu)
[0095]3.根據(jù)本公開的具有改進擴散特性的示例結(jié)構(gòu)
[0096]4.具有更高效的數(shù)據(jù)分配的示例結(jié)構(gòu)
[0097]5.具有對合特性的示例結(jié)構(gòu)[0098]6.加密處理裝置的示例結(jié)構(gòu)
[0099]7.根據(jù)本公開的結(jié)構(gòu)的總結(jié)
[0100][1.對稱密鑰塊加密術(shù)的概況]
[0101]首先,簡要描述對稱密鑰塊加密術(shù)。
[0102](1-1.對稱密鑰塊加密術(shù))
[0103]對稱密鑰塊加密術(shù)(下文中稱為塊加密)被定義為如下。
[0104]在塊加密中,明文P和密鑰K被接收作為輸入,并且輸出密文C。明文和密文的位長被稱為塊大小,并且在這里以η來表示。盡管η可以是任意整數(shù)值,但是η通常是針對每種塊加密算法而唯一地確定的。使用η作為塊長度的塊加密也可稱為η位塊加密。
[0105]密鑰的位長以k來表示。密鑰可具有任意整數(shù)值。每種對稱密鑰塊加密算法與一個或多個密鑰大小兼容。例如,塊加密算法A具有n=128的塊大小,并且可與k=128、192和256的密鑰大小兼容。
[0106]明文P:n位
[0107]密文C:n位
[0108]密鑰K:k位
[0109]圖1是與k位的密鑰長度兼容的η位對稱密鑰塊加密算法E的圖。
[0110]與加密算法E兼容的解密算法D可以被定義為加密算法E的逆函數(shù)Ε—1。密文C和密鑰K被接收作為輸入,并且輸出明文P。圖2是示出與圖1所示的加密算法E兼容的解密算法D的圖。
[0111](1-2.內(nèi)部結(jié)構(gòu))
[0112]塊加密可以被劃分成兩個單元。一個是“密鑰安排單元”,其輸入密鑰K并且輸出通過利用預(yù)定步驟擴展位長而形成的擴大密鑰K’(位長k’),而另一個是“數(shù)據(jù)加密單元”,其接收來自密鑰安排單元的明文P和擴大密鑰K’,對數(shù)據(jù)進行轉(zhuǎn)換,并且輸出密文C。
[0113]圖3示出了這兩個單元之間的關(guān)系。
[0114](1-3.數(shù)據(jù)加密單元)
[0115]在以下實施例中使用的數(shù)據(jù)加密單元可以被劃分成稱為回合函數(shù)的處理單位?;睾虾瘮?shù)接收兩組數(shù)據(jù)作為輸入,并且在其中對數(shù)據(jù)進行處理之后輸出一組數(shù)據(jù)。所輸入的一組數(shù)據(jù)是當前被加密的η位數(shù)據(jù),并且一個回合中的回合函數(shù)的輸出被提供作為下一回合的輸入。所輸入的另一組數(shù)據(jù)是從密鑰安排單元輸出的擴大密鑰的一部分的數(shù)據(jù),并且該密鑰數(shù)據(jù)被稱為回合密鑰?;睾虾瘮?shù)的總數(shù)被稱為總回合數(shù),并且是針對每種加密算法預(yù)先設(shè)置的值。這里,總回合數(shù)以R來表示。
[0116]在從數(shù)據(jù)加密單元的輸入側(cè)所計數(shù)的第一回合的輸入數(shù)據(jù)以X1來表示,輸入到第i個回合函數(shù)的數(shù)據(jù)以Xi來表示,并且回合密鑰以RKi來表示的情況下,整個數(shù)據(jù)加密單元如圖4所示的來表示。
[0117](1-4.回合函數(shù))
[0118]回合函數(shù)根據(jù)塊加密算法而可以具有各種形式?;睾虾瘮?shù)可以基于各個加密算法所采用的結(jié)構(gòu)而進行分類。典型結(jié)構(gòu)的示例包括SPN結(jié)構(gòu)、Feistel結(jié)構(gòu)和擴展Feistel結(jié)構(gòu)。
[0119](a) SPN結(jié)構(gòu)回合函數(shù)[0120]該結(jié)構(gòu)對所有η位輸入數(shù)據(jù)執(zhí)行關(guān)于回合密鑰的異或運算、非線性轉(zhuǎn)換和線性轉(zhuǎn)換。各個操作的順序不是特定設(shè)置的。圖5示出了具有SPN結(jié)構(gòu)的回合函數(shù)的示例。
[0121](b) Feistel 結(jié)構(gòu)
[0122]η位輸入數(shù)據(jù)被劃分成兩組n/2位數(shù)據(jù)。一組數(shù)據(jù)和回合密鑰被輸入到函數(shù)(F函數(shù)),并且輸出和另一組輸入經(jīng)受異或。然后將數(shù)據(jù)的左和右互相替換以形成輸出數(shù)據(jù)。F函數(shù)的內(nèi)部結(jié)構(gòu)可以是任意各種形狀,但是與SPN結(jié)構(gòu)一樣,基本上通過關(guān)于回合密鑰數(shù)據(jù)的異或運算、非線性運算和線性轉(zhuǎn)換的組合來實現(xiàn)。圖6示出了具有Feistel結(jié)構(gòu)的回合函數(shù)的示例。
[0123](C)擴展 Feistel 結(jié)構(gòu)
[0124]擴展Feistel結(jié)構(gòu)與Feistel結(jié)構(gòu)的不同之處在于數(shù)據(jù)劃分數(shù)是3個或更多個而不是2。在劃分數(shù)以d表示的情況下,各種擴展Feistel結(jié)構(gòu)可以由d來定義。由于F函數(shù)的輸入/輸出大小變得相對較小,因此該結(jié)構(gòu)被認為適合于小尺寸實現(xiàn)。圖7示出了在d是4并且在一個回合中并行使用兩個F函數(shù)的情況下的擴展Feistel結(jié)構(gòu)的示例。圖8示出了在d是8并且在一個回合中使用一個F函數(shù)的情況下所采用的擴展Feistel結(jié)構(gòu)的示例。
[0125](1-5.非線性轉(zhuǎn)換處理單元)
[0126]在要輸入的數(shù)據(jù)大小較大的情況下,非線性轉(zhuǎn)換處理單元易于具有高實現(xiàn)成本。為了避免這樣,在多數(shù)情況下,將目標數(shù)據(jù)劃分成兩個或更多個單位,并且對每個單位執(zhí)行非線性轉(zhuǎn)換。例如,在輸入大小是ms位的情況下,輸入數(shù)據(jù)被劃分成m組s位數(shù)據(jù),并且對m組s位數(shù)據(jù)中的每組執(zhí)行具有s位輸入和輸出的非線性轉(zhuǎn)換。這些s位非線性轉(zhuǎn)換在這里被稱為S盒(S-box)。圖9示出了示例。
[0127](1-6.線性轉(zhuǎn)換處理單元)
[0128]考慮到其特性,線性轉(zhuǎn)換處理單元可以被定義為矩陣。矩陣的元素通常可以以各種形式來表示,諸如GF(28)的元素或GF(2)的元素。圖10示出了線性轉(zhuǎn)換處理單元的示例,其具有ms位輸入和輸出并由關(guān)于GF(2S)定義的mXm矩陣來定義。
[0129][2.擴散特性的概況]
[0130]在說明本公開的加密處理之前,現(xiàn)在簡要描述擴散特性。
[0131](2-1)擴散特性的描述
[0132]如以上簡要描述的,擴散特性用作用于評估塊加密的安全性時所使用的指示之一。該特性可以被視為將輸入數(shù)據(jù)改變散布(或擴散)到輸出數(shù)據(jù)的特性,并且在安全塊加密中,期望輸入數(shù)據(jù)的這樣改變的影響盡可能塊地被傳送到輸出數(shù)據(jù)。
[0133]在以下,定義了“擴散狀態(tài)”、“完全擴散狀態(tài)”和“完全擴散回合數(shù)”。
[0134]在輸出位被記作輸入位的關(guān)系式并且關(guān)系式滿足以下示出的條件的情況下,輸出位的狀態(tài)被定義為“擴散狀態(tài)”。
[0135](條件I)所有輸入位都包括在關(guān)系式中。
[0136](條件2)所有輸入位都已通過回合函數(shù)(F函數(shù))至少一次。
[0137]此外,所有輸出位都處于擴散狀態(tài)的狀態(tài)被定義為“完全擴散狀態(tài)”。
[0138]實現(xiàn)完全擴散狀態(tài)所需的最小回合數(shù)(重復(fù)次數(shù))被稱為“完全擴散回合數(shù)”。
[0139]現(xiàn)在參照作為具體示例具有圖11和圖12所示的Feistel結(jié)構(gòu)的塊加密來詳細描述這些定義。圖11示出了具有FeiStel結(jié)構(gòu)的塊加密的回合函數(shù)的示例結(jié)構(gòu),并且圖12示出了重復(fù)三次回合函數(shù)的結(jié)構(gòu)。
[0140]如從圖12看出的,第i個回合、第(i+Ι)個回合和第(i+2)個回合的輸出的左側(cè)(或者第(i+Ι)個輸入、第(i+2)個輸入和第(i+3)個輸入的左側(cè))的n/2位數(shù)據(jù)Xi+1\ XiJ和XiJ以及第i個回合、第(i+Ι)個回合和第(i+2)個回合的輸出的右側(cè)(或者第(i+Ι)個輸入、第(i+2)個輸入和第(i+3)個輸入的右側(cè))的n/2位數(shù)據(jù)Xi+12、Xi+22和Xi+32均可以通過使用第i個回合的輸入Xi1和Xi2以及回合密鑰RK/、RKi2和RKi3而如下表示。
[0141]XA1=F (RKi1, Xi1) (+) Xi2
[0142]XiV=F (RKi+/, Xi+/) (+) XA2=F (RKi+/, F (RKi1, Xi1) (+) Xi2) (+) Xi1
[0143]Xg1=F (RK21, Xj21) (+) Xi+22= (RK21, F (RKi+/, Xi+/) (+) Xi+/) (+) Xi+/
[0144]=F (RKiV, F (RKi+/, F (RKi1, Xi1) (+) Xi2) (+) Xi1) (+) F (RKi1, Xi1) (+) Xi2
[0145]Xfi2=Xi1
[0146]XA2=XA1=F (RKi1, Xi1) (+) Xi2
[0147]Xi2=XA1=F (RKi+/, Xi+/) (+) XA2=F (RKi+/, F (RKi1, Xi1) (+) Xi2) (+) Xi1
[0148]在以上表示中,F(xiàn) (K,X)表示通過使用參數(shù)K利用F函數(shù)對數(shù)據(jù)X進行轉(zhuǎn)換而獲得的數(shù)據(jù),并且(+ )表示每位的異或。
[0149]盡管以輸入數(shù)據(jù)Xi1和Xi2來表示,但是Xi+/沒有處于擴散狀態(tài),這是由于Xi2沒有通過F函數(shù)。XiJ以輸入數(shù)據(jù)Xi1和Xi2來表示,并且輸入數(shù)據(jù)被給出作為F函數(shù)的輸入。因此,可以認為XiJ處于擴散狀態(tài)。同樣地,可以認為Xm1處于擴散狀態(tài)。
[0150]在僅以Xi1來表示的情況下,Xi+12沒有處于擴散狀態(tài)。由于Xi2沒有通過F函數(shù),因此xi+22沒有處于擴散狀態(tài)。xi+32處于擴散狀態(tài),從而滿足條件。
[0151]根據(jù)以上結(jié)果,第(i+3)個回合的輸出XiJ和Xi+32均處于擴散狀態(tài),并且可以認為實現(xiàn)了完全擴散狀態(tài)。如從以上可以看出的,具有圖11和圖12所示的Feistel結(jié)構(gòu)的塊加密的完全擴散回合數(shù)是3。
[0152]如果沒有實現(xiàn)完全擴散狀態(tài),則特定輸出位不受特定輸入位和非線性函數(shù)(F函數(shù))的影響,因此,可能易受各種攻擊。特別地,擴散特性用作直接估計對攻擊(諸如不可能的差分攻擊和飽和攻擊)的安全性時的指示??梢哉J為,以較小的完全擴散回合數(shù)實現(xiàn)了較好的擴散特性。
[0153]圖13和圖14示出了其它示例。這些圖示出了在一個階段使用兩個F函數(shù)的4行一般化Feistel結(jié)構(gòu)。
[0154]圖15示出了如下情況下的改變的反響:其中,第i個回合的η位輸入\被劃分為四個η/4位數(shù)據(jù),并且僅對第四個η/4位數(shù)據(jù)(以Xi4來表示)的一部分進行改變。
[0155]在圖中,粗虛線表示在輸入的改變尚未通過F函數(shù)的狀態(tài)下來傳送數(shù)據(jù),并且粗線指示在輸入的改變已通過F函數(shù)至少一次的狀態(tài)下來傳送數(shù)據(jù)。另外,假設(shè)F函數(shù)的每個輸出位受F函數(shù)的所有輸·入位的影響。如上所述,完全擴散回合數(shù)可以通過計算在所有輸出位受各種輸入位的虛擬改變影響之前所需的回合數(shù)來確定。實際上,已知在d是4的情況下,在一個階段使用兩個F函數(shù)的一般化Feistel結(jié)構(gòu)中的完全擴散回合數(shù)是5。
[0156](2-2)將擴散特性納入考慮的傳統(tǒng)示例結(jié)構(gòu)
[0157]接下來,簡要描述將至此所提出的擴散特性納入考慮的處理結(jié)構(gòu)。[0158]眾所周知的是,在一個階段使用d/2個函數(shù)的d行一般化Feistel結(jié)構(gòu)沒有非常良好的擴散特性,并且完全擴散回合數(shù)是d+Ι。在例如非專利文獻3 (T.Suzaki andK.Minematsu, "Improving the Generalized Feistel", FSE2010, LNCS6147, pp.19-39, 2010)中對此進行了公開。
[0159]圖16不出了 d是6的傳統(tǒng)一般化Feistel結(jié)構(gòu),并且圖17不出了結(jié)構(gòu)處于完全擴散狀態(tài)的路徑的示例。
[0160]為了解決以上問題,非專利文獻3提出了如下構(gòu)造方法:其通過改變通過將數(shù)據(jù)劃分成d組而形成的每組n/d位數(shù)據(jù)的回合間的線,可以使得在劃分數(shù)d等于或大于6的情況下完全擴散回合數(shù)小于傳統(tǒng)結(jié)構(gòu)中的完全擴散回合數(shù)。
[0161]圖18示出了 d是6的情況下的該構(gòu)造方法,并且圖19示出了結(jié)構(gòu)處于完全擴散狀態(tài)的路徑的示例。
[0162]在d分別是6、8、10、12、14和16的情況下,在該結(jié)構(gòu)中實現(xiàn)的完全擴散回合數(shù)是
5、6、7、8、8和8。從此可以看出,實現(xiàn)了比傳統(tǒng)結(jié)構(gòu)的(d+Ι)個回合更好的擴散特性。然而,在d是4的情況下,該結(jié)構(gòu)是無效的,并且無法使得完全擴散回合數(shù)較小。
[0163]非專利文獻4 (Suzaki, Tsunoo, Kubo, and Kawabata, "Proposal of astructure having diffusion layer incorporated into a generalized Feistelstructure", SCIS2008, 2008)提出了通過對通過將數(shù)據(jù)劃分成d組而形成的每組n/d位數(shù)據(jù)執(zhí)行線性運算而使得擴散特性比傳統(tǒng)結(jié)構(gòu)好的結(jié)構(gòu)。然而,在該結(jié)構(gòu)中,需要實現(xiàn)線性運算的裝置,從而導(dǎo)致較高的實現(xiàn)成本。
[0164][3.根據(jù)本公開的具有改進擴散特性的示例結(jié)構(gòu)]
[0165]鑒于上述問題,本公開提出了用于在一般化Feistel結(jié)構(gòu)中實現(xiàn)較好擴散特性而不增加實現(xiàn)成本的構(gòu)造方法。
[0166]在具有該組成的d行一般化Feistel結(jié)構(gòu)中,如在傳統(tǒng)結(jié)構(gòu)中一樣,將η位輸入數(shù)據(jù)劃分成d組n/d位數(shù)據(jù),并且對d組中的每組執(zhí)行F函數(shù)處理和異或運算(圖20中的步驟I)。
[0167]此時輸入到F函數(shù)的數(shù)據(jù)序列被稱為F函數(shù)輸入側(cè)數(shù)據(jù)序列,并且經(jīng)受異或的數(shù)據(jù)序列被稱為異或側(cè)數(shù)據(jù)序列。
[0168]此后,在每個相應(yīng)序列(每個相應(yīng)行)中傳遞的每組n/d位數(shù)據(jù)被進一步再劃分成d/2組(此時的劃分可以不是等分)。
[0169]根據(jù)以下規(guī)則來分配在每個序列(每行)中被再劃分成d/2組的數(shù)據(jù)(圖20中的步驟2)。
[0170](I)F函數(shù)輸入側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的異或側(cè)數(shù)據(jù)序列。
[0171](2)異或側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的F函數(shù)輸入側(cè)數(shù)據(jù)序列。
[0172](3)被劃分成d/2組的每一個數(shù)據(jù)序列被分配給下一回合函數(shù)的d/2個數(shù)據(jù)序列
而沒有重疊。
[0173]在上述分配之后,將被劃分成d/2組的每組數(shù)據(jù)集成為一組數(shù)據(jù)(圖20中的步驟3)。
[0174]重復(fù)上述所需次數(shù)。
[0175]圖20示出了劃分數(shù)d是4的示例結(jié)構(gòu)。[0176]在該結(jié)構(gòu)中,完全擴散回合數(shù)可以是4,而與數(shù)據(jù)劃分數(shù)d無關(guān)。
[0177]該方法滿足實現(xiàn)完全擴散所需的回合數(shù)是4而與劃分數(shù)d無關(guān)的條件的原因如下。
[0178](1)第i個回合中的輸入數(shù)據(jù)的任何改變影響第(i+1)個回合中的至少一個F函數(shù)。
[0179](2)第(i+1)個回合中的至少一個異或側(cè)數(shù)據(jù)序列處于擴散狀態(tài)。
[0180](3)第(i+1)個回合中的異或側(cè)數(shù)據(jù)序列當中處于擴散狀態(tài)的數(shù)據(jù)被進一步劃分成d/2組,并且影響第(i+2)個回合中的所有d/2個F函數(shù)。因此,第(i+2)個回合中的所有異或側(cè)數(shù)據(jù)序列都處于擴散狀態(tài)。
[0181](4)由于第(i+2)個回合中的異或側(cè)數(shù)據(jù)序列是第(i+3)個回合中的F函數(shù)輸入側(cè)數(shù)據(jù)序列,因此第(i+3)個回合中的所有F函數(shù)輸入側(cè)數(shù)據(jù)序列都處于擴散狀態(tài)。由于處于擴散狀態(tài)的數(shù)據(jù)被輸入到第(i+3)個回合中的所有F函數(shù),因此與輸出經(jīng)受異或的所有異或側(cè)數(shù)據(jù)序列都處于擴散狀態(tài)。
[0182]出于以上原因,在第(i+3 )個回合之后或在第四回合中,不變地實現(xiàn)了完全擴散狀態(tài)。現(xiàn)在參照圖21和圖22,描述具體示例。
[0183]圖21示出了 d是4的情況下該方法的示例。由于d是4,因此通過將輸入數(shù)據(jù)劃分成四組而獲得的每組n/4位數(shù)據(jù)進一步以2來劃分(劃分成d/2組)。
[0184]作為與第i個回合的輸入Xi1對應(yīng)的第i個回合的輸出的兩組劃分數(shù)據(jù)以Yi1L和Yi1R來表示,同樣地,與Xi2Ji3和Xi4對應(yīng)的各組劃分數(shù)據(jù)以yi2L、yi2R、yi3L、yi3R、yi4L,和Yi4R,來表示。在等分的情況下,這些劃分數(shù)據(jù)的大小是n/8位。
[0185]然而,對每行中的數(shù)據(jù)進行再劃分的操作不一定是等分。在例如輸入位數(shù)是256并且劃分數(shù)d是4的情況下,每行中的位數(shù)是n/d=256/4=64位,并且在等分的情況下,通過再劃分而獲得的數(shù)據(jù)是32位數(shù)據(jù)。結(jié)果,生成兩組32位數(shù)據(jù)。
[0186]然而,等分不是必須的,并且從64位數(shù)據(jù)生成的再劃分數(shù)據(jù)可以是任意組合,諸如20位數(shù)據(jù)和44位數(shù)據(jù)的組合。
[0187]然而,在輸入到下一回合計算單元時,通過對被劃分成不同行的20位數(shù)據(jù)和44位數(shù)據(jù)進行組合來重構(gòu)根據(jù)劃分數(shù)d=4的四組64位數(shù)據(jù),并且將其輸入到各個劃分行中。
[0188]即,在具有劃分數(shù)d的結(jié)構(gòu)中,等分不是必須的,但是在d行中的各行的再劃分操作中,d行中的各行的再劃分形式(劃分比率)需要相同。
[0189]如果對第i個回合的輸入數(shù)據(jù)進行某種改變,則該影響被輸入到第(i + 1)個回合中的兩個F函數(shù)中的至少一個。在僅對例如Xi4的LSBl位進行改變的情況下,影響僅被傳送到Y(jié)i4K,并且傳送的影響被傳送到Xi+11。結(jié)果,Xi+11被輸入到第(i+1)個回合中的左側(cè)F函數(shù)(圖22)。同樣適用于如下情況:其中,僅對某個其它輸入位的位置進行改變,并且保證影響被傳送到至少一個F函數(shù)。
[0190]由于第(i+1)個回合中的至少一個F函數(shù)受輸入改變的影響,因此與輸出經(jīng)受異或的數(shù)據(jù)處于擴散狀態(tài)。即,保證組合(Υi+12L+12Κ)或(Yi+1'Yi+廣)的擴散狀態(tài)。圖22示出了組合(Υ?+1?+12Κ)處于擴散狀態(tài)的示例情況。
[0191 ] 根據(jù)該方法的規(guī)則2和3,第(i+1)個回合的輸出Υ?+12?和Yi+12K被輸入到第(i+2)個回合中的兩個(=d/2)F函數(shù)。同樣地,Y1:和Yi+14K也被輸入到第(i+2)個回合中的所有F函數(shù)。即,無論組合(Yi+12\ Yi+12K)和(Yi+1'Yi+14K)中的哪一個在第(i+ι)個回合中處于擴散狀態(tài),處于擴散狀態(tài)的數(shù)據(jù)都被輸入到第(1+2)個回合中的所有F函數(shù)。因此,與這些F函數(shù)的輸出經(jīng)受異或的所有數(shù)據(jù)Yi+2' Yi+22E> Yi+24L和Yi+24K處于擴散狀態(tài),并且根據(jù)規(guī)則2和3而被提供到XiJ和Xi+33。因此,顯然Xm1和Xi+33也處于擴散狀態(tài)。
[0192]處于擴散狀態(tài)Xi+/和Xi+33的被輸入到第(i+3)個回合中的各個F函數(shù),因此,作為與輸出的異或的結(jié)果的Yi+2' Yi+22E> Y1:和Yi+24K或者Xw1和xi+43也處于擴散狀態(tài)。
[0193]根據(jù)以上結(jié)果,該方法可以滿足完全擴散回合數(shù)是4的條件。圖22示出了在d是4的情況下通過該方法實現(xiàn)完全擴散狀態(tài)的路徑的示例。在該示例結(jié)構(gòu)中,以四個回合實現(xiàn)了完全擴散狀態(tài),其小于作為傳統(tǒng)結(jié)構(gòu)中的完全擴散回合數(shù)的五個回合。圖22示出了在該結(jié)構(gòu)中在d是4的情況下實現(xiàn)完全擴散的路徑的示例。
[0194]圖23示出了 d是6的示例結(jié)構(gòu),并且圖24示出了在該示例結(jié)構(gòu)中實現(xiàn)完全擴散狀態(tài)的路徑的示例(回合間置換之前和之后所示的數(shù)表示指示置換之后各組數(shù)據(jù)所處的位置的索引)。
[0195]根據(jù)以上明顯的是,與傳統(tǒng)結(jié)構(gòu)相比,根據(jù)本公開的結(jié)構(gòu)實現(xiàn)了更好的擴散特性。另外,由于根據(jù)本公開的結(jié)構(gòu)不涉及線性運算,因此實現(xiàn)成本沒有增加。
[0196]如上所述,在該實施例中,加密處理單元將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成行并輸入,并且對各行數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作。加密處理單元重復(fù)執(zhí)行包括如下所述的數(shù)據(jù)再劃分和重構(gòu)的回合計算。
[0197]具體地,加密處理單元將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行,并且重復(fù)執(zhí)行作為包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的計算的回合計算。
[0198]在重復(fù)執(zhí)行回合計算的操作中,將具有回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組,并且對再劃分數(shù)據(jù)進行重組,以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù)。重構(gòu)的n/d位數(shù)據(jù)被設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
[0199]具體地,執(zhí)行滿足以下條件的再劃分和重構(gòu)操作。
[0200](I)F函數(shù)輸入側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的異或側(cè)數(shù)據(jù)序列。
[0201](2)異或側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的F函數(shù)輸入側(cè)數(shù)據(jù)序列。
[0202](3)被劃分成d/2組的數(shù)據(jù)序列中的每一個被分配給下一回合函數(shù)的d/2個數(shù)據(jù)序列而沒有重疊。
[0203]執(zhí)行滿足這樣的條件的操作。
[0204]例如,加密處理單元執(zhí)行如下操作:其中,通過將具有回合計算的輸出數(shù)據(jù)的d行的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù)而生成dX (n/d)組再劃分數(shù)據(jù),對選自與劃分數(shù)d對應(yīng)的d行當中的不同行的d/2組再劃分數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
[0205]由于執(zhí)行了這樣的操作,因此實現(xiàn)上述完全擴散狀態(tài)所需的最小回合數(shù)(重復(fù)次數(shù))或者“完全擴散回合數(shù)”可以被設(shè)置為4。
[0206]如上所述,在輸出位被記作輸入位的關(guān)系式并且關(guān)系式滿足以下所示的條件的情況下,輸出位的狀態(tài)被定義為“擴散狀態(tài)”。[0207](條件I)所有輸入位都包括在關(guān)系式中。
[0208](條件2)所有輸入位已通過回合函數(shù)(F函數(shù))至少一次。
[0209]此外,所有輸出位都處于擴散狀態(tài)的狀態(tài)是“完全擴散狀態(tài)”。
[0210]在被描述為本公開的實施例的每個示例結(jié)構(gòu)中,通過用于傳遞通過以d劃分η位輸入數(shù)據(jù)而形成的數(shù)據(jù)的各行或者F函數(shù)輸入側(cè)數(shù)據(jù)序列行的(d/2)行和異或側(cè)序列行的(d/2)行而傳遞的每組n/d位數(shù)據(jù)被劃分成d/2組。
[0211]這是用于實現(xiàn)用以實現(xiàn)完全擴散的最小回合數(shù)4的設(shè)置。
[0212]圖25示出了如下示例結(jié)構(gòu):其中,劃分數(shù)d是6,并且要通過各行而傳遞的n/d位數(shù)據(jù)(n/6位數(shù)據(jù))以2來劃分,或者被劃分成然后在回合之間傳遞的d/12位數(shù)據(jù)組。
[0213]然而,實現(xiàn)完全擴散的劃分數(shù)不限于每行中的(d/2),除非回合數(shù)被限于4。
[0214]圖26是示出η位輸入位的劃分數(shù)d、每行中的劃分數(shù)p和實現(xiàn)完全擴散所需的回合數(shù)之間的對應(yīng)關(guān)系的表。
[0215]如果數(shù)據(jù)序列被適當?shù)胤峙?,則可以根據(jù)以下示出的等式來計算完全擴散回合數(shù)。
[0216]回合數(shù)=3+[logp(d/2)]
[0217]這里,[X]是等于或大于X的最小整數(shù)。
[0218]圖27示出了作為F函數(shù)輸入側(cè)數(shù)據(jù)序列和異或側(cè)數(shù)據(jù)序列以彼此不同的方式來劃分的擴展示例的結(jié)構(gòu)。
[0219]圖27所示的結(jié)構(gòu)是如下示例:其中,劃分數(shù)d是6,三個(=d/2)F函數(shù)輸入側(cè)數(shù)據(jù)序列行中的每個以2來劃分,并且三個(=d/2)異或側(cè)序列行中的每個以3來劃分。
[0220]如果數(shù)據(jù)序列被適當?shù)胤峙?,則在該結(jié)構(gòu)中完全擴散回合數(shù)也可以是4。
[0221]可以實現(xiàn)該方法的效果而與擴大密鑰(回合密鑰)的插入位置無關(guān)。圖28示出了除了擴大密鑰(回合密鑰)的插入位置之外與圖21所示的示例結(jié)構(gòu)相同的示例結(jié)構(gòu)。
[0222]在圖21中,擴大密鑰(回合密鑰)被插入到各個F函數(shù)。
[0223]另一方面,在圖28所示的結(jié)構(gòu)中,擴大密鑰(回合密鑰)被插入到對F函數(shù)輸出和異或側(cè)數(shù)據(jù)序列執(zhí)行異或運算的部分。
[0224]在這樣的結(jié)構(gòu)中,也可以利用包括上述回合間數(shù)據(jù)再劃分操作的傳遞機制來減小完全擴散回合數(shù)。
[0225][4.具有更高效數(shù)據(jù)分配的示例結(jié)構(gòu)]
[0226]在上述章節(jié)[3.根據(jù)本公開的具有改進擴散特性的示例結(jié)構(gòu)]中,描述了用于在一般化Feistel結(jié)構(gòu)中實現(xiàn)較好擴散特性而沒有增加實現(xiàn)成本的構(gòu)造方法。
[0227]具體地,在通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而獲得的n/d位數(shù)據(jù)被輸入到每行并且重復(fù)執(zhí)行作為包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的回合計算的操作的結(jié)構(gòu)中,具有回合計算的輸出數(shù)據(jù)的每行中的n/d位數(shù)據(jù)被進一步再劃分成d/2組,并且對再劃分數(shù)據(jù)進行組合以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù)。d組n/d位數(shù)據(jù)用作下一階段的回合計算的輸入數(shù)據(jù)。
[0228]在以下中,描述了用于以上實施例中描述的數(shù)據(jù)分配的更高效技術(shù)。
[0229]首先參照圖29,描述了該實施例的典型示例結(jié)構(gòu)。
[0230]在該結(jié)構(gòu)中,如在以上章節(jié)[3]中描述的實施例中一樣,在d行一般化Feistel結(jié)構(gòu)中根據(jù)劃分數(shù)d將η位輸入數(shù)據(jù)劃分成d組n/d位數(shù)據(jù),并且重復(fù)執(zhí)行作為包括使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作的回合計算的操作。
[0231]在第i次回合計算之后,將d行(d個序列)中的每行中的n/d位序列進一步再劃分成d/2組。
[0232]在第i次回合計算之后每行(每個序列)中的d/2組劃分輸出數(shù)據(jù)當中的第j組數(shù)據(jù)以YiU]來表示(j是不小于I并且不大于d2/2的整數(shù))。
[0233]同樣地,在通過在第(i + Ι)個階段中在回合計算單元中根據(jù)劃分數(shù)d對d行中的每行中的n/d位數(shù)據(jù)進行再劃分而獲得的d/2組數(shù)據(jù)當中,第j組數(shù)據(jù)以Xi+1[j]來表示(j是不小于I并且不大于的整數(shù)d2/2)。
[0234]同時,YYiW表示通過順序組合YiU]當中滿足等式j(luò)=(d/2)s+t的數(shù)據(jù)而獲得的數(shù)據(jù)。
[0235]這里,s是不小于O并且不大于(d-Ι)的整數(shù),并且t是不小于I并且不大于d/2的整數(shù)。
[0236]具體地,例如,滿足以下等式。
[0237]YYi [I] =Yi [I] I YjlXd/+l] | Yi [2 X d/2+1] |...| Yi [ (d_l) X d/2+1],
[0238]YYi [2] =Yi [2] I I Yi [I X d/2+2] | | Yi [2 X d/2+2] |...| | Yi [ (d_l) X d/2+2],
[0239]...[0240]YYi [d/2] =Yi [d/2] I I Yi [I X d/2+d/2] | | Yi [2 X d/2+d/2] |...| | Yi [ (d_l) X d/2+d/2]
[0241]同樣,XXiW表示通 過順序組合XiU]當中滿足等式j(luò)=(d/2)s+t的數(shù)據(jù)而獲得的數(shù)據(jù)。
[0242]這里,Xi [j]是通過在第i個階段中對d組n/d位數(shù)據(jù)(通過對輸入數(shù)據(jù)進行劃分而獲得)中的每組進行劃分而獲得的d/2組數(shù)據(jù)當中的第j組數(shù)據(jù),s是不小于O并且不大于(d-Ι)的整數(shù),并且t是不小于I并且不大于d/2的整數(shù)。
[0243]根據(jù)以上章節(jié)[3]中描述的方法,存在大量分配模式,并且評估花費長時間。具體地,根據(jù)以上章節(jié)[3]中描述的方法,分配模式滿足以下條件(I)至(3)。
[0244](I)F函數(shù)輸入側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的異或側(cè)數(shù)據(jù)序列。
[0245](2)異或側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的F函數(shù)輸入側(cè)數(shù)據(jù)序列。
[0246](3)被劃分成d/2組的每一個數(shù)據(jù)序列被分配給下一回合函數(shù)的d/2個數(shù)據(jù)序列而沒有重疊。
[0247]存在滿足這些條件(I)至(3)的大量分配模式。特別地,在輸入數(shù)據(jù)的劃分數(shù)d較大的情況下,分配模式數(shù)量非常大,因此,不易選擇分配模式。另外,根據(jù)分配方法,實現(xiàn)成本可能變得較高。
[0248]在以下,提出了預(yù)先限制可選擇分配模式并且可以降低實現(xiàn)成本的分配方法。該所提出的方法是通過進一步改進以上章節(jié)[3]中的描述的分配方法而開發(fā)的。
[0249]首先,在通過在第(i+1)個階段中對d組n/d位數(shù)據(jù)(通過以d劃分輸入數(shù)據(jù)而獲得)中的每組進行再劃分而獲得的d/2組數(shù)據(jù)當中的第j組數(shù)據(jù)Xi+1[j]中,將通過順序組合滿足等式j(luò)=(d/2)s+t的數(shù)據(jù)而形成的數(shù)據(jù)XXi+1[t]的數(shù)據(jù)序列以等于(2t-l)組數(shù)據(jù)的量而循環(huán)向左移位。所得到的數(shù)據(jù)序列以ZZi+1[t]來表示。[0250]具體地,
[0251]由于ZZi+1[l]=XXi+1[l] <<< 1,
[0252]因此建立以下關(guān)系。
[0253]
【權(quán)利要求】
1.一種加密處理裝置,包括: 加密處理單元,被配置成將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成多行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作, 其中,所述加密處理單元具有如下結(jié)構(gòu):所述結(jié)構(gòu)被設(shè)計成將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行,并且重復(fù)執(zhí)行包括使用所述回合函數(shù)的所述數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及 所述加密處理單元執(zhí)行如下操作:在所述操作中,將具有所述回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),并且對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,所述回合函數(shù)包括F函數(shù)和所述F函數(shù)的輸出或輸入與其它行的數(shù)據(jù)之間的異或運算,所述F函數(shù)包括使用回合密鑰的計算、非線性轉(zhuǎn)換和線性轉(zhuǎn)換。
3.根據(jù)權(quán)利要求2所述的加密處理裝置,其中,所述加密處理單元通過執(zhí)行滿足以下分配條件(I)至(3)的操作而將先前階段的回合計算的結(jié)果設(shè)置為下一階段的回合計算的輸入: (1)F函數(shù)輸入側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的異或側(cè)數(shù)據(jù)序列, (2)異或側(cè)數(shù)據(jù)序列被不變地分配給下一回合函數(shù)的F函數(shù)輸入側(cè)數(shù)據(jù)序列,以及 (3)被劃分成d/2組的每一個數(shù)據(jù)序列被分配給下一回合函數(shù)的d/2個數(shù)據(jù)序列而沒.有重疊。
4.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,所述加密處理單元具有輸入數(shù)據(jù)的劃分數(shù)d等于或大于4的一般化Feistel結(jié)構(gòu)。
5.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,所述加密處理單元執(zhí)行如下操作:在所述操作中,通過將具有所述回合計算的輸出數(shù)據(jù)的d行中的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù)而生成dX (n/d)組再劃分數(shù)據(jù),對選自與所述劃分數(shù)d對應(yīng)的d行當中的不同行的d/2組再劃分數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,當所有輸出位處于滿足以下兩個條件的擴散狀態(tài)時或者當所述輸出位以關(guān)于輸入位的關(guān)系式來表示時,所述加密處理單元具有實現(xiàn)滿足以下兩個條件的完全擴散狀態(tài)的結(jié)構(gòu): 條件I所有輸入位都包括在所述關(guān)系式中,以及 條件2所有所述輸入位都已通過所述回合函數(shù)至少一次。
7.根據(jù)權(quán)利要求6所述的加密處理裝置,其中,所述加密處理單元通過四個回合的回合計算而實現(xiàn)所述完全擴散狀態(tài)。
8.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,確定先前階段的回合計算的輸出數(shù)據(jù)與下一階段的回合計算的再劃分數(shù)據(jù)之間的輸入-輸出關(guān)系的連接結(jié)構(gòu)是選自如下連接結(jié)構(gòu)的連接結(jié)構(gòu):所述連接結(jié)構(gòu)以作為通過組合dX (n/d)組再劃分數(shù)據(jù)而生成的數(shù)據(jù)的(d/2)組2n/d位數(shù)據(jù)為單位,所述dX (n/d)組再劃分數(shù)據(jù)是通過對具有所述回合計算的輸出數(shù)據(jù)的行中的n/d位數(shù)據(jù)執(zhí)行再劃分操作而生成的。
9.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,所述加密處理單元具有能夠適用于加密操作和解密操作兩者的對合特性。
10.根據(jù)權(quán)利要求9所述的加密處理裝置,其中,用于在所述加密處理單元中對各個回合計算的再劃分數(shù)據(jù)進行重構(gòu)的操作包括: 根據(jù)預(yù)定規(guī)則將先前階段的回合函數(shù)輸入側(cè)序列的再劃分數(shù)據(jù)分配給下一階段的異或側(cè)序列;以及 根據(jù)預(yù)定規(guī)則將先前階段的異或側(cè)序列的再劃分數(shù)據(jù)分配給下一階段的回合函數(shù)輸入側(cè)序列。
11.根據(jù)權(quán)利要求1所述的加密處理裝置,其中,所述加密處理單元執(zhí)行: 用于將作為輸入數(shù)據(jù)的明文轉(zhuǎn)換為密文的加密操作,或者 用于將作為輸入數(shù)據(jù)的密文轉(zhuǎn)換為明文的解密操作。
12.—種在加密處理裝置中實現(xiàn)的加密處理方法, 所述加密處理方法包括: 加密處理步驟,將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成多行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作, 其中,所述加密處理步驟包括:將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行;以及重復(fù)執(zhí)行包括使用所述回合函數(shù)的所述數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及 所述加密處理步驟包括 如下操作:在所述操作中,將具有所述回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
13.一種用于使得加密處理裝置執(zhí)行加密處理的程序, 所述程序使得加密處理單元執(zhí)行: 加密處理步驟,將要進行數(shù)據(jù)處理的數(shù)據(jù)的組成位劃分成多行并輸入,并且對各行中的數(shù)據(jù)重復(fù)執(zhí)行使用回合函數(shù)的數(shù)據(jù)轉(zhuǎn)換操作, 其中,所述加密處理步驟包括: 將通過以劃分數(shù)d對作為輸入數(shù)據(jù)的η位數(shù)據(jù)進行劃分而形成的n/d位數(shù)據(jù)輸入到各行;以及重復(fù)執(zhí)行包括使用所述回合函數(shù)的所述數(shù)據(jù)轉(zhuǎn)換操作的計算作為回合計算,以及所述加密處理步驟包括如下操作:在所述操作中,將具有所述回合計算的輸出數(shù)據(jù)的每行的n/d位數(shù)據(jù)再劃分成d/2組數(shù)據(jù),對再劃分的數(shù)據(jù)進行重組以重構(gòu)與先前階段的回合計算的輸出數(shù)據(jù)不同的d組n/d位數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)設(shè)置為下一階段的回合計算的輸入數(shù)據(jù)。
【文檔編號】H04L9/06GK103444124SQ201280014164
【公開日】2013年12月11日 申請日期:2012年2月20日 優(yōu)先權(quán)日:2011年3月28日
【發(fā)明者】渋谷香士, 秋下徹, 五十部孝典, 白井太三, 樋渡玄良, 三津田敦司 申請人:索尼公司