專利名稱:密碼處理裝置和密碼處理方法、以及計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密碼處理裝置和密碼處理方法、以及計(jì)算 機(jī)程序。更詳細(xì)地說,涉及一種執(zhí)行共用密鑰塊密碼處理的密 碼處理裝置和密碼處理方法、以及計(jì)算機(jī)程序。
背景技術(shù):
最近,隨著網(wǎng)絡(luò)通信、電子商務(wù)的發(fā)展,確保通信中的安 全成為重要的問題。確保安全的方法之一是密碼技術(shù),當(dāng)前實(shí) 際進(jìn)行著使用了各種加密方法的通信。
例如實(shí)際應(yīng)用有如下的系統(tǒng)在IC卡等小型裝置中嵌入密 碼處理模塊,在IC卡與作為數(shù)據(jù)讀取寫入裝置的讀寫器之間進(jìn) 行數(shù)據(jù)的發(fā)送接收,進(jìn)行認(rèn)證處理或者發(fā)送接收數(shù)據(jù)的加密、解密。
在密碼處理算法中存在各種算法,大致分類為公開密鑰密 碼方式和共用密鑰密碼方式,其中,上述公開密鑰密碼方式將 加密密鑰和解密密鑰設(shè)定為不同的密鑰、例如公開密鑰和私人 密鑰,上述共用密鑰密碼方式將加密密鑰和解密密鑰設(shè)定為共 用的密鑰。
的方式以共用密鑰為基礎(chǔ)生成多個(gè)密鑰,使用所生成的多個(gè) 密鑰來反復(fù)執(zhí)行塊單位(64比特、128比特等)的數(shù)據(jù)變換處理。 應(yīng)用了這種密鑰生成方式和數(shù)據(jù)變換處理的算法的代表方式是 共用密鑰塊密碼方式。
作為代表的共用密鑰塊密碼的算法,例如已知過去作為美 國標(biāo)準(zhǔn)密碼的DES(Data Encryption Standard:數(shù)據(jù)加密標(biāo)準(zhǔn))算法、現(xiàn)在作為美國標(biāo)準(zhǔn)密碼的AES(Advanced Encryption Standard:高級加密標(biāo)準(zhǔn))算法等。
這種共用密鑰塊密碼的算法主要由密碼處理部和密鑰調(diào)度 部構(gòu)成,其中,上述密碼處理部具有反復(fù)執(zhí)行輸入數(shù)據(jù)的變換 的循環(huán)函數(shù)執(zhí)行部,上述密鑰調(diào)度部生成在循環(huán)函數(shù)部的各循 環(huán)中應(yīng)用的循環(huán)密鑰。密鑰調(diào)度部根據(jù)作為私人密鑰的主密鑰 (Master key)首先生成增加了比特?cái)?shù)的擴(kuò)展密鑰,根據(jù)所生成的 擴(kuò)展密鑰生成在密碼處理部的各循環(huán)函數(shù)部中應(yīng)用的循環(huán)密鑰 (副密鑰)。
作為執(zhí)行這種算法的具體結(jié)構(gòu),已知反復(fù)執(zhí)行具有線性變 換部和非線性變換部的循環(huán)函數(shù)的結(jié)構(gòu)。例如代表的結(jié)構(gòu)有 Feistel結(jié)構(gòu)。Feistel結(jié)構(gòu)具有如下結(jié)構(gòu)通過作為數(shù)據(jù)變換函 數(shù)的循環(huán)函數(shù)(F函數(shù))的簡單的反復(fù),將明文變換為密文。在循 環(huán)函數(shù)(F函數(shù))中執(zhí)行線性變換處理和非線性變換處理。此外, 作為記載有應(yīng)用了 Feistel結(jié)構(gòu)的密碼處理的文獻(xiàn),例如存在非 專利文獻(xiàn)l、非專利文獻(xiàn)2。
但是,作為該共用密鑰塊密碼處理的問題點(diǎn),存在由密碼 分析引起的密鑰泄漏。利用密碼分析容易進(jìn)行密鑰的分析導(dǎo)致 該密碼處理的安全性較低,實(shí)用上成為較大的問題。
非專利文南史1: K. Nyberg, 'Generalized Feistel networks', ASIACRYPT,96, Springer Verlag, 1996, pp.91 — 104.
非專利文南大2: Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 46H80
發(fā)明內(nèi)容發(fā)明要解決的問題
本發(fā)明是鑒于上述問題點(diǎn)而完成的,目的在于提供一種提 高密碼分析的難度、實(shí)現(xiàn)安全性較高的共用密鑰塊密碼算法的 密碼處理裝置和密碼處理方法、以及計(jì)算^/L程序。
用于解決問題的方案
本發(fā)明的第一側(cè)面在于一種密碼處理裝置,執(zhí)行共用密鑰 塊密碼處理,其特征在于,
具有密碼處理部,該密碼處理部進(jìn)行將循環(huán)函數(shù)反復(fù)多個(gè) 循環(huán)的數(shù)據(jù)變換處理,
上述密碼處理部是如下結(jié)構(gòu) 性變換處理,
進(jìn)行作為應(yīng)用于非線性變換處理的S盒而利用了至少兩種 以上的多個(gè)不同的S盒的處理。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是如下結(jié)構(gòu)執(zhí)行應(yīng)用了將數(shù)據(jù)序列 數(shù)(分割數(shù))設(shè)為2的Feistel結(jié)構(gòu)或者將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為 2以上的擴(kuò)展Feistel結(jié)構(gòu)的密碼處理,進(jìn)行應(yīng)用了F函數(shù)的密碼 處理,該F函數(shù)將在輸入數(shù)據(jù)序列和輸出數(shù)據(jù)序列相同并且位 于上下相鄰位置的、作為循環(huán)函數(shù)執(zhí)行部的F函數(shù)中的非線性 變換處理設(shè)定為執(zhí)行不同的非線性變換處理的不同的S盒。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,作為上述循環(huán)函數(shù)執(zhí)行部的各F函數(shù)具有多個(gè)S盒,該 多個(gè)S盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變 換處理,該多個(gè)S盒由至少兩種以上不同的S盒構(gòu)成。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,作為上述循環(huán)函數(shù)執(zhí)行部的各F函數(shù)具有多個(gè)S盒,該多個(gè)s盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變 換處理,上述密碼處理部是如下結(jié)構(gòu)以各分割數(shù)據(jù)為單位, 將在輸入數(shù)據(jù)序列和輸出數(shù)據(jù)序列相同并且位于上下相鄰位置 的、作為循環(huán)函數(shù)執(zhí)行部的F函數(shù)中的非線性變換處理設(shè)定為 執(zhí)行不同的非線性變換處理的不同的S盒。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,包含在作為上述循環(huán)函數(shù)執(zhí)行部的各F函數(shù)中的S盒的 種類和各S盒的數(shù)量在各F函數(shù)中是相同的設(shè)定。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是如下結(jié)構(gòu)作為應(yīng)用于上述非線性 變換處理的不同的具有s比特輸入輸出的S盒,利用如下(1 ) (3) 三種類型的S盒中至少兩種以上不同類型的S盒
(1) 類型l:利用了擴(kuò)展域GF(2S)上的逆映射Y=X—!或者冪 函數(shù)Y^的S盒;
(2) 類型2:組合多個(gè)t-bit的較小的S-box而制作出的S盒, 其中,設(shè)為t〈s;以及
0)類型3:隨機(jī)選擇的S盒。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特
S盒設(shè)為如下(a) (d)中的任 一 個(gè)的結(jié)構(gòu)
(a) 將一部分設(shè)為類型1的S盒,將其它設(shè)為類型2的S盒的結(jié)
構(gòu);
(b) 將一部分設(shè)為類型1的S盒,將其它設(shè)為類型3的S盒的結(jié)
構(gòu);
(c) 將一部分設(shè)為類型2的S盒,將其它設(shè)為類型3的S盒的結(jié) 構(gòu);以及
(d) 將一部分設(shè)為類型1的S盒,將另 一部分設(shè)為類型2的S盒,將其它設(shè)為類型3的S盒的結(jié)構(gòu)。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是如下結(jié)構(gòu)在循環(huán)函數(shù)執(zhí)行部內(nèi)具 有多個(gè)S盒,該多個(gè)S盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù) 執(zhí)行非線性變換處理,在一個(gè)循環(huán)內(nèi)利用一種類型的S盒,以 循環(huán)為單位執(zhí)行利用了不同類型的S盒的處理。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是如下結(jié)構(gòu)在循環(huán)函數(shù)執(zhí)行部內(nèi)具 有多個(gè)S盒,該多個(gè)S盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù) 執(zhí)行非線性變換處理,在一個(gè)循環(huán)內(nèi)利用多個(gè)類型的S盒。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,包含在各上述循環(huán)函數(shù)執(zhí)行部中的S盒的種類和各S盒 的數(shù)量在各F函數(shù)中是相同的設(shè)定。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是執(zhí)行按照共用密鑰密碼方式的密碼 處理的結(jié)構(gòu)。
并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理部是執(zhí)行按照共用密鑰塊密碼方式的密 碼處理的結(jié)構(gòu)。
并且,本發(fā)明的第二側(cè)面在于一種密碼處理方法,在密碼 處理裝置中執(zhí)行共用密鑰塊密碼處理,該密碼處理方法的特征 在于,
具有密碼處理步驟,該密碼處理步驟在密碼處理部中進(jìn)行 將循環(huán)函數(shù)反復(fù)多個(gè)循環(huán)的數(shù)據(jù)變換處理, 上述密碼處理步驟是如下步驟
在各循環(huán)中的循環(huán)函數(shù)執(zhí)行處理中進(jìn)行應(yīng)用了 S盒的非線 性變換處理,進(jìn)行作為應(yīng)用于該非線性變換處理的S盒而利用了至少兩種以上多個(gè)不同的s盒的處理。
并且,在本發(fā)明的密碼處理方法的一個(gè)實(shí)施方式中,其特 征在于,上述密碼處理步驟執(zhí)行按照共用密鑰密碼方式或者共 用密鑰塊密碼方式的密碼處理。
并且,本發(fā)明的第三側(cè)面在于一種計(jì)算機(jī)程序,使密碼處 理裝置執(zhí)行共用密鑰塊密碼處理,其特征在于,
具有密碼處理步驟,該密碼處理步驟使密碼處理部進(jìn)行將 循環(huán)函數(shù)反復(fù)多個(gè)循環(huán)的數(shù)據(jù)變換處理,
上述密碼處理步驟是如下步驟
性變換處理,進(jìn)行作為應(yīng)用于該非線性變換處理的S盒而利用 了至少兩種以上多個(gè)不同的S盒的處理。
并且,在本發(fā)明的計(jì)算機(jī)程序的一個(gè)實(shí)施方式中,其特征 在于,上述密碼處理步驟是如下步驟執(zhí)行按照共用密鑰密碼 方式或者共用密鑰塊密碼方式的密碼處理。
此外,本發(fā)明的計(jì)算機(jī)程序例如是能夠通過以計(jì)算機(jī)可讀 形式提供的存儲介質(zhì)、通信介質(zhì)、例如CD、 FD、 MO等記錄介 質(zhì)或者網(wǎng)絡(luò)等通信介質(zhì)對可執(zhí)行各種程序代碼的計(jì)算機(jī)系統(tǒng)提 供的計(jì)算機(jī)程序。通過以計(jì)算機(jī)可讀形式提供這種程序,在計(jì) 算機(jī)系統(tǒng)上實(shí)現(xiàn)與程序相應(yīng)的處理。
通過基于后述的本發(fā)明的實(shí)施例、附圖的更詳細(xì)的說明, 本發(fā)明的進(jìn)一步的其它目的、特征、優(yōu)點(diǎn)會更清楚。此外,在 本說明書中系統(tǒng)是多個(gè)裝置的邏輯集合結(jié)構(gòu),并不限于各結(jié)構(gòu) 的裝置在同 一殼體內(nèi)。
發(fā)明的效果
根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在執(zhí)行共用密鑰塊密碼 處理的密碼處理裝置中,設(shè)為在設(shè)定于循環(huán)函數(shù)執(zhí)行部的作為非線性變換處理部的s盒中利用至少兩種以上多個(gè)不同的s盒 的結(jié)構(gòu)。根據(jù)本結(jié)構(gòu),能夠提高對飽和攻擊的抵抗性。另外, 根據(jù)作為s盒的類型而使不同類型的s盒共存的本發(fā)明的一個(gè)
實(shí)施例的結(jié)構(gòu),能夠提高對代數(shù)攻擊(XSL攻擊)的抵抗性,實(shí) 現(xiàn)安全性較高的密碼處理裝置。
圖l是表示共用密鑰塊密碼算法的基本結(jié)構(gòu)的圖。 圖2是說明圖l所示的共用密鑰塊密碼處理部E 10的內(nèi)部結(jié) 構(gòu)的圖。
圖3是說明圖2所示的密碼處理部12的詳細(xì)結(jié)構(gòu)的圖。
圖4是說明作為循環(huán)函數(shù)執(zhí)行部的 一 個(gè)結(jié)構(gòu)例的SPN結(jié)構(gòu) 循環(huán)函數(shù)的圖。
圖5是說明作為循環(huán)函數(shù)執(zhí)行部的 一 個(gè)結(jié)構(gòu)例的Feistel(菲 斯特爾)結(jié)構(gòu)的圖。
圖6是說明作為循環(huán)函數(shù)執(zhí)行部的 一 個(gè)結(jié)構(gòu)例的擴(kuò)展 Feistel結(jié)構(gòu)的圖。
圖7是說明非線性變換處理部的具體例的圖。
圖8是說明線性變換處理部的具體例的圖。
圖9是說明Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的 一 般結(jié)構(gòu)例 的圖。
圖IO是說明在Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)中配置了不 同的S-box的結(jié)構(gòu)例的圖。
圖ll是說明通過配置不同的S-box來實(shí)現(xiàn)提高對飽和攻擊 的抵抗性的結(jié)構(gòu)例的圖。
圖12是說明通過配置不同的S-box來實(shí)現(xiàn)提高對飽和攻擊 的抵抗性的結(jié)構(gòu)例的圖。圖13是說明通過配置不同的S-box來實(shí)現(xiàn)提高對飽和攻擊 的抵抗性的結(jié)構(gòu)例的圖。
圖14是說明通過配置不同類型的S-box來實(shí)現(xiàn)提高對代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)例的圖。
圖15是說明通過配置不同類型的S-box來實(shí)現(xiàn)提高對代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)例的圖。
圖16是說明通過配置不同類型的S-box來實(shí)現(xiàn)提高對代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)例的圖。
圖17是說明通過配置不同類型的S-box來實(shí)現(xiàn)提高對代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)例的圖。
圖18是說明通過配置不同類型的S-box來實(shí)現(xiàn)提高對代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)例的圖。
圖19是表示作為本發(fā)明所涉及的執(zhí)行密碼處理的密碼處理 裝置的IC模塊的結(jié)構(gòu)例的圖。
具體實(shí)施例方式
下面,詳細(xì)說明本發(fā)明的密碼處理裝置和密碼處理方法、 以及計(jì)算機(jī)程序。按照下面的項(xiàng)目進(jìn)行說明。
1. 共用密鑰塊密碼的概要
2. 通過配置多個(gè)不同的S盒來提高抵抗性的結(jié)構(gòu) (2A)通過在使用了 S-box(S盒)的Feistel或者擴(kuò)展Feistel型
密碼中配置兩種以上不同的S-box來提高對飽和攻擊的抵抗性 的結(jié)構(gòu)
(2B)通過在使用了 S-box的塊密碼中使兩種以上不同的 S-box共存來提高對代數(shù)攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)
(2C)在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型密碼中 同時(shí)實(shí)現(xiàn)上述(2A)、 (2B)的結(jié)構(gòu)3.密碼處理裝置的結(jié)構(gòu)例 [1.共用密鑰塊密碼的概要]
首先,說明能夠應(yīng)用本發(fā)明的共用密鑰塊密碼的概要。在 本說明書中,共用密鑰塊密碼(下面為塊密碼)是指如下定義的 密碼。
塊密碼輸入明文P和密鑰K,輸出密文C。將明文和密文的 比特長度稱為塊大小,在此用n來表示。n可取任意的整數(shù)值, 但是通常在每個(gè)塊密碼算法中是預(yù)先決定為一個(gè)的值。有時(shí)也 將塊長度為n的塊密碼稱為n比特塊密碼。
用k表示密鑰的比特長度。密鑰可取任意的整數(shù)值。共用密 鑰塊密碼算法與一個(gè)或多個(gè)密鑰大小對應(yīng)。例如,某個(gè)塊密碼 算法A也能是如下結(jié)構(gòu)塊大小11=128,與比特長度k爿28、或 者k-192或者k二256的各種密鑰大小對應(yīng)。
如下這樣表示明文[P]、密文[C]、密鑰[K]的各比特大小。
明文P: n比特
密文C: n比特
密鑰K: k比特
圖l示出與k比特的密鑰長度對應(yīng)的n比特共用密鑰塊密碼 算法E的圖。如圖l所示,共用密鑰塊密碼處理部E 10輸入n比特 的明文P和k比特的密鑰K,執(zhí)行預(yù)先決定的密碼算法,輸出n比 特的密文C。此外,圖l僅示出乂人明文生成密文的加密處理。乂人 密文生成明文的解密處理一般使用E IO的逆函數(shù)。但是,根據(jù) 加密處理部E IO的結(jié)構(gòu),在解密處理中也能夠應(yīng)用相同的共用 密鑰塊密碼處理部E 10,通過變更密鑰的輸入順序等順序能夠 進(jìn)行解密處理。
參照圖2說明圖l所示的共用密鑰塊密碼處理部E 10的內(nèi)部 結(jié)構(gòu)。能夠考慮將塊密碼分成兩個(gè)部分。是密鑰調(diào)度部ll和密碼處理部12,其中,上述密鑰調(diào)度部11將密鑰K作為輸入,通
過某個(gè)決定的步驟來擴(kuò)展輸入密鑰K的比特長度,輸出擴(kuò)展密 鑰K,(比特長度k,),上述密碼處理部12接受明文P和從密鑰調(diào)度 部11輸入的擴(kuò)展密鑰K,,輸入明文P,執(zhí)行應(yīng)用了擴(kuò)展密鑰K, 的密碼處理,^丸行用于生成密文C的數(shù)據(jù)變換。此外,如之前 說明的那樣,根據(jù)密碼處理部12的結(jié)構(gòu),有時(shí)在將密文還原為 明文的數(shù)據(jù)解密處理中也能夠應(yīng)用密碼處理部12。
接著,參照圖3說明圖2所示的密碼處理部12的詳細(xì)結(jié)構(gòu)。 如圖3所示,密碼處理部12具有反復(fù)執(zhí)行應(yīng)用了循環(huán)函數(shù)執(zhí)行部 20的數(shù)據(jù)變換的結(jié)構(gòu)。即,能夠?qū)⒚艽a處理部12分割為循環(huán)函 數(shù)執(zhí)行部20這種處理單位。循環(huán)函數(shù)執(zhí)行部20作為輸入接受前 級的循環(huán)函數(shù)執(zhí)行部的輸出Xi和根據(jù)擴(kuò)展密鑰生成的循環(huán)密鑰 PKi這兩個(gè)數(shù)據(jù),在內(nèi)部執(zhí)行數(shù)據(jù)變換處理,將輸出數(shù)據(jù)Xw輸 出到下一個(gè)循環(huán)函數(shù)執(zhí)行部。此外,在第一循環(huán)中,輸入是明 文或者對明文的初始化處理數(shù)據(jù)。另外,最終循環(huán)的輸出為密 文。
在圖3所示的例子中,密碼處理部12具有r個(gè)循環(huán)函數(shù)執(zhí)行 部20,為反復(fù)進(jìn)行循環(huán)函數(shù)執(zhí)行部中的數(shù)據(jù)變換r次來生成密文 的結(jié)構(gòu)。將循環(huán)函數(shù)的反復(fù)次數(shù)稱為循環(huán)數(shù)。在圖示的例子中, 循環(huán)數(shù)為r。
各循環(huán)函數(shù)執(zhí)行部的輸入數(shù)據(jù)X;是加密過程中的n比特?cái)?shù) 據(jù),提供某個(gè)循環(huán)中的循環(huán)函數(shù)的輸出X i+,作為下 一 個(gè)循環(huán)的 輸入。各循環(huán)函數(shù)執(zhí)行部的另 一個(gè)輸入數(shù)據(jù)使用基于從密鑰調(diào) 度部輸出的擴(kuò)展密鑰K,的數(shù)據(jù)。將該被輸入到各循環(huán)函數(shù)執(zhí)行 部、應(yīng)用于循環(huán)函數(shù)的執(zhí)行的密鑰稱為循環(huán)密鑰。在圖中,將 應(yīng)用于i循環(huán)的循環(huán)密鑰表示為RKi 。擴(kuò)展密鑰K,例如構(gòu)成為r 個(gè)循環(huán)的循環(huán)密鑰RK廣RKr的連接數(shù)據(jù)。圖3所示的結(jié)構(gòu)是從密碼處理部12的輸入側(cè)觀察、將第 一循 環(huán)的輸入數(shù)據(jù)設(shè)為X。、將從第i個(gè)循環(huán)函數(shù)輸出的數(shù)據(jù)表示為 Xi、將循環(huán)密鑰表示為RKj的密碼處理部12的結(jié)構(gòu)。此外,根據(jù) 該密碼處理部12的結(jié)構(gòu),例如能夠設(shè)為如下結(jié)構(gòu)將所應(yīng)用的 循環(huán)密鑰的應(yīng)用順序設(shè)定為與加密處理相反,通過將密文輸入 到密碼處理部12來輸出明文。
圖3所示的密碼處理部12的循環(huán)函數(shù)執(zhí)行部20可取各種方 式。能夠根據(jù)其密碼算法所采用的結(jié)構(gòu)(structure)來分類循環(huán)函 數(shù)。作為代表的結(jié)構(gòu)存在如下結(jié)構(gòu)
(a) SPN(Substitution Permutation Network: 置才灸組合網(wǎng)^各) 結(jié)構(gòu)、
(b) Feistel結(jié)構(gòu)、
(c) 擴(kuò)展Feistel結(jié)構(gòu)。
下面,參照圖4 圖6說明這些具體結(jié)構(gòu)。 (a)SPN結(jié)構(gòu)循環(huán)函數(shù)
首先,參照圖4說明作為循環(huán)函數(shù)執(zhí)行部20的 一 個(gè)結(jié)構(gòu)例的 SPN結(jié)構(gòu)循環(huán)函數(shù)。SPN結(jié)構(gòu)循環(huán)函數(shù)執(zhí)行部20a具有連接了非 線性變換層(S層)和線性變換層(P層)的所謂SP型結(jié)構(gòu)。如圖4所 示,SPN結(jié)構(gòu)循環(huán)函數(shù)執(zhí)行部20a由如下等部分構(gòu)成異或運(yùn)算 部21,其對所有n比特的輸入數(shù)據(jù)執(zhí)行與循環(huán)密鑰之間的異或 (EXOR)運(yùn)算;非線性變換處理部22,其輸入異或運(yùn)算部21的運(yùn) 算結(jié)果,執(zhí)行輸入數(shù)據(jù)的非線性變換;以及線性變換處理部23,
數(shù)據(jù)執(zhí)行線性變換處理。線性變換處理部23的線性變換處理結(jié) 果被輸出到下一個(gè)循環(huán)。在最終循環(huán)中成為密文。此外,在圖4 示出的例子中示出了異或運(yùn)算部21、非線性變換處理部22、線 性變換處理部23的處理順序,但是并不限定這些處理部的順序,也可以設(shè)為以其它順序進(jìn)行處理的結(jié)構(gòu)。
(b) Feistel結(jié)構(gòu)
接著,參照圖5說明作為循環(huán)函數(shù)執(zhí)行部20的 一 個(gè)結(jié)構(gòu)例的 Feistel(菲斯特爾)結(jié)構(gòu)。如圖5所示,F(xiàn)eistel結(jié)構(gòu)將來自前一循 環(huán)的作為輸入(在第 一 循環(huán)中為輸入文)的n比特輸入數(shù)據(jù)分割 為n/2比特的兩個(gè)數(shù)據(jù),在各循環(huán)中進(jìn)行替換并且執(zhí)行處理。
如圖所示,在應(yīng)用了具有Feistel結(jié)構(gòu)的循環(huán)函數(shù)執(zhí)行部20b 的處理中,對F函數(shù)部30輸入一方的n/2比特?cái)?shù)據(jù)和循環(huán)密鑰。F 函數(shù)部30與上述的SPN結(jié)構(gòu)相同,具有連接了非線性變換層(S 層)和線性變換層(P層)的所謂SP型結(jié)構(gòu)。
來自前一循環(huán)的n/2比特?cái)?shù)據(jù)和循環(huán)密鑰;陂輸入到F函數(shù)部 30的異或運(yùn)算部31來進(jìn)行異或(EXOR)處理。并且,將該結(jié)果數(shù) 據(jù)輸入到非線性變換處理部32來執(zhí)行非線性變換,并且,該非 線性變換結(jié)果被輸入到線性變換處理部3 3來執(zhí)行線性變換。輸 出該線性變換結(jié)果作為F函數(shù)處理結(jié)果數(shù)據(jù)。
并且,將該F函數(shù)輸出和從前一循環(huán)輸入的另 一個(gè)n/2比特 輸入輸入到異或運(yùn)算部34,執(zhí)行異或運(yùn)算(EXOR),將執(zhí)行結(jié)果 設(shè)定為下一個(gè)循環(huán)中的F函數(shù)的輸入。此外,圖示的被設(shè)定為 第i循環(huán)中的F函數(shù)輸入的n/2比特應(yīng)用于與下一個(gè)循環(huán)的F函數(shù) 輸出之間的異或運(yùn)算。這樣,F(xiàn)eistel結(jié)構(gòu)在各循環(huán)中相互替換 輸入并且執(zhí)行應(yīng)用了 F函數(shù)的數(shù)據(jù)變換處理。
(c) 擴(kuò)展Feistel結(jié)構(gòu)
接著,參照圖6說明作為循環(huán)函數(shù)執(zhí)行部2 0的 一 個(gè)結(jié)構(gòu)例的 擴(kuò)展Feistel結(jié)構(gòu)。首先,參照圖5說明的Feistel結(jié)構(gòu)將n比特的 明文分割為兩個(gè),劃分為各n/2比特來執(zhí)行處理。即,是設(shè)為分 割數(shù):(1=2的處理。此外,該分割數(shù)也被稱為數(shù)據(jù)序列數(shù)。
在擴(kuò)展Feistel結(jié)構(gòu)中,是將該數(shù)據(jù)序列數(shù)(分割數(shù))d設(shè)為2以上的任意整數(shù)的設(shè)定。能夠定義與數(shù)據(jù)序列數(shù)(分割數(shù))d的值
相應(yīng)的各種擴(kuò)展Feistel結(jié)構(gòu)。在圖6所示的例子中,數(shù)據(jù)序列數(shù)(分割數(shù))01=4,對各序列輸入n/4比特的數(shù)據(jù)。在各循環(huán)中執(zhí)行一個(gè)以上的作為循環(huán)函數(shù)的F函數(shù)。圖示的例子是在 一 個(gè)循環(huán)中進(jìn)行兩個(gè)F函數(shù)部的循環(huán)運(yùn)算的結(jié)構(gòu)例。
F函數(shù)部41、 42的結(jié)構(gòu)與之前參照圖5說明的F函數(shù)部30的結(jié)構(gòu)相同,是執(zhí)行循環(huán)密鑰與輸入值之間的異或運(yùn)算、非線性變換處理、線性變換處理的結(jié)構(gòu)。此外,調(diào)整輸入到各F函數(shù)部的循環(huán)密鑰使其比特?cái)?shù)與輸入比特一致。在圖示的例子中,輸入到各F函數(shù)部41、 42的循環(huán)密鑰為n/4比特。對構(gòu)成擴(kuò)展密鑰的循環(huán)密鑰進(jìn)一步進(jìn)行比特分割來生成這些密鑰。此外,在將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為d時(shí),輸入到各序列的數(shù)據(jù)是n/d比特,輸入到各F函數(shù)的密鑰的比特?cái)?shù)也被調(diào)整為n/d比特。
此外,在圖6所示的擴(kuò)展Feistel結(jié)構(gòu)中,是將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為d、在各循環(huán)中并列地執(zhí)行d/2個(gè)F函數(shù)的結(jié)構(gòu)例,但是擴(kuò)展Feistel結(jié)構(gòu)可以是在各循環(huán)中執(zhí)行 一 個(gè)以上d/2個(gè)以下F函數(shù)的結(jié)構(gòu)。
如參照圖4 圖6說明的那樣,共用密鑰塊密碼中的密碼處理部12的循環(huán)函數(shù)執(zhí)行部2 0可取
(a) SPN(Substitution Permutation Network)結(jié)構(gòu)、
(b) Feistel結(jié)構(gòu)、
(c) 擴(kuò)展Feistel結(jié)構(gòu)、
這些結(jié)構(gòu)。這些循環(huán)函數(shù)執(zhí)行部都具有連接了非線性變換層(S層)和線性變換層(P層)的所謂SP型結(jié)構(gòu)。即,具有執(zhí)行非線性變換處理的非線性變換處理部和執(zhí)行線性變換處理的線'性變換處理部。下面,i兌明這些變換處理結(jié)構(gòu)。
(非線性變換處理部)參照圖7說明非線性變換處理部的具體例。如圖7所示,具體地說,排列m個(gè)被稱為S盒(S-box)51的s比特輸入s比特輸出的非線性變換表而得到非線性變換處理部50, ms比特的輸入數(shù)據(jù)以每s比特進(jìn)行分割并分別輸入到對應(yīng)的S盒(S-box)51來變換數(shù)據(jù)。在各S盒51中,例如執(zhí)行應(yīng)用了變換表的非線性變換處理。
當(dāng)所輸入的數(shù)據(jù)大小變大時(shí)存在安裝上的成本變高的趨勢。如圖7所示,為了避免這種情況,多采用將處理對象數(shù)據(jù)X分割為多個(gè)單位、對每個(gè)單位實(shí)施非線性變換的結(jié)構(gòu)。例如在將輸入大小設(shè)為ms比特時(shí),分割為各s比特的m個(gè)數(shù)據(jù),分別對m個(gè)S盒(S-box)51輸入s比特,例如執(zhí)行應(yīng)用了變換表的非線性變換處理,合成這些各S比特輸出m個(gè)來得到ms比特的非線性變換結(jié)果。
(線性變換處理部)
參照圖8說明線性變換處理部的具體例。線性變換處理部輸入輸入值、例如輸入來自S盒的作為輸出數(shù)據(jù)的ms比特的輸出值作為輸入值X,對該輸入實(shí)施線性變換并輸出ms比特的結(jié)果。線性變換處理例如執(zhí)行輸入比特位置的替換處理等線性變換處理,輸出ms比特的輸出值Y。線性變換處理例如對輸入應(yīng)用線性變換矩陣來進(jìn)行輸入比特位置的替換處理。該矩陣的 一 例是圖8所示的線性變換矩陣。
在線性變換處理部中應(yīng)用的線性變換矩陣的要素為擴(kuò)展域GF(2"域的要素、GF(2)的要素等, 一般能夠構(gòu)成為應(yīng)用了各種表現(xiàn)的矩陣。圖8是表示具有ms比特輸入輸出、通過在G F (2 s)上定義的m x m矩陣來定義的線性變換處理部的 一 個(gè)結(jié)構(gòu)
例的圖。如上所述,共用密鑰塊密碼是通過循環(huán)函數(shù)的反復(fù)來進(jìn)行密碼處理的結(jié)構(gòu)。作為該共用密鑰塊密碼處理的問題點(diǎn),存在由密碼分析引起的密鑰泄漏。利用密碼分析容易進(jìn)行密鑰的分析導(dǎo)致該密碼處理的安全性較低,實(shí)用上成為較大的問題。下
面,說明通過配置多個(gè)不同的S-box(S盒)來提高抵抗性的密碼
處理結(jié)構(gòu)。
如參照圖7說明的那樣,包括在循環(huán)函數(shù)執(zhí)行部中的非線性變換處理部由執(zhí)行非線性變換處理的多個(gè)S-box(S盒)構(gòu)成。以往,這些S-box都是如下結(jié)構(gòu)應(yīng)用共用的非線性變換處理用的表,在各S盒中進(jìn)行共用的非線性變換處理。
在本發(fā)明中著眼于由該S-box的共用性引起的弱點(diǎn)、即對于密鑰分析等作為密碼分析的攻擊較薄弱,提出通過配置多個(gè)不同的S-box來提高抵抗性的結(jié)構(gòu)。
下面,作為本發(fā)明的實(shí)施例,依次i兌明下面三個(gè)實(shí)施例。
(2A)通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中配置兩種以上不同的S-box來提高對飽和攻擊的抵抗性的結(jié)構(gòu)
(2B)通過在使用了 S-box的塊密碼中使兩種以上不同的S-box共存來提高對代數(shù)攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)
(2C)在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型密碼中同時(shí)實(shí)現(xiàn)上述(2A)、 (2B)的結(jié)構(gòu)
(2A)通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中配置兩種以上不同的S-box來提高對飽和攻擊的抵抗性的結(jié)構(gòu)
首先,說明通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中配置兩種以上不同的S-box來提高對飽和攻擊的4氐抗性的結(jié)構(gòu)。
(2A-1.飽和攻擊的概要)
首先,說明作為對塊密碼的攻擊而第 一 個(gè)一皮知道的飽和攻擊。飽和攻擊存在多個(gè)類型。第一類型是利用了如下性質(zhì)的攻
擊法在對明文的特定的字節(jié)位置改變256種值并進(jìn)行輸入的情況下,在數(shù)個(gè)循環(huán)的循環(huán)變換處理之后,在輸出值的特定的字節(jié)位置上出現(xiàn)所有256種值。
另外,作為飽和攻擊的其它方式的攻擊,是利用了如下性
置上的值計(jì)算總和時(shí),必然為0。
入的256種明文P。~P255而依次輸入如下這些明文P。 P255。P0=(0,0,0,0,0,0,0,0)
p產(chǎn)(o,o,o,o,o,o,o,i)
P255=(0,0,0,0,0,0,0,255)
此外,在上述記載中,各[o]表示一個(gè)字節(jié)數(shù)據(jù)的o。
在依次輸入這些明文P。 P255的情況下,將某個(gè)特定的循環(huán)數(shù)的數(shù)據(jù)變換處理結(jié)束之后的輸出值如下那樣設(shè)為CQ C255 。
C0=(c0, , , , ,?,?,?)
d二(C!,?,?,?,?,?,?,?)
C255=(c255, , ,?,?,?,?,?)
上述輸出中的[ ]可以是任意的比特值。
如上所述,在這些輸出C。 C255中具有如下性質(zhì)在特定的
字節(jié)位置(在上述例子中為第 一 字節(jié)位置)上出現(xiàn)所有256種值C() c255 。這樣,在預(yù)先已知0至255的值與順序無關(guān)地必然分別出現(xiàn)各一次的情況下,能夠進(jìn)行利用了該性質(zhì)的攻擊。已知通過依次變更輸入值地分析輸出值能夠估計(jì)循環(huán)密鑰。
并且,在對包括在輸出C『C255中的特定的字節(jié)位置的值C0 C255進(jìn)行求和(EXOR)時(shí),在為0的情況下,能夠進(jìn)行利用了
該性質(zhì)的攻擊(密碼分析)。這樣,通過依次輸入256種明文
Po P255地分析特定字節(jié)位置的輸出能夠估計(jì)密鑰。
飽和攻擊是如下攻擊(分析)方法在這樣循環(huán)函數(shù)部的變 換結(jié)果中產(chǎn)生帶來上述那樣的特定的規(guī)則的輸出、即具有
出現(xiàn)所有256種值Co C255或者
對特定的字節(jié)位置的值c。 C255進(jìn)行求和(EXOR)時(shí)為0 這種規(guī)則性的輸出的情況下,根據(jù)這些規(guī)則性來執(zhí)行攻擊。 因而,在密碼的設(shè)計(jì)階段設(shè)為不產(chǎn)生這種特異的輸出作為 循環(huán)函數(shù)部的輸出的結(jié)構(gòu),對設(shè)為對飽和攻擊較強(qiáng)的密碼很有 效。此外,該飽和攻擊不限于僅字節(jié)單位(8比特)的分析,能夠 對任意的比特長度進(jìn)行利用了相同性質(zhì)的攻擊。
(2A-2)應(yīng)用了 Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的密碼處理 中的問題點(diǎn)
接著,研究應(yīng)用了Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的密碼 處理中的問題點(diǎn)。
關(guān)于Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu),如之前參照圖5、圖 6說明的那樣,都是反復(fù)執(zhí)行循環(huán)運(yùn)算的結(jié)構(gòu),該循環(huán)運(yùn)算應(yīng)用 了 SP型的具有非線性變換處理部和線性變換處理部的F函數(shù) 部。Feistel結(jié)構(gòu)的數(shù)據(jù)序列數(shù)(分割數(shù))限定為2、但是在擴(kuò)展 F e i s t e 1結(jié)構(gòu)中數(shù)據(jù)序列數(shù)(分割數(shù))被設(shè)定為2以上的任意數(shù)這一 點(diǎn)不同。
下面,假設(shè)在應(yīng)用了Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的密
中利用了 S-box的結(jié)構(gòu)。如之前參照圖7說明的那樣,S-box對m 分割輸入到非線性變換處理部的m s比特?cái)?shù)據(jù)得到的各s比特?cái)?shù) 據(jù)例如執(zhí)行應(yīng)用了非線性變換用表的非線性變換處理。如之前說明的那樣,以往的應(yīng)用于塊密碼中的循環(huán)函數(shù)的 執(zhí)行的F函數(shù)在各循環(huán)中反復(fù)利用相同的函數(shù)。在各循環(huán)中設(shè)
易受到上述的飽和攻擊。參照圖9說明其理由。
圖9是表示切出Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的 一部分 的結(jié)構(gòu)的圖。即,圖9示出包括在具有Feistel結(jié)構(gòu)或者擴(kuò)展 Feistel結(jié)構(gòu)的密碼結(jié)構(gòu)中的兩個(gè)循環(huán)函數(shù)執(zhí)行部、即F函數(shù)101 、 102。該兩個(gè)F函凄tlOl、 102是輸入數(shù)據(jù)序列(x)和輸出數(shù)據(jù)序列 (y)相同并且位于上下相鄰的位置的F函數(shù)。
兩個(gè)F函數(shù)lOl、 102由與循環(huán)密鑰之間的異或運(yùn)算部、非 線性變換處理部、線性變換處理部構(gòu)成。在本處理例中F函數(shù) 101、 102是進(jìn)行32比特輸入輸出處理的結(jié)構(gòu),非線性變換處理 部由四個(gè)S-box構(gòu)成,各S-box進(jìn)行8比特輸入輸出。
圖9所示的A J表示各種數(shù)據(jù)。即,表示如下這些各數(shù)據(jù)。
A:對先行F函數(shù)101的輸入
B:先行F函^:101的輸出
C:后續(xù)F函數(shù)102的輸入
D:后續(xù)F函數(shù)102的輸出
E:對先行F函數(shù)101的輸出B的異或運(yùn)算數(shù)據(jù)
F:對數(shù)據(jù)A的異或運(yùn)算數(shù)據(jù)
G:數(shù)據(jù)B與數(shù)據(jù)E之間的異或運(yùn)算結(jié)果
H:數(shù)據(jù)D與數(shù)據(jù)G之間的異或運(yùn)算結(jié)果
I:對先行F函數(shù)101輸入的循環(huán)密鑰
J:對后續(xù)F函數(shù)102輸入的循環(huán)密鑰
在之后的說明中,在用字節(jié)單位(8比特)來分割表示要在各 F函數(shù)lOl、 102中處理的32比特?cái)?shù)據(jù)的情況下,例如在數(shù)據(jù)A是 32比特?cái)?shù)據(jù)的情況下,作為各一個(gè)字節(jié)(8比特)數(shù)據(jù)A
、 A[l]、A[2]、 A[3]的連接數(shù)據(jù),如下這樣表現(xiàn)。 A=A
|A[1]|A[2]|A[3]
在此,假設(shè)作為對圖9所示的加密處理結(jié)構(gòu)輸入的明文而依 次輸入256種數(shù)據(jù)、例如 P0=(0,0,0,0) P產(chǎn)(l,O,O,O)
P255=(255,0,0,0)
這些明文Po P255 。此外,在上述記載中,各[O]、 [1]~[255] 表示一個(gè)字節(jié)數(shù)據(jù)。
將該輸入值設(shè)為對圖9所示的先行F函數(shù)101的輸入數(shù)據(jù)A 。 如上所述,將數(shù)據(jù)A設(shè)為如下數(shù)據(jù)在觀察256種數(shù)據(jù)時(shí),在第 一個(gè)字節(jié)A[O]中出現(xiàn)0至255的全部256種值,除此以外的字節(jié)位 置總是被相同的值固定。(這是由于嘗試飽和攻擊的攻擊者有時(shí) 控制明文輸入來作出這種狀況,因此進(jìn)行這種假設(shè)。)
并且,當(dāng)假設(shè)為在上述2 5 6種數(shù)據(jù)A的依次輸入處理期間對 數(shù)據(jù)A的異或運(yùn)算數(shù)據(jù)F的值總是固定時(shí),保證在后續(xù)F函數(shù)102 的輸入數(shù)據(jù)C的第 一個(gè)字節(jié)C[O]中也出現(xiàn)0至255的全部256種 值、除此以外的字節(jié)位置總是被相同的值固定。
此時(shí),沖艮據(jù)
I:對先行F函數(shù)101輸入的循環(huán)密鑰 J:對后續(xù)F函數(shù)102輸入的循環(huán)密鑰 以及
F:對數(shù)據(jù)A的異或運(yùn)算數(shù)據(jù)
這些各數(shù)據(jù)的值的組合,能夠產(chǎn)生下式總是成立的情況。
即,
A
(EXOR)I
=C
(EXOR)J
上式能夠成立。
此外,(EXOR)表示異或運(yùn)算,
A[O](EXOR)I[O]表示數(shù)據(jù)A[O]與數(shù)據(jù)I[O]之間的異或運(yùn)算, C[O](EXOR)J[O]表示數(shù)據(jù)C[O]與數(shù)據(jù)J[O]之間的異或運(yùn)算。 式A
(EXOR)I
=C
(EXOR)J[0〗
該式無非意味著輸入到兩個(gè)F函數(shù)lOl、 102中的兩個(gè)S-box 的值總是為相同的值。這些S-box都執(zhí)行相同的非線性變換處 理,對相同的輸入值輸出相同的輸出值。因而,兩個(gè)F函數(shù)lOl、 102中的兩個(gè)S-box的輸出總是相同。在各F函數(shù)lOl、 102中, 由線性變換處理部的矩陣對該相同的S-box輸出進(jìn)行線性變 換,輸出到右側(cè)的數(shù)據(jù)序列(y)的異或運(yùn)算部。是圖示的異或運(yùn) 算部lll、 112。
從該兩個(gè)F函數(shù)lOl、 102輸出到異或運(yùn)算部111、 112的值B、 D具有特定的差分值A(chǔ)。即,成為 B(EXOR)A=D。
此時(shí),在異或運(yùn)算部lll中,根據(jù)
G=B(EXOR)E
的運(yùn)算來算出數(shù)據(jù)G,
在異或運(yùn)算部112中執(zhí)行
H=G(EXOR)D。
由于G=B(EXOR)E 、B(EXOR)A=D ,因此上述式 J^G(EXOR)D成為
H=B(EXOR)E(EXOR)B(EXOR)A =E(EXOR)A。
即,由于具有固定差分值的值之間的異或運(yùn)算結(jié)果為固定 值A(chǔ),因此作為結(jié)果成為
H=B(EXOR)E(EXOR)B(EXOR)A=A(EXOR)E =E(EXOR)A。
即,異或運(yùn)算部112的輸出H為僅是對數(shù)據(jù)E進(jìn)行與固定的 值A(chǔ)的異或,盡管分兩級執(zhí)行循環(huán)函數(shù)(F函數(shù)),也為不進(jìn)行數(shù) 據(jù)的攪拌這種結(jié)果。當(dāng)利用該性質(zhì)時(shí),變得容易估計(jì)后續(xù)循環(huán) 的循環(huán)密鑰。即,即使存在后續(xù)循環(huán)也能夠在使用臨時(shí)設(shè)定的 密鑰對該循環(huán)進(jìn)行解密直至解密出H的數(shù)據(jù)為止時(shí),通過檢查 是否出現(xiàn)該性質(zhì)來概率地判斷臨時(shí)使用的密鑰是否正確。也就 是說能夠估計(jì)循環(huán)密鑰,導(dǎo)致能夠利用飽和攻擊進(jìn)行分析。
作為其對策能夠根據(jù)各F函數(shù)的位置而變更應(yīng)用于線性變 換處理的矩陣部分,但是在各F函數(shù)的S-box相同的情況下,如 果產(chǎn)生與上述相同的條件,則由于線性變換矩陣的要素的關(guān)聯(lián) 性,在后續(xù)F函數(shù)102的輸出D與數(shù)據(jù)G進(jìn)行異或的時(shí)刻,會產(chǎn)生 一部分字節(jié)相互消去,有時(shí)產(chǎn)生對攻擊者有利的狀況。
這樣,將在至少對相同序列進(jìn)行輸出的多個(gè)F函數(shù)中應(yīng)用 的非線性變換處理設(shè)為相同結(jié)構(gòu),存在能夠利用飽和攻擊來進(jìn) 行密鑰估計(jì)的可能性。并且,根據(jù)S-box,作為其運(yùn)算(EXOR) 結(jié)果、即
它們的結(jié)果,不能說都符合0至2 5 5的所有2 5 6種值都出現(xiàn)這 種情況。嚴(yán)密地說,即使A
和C
兩者都分別輸出256種不同 的值,也未必保證它們的運(yùn)算(E X O R)結(jié)果得到所有2 5 6種輸出 值,但是根據(jù)S-box能夠產(chǎn)生這種狀況。當(dāng)產(chǎn)生該未預(yù)期的情 況時(shí),能夠利用于攻擊的信息(所有值不同的信息)被保存到下 一級,導(dǎo)致產(chǎn)生對于攻擊者來說有利的狀況。
(2A-3)通過利用多種S-box來提高抵抗性的方法
下面,說明用于使利用飽和攻擊的密鑰估計(jì)困難化的結(jié)構(gòu)例。即,構(gòu)成各F函數(shù)的非線性變換處理部、即S-box使得即使
萬 一 具備上述那樣的條件也通過數(shù)據(jù)的消去使循環(huán)函數(shù)執(zhí)行前 的數(shù)據(jù)與執(zhí)行后的數(shù)據(jù)成為不相等的數(shù)據(jù)。
參照圖10說明其具體例。圖10所示的結(jié)構(gòu)也與圖9相同,示 出切出Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的 一部分的結(jié)構(gòu),示出 輸入數(shù)據(jù)序列(x)和輸出數(shù)據(jù)序列(y)相同并且位于上下相鄰的 位置的F函婆t201、 202。
兩個(gè)F函數(shù)201、 202由與循環(huán)密鑰之間的異或運(yùn)算部、非 線性變換處理部、線性變換處理部構(gòu)成。F函li201、 202是進(jìn) 行32比特輸入輸出處理的結(jié)構(gòu),非線性變換處理部由四個(gè) S-box構(gòu)成,各S-box進(jìn)行8比特輸入輸出。
圖10所示的A J與圖9相同,表示如下這些各數(shù)據(jù)。
A:對先行F函數(shù)201的輸入
B:先行F函數(shù)201的輸出
C:后續(xù)F函數(shù)202的輸入
D:后續(xù)F函數(shù)202的輸出
E:對先行F函數(shù)201的輸出B的異或運(yùn)算數(shù)據(jù)
F:對數(shù)據(jù)A的異或運(yùn)算數(shù)據(jù)
G:數(shù)據(jù)B與數(shù)據(jù)E之間的異或運(yùn)算結(jié)果
H:數(shù)據(jù)D與數(shù)據(jù)G之間的異或運(yùn)算結(jié)果
I:對先行F函數(shù)201輸入的循環(huán)密鑰
J:對后續(xù)F函數(shù)202輸入的循環(huán)密鑰
在圖IO示出的結(jié)構(gòu)中,設(shè)為設(shè)定在先行F函數(shù)201和后續(xù)F 函數(shù)202各自中的非線性變換處理部的S-box利用了不同的 S-box[Sl]、 [S2]的結(jié)構(gòu)。
即,在先行F函數(shù)201中執(zhí)行非線性變換處理的S-box[Sl] 和在后續(xù)F函數(shù)202中執(zhí)行非線性變換處理的S-box[S2]執(zhí)行不同的非線性變換處理。具體地說,例如執(zhí)行應(yīng)用了不同的非線 性變換表的非線性變換處理,而對相同輸入進(jìn)行相同輸出不被 限定。
在此,將各S-box: Sl、 S2設(shè)為滿足以下條件的兩個(gè)不同 的S-box。
當(dāng)各S-box: Sl、 S2是執(zhí)行n比特輸入輸出的非線性變換處 理的S-box時(shí), (條件l)
在對任意s比特?cái)?shù)據(jù)c依次輸入所有s比特?cái)?shù)據(jù)即2s個(gè)x的情 況下,
與輸入數(shù)據(jù)[x]對應(yīng)的第一 S-box[S 1 ]的輸出S1 (x)和 與輸入數(shù)據(jù)[x(EXOR)c]對應(yīng)的S-box[S2]的輸出 S2(x(EXOR)c)最少一個(gè)具有不同的值。即, Sl(x)(EXOR)S2(x(EXOR)c)
上述式不是固定值。
并且,
(條件2)
在對任意s比特?cái)?shù)據(jù)c依次輸入所有s比特?cái)?shù)據(jù)即2s個(gè)x的情 況下,
與輸入數(shù)據(jù)[x]對應(yīng)的第一S-box[Sl]的輸出Sl(x)和 與輸入數(shù)據(jù)[x(EXOR)c]對應(yīng)的S-box[S2]的輸出 S2(x(EXOR)c)最少一個(gè)具有重復(fù)值。即, S1 (x)(EXOR)S2(x(EXOR)c) 上述式不是所有2S各出現(xiàn)一次的形式。 其在圖10中表示如下條件 在將數(shù)據(jù)A假設(shè)為[x] 將數(shù)據(jù)F假設(shè)為[c]的情況下,先行F函數(shù)201的S-box[Sl]的輸出Sl(x)與 后續(xù)F函數(shù)202的S-box[S2]的輸出S2(x(EXOR)c) 這兩個(gè)輸
值
如圖10所示那樣設(shè)定滿足該條件的兩個(gè)S-box[Sl]、 [S2]。
即,在某個(gè)F函數(shù)中設(shè)為僅使用S-box[Sl]的非線性變換處 理部,在下一個(gè)F函數(shù)中設(shè)為僅使用S-box[S2]的非線性變換處 理部。在此之后存在循環(huán)的情況下,同樣地,在各F函數(shù)的非 線性變換處理部中按S-box[Sl]、 [S2]的順序進(jìn)4亍"i殳定。
這樣,通過將輸入數(shù)據(jù)序列和輸出數(shù)據(jù)序列相同并且位于 上下相鄰的位置的F函數(shù)中的非線性變換處理設(shè)為執(zhí)行不同的 非線性變換處理的結(jié)構(gòu)、即配置不同的S-box,能夠使出現(xiàn)在 輸出序列的數(shù)據(jù)與出現(xiàn)在循環(huán)函數(shù)執(zhí)行前的相同輸出序列的數(shù) 據(jù)具有較強(qiáng)相關(guān)的可能性顯著降低。
即,通過利用滿足上述的(條件1)的S-box,即使在兩個(gè) S-box的輸入關(guān)系具有固定值的差的情況下,其輸出的異或也 最少一次具有不同值,因此能夠保證不會完全消去。
另外,通過利用滿足上述的(條件2)的S-box,即使在兩個(gè) S-box的輸入關(guān)系具有固定值的差的情況下,其輸出的異或也 最少一次具有重復(fù)值,因此可以說破壞了能夠利用于攻擊的性 質(zhì)。因而,通過上述那樣配置兩個(gè)S-box,對飽和攻擊的攻擊 者有利的條件減少,因此可期望能夠提高對攻擊的抵抗性。
即,在圖10中,在各F函凄t201、 202中的S—box的專lT入^i相 等的情況下,即使成為
A
(EXOR)I[0J=C
(EXOR)J
,
各F函數(shù)的S-box的輸出值,即
S1(A
(EXOR)1
)S2(C
(EXOR)J
)
這些輸出值不會在所有情況下都完全一致,結(jié)果是各F函 數(shù)201、 202的F函數(shù)輸出B、 D不完全一致,能夠消除之前參照 圖9說明那樣的現(xiàn)象、即
E二H(EXOR)A
這種在 一 個(gè)數(shù)據(jù)序列中循環(huán)函數(shù)(F函數(shù))執(zhí)行前后的數(shù)據(jù) 僅具有固定值的差分這種可能性。
這樣,通過將輸入數(shù)據(jù)序列和輸出數(shù)據(jù)序列相同并且位于 上下相鄰位置的F函數(shù)中的非線性變換處理設(shè)為執(zhí)行不同的非 線性變換處理的不同S-box,能夠大幅提高飽和攻擊的難度, 提高對攻擊的抵抗性。
(發(fā)展系-l)
參照圖IO說明的上述結(jié)構(gòu)僅著眼于兩個(gè)F函數(shù)的關(guān)系導(dǎo)出 將設(shè)定在這兩個(gè)F函數(shù)中的S-box設(shè)為不同的S-box這種條件, 但是在三個(gè)以上的F函數(shù)中也可以說是相同的情形。例如,如 圖ll所示,通過對每個(gè)F函數(shù)配置不同的S-box能夠期望提高對 飽和攻擊的抵抗性。
圖ll示出切出Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的一部分的 結(jié)構(gòu),示出輸入數(shù)據(jù)序列(x)和輸出數(shù)據(jù)序列(y)相同并且位于上 下相鄰位置的三個(gè)F函數(shù)211 213。
在F函數(shù)211的非線性變換處理部中設(shè)定S-box[Sl], 在F函數(shù)212的非線性變換處理部中設(shè)定S-box[S2], 在F函數(shù)213的非線性變換處理部中設(shè)定S-box[S3], S1^S2^S3。
這樣,作為要求多個(gè)S-box具有的條件, (條件l)
對由k個(gè)(k〉2)S-box構(gòu)成的集合Sl,S2,.,,Sk的相互不同的兩個(gè)S-box的組Si和Sj(Wj)、對任意的c提供所有可能的2s個(gè)x作為 輸入時(shí),
Si(x)和
Sj(x(EXOR)c)
這些S盒輸出不完全相同,最少一個(gè)輸出不同的值。即,
Si(x)和Sj(x(EXOR)c)的異或結(jié)果不是固定值。
并且,
(條件2)
對由k個(gè)(k〉2)S-box構(gòu)成的集合S 1 ,S2,,.,Sk的相互不同的兩 個(gè)S-box的組Si和Sj(i爿)、對任意的c提供所有可能的2"個(gè)x作為 輸入時(shí),
Si(x)和
Sj(x(EXOR)c)
這些S盒輸出不是所有2"個(gè)值各出現(xiàn)一次的形式。即,最少 出現(xiàn)一個(gè)重復(fù)值。
設(shè)定滿足該條件的由S-box構(gòu)成的集合81,82,..,81^,在輸入 數(shù)據(jù)序列(x)和輸出數(shù)據(jù)序列(y)相同并且位于上下按序排列的 位置的多個(gè)F函數(shù)中配置這些F函數(shù),由此能夠顯著降低在輸出 序列上出現(xiàn)的數(shù)據(jù)與在循環(huán)函數(shù)執(zhí)行前的相同輸出序列上出現(xiàn) 的數(shù)據(jù)一致的可能性,結(jié)果是能夠大幅提高飽和攻擊的難度, 提高對攻擊的抵抗性。
(發(fā)展系-2)
當(dāng)考慮實(shí)際安裝時(shí),存在即使包含在各F函數(shù)中的S-box的 種類為多個(gè)也希望包含在各F函數(shù)中的S-box的組合相同的情況。
即,例如在通過硬件、軟件來進(jìn)行相當(dāng)于F函數(shù)的數(shù)據(jù)變 換的情況下,如果包含在各F函數(shù)中的S-box的組合相同,則將作為F函數(shù)的硬件、軟件設(shè)為相同,在各循環(huán)中僅適當(dāng)?shù)刈兏?輸入輸出就能夠?qū)崿F(xiàn)各循環(huán)中的F函數(shù)的數(shù)據(jù)變換。
參照圖12說明具體例。圖12也與圖10相同,示出切出Feistel 結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的 一 部分的結(jié)構(gòu),示出輸入數(shù)據(jù)序列 (x)和輸出數(shù)據(jù)序列(y)相同并且位于上下相鄰位置的F函數(shù)221 、 222。
包含在先行F函數(shù)221中的四個(gè)S-box從上起按Sl、 S2、 Sl、 S 2的順序進(jìn)行配置,在下 一 個(gè)循環(huán)的后續(xù)F函數(shù)222中從上起設(shè) 為S2、 Sl、 S2、 Sl的順序。
jt匕夕卜,S1^S2。
如果設(shè)為這種設(shè)定,進(jìn)行設(shè)為能夠并列執(zhí)行兩個(gè)S1、兩個(gè) S2的結(jié)構(gòu)的安裝,則能夠應(yīng)用該結(jié)構(gòu)執(zhí)行F函數(shù)221、 222,還 能夠降低安裝上的成本并且使裝置小型化。
在圖12所示的結(jié)構(gòu)中,在各F函數(shù)221、 222中應(yīng)用于對應(yīng) 的比特列的非線性變換處理為
S1—S2或者
S2 —Sl,
作為對應(yīng)的比特?cái)?shù)據(jù)(例如各字節(jié)單位)的處理,成為與參 照圖IO說明的處理相同的處理,作為結(jié)果,能夠得到相同的效 果、即顯著降低在輸出序列中出現(xiàn)的數(shù)據(jù)與在循環(huán)函數(shù)執(zhí)行前 的相同輸出序列中出現(xiàn)的數(shù)據(jù)一致的可能性,結(jié)果是能夠大幅 提高飽和攻擊的難度,提高對攻擊的抵抗性。
圖13示出另 一個(gè)具體例。圖13與圖ll相同,示出切出Feistel 結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的 一部分的結(jié)構(gòu),示出輸入數(shù)據(jù)序列 (x)和輸出數(shù)據(jù)序列(y)相同并且位于上下相鄰位置的三個(gè)F函數(shù) 231 233。
包含在先行F函數(shù)231中的四個(gè)S-box從上起按Sl、 S2、 S3、S4的順序進(jìn)行配置,在下一個(gè)循環(huán)的中間F函數(shù)232中從上起設(shè) 定為S2、 S3、 S4、 Sl的順序,在再下一個(gè)循環(huán)的中間F函lt233 中從上起設(shè)定為S3、 S4、 Sl、 S2的順序。 jt匕夕卜,S1^S2^S3^S4。
如果設(shè)為這種設(shè)定,進(jìn)行設(shè)為能夠并列執(zhí)行S1 S4各一個(gè) 的結(jié)構(gòu)的安裝,則能夠應(yīng)用該結(jié)構(gòu)-執(zhí)行所有F函lt231 233,能 夠降低安裝上的成本并且使裝置小型化。
在圖13所示的結(jié)構(gòu)中,在各F函數(shù)231 233中應(yīng)用于對應(yīng)的 比特列的非線性變換處理成為如下順序,
SI—S2—S3 —S4—Sl4S2… 作 為 對 應(yīng) 的 比 特 數(shù) 據(jù) ( 例 如 各 字 節(jié) 單 位 ) 的 處 理 , 成為與參 照圖IO、圖ll說明的處理相同的處理,作為結(jié)果,能夠得到相 同的效果、即顯著降低在輸出序列中出現(xiàn)的數(shù)據(jù)與在循環(huán)函數(shù) 執(zhí)行前的相同輸出序列中出現(xiàn)的數(shù)據(jù)一致的可能性,結(jié)果是能 夠大幅提高飽和攻擊的難度,提高對攻擊的抵抗性。
(2B)在使用了 S-box的塊密碼中通過使兩種以上不同的 S - b o x共存來提高對代數(shù)攻擊(X S L攻擊)的抵抗性的結(jié)構(gòu)
接著,說明在使用了 S-box的塊密碼中通過使種類不同的 S-box共存來提高對代數(shù)攻擊(XSL攻擊)的4氏抗性的結(jié)構(gòu)。
(2B-1 )代數(shù)攻擊(XSL攻擊)的概要
首先說明作為對塊密碼的攻擊而已知的代數(shù)攻擊(XSL攻 擊)。對塊密碼的代數(shù)攻擊(XSL攻擊)是利用了 S-box的代數(shù)表現(xiàn) 的攻擊。關(guān)于S-box的輸入輸出,在表現(xiàn)為代數(shù)式時(shí)能夠?qū)С?多個(gè)表達(dá)式,攻擊所需的計(jì)算量根據(jù)該表達(dá)式的最大次數(shù)、所 包含的項(xiàng)數(shù)而發(fā)生變化。
作為代數(shù)攻擊(XSL攻擊)的實(shí)施例之一存在使用了布爾表 達(dá)式的方式。例如設(shè)為存在某個(gè)安裝了多個(gè)具有8-bit輸入輸出的S-box的塊密碼。此時(shí),在8比特輸入輸出S-box中,當(dāng)將輸 入側(cè)和輸出側(cè)的比特分別設(shè)為
輸入X:(xl, x2, x3, x4, x5, x6, x7, x8)
輸出Y:(yl, y2, y3, y4, y5, y6, y7, y8)
時(shí),評價(jià)以兩次以下的布爾表達(dá)式表達(dá)出來的表達(dá)式的數(shù)量。
工pi ,丄'h 、" 、工,人a>入丄.、," 、丄丄-士— c 、* +入、山 叉長,t凡,>r "r 。
仁p乂、 ^小恭a -、恭"、丄還華的入車的出
X、 Y得到的結(jié)果中的項(xiàng)能夠以
(1, xi, yi, xixj, yiyj, xiyj) 這種兩次以下的任一種形式表示的多項(xiàng)式的數(shù)量。
在將最大次數(shù)限定為兩次等低次數(shù)進(jìn)行取出時(shí),如果這樣 表示的全部布爾表達(dá)式之中獨(dú)立表達(dá)式的數(shù)量更多、項(xiàng)目數(shù)較 少,則視為有利于攻擊。即,在這樣將最大次數(shù)限定為兩次等 時(shí),如果獨(dú)立表達(dá)式的數(shù)更多、項(xiàng)目數(shù)較少,則視為有利于攻 擊,對攻擊的抵抗性差。
另外,不僅是布爾表達(dá)式,在擴(kuò)展域GF(2S)等定義域上能 夠以較低次數(shù)進(jìn)行代數(shù)表現(xiàn)的情況下,也容易使用相同的方法 進(jìn)行代數(shù)攻擊(XSL攻擊),視為攻擊^^抗性較弱。
(2B—2)使用了 一種S—box時(shí)的問題點(diǎn)
接著,說明在使用了 S-box的塊密碼中僅利用了一種S-box 的結(jié)構(gòu)的問題點(diǎn)、即容易進(jìn)行代數(shù)攻擊(XSL攻擊)這種問題點(diǎn)。
在執(zhí)行n-bit的輸入輸出的非線性變換的s比特S-box中存 在下面三種代表類型。
類型1:利用擴(kuò)展域GF(2S)上的逆映射Y=X:冪函數(shù)Y二X15 的S—box
類型2:組合多個(gè)例如4-bit輸入輸出等小于s比特的S-box 而制作出的S —box
類型3: F逸才幾選4奪的S—box這三種類型是代表。
特別是關(guān)于類型l和類型2,由于在硬件(H/W)安裝時(shí)能夠
以低成本進(jìn)行安裝,因此是經(jīng)常利用的S-box。
下面,對上述各類型1 3說明僅利用了 一種S-box的結(jié)構(gòu)的 問題點(diǎn)、即容易進(jìn)行代數(shù)攻擊(X S L攻擊)這種問題點(diǎn)。
<類型l的問題點(diǎn)〉
說明類型l、即利用了 GF(2"上的逆映射Y=X—\冪函數(shù) Y:XP的S-box的情況下的問題點(diǎn)。
例如,已知在使用了 GF(2"上的逆映射的S-box的情況下以 布爾表達(dá)式表示時(shí)存在如下表現(xiàn)是20幾個(gè)獨(dú)立的二次表達(dá)式 并且項(xiàng)數(shù)為80幾個(gè)。關(guān)于冪函數(shù)也存在相同的簡單關(guān)系。另夕卜, 不僅在GF(2"上,在GF(2"上定義的S-box也期待相同的關(guān)系。
當(dāng)使用這些多項(xiàng)式表現(xiàn)時(shí),能夠估計(jì)針對代數(shù)攻擊(XSL攻 擊)的計(jì)算量,為確保安全性需要在密碼的設(shè)計(jì)階段利用充分?jǐn)?shù) 量的S-box使得能夠得到充分的計(jì)算量。并且在使用了 GF(2S) 上的逆映射的S-box的情況下,在GF(2"上能夠進(jìn)行XY^1這種 代數(shù)表現(xiàn),也能夠?qū)С龃螖?shù)較低的多項(xiàng)式。已知也存在利用了 這些性質(zhì)的攻擊方法。關(guān)于冪函數(shù)也能夠應(yīng)用相同的結(jié)果。
這樣,在僅使用利用了 GF(2"上的逆映射、冪映射的S-box 的密碼中,由于利用兩種代數(shù)性質(zhì),因此必須考慮其兩者來進(jìn) 行設(shè)計(jì)。
此外,關(guān)于在逆映射、冪函數(shù)的前后追加仿射變換而制作 出的S-box,也可以i兌與上述相同。 <類型2的問題點(diǎn)〉
接著,說明類型2、即組合多個(gè)更小的(例如4—bit)S—box而 制作出的S-box的情況下的問題點(diǎn)。
考慮使用了組合多個(gè)輸入輸出例如4-bit的較小的S-box而制作出的8比特S-box的情況。已知利用3 5個(gè)4比特S-box能夠 制作出8比特S-box。為了代數(shù)攻擊(XSL攻擊)而對4比特S-box 的輸入輸出比特導(dǎo)出兩次以下的布爾表達(dá)式多項(xiàng)式,說起來輸 入輸出比特的合計(jì)僅8個(gè),因此已知以這種以較低次數(shù)表現(xiàn)的獨(dú) 立表達(dá)式至少存在二十幾個(gè)。因此,能夠利用它們構(gòu)成攻擊。 在為了制作較大輸入輸出大小的S-box而使用更小大小的 S-box來構(gòu)成的情況下,可以說具有這種趨勢。
但是,作為該方式的優(yōu)點(diǎn),使用利用了 GF(2^上的逆映射 的S-box時(shí)那樣的在GF(2"域上存在簡單的代數(shù)關(guān)系的概率極 低,由此可知攻擊所需的計(jì)算量變多,因此根據(jù)上述情況,與 上述S-box相比從代數(shù)攻擊(XSL攻擊)的觀點(diǎn)出發(fā)可以說優(yōu)點(diǎn) 和缺點(diǎn)兩者共存。
<類型3的問題點(diǎn)>
接著,說明類型3、即隨機(jī)選擇的S-box的情況下的問題點(diǎn)。 隨機(jī)選擇的S-box不能期望具有上述那樣的在代數(shù)上看較弱的 性質(zhì),能夠期望對代數(shù)攻擊(XSL攻擊)的較高的安全性,但是 H/W安裝成本極高,因此存在不希望將所有S-box都設(shè)為隨機(jī)選 擇的S-box這種問題。
(2B-3)通過利用代數(shù)性質(zhì)不同的多種S-box來提高抵抗性 的結(jié)構(gòu)
下面說明如下結(jié)構(gòu)鑒于上述問題,通過利用代數(shù)性質(zhì)不 同的兩種以上的S-box來提高對使用了布爾多項(xiàng)式的代數(shù)攻擊 (XSL攻擊)、以及利用了 GF(2S)域的代數(shù)攻擊(XSL攻擊)兩者的 抵抗性,并且與將所有S-box都設(shè)為隨機(jī)選擇的S-box的情況相 比,提高了硬件(H/W)安裝效率。
如之前所說明那樣,在執(zhí)行s-bit輸入輸出的非線性變換的s 比特S-box中存在下面三種代表類型。類型l:利用了擴(kuò)展域GF(2S)上的逆映射Y=X—\冪函數(shù) Y=X,S-box
類型2:組合多個(gè)t-bit的較小的S-box而制作出的S-box(其 中設(shè)為t〈s)
類型3:隨機(jī)選擇的S-box 這三種類型是代表。
在本實(shí)施例中,通過組合利用這些不同類型的S-box來實(shí) 現(xiàn)提高對代數(shù)攻擊(X S L攻擊)的抵抗性、并且提高了硬件(H / W) 安裝效率的結(jié)構(gòu)。即,是在使用了 S-box的塊密碼中通過使兩 種以上不同的S-box共存來提高對代數(shù)攻擊(XSL攻擊)的抵抗 性的結(jié)構(gòu)。此外,能夠應(yīng)用本實(shí)施例的密碼處理結(jié)構(gòu)只要是具 有執(zhí)行非線性變換處理的S-box的密碼處理結(jié)構(gòu)即可,例如,
能夠應(yīng)用于之前說明的下面各種密碼處理結(jié)構(gòu)、即
(a) SPN(Substitution Permutation Network)結(jié)構(gòu)
(b) Feistel結(jié)構(gòu)
(c) 擴(kuò)展Feistel結(jié)構(gòu) 這些結(jié)構(gòu)中的任一個(gè)。
在本處理例中,將包含在執(zhí)行數(shù)據(jù)變換處理的循環(huán)函數(shù)中 的、作為非線性變換處理部的S-box設(shè)定為下面(a) (d)中的任一個(gè)。
(a) 將 一部分設(shè)為類型1的S-box、將其它設(shè)為類型2的S-box 的結(jié)構(gòu)
(b) 將一部分設(shè)為類型l的S-box、將其它設(shè)為類型3的S-box 的結(jié)構(gòu)
(c) 將 一部分設(shè)為類型2的S-box、將其它設(shè)為類型3的S-box 的結(jié)構(gòu)
(d) 將一部分設(shè)為類型l的S-box、將另 一部分設(shè)為類型2的S-box、將其它設(shè)為類型3的S-box的結(jié)構(gòu)
例如,在i史定為上述(a)的情況下,i殳為如下結(jié)構(gòu) 將包含在執(zhí)行數(shù)據(jù)變換處理的循環(huán)函數(shù)中的作為非線性變 換處理部的S-box中 一 半的S-box設(shè)為類型1 、即使用了 GF(28) 上的逆映射的S-box,考慮除去了此以外的S-box的虛構(gòu)的密 碼,根據(jù)其對利用了布爾表達(dá)式的代數(shù)攻擊(XSL攻擊)的計(jì)算 量進(jìn)行估計(jì),如果估計(jì)出充分的計(jì)算量,則將剩余一半的S-box 設(shè)為類型2、即組合多個(gè)4-bit的較小的S-box而制作出的8比特 S-box。
這樣,通過設(shè)定為上述(a)的類型l與類型2共存的密碼處理 結(jié)構(gòu),如果在對G F (28)上的計(jì)算量進(jìn)行估計(jì)時(shí)能夠具有充分的 抵抗性,則與單獨(dú)利用各S-box時(shí)相比,能夠制作出綜合抵抗 性提高的塊密碼。
并不限于上述設(shè)定,在上述(a) (d)中的任一個(gè)的情況下都 相同,進(jìn)行設(shè)定使得即使僅限定一部分S-box對代數(shù)攻擊(XSL 攻擊)的抵抗性也充分高,剩余S-box考慮安裝效率等來決定即 可。
參照圖14 圖18說明上述(a) (d)那樣配置了不同類型的 S-box的具體的密碼處理結(jié)構(gòu)例。圖14 圖18所示的例子都示出 具有六個(gè)循環(huán)的循環(huán)函數(shù)執(zhí)行部的密碼處理結(jié)構(gòu),在各循環(huán)函 數(shù)執(zhí)行部中具有由多個(gè)S-box構(gòu)成的非線性變換處理部和線性 變換處理部。
圖14示出由六個(gè)循環(huán)構(gòu)成、在每一個(gè)循環(huán)中包含十個(gè) S-box的SPN塊密碼的例子。SPN塊密碼在各循環(huán)中執(zhí)行具有非 線性變換層(S層)、線性變換層(P層)的數(shù)據(jù)變換。各循環(huán)的十個(gè) S-box例如輸入將輸入數(shù)據(jù)進(jìn)行十分割得到的分割數(shù)據(jù),執(zhí)行 非線性變換處理,將非線性變換結(jié)果數(shù)據(jù)輸出到線性變換層(P層),線性變換處理結(jié)果被輸出到下一個(gè)循環(huán)函數(shù)執(zhí)行部。最終 級循環(huán)函數(shù)執(zhí)4亍部的輸出為密文。
圖示的各循環(huán)函數(shù)執(zhí)行部301 306的[Si]、 [S2]分別表示類 型1的S-box、類型2的S-box,是上述的不同類型的作為非線性 變換處理部的S-box。
圖14所示的例子是如下結(jié)構(gòu)例在先行的三個(gè)循環(huán)的循環(huán) 函數(shù)執(zhí)行部301 303中配置
類型l:利用了擴(kuò)展域GF(2S)上的逆映射Y=X—\冪函數(shù) Y二XP的S-box
該類型l的S-box[S小
在后續(xù)的三個(gè)循環(huán)的循環(huán)函數(shù)執(zhí)行部301 303中配置 類型2:纟且合多個(gè)4—bit那才羊?qū)=恍〉腟—box而命H乍出的S—box 該類型2的S-box[S2]。
在圖14的結(jié)構(gòu)中,非線性變換處理在前半循環(huán)中執(zhí)行為應(yīng) 用了類型l的S-box的處理,在后半循環(huán)中執(zhí)行為應(yīng)用了類型2 的S-box的處理。通常,在全部假設(shè)為相同類型的S-box之后執(zhí) 行代數(shù)攻擊(XSL攻擊),在這種不同類型的S-box共存的設(shè)定的 情況下,攻擊、即分析變得困難。結(jié)果是實(shí)現(xiàn)對代數(shù)攻擊(XSL 攻擊)等密碼分析的抵抗性較高的密碼處理結(jié)構(gòu)。
圖15與圖14相同,示出由六個(gè)循環(huán)構(gòu)成的、在每一個(gè)循環(huán) 中包含十個(gè)S-box的SPN塊密碼的例子。
圖15所示的例子是如下結(jié)構(gòu)例
在第一、三、五奇數(shù)循環(huán)的循環(huán)函數(shù)執(zhí)行部321、 3"、 3" 中配置
類型l:利用了擴(kuò)展域GF(2S)上的逆映射Y=X—、冪函數(shù) Y二XP的S-box
該類型1的S-box[S小在第二、四、六偶數(shù)循環(huán)的循環(huán)函數(shù)執(zhí)行部322、 324、 326 中配置
類型2:組合多個(gè)4-bit那樣較小的S-box而制作出的S-box 該類型2的S-box[S2]。
在圖15的結(jié)構(gòu)中,非線性變換處理在奇數(shù)循環(huán)中執(zhí)行為應(yīng) 用了類型l的S-box的處理,在偶數(shù)循環(huán)中執(zhí)行為應(yīng)用了類型2 的S-box的處理。在本結(jié)構(gòu)中也與圖14的結(jié)構(gòu)相同,是不同類 型的S-box共存的設(shè)定,實(shí)現(xiàn)對代數(shù)攻擊(XSL攻擊)等密碼分析 的抵抗性較高的密碼處理結(jié)構(gòu)。
圖16與圖14、圖15相同,示出由六個(gè)循環(huán)構(gòu)成的、在每一 個(gè)循環(huán)中包含十個(gè)S-box的SPN塊密碼的例子。 圖16所示的例子是如下結(jié)構(gòu)例 在所有循環(huán)的循環(huán)函數(shù)執(zhí)行部3 41 3 4 6中配置 類型l:利用了擴(kuò)展域GF(2"上的逆映射Y=X—1 、冪函數(shù) Y二XP的S-box
該類型1的S—box[St]和
類型2:組合多個(gè)4—bit那才羊?qū)=恍〉腟—box而制作出的S—box 該類型2的S-box[S2] 各一半、即各五個(gè)。
輸入到各循環(huán)函數(shù)執(zhí)行部341 346的數(shù)據(jù)被進(jìn)行十分割后 輸入到各S盒。進(jìn)行十分割得到的分割數(shù)據(jù)d廣山o的前半的數(shù)據(jù) d廣d5輸入到類型1的S-box,執(zhí)行應(yīng)用了類型1的S-box的非線性 變換處理,后半的數(shù)據(jù)d6 山o輸入到類型2的S-box,執(zhí)行應(yīng)用 了類型2的S-box的非線性變換處理。
在圖16的結(jié)構(gòu)中也與圖14、圖15的結(jié)構(gòu)相同,是不同類型 的S-box共存的設(shè)定,實(shí)現(xiàn)對代數(shù)攻擊(XSL攻擊)等密碼分析的 抵抗性較高的密碼處理結(jié)構(gòu)。圖17與圖14 圖16相同,示出由六個(gè)循環(huán)構(gòu)成的、在每一
個(gè)循環(huán)中包含十個(gè)S-box的SPN塊密碼的例子。
圖17所示的例子與圖16所示的例子相同,是如下結(jié)構(gòu)例
在所有循環(huán)的循環(huán)函數(shù)執(zhí)行部361 366中配置
類型l:利用了擴(kuò)展域GF(2"上的逆映射Y=X_1、冪函數(shù)
Y=XWS_box
該類型1的S-box[Si]和
類型2:纟且合多個(gè)4—bit那才羊?qū)=恍〉腟—box而制4乍出的S—box 該類型2的S-box[S2] 各一半、即各五個(gè)。
輸入到各循環(huán)函數(shù)執(zhí)行部361 366的數(shù)據(jù)纟皮進(jìn)行十分割后 輸入到各S盒。進(jìn)行十分割得到的分割數(shù)據(jù)d, 山。的第奇數(shù)個(gè)分 割數(shù)據(jù)d。 d3、 d5、 d7、 d9輸入到類型l的S-box,執(zhí)行應(yīng)用了類 型l的S-box的非線性變換處理,第偶數(shù)個(gè)分割數(shù)據(jù)d2、 d4、 d6、 d8、山o輸入到類型2的S-box,執(zhí)行應(yīng)用了類型2的S-box的非線 性變換處理。
在圖17的結(jié)構(gòu)中也與圖14 圖16的結(jié)構(gòu)相同,是不同類型 的S-box共存的設(shè)定,實(shí)現(xiàn)對代數(shù)攻擊(XSL攻擊)等密碼分析的 抵抗性較高的密碼處理結(jié)構(gòu)。
在圖16、圖17所示的結(jié)構(gòu)中,在各循環(huán)中并列執(zhí)行的S-box 是類型l的S-box和類型2的S-box各五個(gè),其在所有循環(huán)中共 用。因而,例如作為安裝如果設(shè)為能夠并列執(zhí)行類型1和類型2 的S-box各五個(gè)的結(jié)構(gòu),則能夠反復(fù)應(yīng)用該結(jié)構(gòu)來執(zhí)行所有循 環(huán)的循環(huán)函數(shù),在安裝上還存在降低成本、實(shí)現(xiàn)小型化的優(yōu)點(diǎn)。
圖18示出在Feistel結(jié)構(gòu)中的各循環(huán)函數(shù)執(zhí)行部381 386中 配置多個(gè)不同類型的S-box的例子。
圖18所示的例子是如下結(jié)構(gòu)例在所有循環(huán)的循環(huán)函數(shù)執(zhí)行部381 386中配置 類型l:利用了擴(kuò)展域GF(2"上的逆映射Y=X_1、冪函數(shù) Y=X,S-box
該類型1的S-box[Si〗和
類型2:組合多個(gè)4-bit那樣較小的S-box而制作出的S-box
該類型2的S-box[S2]
各一半、即各兩個(gè)。
輸入到各循環(huán)函數(shù)執(zhí)行部381 386中的數(shù)據(jù)纟皮進(jìn)行四分割 后輸入到各S盒。進(jìn)行四分割得到的分割數(shù)據(jù)d i d 4的第奇數(shù)個(gè) 分割數(shù)據(jù)&、 (13輸入到類型1的S-box,執(zhí)行應(yīng)用了類型1的S-box 的非線性變換處理,第偶數(shù)個(gè)分割數(shù)據(jù)d2、 d4輸入到類型2的 S-box,執(zhí)行應(yīng)用了類型2的S-box的非線性變換處理。
在圖18的結(jié)構(gòu)中也與圖14 圖17的結(jié)構(gòu)相同,是不同類型 的S-box共存的設(shè)定,實(shí)現(xiàn)對代數(shù)攻擊(XSL攻擊)等密碼分析的 抵抗性較高的密碼處理結(jié)構(gòu)。
此外,在圖14 圖18所示的例子中示出使類型l和類型2這 兩種類型的S-box共存來進(jìn)行利用的結(jié)構(gòu)例,但是作為不同類 型的S-box的共存結(jié)構(gòu),如之前說明的那樣,可以是
(a) 將 一部分設(shè)為類型1的S-box、將其它設(shè)為類型2的S-box 的結(jié)構(gòu)
(b) 將 一 部分設(shè)為類型1的S-box 、將其它設(shè)為類型3的S-box 的結(jié)構(gòu)
(c) 將 一 部分設(shè)為類型2的S-box、將其它設(shè)為類型3的S-box 的結(jié)構(gòu)
(d) 將一部分設(shè)為類型1的S-box、將另 一部分設(shè)為類型2的 S-box、將其它設(shè)為類型3的S-box的結(jié)構(gòu)
這些各種共存結(jié)構(gòu),在任一種情況下都實(shí)現(xiàn)提高對代數(shù)攻擊(XSL攻擊)的抵抗性。
(2C)在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型密碼中 同時(shí)實(shí)現(xiàn)上述(2A)、 (2B)的結(jié)構(gòu)
接著,說明在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型 密碼中同時(shí)實(shí)現(xiàn)上述PA)、 (2B)、即
(2A)通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中 配置兩種以上不同的S-box來提高對飽和攻擊的抵抗性的結(jié)構(gòu)
(2B)通過在^f吏用了 S-box的塊密碼中4吏兩種以上不同的 S - b o x共存來提高對代數(shù)攻擊(X S L攻擊)的抵抗性的結(jié)構(gòu)
這些結(jié)構(gòu)的結(jié)構(gòu)例。
上述的(2A)的結(jié)構(gòu)是通過在Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)
構(gòu)中應(yīng)用兩種以上的S-box來提高對飽和攻擊的抵抗性的結(jié) 構(gòu),上述的(2B)的結(jié)構(gòu)是通過對具有S-box的任意的塊密碼使用 兩種以上的S-box來提高對代數(shù)攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)。
能夠同時(shí)實(shí)現(xiàn)這些(2A)、 (2B)的結(jié)構(gòu)。即,能夠利用滿足 (2A) 、 (2B)所需的性質(zhì)的兩種以上的S-box來構(gòu)成具有同時(shí)提高 對兩個(gè)攻擊的抵抗性的Feistel或者擴(kuò)展Feistel結(jié)構(gòu)的塊密碼。
具體地說,對各S-box[Sl]、 [S2]、 [S3]、 [S4]-對應(yīng)地設(shè)定 三個(gè)類型的S-box,其中,
上述各S-box[S] I、 [S2]、 [S3]、 [S4].'為在上述的
(2A)通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中 配置兩種以上不同的S - b o x來提高對飽和攻擊的抵抗性的結(jié)構(gòu)
中說明的、在圖10 圖13的各結(jié)構(gòu)中應(yīng)用的執(zhí)行不同的非 線性變換處理的S-box,
上述三個(gè)類型的S-box為在上述的
(2B)通過在使用了 S-box的塊密碼中使兩種以上不同的S-box共存來提高對代數(shù)攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu) 中說明的不同類型的S-box、即
類型l:利用了擴(kuò)展域GF(2s)上的逆映射Y=X—\冪函數(shù) Y二XP的S-box
類型2:組合多個(gè)4—bit那樣較小的S-box而制作出的S—box 類型3:隨機(jī)選擇的S-box。 例如,在圖10所示的結(jié)構(gòu)中,
通過將S-box[Sl]和S-box[S2]設(shè)定為在(2B)中說明的不同 類型的S-box來實(shí)現(xiàn)對飽和攻擊、對代數(shù)攻擊(XSL攻擊)抵抗性 都較高的結(jié)構(gòu)。
在圖11 圖13所示的結(jié)構(gòu)中也相同,
通過將S-box[Sl]、 [S2]…設(shè)定為在(2B)中說明的不同類型 的S-box來實(shí)現(xiàn)對飽和攻擊、對代數(shù)攻擊(XSL攻擊)抵抗性都較 高的結(jié)構(gòu)。
最后,圖19示出按照上述的實(shí)施例執(zhí)行密碼處理的作為密 碼處理裝置的IC模塊700的結(jié)構(gòu)例。例如能夠在PC、 IC卡、讀 寫器、其它各種信息處理裝置中執(zhí)行上述處理,圖19所示的IC 模塊700能夠構(gòu)成在這些各種設(shè)備中。
圖19所示的CPU(Central processing Unit: 中央處理單 元)701是執(zhí)行密碼處理的開始、結(jié)束、數(shù)據(jù)的發(fā)送接收的控制、 各結(jié)構(gòu)部之間的數(shù)據(jù)傳送控制、其它各種程序的處理器。存儲 器702由ROM(Read-Only-Memory:只讀存儲器)、RAM(Random Access Memory:隨機(jī)存取存儲器)等構(gòu)成,其中,上述ROM保 存CPU 701所執(zhí)行的程序或者運(yùn)算參數(shù)等固定數(shù)據(jù),上述RAM 作為在CPU 701的處理中執(zhí)行的程序以及在程序處理中適當(dāng)變 化的參數(shù)的保存區(qū)域、工作區(qū)域而使用。另外,存儲器702能夠作為密碼處理所需的密鑰數(shù)據(jù)、在密碼處理中應(yīng)用的變換表(置 換表)、在變換矩陣中應(yīng)用的數(shù)據(jù)等的保存區(qū)域而使用。此外, 數(shù)據(jù)保存區(qū)域優(yōu)選構(gòu)成為具有耐損害結(jié)構(gòu)的存儲器。
密碼處理部7 0 3例如按照共用密鑰塊密碼處理算法來執(zhí)行
密碼處理、解密處理,上述共用密鑰塊密碼處理算法應(yīng)用了上 述的各種密碼處理結(jié)構(gòu)、即
O)SPN(Substitution Permutation Network)結(jié)構(gòu)
(b) Feistel結(jié)構(gòu)
(c) 擴(kuò)展Feistel結(jié)構(gòu) 這些各結(jié)構(gòu)中的任一個(gè)結(jié)構(gòu)。
另外,密碼處理部703具有作為非線性變換處理部的 S-box,該非線性變換處理部具有與上述的各實(shí)施例對應(yīng)的結(jié) 構(gòu)、即與
(2A)在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中配置 兩種以上不同的S-box的結(jié)構(gòu)
(2B)在使用了 S-box的塊密碼中使兩種以上不同類型的 S-box共存的結(jié)構(gòu)
(2C)在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型密碼中 同時(shí)實(shí)現(xiàn)上述(2A)、 (2B)的結(jié)構(gòu)
這些結(jié)構(gòu)中的任一個(gè)對應(yīng)的結(jié)構(gòu)。
此外,在此示出了將密碼處理單元設(shè)為單獨(dú)模塊的例子, 但是也可以構(gòu)成為不設(shè)置這種獨(dú)立的密碼處理模塊,例如將密 碼處理程序保存在ROM中,由CPU 701讀取ROM保存程序來執(zhí)行。
隨機(jī)數(shù)產(chǎn)生器7()4執(zhí)行在密碼處理所需的密鑰的生成等中 成為必需的隨機(jī)數(shù)的產(chǎn)生處理。
發(fā)送接收部7 0 5是執(zhí)行與外部的數(shù)據(jù)通信的數(shù)據(jù)通信處理部,例如執(zhí)行與讀寫器等IC模塊之間的數(shù)據(jù)通信,執(zhí)行在IC模 塊內(nèi)生成的密文的輸出、或者來自外部讀寫器等設(shè)備的數(shù)據(jù)輸 入寺。
該IC模塊700具有按照上述實(shí)施例的作為非線性變換處理 部的S-box的排列,結(jié)果是具有
(2A)通過在使用了 S-box的Feistel或者擴(kuò)展Feistel型密碼中 配置兩種以上的不同的S-box來提高對飽和攻擊的抵抗性的結(jié) 構(gòu)
(2B)通過在使用了 S-box的塊密碼中使兩種以上不同的 S - b o x共存來提高對代數(shù)攻擊(X S L攻擊)的抵抗性的結(jié)構(gòu)
(2C)在使用了 S-box的Feistel密碼或者擴(kuò)展Feistel型密碼中 同時(shí)實(shí)現(xiàn)上述(2A)、 (2B)的結(jié)構(gòu)
這些結(jié)構(gòu)中的某一個(gè)結(jié)構(gòu),具有提高了對飽和攻擊、代數(shù) 攻擊(XSL攻擊)的抵抗性的結(jié)構(gòu)。
以上,參照特定的實(shí)施例詳細(xì)說明了本發(fā)明。然而,在不 脫離本發(fā)明的要旨的范圍內(nèi),本領(lǐng)域技術(shù)人員可進(jìn)行該實(shí)施例 的修改、代用是顯而易見的。即,以例示的方式公開了本發(fā)明, 并不是限定性地解釋本發(fā)明。為了判斷本發(fā)明的要旨,應(yīng)該參 考權(quán)利要求書的范圍一欄。
此外,在說明書中說明的一系列處理能夠通過硬件、或者 軟件、或者兩者的復(fù)合結(jié)構(gòu)來執(zhí)行。在通過軟件執(zhí)行處理的情 況下,能夠?qū)⒂涗浟颂幚眄樞虻某绦虬惭b到嵌入在專用硬件中 的計(jì)算機(jī)內(nèi)的存儲器中來執(zhí)行、或者將程序安裝到可執(zhí)行各種 處理的通用計(jì)算機(jī)中來執(zhí)行。
例如,能夠?qū)⒊绦蝾A(yù)先記錄在作為記錄介質(zhì)的硬盤、 ROM(Read Only Memory)中?;蛘?,能夠?qū)⒊绦驎簳r(shí)或永久性 地保存(記錄)在軟盤、CD-ROM(C疆pact Disc Read OnlyMemory: 光盤只讀存4諸器)、MO(Magneto optical:》茲光)盤、 DVD(Digital Versatile Disc:數(shù)字多功能光盤)、磁盤、半導(dǎo)體 存儲器等可移動(dòng)記錄介質(zhì)中。能夠?qū)⑦@種可移動(dòng)記錄介質(zhì)作為 所謂的封裝軟件進(jìn)行提供。
此外,除了將程序從如上所述的可移動(dòng)記錄介質(zhì)安裝到計(jì) 算機(jī)以外,還能夠從下載站點(diǎn)無線傳送到計(jì)算機(jī)、或者通過稱 為LAN(Local Area Network:局域網(wǎng))、因特網(wǎng)這種網(wǎng)絡(luò)來有線 傳送到計(jì)算機(jī),在計(jì)算機(jī)中接收這樣傳送過來的程序并安裝到 內(nèi)置的硬盤等記錄介質(zhì)中。
此外,不^又可以4姿照記載以時(shí)間序列執(zhí)行,也可以才艮據(jù)執(zhí) 行處理的裝置的處理能力或需要來并行或單獨(dú)地執(zhí)行說明書中 記載的各種處理。另外,在本說明書中系統(tǒng)是多個(gè)裝置的邏輯 集合結(jié)構(gòu),并不限于各結(jié)構(gòu)的裝置在同一殼體內(nèi)。
產(chǎn)業(yè)上的可利用性
如上所述,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在執(zhí)行共用 密鑰塊密碼處理的密碼處理裝置中,設(shè)為在設(shè)定于循環(huán)函數(shù)執(zhí) 行部中的作為非線性變換處理部的S盒中至少利用兩種以上多 個(gè)不同的S盒的結(jié)構(gòu)。根據(jù)本結(jié)構(gòu),能夠提高對飽和攻擊的抵 抗性。另外,根據(jù)作為S盒的類型而使不同類型的S盒共存的本 發(fā)明的 一 個(gè)實(shí)施例的結(jié)構(gòu),能夠提高對代數(shù)攻擊(X S L攻擊)的 抵抗性,從而實(shí)現(xiàn)安全性較高的密碼處理裝置。
權(quán)利要求
1. 一種密碼處理裝置,執(zhí)行密碼處理,其特征在于,具有密碼處理部,該密碼處理部進(jìn)行將循環(huán)函數(shù)反復(fù)多個(gè)循環(huán)的數(shù)據(jù)變換處理,上述密碼處理部是如下結(jié)構(gòu)在各循環(huán)中的循環(huán)函數(shù)執(zhí)行處理中,進(jìn)行應(yīng)用了S盒的非線性變換處理,進(jìn)行作為應(yīng)用于非線性變換處理的S盒而利用了至少兩種以上多個(gè)不同的S盒的處理。
2. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)執(zhí)行應(yīng)用了 Feistel結(jié)構(gòu)或者擴(kuò)展Feistel結(jié)構(gòu)的密碼處理, 其中,上述Feistel結(jié)構(gòu)將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為2,上述擴(kuò)展 Feistel結(jié)構(gòu)將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為2以上,進(jìn)行應(yīng)用了F函數(shù)的密碼處理,該F函數(shù)將在輸入數(shù)據(jù)序列 和輸出數(shù)據(jù)序列相同并且位于上下相鄰位置的、作為循環(huán)函數(shù) 執(zhí)行部的F函數(shù)中的非線性變換處理設(shè)定為執(zhí)行不同的非線性 變換處理的不同的S盒。
3. 根據(jù)權(quán)利要求2所述的密碼處理裝置,其特征在于, 作為上述循環(huán)函數(shù)執(zhí)行部的各F函數(shù)具有多個(gè)S盒,該多個(gè)S盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變換處 理,該多個(gè)S盒由至少兩種以上不同的S盒構(gòu)成。
4. 根據(jù)權(quán)利要求2所述的密碼處理裝置,其特征在于, 作為上述循環(huán)函數(shù)執(zhí)行部的各F函數(shù)具有多個(gè)S盒,該多個(gè)S盒對分割處理對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變換處 理,上述密碼處理部是如下結(jié)構(gòu)以各分割數(shù)據(jù)為單位,將輸入數(shù)據(jù)序列和輸出^t據(jù)序列相同并且位于上下相鄰位置的、作為循環(huán)函數(shù)執(zhí)行部的F函數(shù)中的非線性變換處理設(shè)定為執(zhí)行不同的非線性變換處理的不同的s盒。
5. 根據(jù)權(quán)利要求2所述的密碼處理裝置,其特征在于,類和各S盒的數(shù)量在各F函數(shù)中是相同的設(shè)定。
6. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)作為應(yīng)用于上述非線性變換處理的具有s比特的輸入輸出 的不同的S盒,利用如下(1) (3)三種類型的S盒中至少兩種以上 不同類型的S盒(1) 類型l:利用了擴(kuò)展域GF(2S)上的逆映射Y=X—'或者冪 函數(shù)Y:xq的S盒;(2) 類型2:組合多個(gè)t-bit的較小的S-box而制作出的S盒, 其中,i殳為Ks;以及(3) 類型3:隨機(jī)選擇的S盒。
7. 根據(jù)權(quán)利要求6所述的密碼處理裝置,其特征在于, 上述密碼處理部是應(yīng)用于上述循環(huán)函數(shù)的執(zhí)行的S盒具有如下(a) (d)中的任一個(gè)的結(jié)構(gòu)(a) 將 一 部分設(shè)為類型1的S盒,將其它設(shè)為類型2的S盒的結(jié)構(gòu);(b) 將一部分設(shè)為類型1的S盒,將其它設(shè)為類型3的S盒的結(jié)構(gòu);(c) 將一部分設(shè)為類型2的S盒,將其它設(shè)為類型3的S盒的結(jié) 構(gòu);以及(d) 將一部分設(shè)為類型1的S盒,將另 一部分設(shè)為類型2的S 盒,將其它設(shè)為類型3的S盒的結(jié)構(gòu)。
8. 根據(jù)權(quán)利要求6所述的密碼處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)在循環(huán)函數(shù)執(zhí)行部內(nèi)具有多個(gè)S盒,該多個(gè)S盒對分割處理 對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變換處理,在一個(gè)循環(huán)中利用 一種類型的S盒,以循環(huán)為單位執(zhí)行利 用了不同類型的S盒的處理。
9. 根據(jù)權(quán)利要求6所述的密碼處理裝置,其特征在于, 上述密碼處理部是如下結(jié)構(gòu)在循環(huán)函數(shù)執(zhí)行部內(nèi)具有多個(gè)S盒,該多個(gè)S盒對分割處理 對象數(shù)據(jù)得到的各分割數(shù)據(jù)執(zhí)行非線性變換處理, 在一個(gè)循環(huán)內(nèi)利用多個(gè)類型的S盒。
10. 根據(jù)權(quán)利要求9所述的密碼處理裝置,其特征在于, 包含在各上述循環(huán)函數(shù)執(zhí)行部中的S盒的種類和各S盒的數(shù)量在各F函數(shù)中是相同的設(shè)定。
11. 根據(jù)權(quán)利要求1 10中的任一項(xiàng)所述的密碼處理裝置, 其特征在于,上述密碼處理部是執(zhí)行按照共用密鑰密碼方式的密碼處理 的結(jié)構(gòu)。
12. 根據(jù)權(quán)利要求1 10中的任一項(xiàng)所述的密碼處理裝置, 其特征在于,上述密碼處理部是執(zhí)行按照共用密鑰塊密碼方式的密碼處 理的結(jié)構(gòu)。
13. —種密碼處理方法,在密碼處理裝置中執(zhí)行密碼處理, 該密碼處理方法的特征在于,具有密碼處理步驟,該密碼處理步驟在密碼處理部中進(jìn)行 將循環(huán)函數(shù)反復(fù)多個(gè)循環(huán)的數(shù)據(jù)變換處理, 上述密碼處理步驟是如下步驟在各循環(huán)中的循環(huán)函數(shù)執(zhí)行處理中進(jìn)行應(yīng)用了 s盒的非線 性變換處理,進(jìn)行作為應(yīng)用于該非線性變換處理的s盒而利用 了至少兩種以上的多個(gè)不同的s盒的處理。
14. 根據(jù)權(quán)利要求13所述的密碼處理方法,其特征在于, 上述密碼處理步驟執(zhí)行按照共用密鑰密碼方式或者共用密鑰塊密碼方式的密碼處理。
15. —種計(jì)算機(jī)程序,使密碼處理裝置執(zhí)行密碼處理,其 特征在于,具有密碼處理步驟,該密碼處理步驟使密碼處理部進(jìn)行將 循環(huán)函數(shù)反復(fù)多個(gè)循環(huán)的數(shù)據(jù)變換處理, 上述密碼處理步驟是如下步驟在各循環(huán)中的循環(huán)函數(shù)執(zhí)行處理中,進(jìn)行應(yīng)用了 S盒的非 線性變換處理,進(jìn)行作為應(yīng)用于該非線性變換處理的S盒而利 用了至少兩種以上的多個(gè)不同的S盒的處理。
16. 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)程序,其特征在于, 上述密碼處理步驟執(zhí)行按照共用密鑰密碼方式或者共用密鑰塊密碼方式的密碼處理。
全文摘要
實(shí)現(xiàn)一種提高了對飽和攻擊、代數(shù)攻擊(XSL攻擊)等攻擊的抵抗性的共用密鑰塊密碼處理結(jié)構(gòu)。在執(zhí)行共用密鑰塊密碼處理的密碼處理裝置中,設(shè)為在設(shè)定于循環(huán)函數(shù)執(zhí)行部中的作為非線性變換處理部的S盒中至少利用了兩種以上多個(gè)不同的S盒的結(jié)構(gòu)。根據(jù)本結(jié)構(gòu),能夠提高對飽和攻擊的抵抗性。另外,作為S盒的類型使不同類型的S盒共存。根據(jù)本結(jié)構(gòu),能夠提高對代數(shù)攻擊(XSL攻擊)的抵抗性,實(shí)現(xiàn)安全性較高的密碼處理裝置。
文檔編號G09C1/00GK101536062SQ20078004080
公開日2009年9月16日 申請日期2007年8月29日 優(yōu)先權(quán)日2006年9月1日
發(fā)明者澀谷香士, 白井太三, 盛合志帆, 秋下徹 申請人:索尼株式會社