專利名稱:密碼處理裝置和密碼處理方法、以及計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密碼處理裝置和密碼處理方法、以及計(jì)算
機(jī)程序。更詳細(xì)的說,涉及一種執(zhí)4于Feistel型共用密鑰塊密碼 處理的密碼處理裝置和密碼處理方法、以及計(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ù)的加密、 解密。
在密碼處理算法中存在各種算法,大致分類為公開密鑰密 碼方式和共用密鑰密碼方式,其中,上述公開密鑰密碼方式將 加密密鑰和解密密鑰i殳定為不同的密鑰、例如7>開密鑰和私人 密鑰,上述共用密鑰密碼方式將加密密鑰和解密密鑰設(shè)定為共 用的密鑰。
在共用密鑰密碼方式中也存在各種算法,其中之一是如下 方式以共用密鑰為基礎(chǔ)生成多個(gè)密鑰,使用所生成的多個(gè)密 鑰來反復(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))算法、現(xiàn)在作為美國(guó)標(biāo)準(zhǔn)密碼的AES(Advanced Encryption Standard:高級(jí)加密標(biāo)準(zhǔn))算法等。這種共用密鑰塊密碼的算法主要由循環(huán)函數(shù)部和密鑰調(diào)度 部構(gòu)成,其中,上述循環(huán)函數(shù)部具有反復(fù)執(zhí)行輸入數(shù)據(jù)的變換 的F函數(shù)部,上述密鑰調(diào)度部生成在循環(huán)函數(shù)部的各循環(huán)的F函 數(shù)部中應(yīng)用的循環(huán)密鑰。密鑰調(diào)度部根據(jù)作為私人密鑰的主密 鑰(Master key)首先生成增加了比特?cái)?shù)的擴(kuò)展密鑰,根據(jù)所生成 的擴(kuò)展密鑰生成在循環(huán)函數(shù)部的各循環(huán)的F函數(shù)部中應(yīng)用的循 環(huán)密鑰(副密鑰)。作為執(zhí)行應(yīng)用了這種循環(huán)函數(shù)(F函數(shù))的算法的具體結(jié)構(gòu), 已知有Feistel結(jié)構(gòu)。Feistel結(jié)構(gòu)具有如下結(jié)構(gòu)通過作為數(shù)據(jù) 變換函數(shù)的循環(huán)函數(shù)(F函數(shù))的簡(jiǎn)單反復(fù),將明文變換為密文。 作為記載有應(yīng)用了 Feistel結(jié)構(gòu)的密碼處理的文獻(xiàn),例如存在非 專利文獻(xiàn)l、非專利文獻(xiàn)2。但是,作為應(yīng)用該Feistel結(jié)構(gòu)的共用密鑰塊密碼處理的問 題點(diǎn),存在由密碼分析引起的密鑰泄漏。作為密碼分析或攻擊 方法的代表性方法,已知有差分分析(也稱為差分解讀法或者差 分攻擊)、線性分析(也稱為線性解讀法或者線性攻擊),其中, 上述差分分析通過分析多個(gè)具有某個(gè)差分的輸入數(shù)據(jù)(明文)及 其輸出數(shù)據(jù)(密文)來分析各循環(huán)函數(shù)中的應(yīng)用密鑰,上述線性 分析進(jìn)行基于明文和對(duì)應(yīng)的密文的分析。利用密碼分析容易進(jìn)行密鑰的分析導(dǎo)致該密碼處理的安全 性較低。在以往的密碼算法中,由于在循環(huán)函數(shù)(F函數(shù))部的線易進(jìn)行分析,結(jié)果是導(dǎo)致容易分析密鑰。作為應(yīng)對(duì)這種問題的結(jié)構(gòu),提出了如下結(jié)構(gòu)在Feistel結(jié) 構(gòu)的循環(huán)函數(shù)(F函數(shù))部的線性變換部中配置兩個(gè)以上不同的矩陣使得在每個(gè)循環(huán)中進(jìn)行切換。該技術(shù)被稱為擴(kuò)散矩陣切換機(jī)構(gòu)(DSM: Diffusion Switching Mechanism,以下為DSM)。通 過該DSM能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。例如專利 文獻(xiàn)l中記載有應(yīng)用了該擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的密碼處理 結(jié)構(gòu)。但是,在執(zhí)行應(yīng)用了擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的密碼處理 的情況下,需要安裝設(shè)定了不同矩陣的不同的循環(huán)函數(shù)(F函 數(shù)),還需要預(yù)先決定多個(gè)循環(huán)函數(shù)并按照順序進(jìn)行切換,需要 設(shè)置新的控制機(jī)構(gòu),在構(gòu)成密碼處理裝置的情況下,所需的結(jié) 構(gòu)增加,妨礙裝置的小型化并使成本增加。另外,還存在伴隨 切換控制而處理速度降低這種問題。專利文獻(xiàn)l:日本特開2006-72054號(hào)非專利文獻(xiàn)l: K. Nyberg, "Generalized Feistel networks", ASIACRYPT,96, Springer Verlag, 1996, pp.91 — 104.非專利文獻(xiàn)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)而完成的,其目的在于提供一種 改良密碼處理結(jié)構(gòu)、能夠不增加安裝成本而執(zhí)行高速的密碼處 理的密碼處理裝置和密碼處理方法、以及計(jì)算機(jī)程序,其中, 上述密碼處理結(jié)構(gòu)應(yīng)用了對(duì)Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù))部 的線性變換部配置兩個(gè)以上不同的矩陣使得在每個(gè)循環(huán)中進(jìn)行 切換的擴(kuò)散矩陣切換機(jī)構(gòu)(D S M)。用于解決問題的方案本發(fā)明的第一側(cè)面是一種密碼處理裝置,執(zhí)行Feistel型共 用密鑰塊密碼處理,其特征在于,具有數(shù)據(jù)處理部,其選#^生地應(yīng)用至少兩種以上不同的F函數(shù) 作為循環(huán)函數(shù)來執(zhí)行多個(gè)循環(huán)的循環(huán)運(yùn)算;以及存儲(chǔ)器,其保存有多個(gè)F函數(shù)對(duì)應(yīng)表,該多個(gè)F函數(shù)對(duì)應(yīng)表 使分別與上述兩種以上不同的F函數(shù)對(duì)應(yīng)的輸入值與輸出值或 中間值相對(duì)應(yīng),其中,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)按照預(yù)先規(guī)定的密碼 處理順序獲取與在各循環(huán)中應(yīng)用的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表 的存取用地址,通過應(yīng)用了獲取地址的存儲(chǔ)器存取,讀入與各 循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值 的輸出值或中間值來得至'〗按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行按照Feistel結(jié)構(gòu)的 密碼處理,該Feistel結(jié)構(gòu)具有選性地應(yīng)用至少兩個(gè)以上不同 的F函數(shù)的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM : Diffusion Switching Mechanism),設(shè)定至少兩個(gè)以上不同的矩陣作為應(yīng)用于各循環(huán) 的F函數(shù)中的線性變換處理的變換矩陣來得到至少兩個(gè)以上不 同的F函H。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行基于Feistel結(jié)構(gòu)的 密碼處理,該Feistel結(jié)構(gòu)按照將密碼處理對(duì)象數(shù)據(jù)進(jìn)行二分割 的數(shù)據(jù)序列數(shù)(分割數(shù))(1=2的設(shè)定來執(zhí)行密碼處理。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu),執(zhí)行基于擴(kuò)展型Feistel 結(jié)構(gòu)的密碼處理,該擴(kuò)展型Feistel結(jié)構(gòu)按照將密碼處理對(duì)象數(shù)據(jù)分割為三個(gè)以上的數(shù)據(jù)序列數(shù)(分割數(shù))d ^ 3的設(shè)定來執(zhí)行密 碼處理。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行預(yù)先設(shè)定的密碼函 數(shù),在執(zhí)行該密碼函數(shù)時(shí),在每個(gè)循環(huán)中適當(dāng)?shù)厍袚Q與在各循 環(huán)中應(yīng)用的F函^t對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表的存耳又用地址,讀入與各 循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值 的輸出值或中間值來得至'J按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。并且,在本發(fā)明的密碼處理裝置的一個(gè)實(shí)施方式中,其特 征在于,上述存儲(chǔ)器是如下結(jié)構(gòu)保存有F函數(shù)對(duì)應(yīng)表,該F函的輸出值或中間值或它們的結(jié)構(gòu)數(shù)據(jù)相對(duì)應(yīng)。并且,本發(fā)明的第二側(cè)面是一種密碼處理方法,在密碼處 理裝置中執(zhí)行Feistel型共用密鑰塊密碼處理,該密碼處理方法 的特征在于,具有數(shù)據(jù)處理步驟,該數(shù)據(jù)處理步驟在數(shù)據(jù)處理部中選擇 性地應(yīng)用至少兩種以上不同的F函數(shù)作為循環(huán)函數(shù)來執(zhí)行多個(gè) 循環(huán)的循環(huán)運(yùn)算,其中,上述數(shù)據(jù)處理步驟具有以下步驟按照預(yù)先規(guī)定的密碼處理順序獲取與在各循環(huán)中應(yīng)用的F 函數(shù)對(duì)應(yīng)的F函凄t對(duì)應(yīng)表的存取用地址;執(zhí)行應(yīng)用了上述獲取地址的存儲(chǔ)器存取,從保存有多個(gè)F 函數(shù)對(duì)應(yīng)表的存儲(chǔ)器中讀入與各循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì) 應(yīng)表,其中,上述多個(gè)F函數(shù)對(duì)應(yīng)表使分別與上述兩種以上不參照從存儲(chǔ)器中讀入的表,獲取對(duì)于F函數(shù)輸入值的輸出 值或中間值來得S 'J按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。并且,本發(fā)明的第三側(cè)面是一種計(jì)算機(jī)程序,使密碼處理裝置執(zhí)行Feistel型共用密鑰塊密碼處理,該計(jì)算機(jī)程序的特征 在于,具有數(shù)據(jù)處理步驟,該數(shù)據(jù)處理步驟使數(shù)據(jù)處理部選擇'l"生環(huán)的循環(huán)運(yùn)算,上述數(shù)據(jù)處理步驟執(zhí)行如下步驟按照預(yù)先規(guī)定的密碼處理順序獲取與在各循環(huán)中應(yīng)用的F 函凄t對(duì)應(yīng)的F函凝:對(duì)應(yīng)表的存耳又用地址;執(zhí)行應(yīng)用了上述獲取地址的存儲(chǔ)器存取,從保存有多個(gè)F 函數(shù)對(duì)應(yīng)表的存儲(chǔ)器中讀入與各循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì) 應(yīng)表,其中,上述多個(gè)F函數(shù)對(duì)應(yīng)表使分別與上述兩種以上不參照從存儲(chǔ)器中讀入的表,獲取對(duì)于F函數(shù)輸入值的輸出 值或中間值來獲取按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。此外,本發(fā)明的計(jì)算機(jī)程序例如是能夠通過以計(jì)算機(jī)可讀 形式提供的存儲(chǔ)介質(zhì)、通信介質(zhì)、例如CD、 FD、 MO等記錄介 質(zhì)、或者網(wǎng)絡(luò)等通信介質(zhì)對(duì)可執(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)會(huì)更明確。此外,在 本說明書中系統(tǒng)是指多個(gè)裝置的邏輯集合結(jié)構(gòu),不限于各結(jié)構(gòu) 的裝置存在于同一殼體內(nèi)。發(fā)明的效果根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在通過選擇性地應(yīng)用了 至少兩種以上不同的F函數(shù)作為循環(huán)函數(shù)的循環(huán)運(yùn)算執(zhí)行密碼處理的結(jié)構(gòu)中,在存儲(chǔ)器中保存使對(duì)應(yīng)于各F函數(shù)的輸入值與輸出值或中間值相對(duì)應(yīng)的多個(gè)F函數(shù)對(duì)應(yīng)表,按照預(yù)先規(guī)定的 密碼處理順序,應(yīng)用與各循環(huán)的F函數(shù)對(duì)應(yīng)的表存取用地址從 存儲(chǔ)器中讀入F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值的輸 出值或中間值來得到按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。根據(jù)本結(jié)能夠高效率地獲取或者算出與輸入值對(duì)應(yīng)的輸出值。例如,應(yīng) 用一個(gè)密碼函數(shù),僅改變自變量就能夠執(zhí)行各種密碼處理。
圖l是說明Feistel結(jié)構(gòu)的基本結(jié)構(gòu)的圖。 圖2是說明被設(shè)定為循環(huán)函數(shù)部的F函數(shù)的結(jié)構(gòu)的圖。 圖3是表示將循環(huán)數(shù)設(shè)為r的SPN型Feistel結(jié)構(gòu)例的圖。 圖4是表示實(shí)現(xiàn)了對(duì)各循環(huán)的循環(huán)函數(shù)(F函數(shù))的線性變換層配置兩個(gè)不同的線性變換矩陣Mo、 JV^的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的Feistel結(jié)構(gòu)例的圖。圖5是表示應(yīng)用了三個(gè)矩陣Mo、 Mp M2的Feistel結(jié)構(gòu)例的圖。圖6是表示具有采用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展型 Feistel結(jié)構(gòu)(GFN)的加密函數(shù)的結(jié)構(gòu)例的圖。圖7是說明用于根據(jù)F函數(shù)的輸入來求出輸出的表結(jié)構(gòu)的圖。圖8是說明利用了與多個(gè)不同的循環(huán)函數(shù)(F函數(shù))對(duì)應(yīng)的多 個(gè)表的密碼處理結(jié)構(gòu)的圖。圖9是對(duì)為了實(shí)現(xiàn)利用了與多個(gè)不同的循環(huán)函數(shù)(F函數(shù))對(duì) 應(yīng)的多個(gè)表的密碼處理結(jié)構(gòu)而保存在存儲(chǔ)器中的表進(jìn)行說明的 圖。圖IO是表示作為執(zhí)行本發(fā)明所涉及的密碼處理的密碼處理裝置的IC模塊的結(jié)構(gòu)例的圖。
具體實(shí)施方式
下面,詳細(xì)說明本發(fā)明的密碼處理裝置和密碼處理方法、 以及計(jì)算機(jī)程序。按照以下項(xiàng)目進(jìn)行說明。1. SPN型Feistel結(jié)構(gòu)2. 針對(duì)具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的擴(kuò)散矩陣切換 機(jī)構(gòu)(DSM)的i殳定結(jié)構(gòu)3. 針對(duì)擴(kuò)展型Feistel結(jié)構(gòu)(GFN : Generalized Feistel Network(廣義Feistel網(wǎng)絡(luò)))的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的設(shè)定 結(jié)構(gòu)4. 利用應(yīng)用了不同的線性變換矩陣的不同循環(huán)函數(shù)的表 安裝的處理結(jié)構(gòu)5. 密碼處理裝置的結(jié)構(gòu)例 [1. SPN型Feistel結(jié)構(gòu)]首先,"i兌明SPN(Substitution Permutation Network: 置換組 合網(wǎng)路)型Feistel結(jié)構(gòu)。作為共用密鑰塊密碼的設(shè)計(jì)而已知的 Feistel結(jié)構(gòu)具有如下結(jié)構(gòu)通過被稱為循環(huán)函數(shù)的基本處理單 位的反復(fù),將明文變換為密文。參照?qǐng)Dl,說明Feistel結(jié)構(gòu)的基本結(jié)構(gòu)。圖l示出了具有r循 環(huán)的循環(huán)數(shù)=1*的、具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的例子。此 外,循環(huán)數(shù)r是在設(shè)計(jì)階段決定的參數(shù),例如是能夠根據(jù)輸入的 密鑰的長(zhǎng)度而變更的值。在圖l所示的Feistel結(jié)構(gòu)中,將作為加密對(duì)象而被輸入的明 文的長(zhǎng)度設(shè)為2mn比特。其中,m、 n都是整數(shù)。首先,將2mn 比特的明文分割為mn比特的兩個(gè)輸入^t據(jù)P
101、 P[l] 102,將其作為輸入值。圖示的例子是將輸入值進(jìn)行二分割的結(jié)構(gòu), 是數(shù)據(jù)序列數(shù)(分割數(shù))=2的結(jié)構(gòu)例。Feistel結(jié)構(gòu)通過被稱為循環(huán)函數(shù)的基本處理單位的反復(fù)來 表現(xiàn),包含在各循環(huán)中的數(shù)據(jù)變換函數(shù)被稱為循環(huán)函數(shù)(F函 數(shù))120。在圖l的結(jié)構(gòu)中,示出反復(fù)進(jìn)行了r級(jí)循環(huán)函數(shù)120的結(jié) 構(gòu)例。例如在第一循環(huán)中,對(duì)F函數(shù)120輸入mn比特的輸入數(shù)據(jù)X 和從未圖示的密鑰調(diào)度部(密鑰生成部)輸入的m n比特的循環(huán)密 鑰RId 103。在循環(huán)函數(shù)(F函數(shù))120中的數(shù)據(jù)變換處理之后輸出 mn比特的數(shù)據(jù)Y。輸出與來自另 一方的前級(jí)的輸入數(shù)據(jù)(第一級(jí) 的情況下是輸入數(shù)據(jù)PO在異或部104中進(jìn)行異或運(yùn)算,并向下 一個(gè)循環(huán)函數(shù)輸出mn比特的運(yùn)算結(jié)果。僅反復(fù)應(yīng)用該處理、即 循環(huán)函數(shù)(F函數(shù))決定的循環(huán)數(shù)(r)來完成加密處理,輸出密文的 分割數(shù)據(jù)C[O]、 C[l]。在各循環(huán)中執(zhí)行的循環(huán)函數(shù)(F函數(shù))是相 同結(jié)構(gòu)的Feistel結(jié)構(gòu)的解密處理僅將插入循環(huán)密鑰的順序設(shè)為 相反即可,不需要構(gòu)成反函數(shù)。參照?qǐng)D2說明被設(shè)定為各循環(huán)的函數(shù)的循環(huán)函數(shù)(F函 數(shù))120的結(jié)構(gòu)。圖2的(a)是表示對(duì)于一個(gè)循環(huán)中的循環(huán)函數(shù)(F 函數(shù))120的輸入和輸出的圖,圖2的(b)是表示循環(huán)函數(shù)(F函 數(shù))120的詳細(xì)結(jié)構(gòu)的圖。如圖2的(b)所示,循環(huán)函數(shù)(F函數(shù))120 具有連接了非線性變換層(S層)和線性變換層(P層)的、所謂SP 型的結(jié)構(gòu)。圖2所示的循環(huán)函數(shù)(F函數(shù))120是具有輸入輸出比特長(zhǎng)為 mxn(m、 n:整數(shù))比特的設(shè)定的函數(shù)。在SP型F函數(shù)內(nèi)部首先執(zhí) 行密鑰數(shù)據(jù)Ki與數(shù)據(jù)Xi之間的異或,接著應(yīng)用非線性變換層(S 層),接下來應(yīng)用線性變換層(P層)。具體地說,非線性變換層(S層)排列了 m個(gè)被稱為S盒(S-box)121的n比特輸入n比特輸出的非線性變換表,以每n比特 分割mn比特的數(shù)據(jù)并分別輸入到對(duì)應(yīng)的S盒(S-box)121中來變 換數(shù)據(jù)。在各S盒中,例如執(zhí)行應(yīng)用了變換表的非線性變換處 理。線性變換層(P層)由線性變換部122構(gòu)成,線性變換部122輸 入來自S盒121的作為輸出數(shù)據(jù)的mn比特的輸出值Z,對(duì)該輸入 實(shí)施線性變換并輸出m n比特的結(jié)果。線性變換部12 2執(zhí)行輸入 比特位置的替換處理等線性變換處理,輸出m n比特的輸出值Y 。 該輸出值Y與來自前級(jí)的輸入數(shù)據(jù)進(jìn)行異或,成為下 一 個(gè)循環(huán) 的F函lt的llT入^f直。此外,在下面說明的本實(shí)施例的結(jié)構(gòu)中,將在作為線性變 換層(P層)的線性變換部122中執(zhí)行的線性變換定義為應(yīng)用在 GF(2"上定義的mnxmn的矩陣來進(jìn)行的線性變換,另外,將包 含在第i次循環(huán)中的矩陣稱為Mi。設(shè)為循環(huán)數(shù)r的SPN型Feistel結(jié)構(gòu)為如圖3所示的結(jié)構(gòu)。 n-bit的明文P被二等分為P[O]與P[l],對(duì)P
應(yīng)用輸入了循環(huán)密 鑰RId的循環(huán)函數(shù)F(j ,執(zhí)行其結(jié)果與P[l]之間的異或運(yùn)算 (EXOR)。將異或運(yùn)算的結(jié)果設(shè)為下一個(gè)循環(huán)的左輸入,將P[O] 設(shè)為下 一 個(gè)循環(huán)的右輸入。之后反復(fù)應(yīng)用循環(huán)函數(shù)規(guī)定的次數(shù) (r次)來得到最終輸出C。該結(jié)構(gòu)為在所有循環(huán)中循環(huán)函數(shù)(F函 數(shù))都相同的結(jié)構(gòu)。在循環(huán)函數(shù)F。內(nèi),首先進(jìn)行輸入到循環(huán)函數(shù)的數(shù)據(jù)與循環(huán) 密鑰之間的異或運(yùn)算(EXOR)。將其結(jié)果設(shè)為X(n/2-bit)。 X被分 割為m個(gè)s-bit數(shù)據(jù)。將其分別設(shè)為x!,X2,…,Xm(X氣xJ |x2| |… llxm))。此外,al lb表示a和b的連接數(shù)據(jù)。各分割數(shù)據(jù)Xi被分別輸入到s-bit輸入輸出的非線性變換S 、 即S盒(S—box)中。將S—box的輸出分另'J設(shè)為z!,Z2,…,zmZ進(jìn)一步被輸入到線性變換部,實(shí)施應(yīng)用了mxm矩陣Mo的矩陣運(yùn)算,得到最終輸出Y。這樣,F(xiàn)eistel結(jié)構(gòu)具有如下結(jié)構(gòu)通過作為數(shù)據(jù)變換函數(shù) 的循環(huán)函數(shù)(F函數(shù))的簡(jiǎn)單反復(fù),將明文變換為密文。但是,作 為應(yīng)用該Feistel結(jié)構(gòu)的共用密鑰塊密碼處理的問題點(diǎn),存在由 密碼分析引起的密鑰泄漏。例如,有可能利用差分分析(也稱為 差分解讀法或差分攻擊)、線性分析(也稱為線性解讀法或線性 攻擊)進(jìn)行分析,其中,上述線性分析進(jìn)行基于明文和對(duì)應(yīng)的密 文的分析。利用密碼分析容易進(jìn)行密鑰的分析導(dǎo)致該密碼處理 的安全性4交低。[2.針對(duì)具有兩個(gè)數(shù)據(jù)序列的Feistel結(jié)構(gòu)的擴(kuò)散矩陣切換 機(jī)構(gòu)(DSM)的設(shè)定結(jié)構(gòu)]如上所說明的那樣,提出了如下結(jié)構(gòu)在應(yīng)用了Feistel結(jié) 構(gòu)的密碼處理中,應(yīng)用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM: Diffusion Switching Mechanism,以下為DSM)作為提高對(duì)差分攻擊、線性 攻擊的抵抗性的結(jié)構(gòu)。例如在日本特開2006-72054號(hào)中記載有 應(yīng)用了該擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的密碼處理結(jié)構(gòu)。DSM是如 下結(jié)構(gòu)不是將在Feistel結(jié)構(gòu)的循環(huán)函數(shù)(F函數(shù))部的線性變換 部中應(yīng)用的矩陣設(shè)為在所有循環(huán)中都相同,而是對(duì)各循環(huán)配置 至少兩個(gè)以上不同的矩陣。利用該DSM能夠4是高對(duì)差分攻擊、 線性攻擊的抵抗性。對(duì)該DSM說明其概要。在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、圖3所示那樣的r循環(huán)的Feistel結(jié)構(gòu)的各循環(huán)中的應(yīng) 用矩陣全部設(shè)定為相同的線性變換矩陣,而是按照特定的規(guī)貝'J 排列至少兩種以上的矩陣。例如,在圖4中示出實(shí)現(xiàn)了對(duì)各循環(huán)的循環(huán)函數(shù)(F函數(shù))的 線性變換層配置了兩個(gè)不同的線性變換矩陣M 。 、 M,的擴(kuò)散矩陣 切換機(jī)構(gòu)(DSM)的Feistel結(jié)構(gòu)例。在圖4所示的Feistel結(jié)構(gòu)例中,
F函數(shù)F。示出執(zhí)行應(yīng)用了線性變換矩陣Mo的線性變換處理 的循環(huán)函lt(F函數(shù))、
F函數(shù)Fi示出執(zhí)行應(yīng)用了線性變換矩陣Mi的線性變換處理 的循環(huán)函數(shù)(F函數(shù))。
兩個(gè)線性變換矩陣M。、 Mi由不同的矩陣構(gòu)成。
此外,為了實(shí)現(xiàn)擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),所應(yīng)用的矩陣 需要滿足規(guī)定的條件。該條件之一是關(guān)于分支數(shù)(Branch)的限 制。下面,說明該限制。
同的矩陣Mo M。各自的分支數(shù)中,將
應(yīng)用矩陣中的分支數(shù)的最小值B,、
與所應(yīng)用的多個(gè)矩陣的關(guān)聯(lián)矩陣對(duì)應(yīng)的分支數(shù)的最小值
R D R D R L
如下這樣進(jìn)行定義。 式l
6f) =min(Sra"c/ (Af,))
召f = min(S匿/^訊I Mi+21碼+4])) 8〖=min(腸"c/ "(卩A/「H12])) 在上述表達(dá)式中,
Mi表示應(yīng)用于Feistel結(jié)構(gòu)中的第i循環(huán)的線性變換處理的線性變換矩陣,表示通過連接MilMi+2 1 ..各矩陣而得到的關(guān)聯(lián)
矩陣,
tM表示矩陣M的轉(zhuǎn)置矩陣,M"表示矩陣M的逆矩陣。 具體地說,在上述表達(dá)式中B2D、 B3D、 B^表示矩陣的分 支數(shù)的最小值,該矩陣為關(guān)聯(lián)包含在Feistel結(jié)構(gòu)的一個(gè)數(shù)據(jù)序 列中連續(xù)的兩個(gè)循環(huán)或者三個(gè)循環(huán)的F函數(shù)中的矩陣而得到的 矩陣。
例如,已知通過設(shè)定各矩陣使上述各分支數(shù)滿足以下條件、 即滿足
B2D^3、 B3D23、 B2L>3
上述條件,在Feistel結(jié)構(gòu)中能夠提高對(duì)差分攻擊、線性攻 擊的抵抗性。
此外,B,、 B2D、 B3D、 B 中的各上下標(biāo)具有以下的意思。
BnD的n表示關(guān)聯(lián)的矩陣數(shù),B 的D表示用于具有對(duì)差分攻 擊(Differential Attack)的抵抗性的條件,B^的L表示用于具有對(duì) 線性攻擊(Linear Attack)的抵抗性的條件。
這樣,通過應(yīng)用對(duì)各循環(huán)的循環(huán)函數(shù)(F函數(shù))的線性變換層 配置兩個(gè)以上不同的線性變換矩陣的擴(kuò)散矩陣切換機(jī)構(gòu) (DSM),能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。
在圖4所示的結(jié)構(gòu)中,應(yīng)用兩個(gè)不同的矩陣Mo、 Mn是由 執(zhí)行應(yīng)用了線性變換矩陣Mo的線性變換處理的循環(huán)函數(shù)(F函 數(shù))Fo與執(zhí)行應(yīng)用了線性變換矩陣M!的線性變換處理的循環(huán)函 數(shù)(F函數(shù))F!構(gòu)成的Feistel結(jié)構(gòu),但是,所應(yīng)用的不同的線性變 換矩陣數(shù)不限于兩種,能夠設(shè)為應(yīng)用三、四..種矩陣的結(jié)構(gòu)。
圖5示出應(yīng)用了三個(gè)矩陣Mo、 Mp M2的Feistel結(jié)構(gòu)例。在 圖5所示的Feistel結(jié)構(gòu)例中,F(xiàn)函數(shù)F。表示執(zhí)行應(yīng)用了線性變換矩陣Mo的線性變換處理 的循環(huán)函數(shù)(F函凄史),
F函數(shù)Fi表示執(zhí)行應(yīng)用了線性變換矩陣M,的線性變換處理 的循環(huán)函數(shù)(F函數(shù)),
F函數(shù)F2表示執(zhí)行應(yīng)用了線性變換矩陣M2的線性變換處理 的循環(huán)函數(shù)(F函數(shù))。
三個(gè)線性變換矩陣M。、 Mp M2由不同的矩陣構(gòu)成。
數(shù))的線性變換層配置執(zhí)行不同的線性變換處理的多個(gè)不同的 線性變換矩陣M。、 Mp "來執(zhí)行循環(huán)函數(shù),利用該結(jié)構(gòu)能夠提 高對(duì)差分攻擊、線性攻擊的抵抗性。
接著,說明擴(kuò)展型Feistel結(jié)構(gòu)(GFN: Generalized Feistel Network)。參照?qǐng)D1 圖5說明的Feistel結(jié)構(gòu)是將輸入數(shù)據(jù)P分割 為兩個(gè)數(shù)據(jù)序列P[O]、 P[l]來執(zhí)行處理的結(jié)構(gòu)。將輸入數(shù)據(jù)的分 割數(shù)稱為數(shù)據(jù)序列數(shù)(分割數(shù))。參照?qǐng)D1 圖5說明的Feistel結(jié)構(gòu) 是數(shù)據(jù)序列數(shù)(分割數(shù))d=2的設(shè)定。
在應(yīng)用了Feistel結(jié)構(gòu)的密碼處理中,可以將數(shù)據(jù)序列數(shù)(分 割數(shù))d設(shè)定為3以上的數(shù),將數(shù)據(jù)序列數(shù)(分割數(shù))設(shè)為3以上的 任意數(shù)d的Feistel結(jié)構(gòu)定義為擴(kuò)展型Feistel結(jié)構(gòu)(GFN : Generalized Feistel Network)。在這種擴(kuò)展型Feistel結(jié)構(gòu)(GFN) 中也能夠應(yīng)用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM),通過應(yīng)用擴(kuò)散矩陣切 換機(jī)構(gòu)(D S M)能夠提高對(duì)密碼攻擊的抵抗性。
圖6示出具有采用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展型 Feistel結(jié)構(gòu)(GFN)的加密函數(shù)的結(jié)構(gòu)例。圖6所示的例子是將數(shù) 據(jù)序列數(shù)(分割數(shù))d設(shè)為d=4的具有擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展型Feistel結(jié)構(gòu)(GFN)的加密函數(shù)的結(jié)構(gòu)例。
如上所述,將具有擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展型
性變換部配置兩種以上不同的矩陣使得在每個(gè)循環(huán)中進(jìn)行切換 的結(jié)構(gòu)。利用DSM能夠提高對(duì)差分攻擊、線性攻擊的抵抗性。 圖6所示的例子為如下結(jié)構(gòu)在F函數(shù)Fo與F函數(shù)Fi中分別執(zhí)行應(yīng) 用了不同的線性變換矩陣的數(shù)據(jù)變換。此外,通過將在這些F 函數(shù)中應(yīng)用的線性變換矩陣設(shè)定為滿足某個(gè)特定條件的矩陣, 能夠大幅提高對(duì)差分攻擊、線性攻擊的抵抗性。關(guān)于該結(jié)構(gòu), 在本申請(qǐng)人之前^是出申請(qǐng)的日本特愿2006-206376號(hào)中詳細(xì)地
進(jìn)行了說明。
在圖6所示的加密函數(shù)的結(jié)構(gòu)中,輸入是明文P,明文P被 分割為P[O]、 P[l]、 P[2]、 P[3]四個(gè)數(shù)據(jù)序歹寸(分割數(shù)-4),在各 循環(huán)中依次執(zhí)行應(yīng)用了F函數(shù)Fo或者F函數(shù)F!的數(shù)據(jù)變換,作為r 循環(huán)的變換結(jié)果而輸出構(gòu)成密文C的C[O]、 C[l]、 C[2]、 C[3]。在 各循環(huán)的F函數(shù)Fo或者F函數(shù)Fi中,輸入從未圖示的密鑰調(diào)度部 提供的、作為根據(jù)主密鑰(Master key)而生成的擴(kuò)展密鑰的結(jié)構(gòu) 要素的循環(huán)密鑰(副密鑰)RKj[O]、 RKi[l],并應(yīng)用于數(shù)據(jù)變換。 此外,密鑰RKi[n]的i表示循環(huán),n表示同一循環(huán)中的循環(huán)密鑰 的標(biāo)識(shí)才尋。
如圖6所示,在具有擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的擴(kuò)展型 Feistel結(jié)構(gòu)(GFN)中,在各循環(huán)的切換部分執(zhí)行替換各數(shù)據(jù)序列 的交換處理。如圖6所示,在切換各循環(huán)時(shí),對(duì)各數(shù)據(jù)序列的輸 出應(yīng)用交換函數(shù)211,設(shè)定與各數(shù)據(jù)序列的輸出對(duì)應(yīng)的下 一個(gè)循 環(huán)中的輸入序列。
在圖6中,如圖6頂部所示,在將數(shù)據(jù)序列從左起設(shè)為數(shù)據(jù) 序列O、 1、 2、 3時(shí),先行循環(huán)的四個(gè)序列的輸出與對(duì)后續(xù)循環(huán)的輸入序列的替換通過交換函數(shù)21 l如下那樣進(jìn)行切換。
先行循環(huán)的數(shù)據(jù)序列0的輸出被設(shè)定為后續(xù)循環(huán)中的數(shù)據(jù)
序列3的輸入。
先行循環(huán)的數(shù)據(jù)序列l(wèi)的輸出被設(shè)定為后續(xù)循環(huán)中的數(shù)據(jù) 序列o的輸入。
先行循環(huán)的數(shù)據(jù)序列2的輸出被設(shè)定為后續(xù)循環(huán)中的數(shù)據(jù) 序列l(wèi)的輸入。
先行循環(huán)的數(shù)據(jù)序列3的輸出被設(shè)定為后續(xù)循環(huán)中的數(shù)據(jù) 序列2的輸入。
執(zhí)行這種序列替換處理的函數(shù)是在加密處理中應(yīng)用的交換函數(shù)。
在具有數(shù)據(jù)序列數(shù)(分割數(shù))d 二 3以上的任意數(shù)的擴(kuò)展型 Feistel結(jié)構(gòu)(GFN)中反復(fù)進(jìn)行如下處理在各循環(huán)中執(zhí)行一 個(gè)以 上的循環(huán)函數(shù),之后進(jìn)行序列切換處理,執(zhí)行后續(xù)的循環(huán)函數(shù)。
在這種具有數(shù)據(jù)序列數(shù)(分割數(shù))d二3以上的任意數(shù)的擴(kuò)展 型Feistel結(jié)構(gòu)(GFN)中,也能夠通過將在循環(huán)函數(shù)(F函數(shù))中應(yīng) 用的線性變換矩陣設(shè)定為滿足某個(gè)特定條件的不同的矩陣來大 幅提高對(duì)差分攻擊、線性攻擊的抵抗性。
如上述那樣的、應(yīng)用了采用擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的
高對(duì)差分攻擊、線性攻擊的抵抗性這種優(yōu)點(diǎn),但是另一方面存 在如下問題。即,
需要安裝設(shè)定了不同的矩陣的不同的循環(huán)函數(shù)(F函數(shù));以
及
需要設(shè)置預(yù)先決定多個(gè)循環(huán)函數(shù)、按照順序進(jìn)行切換的新的控制機(jī)構(gòu),
因而,在構(gòu)成密碼處理裝置的情況下,所需的結(jié)構(gòu)增加, 妨礙裝置的小型化并使成本增加。還存在伴隨著切換控制而處 理速度下降這種問題。
下面,說明解決這種問題的結(jié)構(gòu)。即,利用應(yīng)用了不同的
作為具有循環(huán)函數(shù)(F函數(shù))的共用密鑰密碼的安裝結(jié)構(gòu),可 以是應(yīng)用了軟件、硬件的各種結(jié)構(gòu)。作為F函數(shù)的處理結(jié)構(gòu),
需要作為非線性變換部的S-box和作為線性變換部的矩陣運(yùn)算
部,分別可以是利用邏輯電路的硬件結(jié)構(gòu)、使用了表變換表的 結(jié)構(gòu)。在要求高速動(dòng)作的情況下,稱為表(查表)安裝的方法為 最佳。
查表(表)安裝是如下的安裝方法不進(jìn)行實(shí)際的運(yùn)算,而 是用表(置換表)將與各種輸入對(duì)應(yīng)的已預(yù)先計(jì)算好的運(yùn)算結(jié)果 保持在存儲(chǔ)器空間中,通過參照表來得到想要求出的輸出值。 例如,在想要進(jìn)行
f(x)=x3
這種計(jì)算的情況下,具有持有下面那樣值的稱為ftab的表 (置換表),由此即使不進(jìn)行實(shí)際的xS的計(jì)算、通過參照ftab的內(nèi) 容也能夠得到xS的結(jié)果。
ftab
=0(=03),
ftab[l]=l(=l3),
ftab[2]=8(=23),
ftab[3]=27(=33),
ftab[4]=64(=43),
上面記載是具有如下結(jié)構(gòu)的表ftab的例子在作為輸入值存在O、 1、 2、 3、 4時(shí),作為輸出獲取O、 1、 8、 27、 64。
這樣F函數(shù)應(yīng)用查表(表)安裝結(jié)構(gòu),將與所需的各F函數(shù)的 輸入值對(duì)應(yīng)的輸出值預(yù)先準(zhǔn)備為表,保存在密碼處理裝置的存 儲(chǔ)器中。設(shè)為能夠根據(jù)表示存儲(chǔ)器的表保存位置的各地址來獲 取各F函數(shù)的表的結(jié)構(gòu)。根據(jù)該方法,能夠不降低執(zhí)行速度地 容易地進(jìn)行F函數(shù)的替換。應(yīng)用該方法,通過僅從外部提供偶 數(shù)級(jí)的F函數(shù)的表的地址,能夠不使用函數(shù)而改變加密函數(shù)和 解密函數(shù)。
例如,參照?qǐng)D7說明用于根據(jù)16-bit輸入輸出的F函數(shù)的輸 入求出輸出的表結(jié)構(gòu)。圖7的(a)所示的循環(huán)函數(shù)(F函數(shù))是具有 兩個(gè)S-box 301、 302和一個(gè)線性變換部303的結(jié)構(gòu)。在該結(jié)構(gòu)中, 將輸入X(16-bit)分割為兩個(gè)各8-bit,設(shè)為x^ x2。接著,將x!、 X2分別輸入到執(zhí)行8-bit輸入輸出的非線性變換處理的S-box 301、 302,得到輸出zp z2。在線性變換部303中對(duì)這些zp z2 實(shí)施線性變換,得到其結(jié)果yp y2,連接y" y2得到最終輸出Y。 例如,線性變換部303中的線性變換如下這樣進(jìn)行計(jì)算。
式2<formula>formula see original document page 22</formula>
這種S-box中的非線性處理、線性變換部中的矩陣運(yùn)算能
即,作為S-box中的非線性處理運(yùn)算,z產(chǎn)S(&) z2=S(x2)
構(gòu)成執(zhí)行上述運(yùn)算的邏輯電路,并且,作為線形變換部中 的運(yùn)算,
y產(chǎn)a。,。Zi (EXOR) ao,!Z2 y2二ai,。Zi (EXOR) a,iZ2
構(gòu)成執(zhí)行上述運(yùn)算的邏輯電路,能夠設(shè)為應(yīng)用邏輯電路求 出結(jié)果的結(jié)構(gòu)。但是,如果構(gòu)成邏輯電路,則存在安裝面積變 大、并且處理速度也會(huì)下降這種問題。
因此,預(yù)先計(jì)算運(yùn)算部分、用表保持與各種輸入對(duì)應(yīng)的輸 出值、通過表參照來得到輸出的處理最適合高速化。例如,在 圖7所示的循環(huán)函數(shù)中,能夠利用圖7的(b)所示的表。
在該例中,將t設(shè)為相當(dāng)于對(duì)兩個(gè)S-box 301、 302的輸入值 的變量,應(yīng)用下面兩個(gè)表TAB。[t]、 TABJt]。
TAB0[t]=(a0,0S(t) I I a^S(t))
TABi[t],(uS(t) I I awS(t))
輸入值[t]是相當(dāng)于對(duì)兩個(gè)S-box 301、 302的輸入值xp x2 的8比特?cái)?shù)據(jù),通過TABo[t]、 TABJt]而從表中獲取的數(shù)據(jù)、即 (a。,oS(t) I I a丄,oS(t)) (ao,;(t) I I awS(t)) 這些分別是16比特?cái)?shù)據(jù)。
根據(jù)通過TAB。[t] 、 TAB![t]獲取的16比特?cái)?shù)據(jù)來求出最終的 循環(huán)函數(shù)的輸出Y。能夠通過對(duì)TABo[]插入xJ尋到的結(jié)果與對(duì) TABJ]插入X2得到的結(jié)果進(jìn)行EX0R處理、即
Y二TAB[xJ (EXOR) TAB[x2]
算出輸出Y。
在更詳細(xì)"i兌明上述處理時(shí),成為以下式。Y氣y」ly2;Ka。,。S(Xi)1 I a!,。S(xO)(EXOR)(a(uS(X2) I k,!S(X2))
在應(yīng)用利用了該表的方法的情況下,執(zhí)行表TAB。[]和表 TABJ]的各表的參照處理各一次來求出與輸入xp X2對(duì)應(yīng)的輸 出TABo[&]、 TAB0[x2]。即,
TAB0[Xl]=(a0,0S(Xl) I I ai,0S(Xl))
TABJx2;Ka(uS(X2) I I a^S(X2))
接著,對(duì)這兩個(gè)表獲取值TAB。[x^、 TABi[X2]執(zhí)行一次異或 運(yùn)算(EXOR)。
通過這些處理能夠得到一個(gè)循環(huán)函數(shù)的處理結(jié)果。也就是 說,作為處理僅是進(jìn)行兩次表參照和一次異或運(yùn)算(EXOR)。因 此,如果能夠足夠高速地執(zhí)行表參照,則能夠非常高速地進(jìn)行 F函數(shù)的處理。
在本發(fā)明中提出了如下結(jié)構(gòu)在密碼處理中的循環(huán)運(yùn)算中 應(yīng)用上述表參照處理,其中,上述密碼處理應(yīng)用了采用之前說
結(jié)構(gòu)。如上所說明那樣,擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)適當(dāng)?shù)厥褂?應(yīng)用了多個(gè)不同的線性變換矩陣的不同的循環(huán)函數(shù)(F函數(shù)),與 使用單一 的F函數(shù)的方法相比是飛躍性地提高安全性的方式。 該方式使用多個(gè)不同的F函數(shù),但是根據(jù)其數(shù)量,安全性參數(shù)、 安裝上的特性會(huì)發(fā)生變化。
在使用擴(kuò)散矩陣切換機(jī)構(gòu)(D S M)的情況下,需要在每個(gè)循 環(huán)中應(yīng)用不同的循環(huán)函數(shù),需要進(jìn)行循環(huán)函數(shù)(F函數(shù))的切換控 制。作為一個(gè)安裝結(jié)構(gòu)例,例如在利用了具有三個(gè)不同的線性 變換矩陣的三個(gè)不同的循環(huán)函數(shù)(F函數(shù))的結(jié)構(gòu)中,設(shè)為準(zhǔn)備了
F0、 Fp F2這三個(gè)F函數(shù)的設(shè)定。
根據(jù)該安裝結(jié)構(gòu),通過循環(huán)函數(shù)(F函數(shù))的選擇控制來實(shí)現(xiàn) 各種密碼處理。例如,在進(jìn)行之前參照?qǐng)D3說明的僅利用一個(gè)循環(huán)函數(shù)(F函數(shù))Fq的SPN型Feistel結(jié)構(gòu)的密碼處理的情況下,設(shè) 為在所有循環(huán)中都調(diào)用F函數(shù)F 。并進(jìn)行應(yīng)用的結(jié)構(gòu)。
另外,在進(jìn)4亍按照之前參照?qǐng)D4所說明的應(yīng)用DSM的Feistel 結(jié)構(gòu)的密碼處理的情況下,設(shè)為在各循環(huán)中按照預(yù)先規(guī)定的順 序來調(diào)用兩個(gè)F函數(shù)Fo、 Fi并進(jìn)行應(yīng)用的結(jié)構(gòu),其中,上述Feistel 結(jié)構(gòu)利用了具有兩個(gè)不同的線性變換矩陣M。、 Mi的兩個(gè)F函數(shù) F。、 Flo
另外,在進(jìn)行按照之前參照?qǐng)D5所說明的應(yīng)用DSM的Feistel 結(jié)構(gòu)的密碼處理的情況下,設(shè)為在各循環(huán)中按照預(yù)先規(guī)定的順 序來調(diào)用三個(gè)F函數(shù)F。、 F!、 F2并進(jìn)行應(yīng)用的結(jié)構(gòu),其中,上述 Feistel結(jié)構(gòu)利用了具有三個(gè)不同的線性變換矩陣M。、 M! 、 M2 的三個(gè)F函數(shù)Fq、 Fp F2。
這樣,即使不改變主體的加密部也能夠利用 一個(gè)程序來執(zhí) 行三個(gè)加密函數(shù)。
如果能如上那樣適時(shí)地替換F函數(shù)則能夠進(jìn)行各種應(yīng)用, 因此,特別期望在DSM中能夠簡(jiǎn)單地進(jìn)行F函數(shù)的替換。
作為用于解決該問題的最簡(jiǎn)單的方法,考慮將F函數(shù)部作 為函數(shù)從外部進(jìn)行輸入的形式。在該方法中,預(yù)先制作執(zhí)行多 個(gè)F函數(shù)部的函數(shù),通過將它們輸入到加密函數(shù)中來實(shí)現(xiàn)F函數(shù) 的切換。然而,該方法需要在加密函數(shù)中多次調(diào)用多個(gè)F函數(shù)。 考慮到在通常一次執(zhí)行時(shí)間非常短的塊密碼中,在加密函數(shù)內(nèi) 多次調(diào)用其他函數(shù)(該情況為F函數(shù))會(huì)導(dǎo)致執(zhí)行速度大幅降低, 其影響較大。因此,更期望不將F函數(shù)部作為函數(shù)而進(jìn)行切換。
作為解決這種問題的結(jié)構(gòu),說明安裝了與應(yīng)用不同的線性 變換矩陣的不同循環(huán)函數(shù)(F函數(shù))分別對(duì)應(yīng)的表的處理結(jié)構(gòu)。 即,預(yù)先在裝置的存儲(chǔ)器空間中保存與應(yīng)用了不同的線性變換 矩陣的不同循環(huán)函數(shù)(F函數(shù))對(duì)應(yīng)的輸出值獲取用的表。在執(zhí)行按照應(yīng)用了上述擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)的Feistel結(jié)構(gòu)的密碼 處理的情況下,在各循環(huán)中適當(dāng)?shù)厍袚Q并利用所使用的表。即, 僅替換所利用的表來實(shí)現(xiàn)F函數(shù)替換。
更具體地說,例如設(shè)定在各循環(huán)中應(yīng)用的循環(huán)函數(shù)(F函數(shù)) 對(duì)應(yīng)表的獲取用存儲(chǔ)器地址作為執(zhí)行密碼處理的加密函數(shù)的輸 入信息。在加密函數(shù)執(zhí)行循環(huán)函數(shù)的情況下,應(yīng)用各循環(huán)對(duì)應(yīng) 的存儲(chǔ)器地址,從存儲(chǔ)器中獲取與在各循環(huán)中執(zhí)行的循環(huán)函數(shù) (F函數(shù))對(duì)應(yīng)的表,才艮據(jù)規(guī)定的輸入值獲耳又表設(shè)定值。通過該處 理,僅替換表、即存儲(chǔ)器的地址就變得與替換F函數(shù)相同,從 而實(shí)現(xiàn)高速處理。即,由于實(shí)際處理Y義是改變表的地址,因此 執(zhí)行速度完全不會(huì)降低。
參照?qǐng)D8、圖9說明利用了與多個(gè)不同的循環(huán)函數(shù)(F函數(shù)) 對(duì)應(yīng)的多個(gè)表的密碼處理結(jié)構(gòu)。圖8是表示本實(shí)施例所涉及的密 碼處理裝置400的一個(gè)結(jié)構(gòu)例的圖。密碼處理裝置400例如具有 數(shù)據(jù)處理部410和存儲(chǔ)器420,其中,上述數(shù)據(jù)處理部410^丸行應(yīng) 用了上述SPN型Feistel結(jié)構(gòu)的密碼處理、按照應(yīng)用了擴(kuò)散矩陣 切換機(jī)構(gòu)(DSM)的Feistel結(jié)構(gòu)的密碼處理等,上述存儲(chǔ)器420保 存有與應(yīng)用了不同的線性變換矩陣Mo、 Mp…的循環(huán)函數(shù)(F函 數(shù))F。、 Fr-對(duì)應(yīng)的表。
存儲(chǔ)器420保持有與應(yīng)用了不同的線性變換矩陣Mo 、 M!…的循環(huán)函數(shù)(F函數(shù))Fo、 F廣'對(duì)應(yīng)的表、即、將與不同的F 函數(shù)F。、 Fi…的輸入值對(duì)應(yīng)的輸出值或算出輸出值所需的中間 值與各輸入值相對(duì)應(yīng)地進(jìn)行保存的多個(gè)F函數(shù)對(duì)應(yīng)表421、 422..42n。
圖9示出保存在存儲(chǔ)器420中的多個(gè)F函數(shù)對(duì)應(yīng)表421 、 422..42n的例子。F函數(shù)對(duì)應(yīng)表421是與第一 F函數(shù)(循環(huán)函數(shù))對(duì) 應(yīng)的表,將對(duì)第一F函數(shù)的各輸入值與對(duì)應(yīng)于輸入值的輸出值或算出輸出值所需的中間值相對(duì)應(yīng)地進(jìn)行設(shè)定。F函數(shù)對(duì)應(yīng)表
422是與第二 F函數(shù)(循環(huán)函數(shù))對(duì)應(yīng)的表,將對(duì)第二 F函數(shù)的各輸 入值與對(duì)應(yīng)于輸入值的輸出值或算出輸出值所需的中間值相對(duì) 應(yīng)地進(jìn)行設(shè)定。下面,同樣地在存儲(chǔ)器420中保存n個(gè)F函數(shù)的 對(duì)應(yīng)表。
此外,保存在表中的輸入值可以設(shè)為對(duì)F函數(shù)整體的輸入 值,也可以設(shè)為對(duì)F函數(shù)內(nèi)的各S-box的輸入值等F函數(shù)輸入值 的一部分結(jié)構(gòu)值。關(guān)于輸出值,可以設(shè)為F函數(shù)的輸出值,也 可以設(shè)為用于算出輸出值的中間值。即,在存儲(chǔ)器420中保存的 F函數(shù)對(duì)應(yīng)表纟皮i殳為使對(duì)各F函數(shù)的輸入值或輸入值的結(jié)構(gòu)數(shù) 據(jù)與F函數(shù)的輸出值或中間值或它們的結(jié)構(gòu)數(shù)據(jù)相對(duì)應(yīng)的表。
這些各表是能夠應(yīng)用存取用地址來讀出的結(jié)構(gòu),設(shè)定與各 表只于應(yīng)的;也址、例如
第一F函數(shù)對(duì)應(yīng)表地址呵FFOOOOOl]
第二F函數(shù)對(duì)應(yīng)表地址呵FFF01234]
等各表的讀入地址,圖8所示的循環(huán)函數(shù)執(zhí)行部411應(yīng)用與 在各循環(huán)中應(yīng)用的F函數(shù)對(duì)應(yīng)的地址來執(zhí)行表讀出。
圖8所示的數(shù)據(jù)處理部410具有循環(huán)函數(shù)執(zhí)行部411,其執(zhí) 行循環(huán)函數(shù);存儲(chǔ)器地址提供部412,其將應(yīng)用于在各循環(huán)中應(yīng)
函數(shù)執(zhí)行部411;以及處理順序信息保存部413,其保存了密碼 處理的順序信息。
例如在執(zhí)行按照之前說明的應(yīng)用了擴(kuò)散矩陣切換機(jī)構(gòu) (DSM)的Feistel結(jié)構(gòu)的密碼處理的情況下,處理順序信息保存 部保存在各循環(huán)中執(zhí)行的F函數(shù)的順序信息,存儲(chǔ)器地址提供 部412按照該順序信息,獲取在各循環(huán)中要參照的F函數(shù)對(duì)應(yīng)表 的存儲(chǔ)器地址,提供給循環(huán)函數(shù)執(zhí)行部411。循環(huán)函數(shù)4丸行部411乂人存^[諸器地址纟是耳又部412領(lǐng)取表的存:f又 用地址,按照領(lǐng)取地址執(zhí)行存儲(chǔ)器420的存取,獲取在各循環(huán)中 要應(yīng)用的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照得到與輸入值對(duì)應(yīng)的輸出 值(或中間值),其中,上述表與按照所執(zhí)行的密碼順序的、在 每個(gè)循環(huán)中執(zhí)行的F函數(shù)對(duì)應(yīng)。循環(huán)函數(shù)執(zhí)行部411僅按照與各
取,只要依次設(shè)定每個(gè)循環(huán)的F函數(shù)對(duì)應(yīng)表的地址作為在固定 的密碼函數(shù)中應(yīng)用的自變量即可,應(yīng)用一個(gè)密碼函數(shù)僅改變自 變量就能夠執(zhí)行各種密碼處理。即,不需要進(jìn)行不同F(xiàn)函數(shù)的 調(diào)用處理,能夠高速地得到各循環(huán)運(yùn)算(F函數(shù))的處理結(jié)果。另 外,在該結(jié)構(gòu)中,不需要與各循環(huán)函數(shù)對(duì)應(yīng)的邏輯電路等,能 夠?qū)崿F(xiàn)裝置的小型化、削減安裝成本。
此外,在執(zhí)行應(yīng)用了之前參照?qǐng)D6說明的能夠?qū)?shù)據(jù)序列數(shù) 設(shè)定為3以上的任意數(shù)的擴(kuò)展型Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu) 中,有時(shí)在一個(gè)循環(huán)中并行地執(zhí)行多個(gè)循環(huán)函數(shù)(F函數(shù))。因而, 在執(zhí)行應(yīng)用了擴(kuò)展型Feistel結(jié)構(gòu)的密碼處理的結(jié)構(gòu)的情況下, 循環(huán)函數(shù)執(zhí)行部411優(yōu)選設(shè)為能夠并行執(zhí)行多個(gè)循環(huán)函數(shù)(F函
函數(shù)對(duì)應(yīng)的各F函數(shù)對(duì)應(yīng)表的參照處理。此外,也可以設(shè)為處 理速度降低、但是按順序進(jìn)行存儲(chǔ)器存取的結(jié)構(gòu)。
此外,如果使用保存在圖8所示的存儲(chǔ)器中的F函數(shù)對(duì)應(yīng)表 的參照切換結(jié)構(gòu),則僅變更存儲(chǔ)器存取用地址就能夠執(zhí)行在各 循環(huán)中應(yīng)用的表的變更,因此,能夠靈活地變更表利用順序。 例如,在利用之前參照?qǐng)D5說明的應(yīng)用了三個(gè)不同的矩陣Mo、 Mp M2的Feistel結(jié)構(gòu)的密碼處理中,在圖5所示的例中設(shè)定為
F函^t的應(yīng)用順序=
F"F2—F"F"F2~>.'.但是,例如如下這樣變更該順序 將FJ殳定到F。的位置, 將F2設(shè)定到Fi的位置, 將Fo設(shè)定到F2的位置。
僅變更在各循環(huán)中應(yīng)用的地址就能夠?qū)崿F(xiàn)這種F函數(shù)的利 用順序的變更。
在上述變更例中,各循環(huán)的F函數(shù)利用順序?yàn)?br>
為實(shí)現(xiàn)這種順序所需的處理僅是改變?cè)诟餮h(huán)中應(yīng)用的F 函數(shù)調(diào)用地址的順序,能夠進(jìn)行容易的變更。按照這種不同的 F函數(shù)利用順序的密碼處理能夠構(gòu)成與變更前的F函數(shù)利用順 序具有不同的輸入輸出、并且安全性相同的加密函數(shù)。
此外,在擴(kuò)散矩陣切換機(jī)構(gòu)(DSM)中,根據(jù)所應(yīng)用的不同 循環(huán)函數(shù)(F函數(shù))的數(shù)量,安全性參數(shù)會(huì)發(fā)生變化。 一般,使用 很多不同循環(huán)函數(shù)(F函數(shù))能提高安全性。在設(shè)為在存儲(chǔ)器中保 存多個(gè)F函數(shù)對(duì)應(yīng)的表并進(jìn)行利用的結(jié)構(gòu)的情況下,也假想到 在能夠進(jìn)行高速存取的存儲(chǔ)器空間(例如 一 次高速緩沖存儲(chǔ)器) 上容納不下要參照的表的情況,因此,優(yōu)選設(shè)為如下結(jié)構(gòu)根 據(jù)處理順序,將能夠保存參照所需的表的最大數(shù)的存儲(chǔ)器區(qū)域 設(shè)定為能夠進(jìn)行高速存取的存儲(chǔ)器空間。
如圖8所示,本發(fā)明的密碼處理裝置400是執(zhí)行Feistel型共 用密鑰塊密碼處理的密碼處理裝置,具有數(shù)據(jù)處理部410,其 選擇性地應(yīng)用至少兩種以上的不同的F函數(shù)作為循環(huán)函數(shù)來執(zhí) 行多個(gè)循環(huán)的循環(huán)運(yùn)算;以及存儲(chǔ)器420,其保存有使分別與兩 種以上不同的F函數(shù)對(duì)應(yīng)的輸入值與輸出值或中間值相對(duì)應(yīng)的 多個(gè)F函數(shù)對(duì)應(yīng)表,在數(shù)據(jù)處理部410中,按照預(yù)先規(guī)定的密碼 處理順序來獲耳又與在各循環(huán)中應(yīng)用的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表的存取用地址,通過應(yīng)用了獲取地址的對(duì)存儲(chǔ)器420的存取,
照獲取對(duì)于輸入值的輸出值或中間值,得到按照各F函數(shù)的數(shù) 據(jù)變換結(jié)果。
此外,數(shù)據(jù)處理部41 O是執(zhí)行按照Feistel結(jié)構(gòu)的密碼處理的 結(jié)構(gòu),例如執(zhí)行基于按照將密碼處理對(duì)象數(shù)據(jù)進(jìn)行二分割的數(shù) 據(jù)序列數(shù)(分割數(shù))(1=2的設(shè)定的Feistel結(jié)構(gòu)、或者設(shè)為數(shù)據(jù)序列 數(shù)(分割數(shù))d^3的設(shè)定的擴(kuò)展型Feistel結(jié)構(gòu)的密碼處理,其中, 上述Feistel結(jié)構(gòu)具有選擇性地應(yīng)用至少兩個(gè)以上不同的F函數(shù) 的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM: Diffusion Switching Mechanism), 設(shè)定至少兩個(gè)以上不同的矩陣作為應(yīng)用于各循環(huán)的F函數(shù)中的 線性變換處理的變換矩陣來得到至少兩個(gè)以上不同的F函數(shù)。
在數(shù)據(jù)處理部410中,執(zhí)行預(yù)先設(shè)定的密碼函數(shù),在執(zhí)行密 碼函數(shù)時(shí),在每個(gè)循環(huán)中適當(dāng)切換與在各循環(huán)中應(yīng)用的F函數(shù) 對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表的存取用地址,從存儲(chǔ)器420中讀入與各循 環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照來獲取對(duì)于輸入值 的輸出值或中間值,得到按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
此外,保存在存儲(chǔ)器420中的F函數(shù)對(duì)應(yīng)表421 42n是使對(duì) 各F函數(shù)的輸入值或輸入值的結(jié)構(gòu)數(shù)據(jù)與F函數(shù)的輸出值或中 間值或它們的結(jié)構(gòu)l史據(jù)相對(duì)應(yīng)的F函對(duì)應(yīng)表。
如上所述,通過設(shè)為這種結(jié)構(gòu),數(shù)據(jù)處理部410能夠按照與 各循環(huán)對(duì)應(yīng)地變更的地址來獲取表,執(zhí)行按照各循環(huán)的F函數(shù) 的數(shù)據(jù)變換處理,只要依次設(shè)定每個(gè)循環(huán)的F函數(shù)對(duì)應(yīng)表的地 址為在固定的密碼函數(shù)中應(yīng)用的自變量即可,應(yīng)用一個(gè)密碼函 數(shù)僅改變自變量就能夠執(zhí)行各種密碼處理。即,不需要進(jìn)行不 同的F函數(shù)的調(diào)用處理,能夠高速地得到各循環(huán)運(yùn)算(F函數(shù))的 處理結(jié)果。另外,在該結(jié)構(gòu)中,不需要與各循環(huán)函數(shù)對(duì)應(yīng)的邏
30輯電路等,能夠使裝置小型化、削減安裝成本。 [5.密碼處理裝置的結(jié)構(gòu)例]
最后,圖1 0示出作為執(zhí)行按照上述實(shí)施例的密碼處理的密
碼處理裝置的IC模塊700的結(jié)構(gòu)例。能夠在例如PC、 IC卡、讀 寫器、以及其他各種信息處理裝置中執(zhí)行上述處理,圖10所示 的IC模塊700能夠構(gòu)成在這些各種設(shè)備中。
圖IO所示的CPU(Central processing Unit: 中央處理單 元)701是執(zhí)行密碼處理的開始、結(jié)束、數(shù)據(jù)的發(fā)送接收控制、 各結(jié)構(gòu)部之間的數(shù)據(jù)傳送控制、其他各種程序的處理器。存儲(chǔ) 器702由ROM(Read-Only-Memory:只讀存儲(chǔ)器)、RAM(Random Access Memory:隨機(jī)存取存儲(chǔ)器)等構(gòu)成,其中,上述ROM保 存CPU 701所執(zhí)行的程序、或者運(yùn)算參數(shù)等固定數(shù)據(jù),上述RAM 作為在CPU 701的處理中所執(zhí)行的程序以及在程序處理中適當(dāng) 變化的參數(shù)的保存區(qū)域、工作區(qū)域而使用。另外,存儲(chǔ)器702 作為密碼處理中所需的密鑰數(shù)據(jù)、在密碼處理中應(yīng)用的變換表 (置換表)、應(yīng)用于變換矩陣的數(shù)據(jù)等的保存區(qū)域而使用。另夕卜, 如參照?qǐng)D8、圖9說明的那樣,存儲(chǔ)器702作為上述用于得到與不 同的F函數(shù)對(duì)應(yīng)的輸出值的F函數(shù)對(duì)應(yīng)表的保存區(qū)域而4吏用。
如上所述,保持有與應(yīng)用了不同的線性變換矩陣Mo、 Mr"的循環(huán)函^t(F函數(shù))F。、 F廣'對(duì)應(yīng)的表、即、將^4居不同的F 函數(shù)F。、 Fr-的輸入值來算出輸出值所需的值與各輸入值相對(duì) 應(yīng)地進(jìn)行保存的多個(gè)F函數(shù)對(duì)應(yīng)表。此外,優(yōu)選數(shù)據(jù)保存區(qū)域 構(gòu)成為具有耐損害結(jié)構(gòu)的存儲(chǔ)器。
密碼處理部703執(zhí)行例如按照共用密鑰塊密碼處理算法的 密碼處理、解密處理,其中,上述共用密鑰塊密碼處理算法是 按照上述Feistel結(jié)構(gòu)、擴(kuò)展型Feistel結(jié)構(gòu)的算法。此外,在此 示出了將密碼處理單元設(shè)為單獨(dú)模塊的例子,但是,也可以不
31設(shè)置這種獨(dú)立的密碼處理模塊,而構(gòu)成為例如將密碼處理程序
保存在ROM中,CPU 701讀出ROM保存程序來執(zhí)行。
隨機(jī)數(shù)產(chǎn)生器7 04執(zhí)行在密碼處理所需的密鑰的生成等中
成為需要的隨機(jī)數(shù)的產(chǎn)生處理。
發(fā)送接收部705是執(zhí)行與外部的數(shù)據(jù)通信的數(shù)據(jù)通信處理
部,例如執(zhí)行與讀寫器等IC模塊之間的數(shù)據(jù)通信,執(zhí)行在IC模
塊內(nèi)生成的密文的輸出、或者來自外部的讀寫器等設(shè)備的數(shù)據(jù)
輸入等。
該IC模塊700的密碼處理部703執(zhí)行例如數(shù)據(jù)序列數(shù)d=2的 Feistel型密碼處理或?qū)?shù)據(jù)序列數(shù)d設(shè)為d^3的整數(shù)的擴(kuò)展型 Feistel型密碼處理。另外,執(zhí)行按照具有擴(kuò)散矩陣切換機(jī)構(gòu) (DSM: Diffusion Switching Mechanism)的Feistel結(jié)構(gòu)的密碼處 理,其中,上述擴(kuò)散矩陣切換機(jī)構(gòu)選擇性地應(yīng)用設(shè)定至少兩個(gè) 以上不同的矩陣而得到的至少兩個(gè)以上不同的F函數(shù)。此外, 在進(jìn)行密碼處理時(shí),如參照?qǐng)D8、圖9所說明的那樣,在各循環(huán) 中依次切換用于獲取F函數(shù)對(duì)應(yīng)表的地址,執(zhí)行存儲(chǔ)器存取來 獲取與各F函數(shù)的輸入值對(duì)應(yīng)的輸出值或中間值來執(zhí)行循環(huán)運(yùn) 算,其中,上述F函數(shù)對(duì)應(yīng)表用于得到與不同的F函數(shù)對(duì)應(yīng)的輸 出值。根據(jù)該處理,不使用各種密碼函數(shù)而通過利用將存取用 的地址設(shè)定為自變量的一個(gè)密碼函數(shù)就能夠進(jìn)行按照各種密碼 順序的處理。
以上, 一邊參照特定的實(shí)施例一邊詳細(xì)i兌明了本發(fā)明。然 而,在不脫離本發(fā)明要旨的范圍內(nèi)本領(lǐng)域技術(shù)人員能夠進(jìn)行該 實(shí)施例的修改、代用是顯而易見的。即,以例示這種方式公開 了本發(fā)明,而不是限定地解釋本發(fā)明。要判斷本發(fā)明的要旨, 應(yīng)當(dāng)參考權(quán)利要求的范圍一欄。
此外,在說明書中說明的一系列處理能夠通過硬件、或者軟件、或者兩者的復(fù)合結(jié)構(gòu)來執(zhí)行。在通過軟件執(zhí)行處理的情
計(jì)算機(jī)內(nèi)的存儲(chǔ)器中來執(zhí)行,或者安裝在能夠執(zhí)行各種處理的 通用計(jì)算機(jī)中來執(zhí)行。
例如,能夠?qū)⒊绦蝾A(yù)先記錄到作為記錄介質(zhì)的硬件、
ROM(Read Only Memory)中?;蛘?,能夠?qū)⒊绦蚺R時(shí)或者永久 地保存(記錄)到軟盤、CD-ROM(Compact Disc Read Only Memory: 光盤只讀存4諸器)、MO(Magneto optical:》茲光)盤、 DVD(Digital Versatile Disc:數(shù)字多功能光盤)、磁盤、半導(dǎo)體 存儲(chǔ)器等可移動(dòng)記錄介質(zhì)中。能夠?qū)⑦@種可移動(dòng)記錄介質(zhì)作為 所謂的封裝軟件來提供。
此外,除了從上述那樣的可移動(dòng)記錄介質(zhì)對(duì)計(jì)算機(jī)安裝程 序之外,還能夠從下載站點(diǎn)向計(jì)算機(jī)無(wú)線傳送程序,或者通過 LAN(Local Area Network:局域網(wǎng))、因特網(wǎng)這種網(wǎng)絡(luò)向計(jì)算機(jī) 有線傳送程序,在計(jì)算機(jī)中接收這樣傳送過來的程序,并安裝 到內(nèi)置的硬盤等記錄介質(zhì)中。
此外,說明書中所記載的各種處理不僅可以按照記載以時(shí)
間序列執(zhí)行,也可以根據(jù)執(zhí)行處理的裝置的處理能力或者需要
并行或者個(gè)別地執(zhí)行。另外,在本說明書中,系統(tǒng)是指多個(gè)裝 置的邏輯集合結(jié)構(gòu),并不限于各結(jié)構(gòu)的裝置存在于同一殼體內(nèi)。
產(chǎn)業(yè)上的可利用性
如上所述,根據(jù)本發(fā)明的一個(gè)實(shí)施例的結(jié)構(gòu),在通過作為 循環(huán)函數(shù)而選擇性地應(yīng)用了至少兩種以上的不同的F函數(shù)循環(huán) 運(yùn)算執(zhí)行密碼處理的結(jié)構(gòu)中,在存儲(chǔ)器中保存使與各F函數(shù)對(duì) 應(yīng)的輸入值與輸出值或中間值相對(duì)應(yīng)的多個(gè)F函數(shù)對(duì)應(yīng)表,按 照預(yù)先規(guī)定的密碼處理順序,應(yīng)用與各循環(huán)的F函數(shù)對(duì)應(yīng)的表 存取用地址來從存儲(chǔ)器中讀入F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值的輸出值或中間值,得到按照各F函數(shù)的數(shù)據(jù)變換 結(jié)果。根據(jù)本結(jié)構(gòu),按照與各循環(huán)對(duì)應(yīng)地變更的地址來獲取各 F函數(shù)對(duì)應(yīng)表,能夠高效率地獲取或算出與輸入值對(duì)應(yīng)的輸出 值。例如,應(yīng)用一個(gè)密碼函數(shù),僅改變自變量就能夠執(zhí)行各種 密碼處理。
權(quán)利要求
1.一種密碼處理裝置,執(zhí)行Feistel型共用密鑰塊密碼處理,其特征在于,具有數(shù)據(jù)處理部,其選擇性地應(yīng)用至少兩種以上不同的F函數(shù)作為循環(huán)函數(shù)來執(zhí)行多個(gè)循環(huán)的循環(huán)運(yùn)算;以及存儲(chǔ)器,其保存有多個(gè)F函數(shù)對(duì)應(yīng)表,該多個(gè)F函數(shù)對(duì)應(yīng)表使分別與上述兩種以上不同的F函數(shù)對(duì)應(yīng)的輸入值與輸出值或中間值相對(duì)應(yīng),其中,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)按照預(yù)先規(guī)定的密碼處理順序獲取與在各循環(huán)中應(yīng)用的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表的存取用地址,通過應(yīng)用了獲取地址的存儲(chǔ)器存取來讀入與各循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值的輸出值或者中間值來得到按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
2. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行按照Feistel結(jié)構(gòu)的密碼 處理,該Feistel結(jié)構(gòu)具有選擇性地應(yīng)用至少兩個(gè)以上不同的F 函數(shù)的擴(kuò)散矩陣切換機(jī)構(gòu)(DSM : Diffusion Switching Mechanism),設(shè)定至少兩個(gè)以上不同的矩陣作為應(yīng)用于各循環(huán) 的F函數(shù)中的線性變換處理的變換矩陣來得到至少兩個(gè)以上不 同的F函數(shù)。
3. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行基于Feistel結(jié)構(gòu)的密碼 處理,該F e i s t e 1結(jié)構(gòu)按照將密碼處理對(duì)象數(shù)據(jù)進(jìn)行二分割的數(shù) 據(jù)序列數(shù)(分割數(shù))d=2的設(shè)定來執(zhí)行密碼處理。
4. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行基于擴(kuò)展型Feistel結(jié)構(gòu) 的密碼處理,該擴(kuò)展型Feistel結(jié)構(gòu)按照將密碼處理對(duì)象數(shù)據(jù)分 割為三個(gè)以上的數(shù)據(jù)序列數(shù)(分割數(shù))d^3的設(shè)定來執(zhí)行密碼處理。
5. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于,上述數(shù)據(jù)處理部是如下結(jié)構(gòu)執(zhí)行預(yù)先設(shè)定的密碼函數(shù),在執(zhí)行該密碼函數(shù)時(shí),在每個(gè)循環(huán)中適當(dāng)?shù)厍袚Q與在各循環(huán)中應(yīng)用的F函lt對(duì)應(yīng)的F函lt對(duì)應(yīng)表的存耳又用地址,讀入與各循環(huán) 的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表,根據(jù)表參照獲取對(duì)于輸入值的輸 出值或中間值來得至'J按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
6. 根據(jù)權(quán)利要求l所述的密碼處理裝置,其特征在于, 上述存儲(chǔ)器是如下結(jié)構(gòu)保存有F函數(shù)對(duì)應(yīng)表,該F函數(shù)對(duì)應(yīng)表使對(duì)各F函數(shù)的輸入值或輸入值的結(jié)構(gòu)數(shù)據(jù)與F函數(shù)的輸 出值或中間值或它們的結(jié)構(gòu)^t據(jù)相對(duì)應(yīng)。
7. —種密碼處理方法,在密碼處理裝置中^l行Feistel型共 用密鑰塊密碼處理,該密碼處理方法的特征在于,具有數(shù)據(jù)處理步驟,該數(shù)據(jù)處理步驟在密碼處理部中選擇 性地應(yīng)用至少兩種以上不同的F函數(shù)作為循環(huán)函凄t來寺丸行多個(gè) 循環(huán)的循環(huán)運(yùn)算,其中,上述數(shù)據(jù)處理步驟具有以下步驟按照預(yù)先規(guī)定的密碼處理順序獲取與在各循環(huán)中應(yīng)用的F 函數(shù)對(duì)應(yīng)的F函凄t對(duì)應(yīng)表的存耳又用地址;執(zhí)行應(yīng)用了上述獲取地址的存儲(chǔ)器存取,從保存有多個(gè)F 函數(shù)對(duì)應(yīng)表的存儲(chǔ)器中讀入與各循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì) 應(yīng)表,其中,上述多個(gè)F函數(shù)對(duì)應(yīng)表使分別與上述兩種以上不參照從存儲(chǔ)器中讀入的表,獲取對(duì)于F函數(shù)輸入值的輸出 值或中間值來得至'J按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
8. —種計(jì)算機(jī)程序,使密碼處理裝置執(zhí)行Feistel型共用密鑰塊密碼處理,該計(jì)算機(jī)程序的特征在于,具有數(shù)據(jù)處理步驟,該數(shù)據(jù)處理步驟使數(shù)據(jù)處理部選擇性 地應(yīng)用至少兩種以上不同的F函數(shù)作為循環(huán)函數(shù)來執(zhí)行多個(gè)循 環(huán)的循環(huán)運(yùn)算,上述數(shù)據(jù)處理步驟執(zhí)行如下步驟按照預(yù)先規(guī)定的密碼處理順序獲取與在各循環(huán)中應(yīng)用的F 函數(shù)對(duì)應(yīng)的F函數(shù)對(duì)應(yīng)表的存耳又用地址;執(zhí)行應(yīng)用了上述獲取地址的存儲(chǔ)器存取,從保存有多個(gè)F 函數(shù)對(duì)應(yīng)表的存儲(chǔ)器中讀入與各循環(huán)的F函數(shù)對(duì)應(yīng)的F函數(shù)對(duì) 應(yīng)表,其中,上述多個(gè)F函數(shù)對(duì)應(yīng)表4吏分別與上述兩種以上不 同的F函數(shù)對(duì)應(yīng)的輸入值與輸出值或中間值相對(duì)應(yīng);以及參照從存儲(chǔ)器中讀入的表,獲取對(duì)于F函數(shù)輸入值的輸出 值或中間值來獲取按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
全文摘要
本發(fā)明提供一種高效率地執(zhí)行應(yīng)用了多個(gè)不同的F函數(shù)的密碼處理的結(jié)構(gòu)。在執(zhí)行基于選擇性地應(yīng)用了不同的F函數(shù)的循環(huán)運(yùn)算的密碼處理的結(jié)構(gòu)中,在存儲(chǔ)器中保存使對(duì)應(yīng)于各F函數(shù)的輸入值與輸出值或中間值相對(duì)應(yīng)的多個(gè)F函數(shù)對(duì)應(yīng)表,按照預(yù)先規(guī)定的密碼處理順序,應(yīng)用與各循環(huán)的F函數(shù)對(duì)應(yīng)的地址從存儲(chǔ)器中讀入F函數(shù)對(duì)應(yīng)表,根據(jù)表參照來獲取對(duì)于輸入值的輸出值或中間值,從而得到按照各F函數(shù)的數(shù)據(jù)變換結(jié)果。
文檔編號(hào)H04L9/06GK101553856SQ200780040630
公開日2009年10月7日 申請(qǐng)日期2007年8月29日 優(yōu)先權(quán)日2006年9月1日
發(fā)明者澀谷香士, 白井太三, 盛合志帆, 秋下徹 申請(qǐng)人:索尼株式會(huì)社