專利名稱:數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序的制作方法
數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序技術(shù)領(lǐng)定義域本發(fā)明涉及一種 數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序。更具體地,本發(fā)明涉及例如對輸入的消息數(shù)據(jù)執(zhí)行散列值產(chǎn)生處理的數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序。
背景技術(shù):
在諸如加密處理的數(shù)據(jù)轉(zhuǎn)換處理中,經(jīng)常使用對輸入的數(shù)據(jù)執(zhí)行散列處理的散列函數(shù)。散列函數(shù)是用于對給定消息計(jì)算具有固定長度的壓縮值(摘要)的函數(shù)。作為已知的散列函數(shù),存在MD5,其具有128比特的輸出值;SHA-1,其具有160比特的輸出值;以及, SHA-256,其具有256比特的輸出值;等等。例如,基于抗分析攻擊性增強(qiáng)請求等,期望散列函數(shù)具有下面的抗攻擊性。原像抗攻擊性第二原像抗攻擊性碰撞抗攻擊性將簡述這些抗攻擊性。在輸出y = h (χ)的散列函數(shù)中,其中,輸入是X,并且散列函數(shù)是h,原像抗攻擊性等同于在計(jì)算輸入X上的困難,該輸入X使得對于輸出y而言h(x) = y。第二原像抗攻擊性等同于在找到不同的輸入值χ’上的困難,所述不同的輸入值 X’當(dāng)已知一個(gè)輸入值χ時(shí)滿足h (X’)= h (X)。碰撞抗攻擊性等同于在找到兩個(gè)不同的輸入值χ和X’上的困難,所述兩個(gè)不同的輸入值X和X’滿足h(x’ ) = h(x)??梢哉f,這些抗攻擊性越高,則散列函數(shù)越安全。迄今,由于近年來分析方法的進(jìn)步,已經(jīng)顯示了已經(jīng)使用的散列函數(shù)在上述的抗攻擊性上的脆弱性。例如,已經(jīng)變得顯然的是,經(jīng)常被用作散列函數(shù)的MD5和SHA-I等的碰撞抗攻擊性不滿足許多系統(tǒng)要求水平。此外,存在作為現(xiàn)有的散列函數(shù)的、具有相對較長輸出長度的SHA-256等,但是這個(gè)SHA-256遵循SHA-I的設(shè)計(jì)策略,因此,也仍然存在關(guān)于安全的擔(dān)心,所以,期望出現(xiàn)基于其它設(shè)計(jì)策略的更安全的散列函數(shù)。
發(fā)明內(nèi)容
已經(jīng)考慮到上述問題做出了本發(fā)明,并且本發(fā)明旨在提供一種實(shí)現(xiàn)具有高安全級和高度處理效率的散列函數(shù)的數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序。本發(fā)明的第一方面是一種數(shù)據(jù)轉(zhuǎn)換裝置,包括混合處理部,用于對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理;以及壓縮處理部,用于對包括數(shù)據(jù)段的輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中,所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部能夠接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且,位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列值。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述多級壓縮子部具有 MD 結(jié)構(gòu)(Merkle-Damgard 結(jié)構(gòu))。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述多級壓縮子部具有多個(gè)處理系列,所述多個(gè)處理系列接收在所述消息數(shù)據(jù)中的相同數(shù)據(jù)段以并行地執(zhí)行處理。
此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述混合處理部被配置來對于所述輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)混合處理,并且產(chǎn)生其比特?cái)?shù)量等于在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的輸出數(shù)據(jù),并且所述壓縮處理部被配置來對于所述輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)壓縮處理,并且產(chǎn)生其比特?cái)?shù)量小于在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的輸出數(shù)據(jù)。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述數(shù)據(jù)轉(zhuǎn)換裝置被配置使得交錯(cuò)地執(zhí)行在所述混合處理部中的所述數(shù)據(jù)混合處理和在所述壓縮處理部中的所述數(shù)據(jù)壓縮處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述數(shù)據(jù)轉(zhuǎn)換裝置被配置使得與在所述壓縮處理部中的每一個(gè)多級數(shù)據(jù)壓縮處理對應(yīng)地執(zhí)行所述混合處理部的所述數(shù)據(jù)混合處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述混合處理部包括數(shù)據(jù)轉(zhuǎn)換部,用于執(zhí)行在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的調(diào)整處理;以及,混合部嵌入壓縮部, 用于接收所述輸入數(shù)據(jù)和來自所述數(shù)據(jù)轉(zhuǎn)換部的輸出,以對于其執(zhí)行壓縮處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述數(shù)據(jù)轉(zhuǎn)換部包括多個(gè)數(shù)據(jù)轉(zhuǎn)換子部,所述多個(gè)數(shù)據(jù)轉(zhuǎn)換子部并行地執(zhí)行處理,并且,所述混合部嵌入壓縮部具有多個(gè)壓縮子部,所述多個(gè)壓縮子部對于來自相應(yīng)的數(shù)據(jù)轉(zhuǎn)換部的輸出并行地執(zhí)行處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述混合處理部包括具有中間輸出的置換函數(shù)執(zhí)行部,其被配置來重復(fù)地執(zhí)行每一個(gè)置換處理,以輸出作為每一個(gè)所述置換處理的結(jié)果的中間值;以及,具有附加輸入的置換函數(shù)執(zhí)行部,其被配置來使用從所述具有中間輸出的置換函數(shù)執(zhí)行部輸出的所述中間值作為附加輸入來重復(fù)地執(zhí)行置換處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述具有附加輸入的置換函數(shù)執(zhí)行部被配置來使用異或結(jié)果作為在后級的所述置換處理的輸入數(shù)據(jù),所述異或結(jié)果是在從所述具有中間輸出的置換函數(shù)執(zhí)行部輸出的所述中間值和在前一級中的置換處理的結(jié)果之間的異或的邏輯值。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,由所述置換函數(shù)執(zhí)行部執(zhí)行的置換處理的每一個(gè)被配置來包括對于輸入數(shù)據(jù)的一部分或全部執(zhí)行的非線性轉(zhuǎn)換處理和作為數(shù)據(jù)交換處理的交換處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述非線性轉(zhuǎn)換處理是包括使用常數(shù)的異或運(yùn)算、非線性轉(zhuǎn)換和使用線性轉(zhuǎn)換矩陣的線性轉(zhuǎn)換的處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,根據(jù)使用多個(gè)不同矩陣的DSM(擴(kuò)散轉(zhuǎn)換機(jī)制)執(zhí)行由所述置換函數(shù)執(zhí)行部執(zhí)行的每一個(gè)所述置換處理中的所述線性轉(zhuǎn)換處理。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,由所述置換函數(shù)執(zhí)行部執(zhí)行的每一個(gè)所述置換處理被配置使得基于彼此不同的多個(gè)常數(shù)集的相應(yīng)的一個(gè)來執(zhí)行數(shù)據(jù)處理,并且,由對于基本集執(zhí)行的數(shù)據(jù)轉(zhuǎn)換處理產(chǎn)生并且彼此不同的多個(gè)常數(shù)集被應(yīng)用到相應(yīng)的置換處理,所述基本集被定義為要被應(yīng)用到一個(gè)置換處理的常數(shù)集。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,要被用作所述基本集的所述常數(shù)集包括通過向彼此不同的多個(gè)初始值S和T應(yīng)用轉(zhuǎn)換規(guī)則而產(chǎn)生的多個(gè)常數(shù),并且所述轉(zhuǎn)換規(guī)則被配置來包括對于所述初始值的更新處理,通過下面的表達(dá)式來表示所述更新處理;S — S · xa,T 一 T · Xb其中,a 乒 b。此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述基本集的所述數(shù)據(jù)轉(zhuǎn)換處理是允許對于構(gòu)成所述基本集的每一個(gè)常數(shù)執(zhí)行比特旋轉(zhuǎn)操作的處理或允許對于預(yù)定掩蔽數(shù)據(jù)執(zhí)行運(yùn)算的處理。
此外,在本發(fā)明的所述數(shù)據(jù)轉(zhuǎn)換裝置的一種實(shí)現(xiàn)模式中,所述數(shù)據(jù)轉(zhuǎn)換部被配置來執(zhí)行截止處理,所述截止處理允許最終輸出的散列值在比特?cái)?shù)量上減少,并且根據(jù)預(yù)定的計(jì)算表達(dá)式來對于構(gòu)成所述數(shù)據(jù)轉(zhuǎn)換部的輸出的多個(gè)輸出數(shù)據(jù)系列的每一個(gè)的輸出比特執(zhí)行要減少的比特?cái)?shù)量的計(jì)算,然后,根據(jù)所述計(jì)算結(jié)果來執(zhí)行所述截止處理。此外,本發(fā)明的第二方面是一種在數(shù)據(jù)轉(zhuǎn)換裝置中執(zhí)行的數(shù)據(jù)轉(zhuǎn)換方法,所述方法包括步驟混合處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理;以及壓縮處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述輸入數(shù)據(jù)包括數(shù)據(jù)段,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中,所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且,位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列值。此外,本發(fā)明的第三方面是一種程序,包括記錄序列,所述記錄序列允許數(shù)據(jù)轉(zhuǎn)換裝置執(zhí)行數(shù)據(jù)轉(zhuǎn)換處理,所述序列包括步驟混合處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理; 以及壓縮處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述輸入數(shù)據(jù)包括數(shù)據(jù)段,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中,所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且,位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列值。順便提及,本發(fā)明的所述程序是可以由例如存儲介質(zhì)或通信介質(zhì)以計(jì)算機(jī)可讀形式提供到能夠執(zhí)行各種程序代碼的通用系統(tǒng)的程序。這樣的計(jì)算機(jī)可讀形式的程序的提供根據(jù)在計(jì)算機(jī)系統(tǒng)上的程序來實(shí)現(xiàn)處理。
此外,通過下面基于本發(fā)明的實(shí)施例和附圖提供的詳細(xì)描述來披露本發(fā)明的其他目的、特征和優(yōu)點(diǎn)。順便提及,在本說明書中的系統(tǒng)是多個(gè)裝置的邏輯組的配置,并且不限于其中在同一外殼內(nèi)存在多個(gè)裝置的配置。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了用于對輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)混合處理的混合處理部以及用于對輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)壓縮處理的壓縮處理部,所述輸入數(shù)據(jù)包括所述數(shù)據(jù)段,所述數(shù)據(jù)段是所述消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是所述數(shù)據(jù)轉(zhuǎn)換的目標(biāo)。多級壓縮子部的部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理。提供了其中至少基于多個(gè)回合中的一個(gè)壓縮處理回合的每個(gè)固定時(shí)間來執(zhí)行所述混合處理的配置,因此,實(shí)現(xiàn)了產(chǎn)生具有 改善的抗分析攻擊性和高度安全性的散列值的數(shù)據(jù)壓縮裝置。
圖1是說明作為數(shù)據(jù)壓縮處理部的壓縮函數(shù)(f)的圖。圖2是說明作為代表性的定義域擴(kuò)展方法的、具有消息填充的MD結(jié)構(gòu) (Merkle-Damgard 結(jié)構(gòu))的圖。圖3是說明通過使用小輸出比特尺寸的壓縮函數(shù)來實(shí)現(xiàn)大輸出比特尺寸的散列值的級聯(lián)散列配置的圖。圖4是說明具有改善的安全性的壓縮處理部(壓縮函數(shù))的配置示例的圖。圖5是說明散列函數(shù)配置的示例的圖,其中,鏈接了在圖4中所示的壓縮函數(shù)單元 50作為MD結(jié)構(gòu)。圖6是說明在圖5中所示的配置的修改以及散列函數(shù)的配置示例的圖,該散列函數(shù)使用壓縮函數(shù)單元55,其中,交換了混合函數(shù)F以及壓縮函數(shù)和f2的順序。圖7是說明其中刪除了在圖6中所示的配置中的最后部分的混合函數(shù)F的配置示例的圖。圖8是說明其中對于壓縮函數(shù)的處理的每兩個(gè)循環(huán)設(shè)置用于插入混合函數(shù)F的間隔的配置示例的圖。圖9是說明一般化的散列函數(shù)執(zhí)行部的配置示例的圖,其中,設(shè)置用于插入混合函數(shù)F的間隔使得每第k個(gè)壓縮函數(shù)插入混合函數(shù)F。圖10是說明其中通過使用兩個(gè)壓縮函數(shù)來實(shí)現(xiàn)混合函數(shù)F的配置示例的圖。圖11是說明散列函數(shù)的一般化配置的示例的圖,其中,系列的數(shù)量是m,并且m是不小于2的整數(shù)。圖12是說明mb比特輸入和輸出的混合函數(shù)F的配置示例的圖。圖13是說明混合函數(shù)f的內(nèi)部配置示例的圖。圖14是說明其中在具有MD結(jié)構(gòu)的散列函數(shù)中設(shè)置通過消息調(diào)度部(MS部)和鏈接變量(CV)處理部形成的壓縮函數(shù)的配置示例的圖。圖15是說明其中共享消息調(diào)度部的散列函數(shù)的配置示例的圖。圖16是說明其中擴(kuò)展在壓縮函數(shù)中的輸入消息尺寸的壓縮函數(shù)的配置示例的圖。圖17是說明壓縮函數(shù)的配置示例的圖,該壓縮函數(shù)具有其中將消息調(diào)度部劃分為兩個(gè)部分的配置。圖18是說明壓縮函數(shù)的配置示例的圖,該壓縮函數(shù)具有其中將消息調(diào)度部劃分為兩個(gè)部分的配置,并且具有異或(XOR)運(yùn)算部。圖19是說明壓縮函數(shù)的配置示例的圖,其中,在圖17中所示的壓縮函數(shù)的配置被一般化,并且被設(shè)置來支持na比特的輸入。圖20是說明壓縮函數(shù)的配置示例的圖,其中,在圖18中所示的壓縮函數(shù)的配置被一般化,并且被設(shè)置來支持na比特的輸入。圖21是說明具有附加輸入的置換函數(shù)的示例的圖。圖22是說明具有中間輸出的置換函數(shù)的示例的圖。圖23是說明使用現(xiàn)有的置換函數(shù)的壓縮函數(shù)的配置示例的圖。
圖24是說明其中向壓縮函數(shù)輸入的數(shù)據(jù)的尺寸被擴(kuò)展的壓縮函數(shù)的配置示例的圖。圖25是說明其中將輸入比特增加到3a比特的壓縮函數(shù)的配置示例的圖。圖26是說明其中將輸入比特增加大3a比特的壓縮函數(shù)的配置示例的圖。圖27是說明其中共享兩個(gè)系列的壓縮函數(shù)的消息調(diào)度部的配置示例的圖。圖28是說明其中擴(kuò)展了向壓縮函數(shù)輸入的數(shù)據(jù)的尺寸的壓縮函數(shù)的配置示例的圖。圖29是通過組合兩個(gè)具有中間輸出的置換函數(shù)和兩個(gè)具有附加輸入的置換函數(shù)而配置的混合函數(shù)F的配置示例的圖。圖30是說明可以被用作內(nèi)部函數(shù)的置換函數(shù)的具體配置示例的圖。圖31是說明在內(nèi)部置換處理部(置換函數(shù))中配置的非線性轉(zhuǎn)換部的內(nèi)部配置的一個(gè)示例的圖。圖32是說明內(nèi)部置換處理部的重復(fù)回合的配置示例的圖,其中,進(jìn)行設(shè)置使得多個(gè)不同的矩陣被用作在內(nèi)部置換處理部(置換函數(shù))的非線性轉(zhuǎn)換部中使用的線性轉(zhuǎn)換矩陣[M]。圖33是說明內(nèi)部置換處理部的重復(fù)回合的配置示例的圖,其中,進(jìn)行設(shè)置使得多個(gè)不同的矩陣被用作線性轉(zhuǎn)換矩陣[M]。圖34是說明產(chǎn)生用于整體置換的常數(shù)Ci,」(2),Ci,」(3),-^,,.(m)的技術(shù)的圖。圖35是說明用于減少散列函數(shù)的輸出比特的技術(shù)的一個(gè)示例的圖。圖36是說明用于減少散列函數(shù)的輸出比特的技術(shù)的一個(gè)示例的圖。圖37是說明作為執(zhí)行根據(jù)本發(fā)明的處理的數(shù)據(jù)轉(zhuǎn)換裝置的IC模塊的配置示例的圖。
具體實(shí)施例方式下面,將參考附圖詳細(xì)描述本發(fā)明的數(shù)據(jù)轉(zhuǎn)換裝置、數(shù)據(jù)轉(zhuǎn)換方法和程序。使用以下面的順序的項(xiàng)目來提供說明。1.定義域擴(kuò)展方法2.用于擴(kuò)展輸出尺寸的新定義域擴(kuò)展方法3.用于改善在新定義域擴(kuò)展方法中的處理效率的方法
4.用于實(shí)現(xiàn)混合函數(shù)F的方法5.定義域擴(kuò)展方法的一般化6.混合函數(shù)F的配置的一般化7.關(guān)于不同壓縮函數(shù)的使用8.有效地實(shí)現(xiàn)壓縮函數(shù)的內(nèi)部處理的方法 9.用于擴(kuò)展輸入消息長度的方法10.使用用于CV處理部和MS部的重復(fù)類型的置換的散列函數(shù)實(shí)現(xiàn)方法11.擴(kuò)展MS部的尺寸的方法12.擴(kuò)展CV處理部的尺寸的方法13.擴(kuò)展CV處理部和MS部的尺寸的方法14.配置用于定義域擴(kuò)展方法的混合函數(shù)F的方法15.實(shí)現(xiàn)具有高擴(kuò)散性能的置換處理的方法16.產(chǎn)生具有高獨(dú)立性的輸出的置換函數(shù)的方法17.產(chǎn)生向置換函數(shù)應(yīng)用的常數(shù)的處理18.產(chǎn)生用于多個(gè)整體置換的常數(shù)的方法19.減少散列函數(shù)的輸出值的技術(shù)20.數(shù)據(jù)轉(zhuǎn)換裝置的配置示例[1.定義域擴(kuò)展方法]如上所述,期望散列函數(shù)執(zhí)行部具有上述各種抗攻擊性,即下面的抗攻擊性。原像抗攻擊性第二原像抗攻擊性碰撞抗攻擊性順便提及,本發(fā)明的數(shù)據(jù)轉(zhuǎn)換裝置包括各種函數(shù)執(zhí)行部,諸如下述的散列函數(shù)執(zhí)行部和壓縮函數(shù)執(zhí)行部。在下面的描述中,在本發(fā)明的數(shù)據(jù)轉(zhuǎn)換裝置中的、執(zhí)行每一個(gè)函數(shù)的函數(shù)執(zhí)行部中執(zhí)行僅被表達(dá)為“…函數(shù)”者。順便提及,通過使用硬件、軟件或這兩者來實(shí)現(xiàn)函數(shù)執(zhí)行部。散列函數(shù)使用對給定消息計(jì)算具有固定長度的壓縮值(摘要)的壓縮函數(shù)。當(dāng)建立通過執(zhí)行散列函數(shù)的硬件和軟件形成的散列處理部時(shí),期望通過考慮上述各種抗攻擊性來提供配置。散列處理部的配置被大致劃分為兩層。所述兩層是(1)作為定義域擴(kuò)展部分的第一層,以及(2)作為壓縮函數(shù)的內(nèi)部配置的第二層。定義域是可接受作為散列函數(shù)的輸入值的比特尺寸(輸入尺寸)。一個(gè)壓縮函數(shù)執(zhí)行部執(zhí)行將具有固定長度的輸入值轉(zhuǎn)換為具有固定長度的輸出值的處理,但是通常,在一個(gè)壓縮函數(shù)執(zhí)行部中,可接受的輸入比特尺寸較小,并且不能處理大比特尺寸的輸入值, 因此,通過鏈接多個(gè)壓縮函數(shù)來執(zhí)行擴(kuò)展,以使得處理任意長度的消息輸入。與此類似的處理使得可以執(zhí)行具有長比特長度的輸入數(shù)據(jù)的散列處理。定義域擴(kuò)展處理是這種處理。上述抗攻擊性的水平取決于作為第一層的定義域擴(kuò)展配置和作為第二層的壓縮函數(shù)的內(nèi)部配置。首先,在此,將描述在前者中用于定義域擴(kuò)展處理的新的方案。壓縮函數(shù)是將輸入值的比特串轉(zhuǎn)換為具有比輸入比特長度短的長度的比特串的函數(shù)。圖1是圖示作為壓縮函數(shù)部的壓縮函數(shù)(f)的圖。在圖1中所示的壓縮函數(shù)10是接收a+b比特輸入并且輸出b比特值的輸出Z的函數(shù),a+b比特輸入是作為輸入值的X和初始值Y的和,X是a比特,Y是b比特??山邮転閴嚎s函數(shù)的輸入值的比特尺寸被稱為定義域(輸入尺寸)。一個(gè)壓縮函數(shù)10單獨(dú)不能處理長輸入消息,因此,通過適當(dāng)?shù)貙嚎s函數(shù)彼此鏈接并且由此擴(kuò)展定義域(輸入尺寸)來擴(kuò)展輸入消息尺寸。換句話說,可以輸入具有長比特長度的輸入數(shù)據(jù)。圖2圖示作為代表定義域擴(kuò)展方法的、具有消息填充的MD結(jié)構(gòu)(Merkle-Damgard 結(jié)構(gòu))。順便提及,對于這種配置,例如參見[參考文獻(xiàn)R.Merkle,‘‘ One way hash functions and des. " in Proceedings of Crypto' 89 (G. Brassard, ed.), no.435 in LNCS, pp.428-446, Springer-Verlag, 1989 ;I.Damgard, " A design principle for hash functions. " in Proceedings of Crypto' 89(G. Brassard, ed.), no. 435 in LNCS, pp. 417-427,Springer-Verlag, 1989.]MD結(jié)構(gòu)是使得可以通過如圖2中所示串聯(lián)布置壓縮函數(shù)(f)來擴(kuò)展輸入尺寸的配置。通過作為用于比特長度調(diào)整的比特?cái)?shù)據(jù)應(yīng)用處理執(zhí)行的填充處理,輸入消息被校正為作為壓縮函數(shù)的消息輸入部尺寸的a比特的整數(shù)倍的值。在填充處理后的輸入消息被劃分為作為M0, M1 ,MfiMn^M1JPadding的比特單元。[MlriIPadding]是其中通過下述方式使得輸入比特尺寸是a比特的數(shù)據(jù)向作為輸入消息的最后數(shù)據(jù)的[Mn_J增加作為開銷比特的填充數(shù)據(jù)。在這種配置中,為了建立關(guān)于消息的摘要,通過使用多個(gè)壓縮函數(shù)來重復(fù)下述操作,以使 得最后獲得散列值(H)預(yù)定b比特初始值IV (初始值)和第一分段消息Mtl被輸入壓縮函數(shù)11并且被壓縮,因此,b比特值被輸出為中間值,并且該中間值輸出與隨后的消息被輸入到壓縮函數(shù)12并且被壓縮。此時(shí)的中間值被稱為改變變量。已知這種配置可以表明,如果在獨(dú)立的壓縮函數(shù)本身中存在碰撞抗攻擊性,則整個(gè)散列函數(shù)具有碰撞抗攻擊性,并且這種配置經(jīng)常用于實(shí)際的散列函數(shù)。作為使用這種配置的代表散列函數(shù),存在MD5和SHA-I。[2.用于擴(kuò)展輸出尺寸的新定義域擴(kuò)展方法]在上述配置中,已經(jīng)描述了 b比特輸出的情況,接下來,將討論產(chǎn)生長比特長度的 2b比特散列值的散列函數(shù)的配置。當(dāng)原樣使用上述的MD結(jié)構(gòu)時(shí),必須準(zhǔn)備具有2b比特輸出的壓縮函數(shù)。然而,通常, 難以新產(chǎn)生具有大尺寸輸出和高安全度的壓縮函數(shù)。必須設(shè)計(jì)新的壓縮函數(shù)并且評估安全性,并且,尺寸越大,則這種設(shè)計(jì)和評估變得越困難。因此,期望能夠通過使用已經(jīng)評估的b 比特輸出的壓縮函數(shù)來配置2b比特輸出的散列函數(shù)。作為通過使用小輸出比特尺寸的壓縮函數(shù)來實(shí)現(xiàn)大輸出比特尺寸的散列值的現(xiàn)有技術(shù),已知級聯(lián)散列配置。將參考圖3來描述級聯(lián)散列配置。級聯(lián)散列配置是其中通過并列使用兩個(gè)壓縮函數(shù)而使得大輸出尺寸的散列值成為可能的配置。如圖3中所示,在級聯(lián)散列中,僅并行地布置兩個(gè)壓縮函數(shù)f\*f2。這種配置使得可以配置具有2b比特輸出的散列函數(shù)。然而,通過布置兩個(gè)b比特輸出的壓縮函數(shù)來執(zhí)行2b比特輸出的這樣的散列函數(shù)的安全性未達(dá)到具有2b比特輸出尺寸的散列函數(shù)所需要的等級。已知嚴(yán)格而言,僅具有b比特輸出尺寸的散列函數(shù)的尺度上的安全性。例如在下面的文獻(xiàn)中描述這一點(diǎn) [A. Joux, “ Multicollisions in iterated hash functions, application to cascaded constructions. “ in Proceedings of Crypto’ 04(M. Franklin, ed.), no. 3152 in LNCS, p. 306-316,Springer-Verlag,2004.]。接下來,將參考圖4來描述根據(jù)本發(fā)明的一個(gè)實(shí)施例的、具有改善的安全性的壓縮處理部(壓縮函數(shù))的配置。圖4圖示作為a比特輸入和2b比特輸出的壓縮處理部的壓縮函數(shù)單元50。在圖4中所示的壓縮函數(shù)單元50包括壓縮函數(shù)f\和f2,其作為兩個(gè)獨(dú)立的a+b比特輸入和b比特輸出的數(shù)據(jù)壓縮部;混合函數(shù)F,其作為2b比特輸入和輸出的數(shù)據(jù)混合處理部。換句話說,提供了一個(gè)混合函數(shù)F和兩個(gè)系列壓縮函數(shù)f\和f2。壓縮函數(shù)單元50接收作為a比特[X]和2b比特[Y]的和的2b+a比特輸入。在輸入中,經(jīng)由通過具有2b比特輸入和輸出的混合函數(shù)F來混合2b比特?cái)?shù)據(jù)[Y]。隨后,將混合函數(shù)F的2b比特輸出劃分為b比特分段,并且通過在壓縮函數(shù)單元50中的壓縮函數(shù) f來處理該單元的一個(gè)b比特分段數(shù)據(jù)和剩余的a比特?cái)?shù)據(jù)X。另一個(gè)b比特分段數(shù)據(jù)和 a比特?cái)?shù)據(jù)X通過在壓縮函數(shù)單元50中的壓縮函數(shù)f2來進(jìn)行并行處理。最終,作為和 f2的輸出的組合的2b比特輸出變?yōu)閴嚎s函數(shù)單元50的輸出。順便提及,混合函數(shù)F是混合輸入的2b比特?cái)?shù)據(jù)并且產(chǎn)生輸出的函數(shù),并且兩個(gè)壓縮函數(shù)和f2是不同的壓縮函數(shù)。圖5圖示用于使得能夠處理長輸入比特長度的定義域擴(kuò)展的散列函數(shù)配置的一個(gè)示例,其中,鏈接了在圖4中所示的壓縮函數(shù)單元50作為MD結(jié)構(gòu)。在圖5中所示的數(shù)據(jù)轉(zhuǎn)換裝置包括由MD結(jié)構(gòu)形成的數(shù)據(jù)轉(zhuǎn)換部。通過數(shù)據(jù)轉(zhuǎn)換部來形成在圖5中所示的配置, 數(shù)據(jù)轉(zhuǎn)換部具有η級 的參考圖4描述的壓縮函數(shù)單元50。換句話說,數(shù)據(jù)轉(zhuǎn)換裝置具有由 η級的壓縮函數(shù)單元50形成的散列函數(shù)執(zhí)行部,每一個(gè)壓縮函數(shù)單元50具有2b比特輸入和輸出的一個(gè)混合函數(shù)F以及a+b比特輸入和b比特輸出的兩個(gè)系列壓縮函數(shù)和f2。在圖5中所示的散列函數(shù)中,通過使用壓縮函數(shù)單元50-0至50-(n-l)作為η級配置來進(jìn)行重復(fù)的應(yīng)用,并且從在最后級的壓縮函數(shù)單元50-(η-1)輸出2b比特的散列值 (H1IH2)0向在第一級的壓縮函數(shù)單元50-0輸入在輸入比特Mtl至Mlri中的第一個(gè)a比特M0 和兩個(gè)b比特初始值IV1和IV2,并且通過壓縮函數(shù)和f2的每一個(gè)來產(chǎn)生b比特的輸出, 即輸出總共2b比特的輸出。隨后,饋送從在前一級的壓縮函數(shù)單元中的壓縮函數(shù)和f2輸出的2b比特以及其比特是Mtl至Mlri的構(gòu)成比特的a比特輸入,并且產(chǎn)生2b比特輸出。其后,重復(fù)地執(zhí)行相同的處理,并且在最后級中,供給在前一級的2b比特輸出以及由Mlri和填充數(shù)據(jù)形成的a比特輸入,并且產(chǎn)生b比特輸出H1和H2, S卩,輸出2b比特散列值(H1IH2)15這種配置示出,如果壓縮函數(shù)單元50的內(nèi)部壓縮函數(shù)和f2與混合函數(shù)F滿足被稱為隨機(jī)預(yù)言的屬性,則存在足夠的安全度。隨機(jī)預(yù)言是下述函數(shù)該函數(shù)在內(nèi)部產(chǎn)生隨機(jī)數(shù),并且當(dāng)被提供輸入時(shí)輸出隨機(jī)數(shù),并且當(dāng)再一次被提供已經(jīng)給出過的輸入時(shí),再一次輸出過去輸出的隨機(jī)數(shù)。實(shí)際上,通過下述方式來實(shí)現(xiàn)這一點(diǎn)設(shè)計(jì)函數(shù),該函數(shù)近似象隨機(jī)預(yù)言那樣的行為,并且通過不需要產(chǎn)生隨機(jī)數(shù)的確定過程來計(jì)算輸出;并且使用所設(shè)計(jì)的函數(shù)來執(zhí)行替換。這種配置使得可以在壓縮函數(shù)內(nèi)使用其安全性容易被評估并且其處理輕的部件,因此可以實(shí)現(xiàn)容易設(shè)計(jì)并且在效率上高的散列函數(shù)。
根據(jù)本實(shí)施例,提供了至少在由多個(gè)回合形成的壓縮處理回合中在每一個(gè)固定時(shí)間執(zhí)行混合處理的配置,因此,實(shí)現(xiàn)了產(chǎn)生具有增強(qiáng)的抗分析攻擊性和高安全度的散列值的數(shù)據(jù)轉(zhuǎn)換裝置。此外,作為在圖5中所示的配置的修改,存在如圖6中所示使用壓縮函數(shù)單元55 的情況,并且這種情況也可以用作具有相同效果的散列函數(shù),其中,在壓縮函數(shù)單元55中, 混合函數(shù)F與壓縮函數(shù)和f2的順序被交換。此外,作為在圖5和圖6中所示的配置的修改,存在其中如圖7中所示刪除在圖6 中所示的配置中的最后部上的混合函數(shù)F的配置,并且這種配置也可以被用作在安全性上具有相同效果的散列函數(shù)。也從下述情況得出這一點(diǎn)通過將第一混合函數(shù)F的輸出重新定義為在圖5中所示的配置中的IV1和IV2來實(shí)現(xiàn)這種配置。
以這種方式,可以通過較小b比特輸出的壓縮函數(shù)和混合函數(shù)F來配置具有高的安全度的2b比特輸出的散列函數(shù),而不用建立專用于2b比特輸出的壓縮函數(shù)。此外,在圖5、圖6和圖7中所示的配置中,在壓縮函數(shù)單元中的內(nèi)部壓縮函數(shù)f\ 和f2的各自的輸出這兩者的比特的數(shù)量是b比特,并且配置使得在內(nèi)部壓縮函數(shù)和f2之間的中間值,即鏈接變量上一致。然而,這些內(nèi)部壓縮函數(shù)和f2的鏈接變量(CV)的比特尺寸不必彼此一致。例如,可以提供下述配置內(nèi)部壓縮函數(shù)fi被設(shè)置為輸出b比特鏈接變量(CV),并且內(nèi)部壓縮函數(shù)f2被設(shè)置為輸出C比特的鏈接變量(CV),并且鏈接變量(CV)整體是b+c比特變量。 在這種配置中,也可以通過較小函數(shù)的配置來實(shí)現(xiàn)壓縮函數(shù)單元,因此,已經(jīng)確認(rèn)安全并且支持小比特尺寸的壓縮函數(shù)可以被應(yīng)用為內(nèi)部壓縮函數(shù)。[3.用于改善在新定義域擴(kuò)展方法中的處理效率的方法]隨后,將參考圖8來描述散列函數(shù)的配置示例,其中,改善了參考圖5和圖6所述的定義域擴(kuò)展方法的處理效率。圖8是散列函數(shù)的配置示例,其中,對于壓縮函數(shù)的處理的每兩個(gè)循環(huán)設(shè)置用于插入混合函數(shù)F的間隔。壓縮函數(shù)單元60被配置來包括混合函數(shù)F、兩級的內(nèi)部壓縮函數(shù)以及兩級的內(nèi)部壓縮函數(shù)f2*f4。順便提及,在壓縮函數(shù)單元60中包括的四個(gè)內(nèi)部壓縮函數(shù)是彼此獨(dú)立的壓縮函數(shù)。換句話說,在兩個(gè)混合函數(shù)F之間插入的區(qū)域中包括的四個(gè)內(nèi)部壓縮函數(shù)是獨(dú)立的壓縮函數(shù)。兩個(gè)b比特初始值IV1和IV2被輸入到在第一級中的壓縮函數(shù)單元60,并且混合函數(shù)F混合所輸入的2b比特?cái)?shù)據(jù),并且向每一個(gè)壓縮函數(shù)4和&產(chǎn)生b比特的輸出。向壓縮函數(shù)f工和f2輸入在輸入比特M0至Mlri中的第一 a比特M0和來自混合函數(shù)F的b比特輸出,并且b比特輸出被產(chǎn)生并被供給到在隨后級中的壓縮函數(shù)&和f4。向壓縮函數(shù)&和&輸入在輸入比特Mtl至Mlri中的a比特M1以及來自在前一級中的壓縮函數(shù)和f2的b比特輸出,并且b比特輸出被產(chǎn)生并被供給到在隨后級中的壓縮函數(shù)單元的混合函數(shù)F。隨后,供給來自在前一級中的壓縮函數(shù)單元中的壓縮函數(shù)的2b比特輸出以及具有作為Mtl至Mlri的構(gòu)成比特的比特的2a比特輸入,并且產(chǎn)生2b比特輸出。其后,重復(fù)執(zhí)行同一處理,并且在最后級中,供給來自前一級的2b比特輸出、a比特Mn_2以及由Mlri和填充數(shù)據(jù)形成的a比特輸入,并且產(chǎn)生b比特輸出H1和H2,即輸出2b比特散列值(H1IH2)15
在這種配置中,與在圖5中所示的配置相比,減少了在處理相同長度的消息時(shí)對于混合函數(shù)F調(diào)用的次數(shù),因此,改善了處理效率。具體地說,在圖5中所示的配置中,在處理兩個(gè)a比特消息期間的時(shí)間中所需要的處理使用混合函數(shù)F兩次并且使用壓縮函數(shù)四次,而在圖8中所示的配置中,通過使用混合函數(shù)F—次并且使用壓縮函數(shù)四次的處理來執(zhí)行這一點(diǎn),因此,可以減少F的處理一次,并且實(shí)現(xiàn)了處理上的效率的提升。在圖8中所示的配置中,在兩步中的混合函數(shù)F和壓縮函數(shù)被設(shè)置為重復(fù)地執(zhí)行。 也可以提供下述配置在混合函數(shù)中的處理的數(shù)量被進(jìn)一步減少,并且對于壓縮函數(shù)的每三個(gè)或更多級設(shè)置混合函數(shù)F。圖9圖示一般化的散列函數(shù)執(zhí)行部的配置示例,其中,設(shè)置用于插入混合函數(shù)F的間隔使得每隔k個(gè)壓縮函數(shù)插入混合函數(shù)F。在圖9中所示的配置中,壓縮函數(shù)單元70具有包括2比特輸入和輸出的一個(gè)混合函數(shù)F以及在k級中的a+b比特輸入和b比特輸出的兩個(gè)系列壓縮函數(shù)。兩個(gè)b比特初始值1義和IV2被輸入到在第一級中的壓縮函數(shù)單元70,并且,混合函數(shù)F混合輸入的2b比特?cái)?shù)據(jù),并且向以兩個(gè)系列配置的壓縮函數(shù)和f2的每一個(gè)產(chǎn)生b 比特的輸出。向壓縮函數(shù)f工和f2輸入在輸入比特M0至Mlri中的第一 a比特M0和來自混合函數(shù)F的b比特輸出,并且,b比特輸出被產(chǎn)生并被供給到在隨后級中的壓縮函數(shù)&和f4。向壓縮函數(shù)f3和f4輸入在輸入比特Mtl至Mlri中的a比特M1和來自在前一級中的壓縮函數(shù)和f2的b比特輸出,并且b比特輸出被產(chǎn)生并被供給到下一個(gè)壓縮函數(shù)。其后,來自在前一級中的壓縮函數(shù)的輸出和具有形成輸入比特此至^—的比特的a比特輸入被供給到在隨后級中的壓縮函數(shù),并且產(chǎn)生每一個(gè)b比特輸出,這個(gè)過程被重復(fù)k次,并且來自兩個(gè)系列的第k壓縮函數(shù)的輸出被輸入到下一個(gè)壓縮函數(shù)單元71的混合函數(shù)F。 壓縮函數(shù)單元71的處理類似于壓縮函數(shù)單元70的處理。然而,在輸入比特Mtl至 Mlri的后一半中的比特?cái)?shù)據(jù)和填充數(shù)據(jù)被輸入。最終,從在壓縮函數(shù)單元71的最后級中的兩個(gè)系列的壓縮函數(shù)產(chǎn)生b比特的輸出H1和H2,即輸出2b比特的散列值(H11H2)。順便提及,根據(jù)作為散列值的輸出長度2b,插入混合函數(shù)F的間隔是在不危害安全性的范圍內(nèi)確定的值。例如,存在其中當(dāng)b = 256時(shí)k = 8的配置。k越大,則處理效率改善越多。在圖9中所示的配置是下述配置其中,像在圖5中的配置那樣,向混合函數(shù)F輸入初始值,并且在混合函數(shù)F之后的級中設(shè)置兩個(gè)系列的壓縮函數(shù),但是也可能提供使用壓縮函數(shù)單元的配置,其中,首先,向參考圖6等所述的兩個(gè)系列的壓縮函數(shù)輸入初始值, 并且在多個(gè)級中執(zhí)行兩個(gè)系列的壓縮函數(shù)后,最后執(zhí)行混合函數(shù)F。[4.用于實(shí)現(xiàn)混合函數(shù)F的方法]混合函數(shù)F是混合輸入比特并且輸出其比特?cái)?shù)量等于在輸入數(shù)據(jù)中的比特?cái)?shù)量的數(shù)據(jù)的函數(shù)。將參考圖10來描述用于實(shí)現(xiàn)混合函數(shù)的具體配置。圖10是其中通過使用兩個(gè)壓縮函數(shù)來實(shí)現(xiàn)混合函數(shù)F的配置。在圖10(1)中所示的混合函數(shù)F 80是其中通過下述部來實(shí)現(xiàn)2b比特輸入和輸出的混合函數(shù)F 80的示例b比特輸入和a比特輸出的兩個(gè)轉(zhuǎn)換部81和82 ;以及,a+b比特輸入和b比特輸出的兩個(gè)壓縮函數(shù)83和84。劃分所產(chǎn)生并輸入到混合函數(shù)F 80的兩個(gè)b 比特?cái)?shù)據(jù)被分別作為輸入的b比特部分提供到壓縮函數(shù)83和84。此外,同時(shí),相應(yīng)的b比特?cái)?shù)據(jù)被輸入到轉(zhuǎn)換部81和82,被轉(zhuǎn)換為a比特?cái)?shù)據(jù),并且作為輸入數(shù)據(jù)的a比特部分被提供到轉(zhuǎn)換函數(shù)83和84。轉(zhuǎn)換部81和82可能僅需要執(zhí)行用于調(diào)整比特長度的簡單處理,并且可以通過例如簡單處理配置實(shí)現(xiàn),該簡單處理配置諸如是通過復(fù)制比特和異或的擴(kuò)展。期望轉(zhuǎn)換部81和82被設(shè)置來滿足下面的條件。換句話說,進(jìn)行設(shè)置使得混合函數(shù)F 80的2b比特輸入的每一個(gè)比特影響轉(zhuǎn)換函數(shù)83和84的每一個(gè)的a+b比特輸入??梢酝ㄟ^在圖10中所示的配置來形成混合函數(shù)F,結(jié)果,可以通過兩個(gè)壓縮函數(shù)所需要的處理規(guī)模來實(shí)現(xiàn)混合函數(shù)F。在圖10⑵中所示的混合函數(shù)F 85是其中向轉(zhuǎn)換部86和87的每一個(gè)的輸入是 2b比特輸入的示例。轉(zhuǎn)換部86和87每一個(gè)由函數(shù)形成,該函數(shù)在a > b的情況下鏈接兩個(gè)b比特?cái)?shù)據(jù)并且減少數(shù)據(jù),由此通過諸如異或的簡單運(yùn)算來建立a比特。也期望設(shè)置轉(zhuǎn)換部86和87來滿足下面的條件。換句話說,進(jìn)行設(shè)置使得混合函數(shù)F 85的2b比特輸入的每一個(gè)比特影響向轉(zhuǎn)換函數(shù)88和89的每一個(gè)的a+b比特輸入。在這種配置中,也可以通過兩個(gè)壓縮函數(shù)所需要的處理的規(guī)模來實(shí)現(xiàn)混合函數(shù)F。在這個(gè)圖10中的混合函數(shù)F的配置可以被用作在參考圖5至圖9的散列函數(shù)的配置中的混合函數(shù)F。通過使用這樣的配置,可以通過重新使用原來在圖5至圖9中的壓縮函數(shù)單元中設(shè)置的壓縮函數(shù)來實(shí)現(xiàn)混合函數(shù)F。這樣的部件共享在安裝硬件時(shí)產(chǎn)生門規(guī)模減小的效果,并且使得可以減小裝置的尺寸和成本。[5.定義域擴(kuò)展方法的一般化]具有參考圖5至圖9所述的MD結(jié)構(gòu)的散列函數(shù)是其中一個(gè)混合函數(shù)F的輸出被輸入到兩個(gè)系列的壓縮函數(shù)的配置或其中兩個(gè)系列的壓縮函數(shù)的輸出被輸入到一個(gè)混合函數(shù)F的配置。換句話說,壓縮函數(shù)被設(shè)置來使用兩個(gè)系列。壓縮函數(shù)的系列的數(shù)量不限于二,并且該配置可以使用三個(gè)或更多的系列。圖11 圖示其中系列的數(shù)量是m并且m是不小于2的整數(shù)的散列函數(shù)的一般化配置的示例。在圖11中的配置是下述配置其中,基于在圖9中所示的配置,壓縮函數(shù)的系列的數(shù)量被從2改變?yōu)閙。壓縮函數(shù)單元90包括mb比特輸入和輸出的混合函數(shù)F和以m個(gè)系列配置的多級壓縮函數(shù)。在第一級中的、其數(shù)量為m的壓縮函數(shù)Π至fm的每一個(gè)被供給來自混合函數(shù)F的mb比特輸出的比特?cái)?shù)據(jù)的b比特部分和在輸入比特M0至Mlri中的第一 a比特M0,并且產(chǎn)生向隨后級中的壓縮函數(shù)輸入的b比特輸出。在k級中的m系列的壓縮函數(shù)的每一個(gè)被供給來自在前一級中的壓縮函數(shù)的輸出和輸入比特M0至Mlri中的a比特M, 并且產(chǎn)生b比特輸出。在k級中的壓縮函數(shù)的處理后,在壓縮函數(shù)單元90的最后級中的壓縮函數(shù)的mb比特輸出被輸入到下一個(gè)壓縮函數(shù)單元的混合函數(shù)F。作為從在最后級中的壓縮函數(shù)單元91的最后級中的、其數(shù)量是m的壓縮函數(shù)的每一個(gè)輸出的b比特的輸出H1至Hm的和的2mb比特輸出被作為散列值(H11H21··· |Hm)產(chǎn)生。 所獲得的散列值H1,H2,…,Hm最多有mb比特。通過這種技術(shù),可以實(shí)現(xiàn)具有更長尺寸的輸出的散列函數(shù)。[6.混合函數(shù)F的配置的一般化]接下來,將描述混合函數(shù)F的一般化配置。已經(jīng)在上面參考圖10描述了混合函數(shù) F的具體配置。參考圖10所述的混合函數(shù)F是應(yīng)用兩個(gè)系列的壓縮函數(shù)的配置。圖12圖示mb比特輸入和輸出的混合函數(shù)F的一般化配置的示例。在圖12中圖示的混合函數(shù)F 100由下述部分形成m個(gè)系列的c比特輸入和b比特輸出的壓縮函數(shù)fl 至fm以及在前一級中的其數(shù)量為m的轉(zhuǎn)換部。在圖12中圖示的示例中,假定向m種不同的壓縮函數(shù)fl至fm的每一個(gè)的輸入的尺寸是c比特。為了所有的輸入比特影響壓縮函數(shù)fl至fm的每一個(gè),每一個(gè)mb比特輸入被供給到轉(zhuǎn)換部一次,并且被減小以滿足壓縮函數(shù)的輸入尺寸。在轉(zhuǎn)換部中,通過例如異或 (XOR)或比特尺寸擴(kuò)展處理等來從mb比特輸入產(chǎn)生c比特輸出。轉(zhuǎn)換部所需要的條件是使得作為向混合函數(shù)F的輸入比特的mb比特的每一個(gè)比特影響c比特輸出的任何比特。這可以通過簡單的運(yùn)算來實(shí)現(xiàn)。例如,在c = mb的情況下, 轉(zhuǎn)換部可以直接對輸入鏈接并輸出。[7.關(guān)于不同壓縮函數(shù)的使用]在上面的描述中,在具有多級配置的多個(gè)系列的壓縮函數(shù)fl、f2、…、fm的壓縮函數(shù)單元中,已經(jīng)將在壓縮函數(shù)單元中的多個(gè)系列的壓縮函數(shù)fl、f2、…、fm描述為具有不同的結(jié)構(gòu)。這是可以客觀地示出安全度最高的配置,但是即使當(dāng)使用單個(gè)壓縮函數(shù)時(shí)也不立即損害安全性。存在在實(shí)現(xiàn)上重復(fù)地使用單個(gè)壓縮函數(shù)有益的情況,因此,其中所有壓縮函數(shù)相同的配置作為另一個(gè)實(shí)施例也是可能的。此外,可以不使用單個(gè)壓縮函數(shù),并且其中重復(fù)地使用較少類型的壓縮函數(shù)的配置也同樣是可能的。[8.有效地實(shí)現(xiàn)壓縮函數(shù)的內(nèi)部處理的方法] 接下來,將描述在如上所述的壓縮函數(shù)單元中設(shè)置的壓縮函數(shù)fi的具體配置示例。在圖13中示出壓縮函數(shù)f的內(nèi)部配置示例。圖13是在參考圖5至圖12描述的壓縮函數(shù)單元中設(shè)置的壓縮函數(shù)fi的配置示例,此外,壓縮函數(shù)fi可用作混合函數(shù)F的構(gòu)成元
ο如圖13中所示,壓縮函數(shù)120具有消息調(diào)度部(MS部)121和鏈接變量(CV)處理部122。對于壓縮函數(shù)120的a+b比特輸入的[X]a比特輸入被供給到消息調(diào)度部(MS 部)121,并且剩余的[Y]b比特輸入被供給到鏈接變量(CV)處理部122。消息調(diào)度部(MS部)121通過基于a比特輸入的消息調(diào)度處理來產(chǎn)生和向鏈接變量(CV)處理部122輸入C比特輸出。鏈接變量(CV)處理部122接收由向壓縮函數(shù)120的 b比特輸入以及來自消息調(diào)度部(MS部)121的c比特輸入構(gòu)成的b+c比特輸入,并且產(chǎn)生作為壓縮函數(shù)120的輸出的b比特輸出[Z]。圖14圖示其中在具有上面參考圖5描述的MD結(jié)構(gòu)的散列函數(shù)中設(shè)置在這個(gè)圖13 中圖示的壓縮函數(shù),即由消息調(diào)度部(MS部)和鏈接變量(CV)處理部形成的壓縮函數(shù)的配置示例。在圖14中圖示的壓縮函數(shù)單元130以與參考圖5的上面的描述的方式類似的方式由混合函數(shù)F和兩個(gè)系列的壓縮函數(shù)Π和f2形成。這些壓縮函數(shù)Π和f2每一個(gè)具有參考圖13所述的配置。換句話說,這是由消息調(diào)度部(MS部)和鏈接變量(CV)處理部形成的壓縮函數(shù)。在圖14中所示的示例中,在兩種壓縮函數(shù)fl和f2中的消息調(diào)度部(MS部)被分別圖示為MSl和MS2,并且鏈接變量(CV)處理部被分別圖示為CVl和CV2。這種配置使得可以實(shí)現(xiàn)散列函數(shù)。下面,將描述實(shí)現(xiàn)在處理效率上進(jìn)一步改善的配置。在圖14中所示的壓縮函數(shù)單元130-0至130_(n_l)的每一個(gè)中,同時(shí)向在兩個(gè)壓縮函數(shù)中的消息調(diào)度部(MS部)MSl和MS2輸入消息Mi。因此,可以在垂直地布置的兩個(gè)系列的壓縮函數(shù)之間共享消息調(diào)度部,這使得可以減少處理。圖 15是圖示其中共享消息調(diào)度部的散列函數(shù)的配置示例。在圖14中,設(shè)置了壓縮函數(shù)142,其中,在壓縮函數(shù)單元130-0至130-(n-1)的每一個(gè)中包括的兩個(gè)垂直壓縮函數(shù)的消息調(diào)度部被轉(zhuǎn)換為共享的單個(gè)消息調(diào)度部(MS部)141。當(dāng)應(yīng)用具有這種單個(gè)消息調(diào)度部(MS部)141的壓縮函數(shù)142的配置時(shí),僅執(zhí)行一次在單個(gè)壓縮函數(shù)單元140中執(zhí)行的單個(gè)消息調(diào)度部(MS部)的算術(shù)處理,使得可以減少必要的算術(shù)處理。例如,實(shí)現(xiàn)了在硬件配置的尺寸上的減小和處理步驟的簡化。在參考圖15描述的多個(gè)壓縮函數(shù)中共享消息調(diào)度部的配置可以被應(yīng)用到上述的多個(gè)散列配置。換句話說,這種配置也可以被應(yīng)用到參考圖5至圖12描述的具有多個(gè)系列的壓縮函數(shù)的壓縮函數(shù)單元和在混合函數(shù)F中的壓縮函數(shù)。[9.用于擴(kuò)展輸入消息長度的方法]接下來,將描述用于擴(kuò)展在壓縮函數(shù)中的輸入消息尺寸的方法。在圖16中圖示的壓縮函數(shù)150由例如參考圖13描述的壓縮函數(shù)120、消息調(diào)度部(MS部)151和鏈接變量 (CV)處理部152形成。如上參考圖13所述的壓縮函數(shù)120是其中a比特輸入作為向消息調(diào)度部(MS部)121的消息輸入的配置。相反,在圖16中所示的壓縮函數(shù)150具有用于支持2a比特輸入的消息調(diào)度部(MS部)151。通常,用于支持a比特輸入的函數(shù)和用于支持2a比特輸入的函數(shù)不同,并且基于不同的安全評估標(biāo)準(zhǔn)來評估它們。因此,當(dāng)可能時(shí),期望組合支持a比特輸入并具有已經(jīng)評估的安全和性能的函數(shù),由此配置用于支持2a比特的消息調(diào)度部。此外,這也使得可以重新使用支持a比特輸入的其他現(xiàn)有函數(shù)。下面將描述該函數(shù)的具體配置示例,并且在此,將描述一種通過使用支持a比特輸入的函數(shù)來配置支持2a比特或更多比特的輸入的壓縮函數(shù)的方法。圖17圖示具有其中將消息調(diào)度部劃分為兩個(gè)部分的配置的壓縮函數(shù)160的配置示例。在向壓縮函數(shù)160的輸入消息2a比特?cái)?shù)據(jù)被劃分為兩個(gè)a比特?cái)?shù)據(jù)段后,執(zhí)行用于在相應(yīng)的消息調(diào)度部161和162中產(chǎn)生c比特輸出的處理。相應(yīng)的兩個(gè)消息調(diào)度部161和 162的c比特輸出兩者被提供到鏈接變量(CV)處理部163。鏈接變量(CV)處理部163接收兩個(gè)消息調(diào)度部161和162的c比特輸出和向壓縮函數(shù)160的b比特輸入,并且產(chǎn)生和輸出作為壓縮函數(shù)的輸出的b比特輸出[Z]。這種配置的優(yōu)點(diǎn)是可以配置下述壓縮函數(shù)該壓縮函數(shù)通過使用支持比2a比特短的a比特輸入的函數(shù)(消息調(diào)度部)來實(shí)現(xiàn)2a比特消息輸入。在圖18中所示的壓縮函數(shù)170是像在圖17中所示的壓縮函數(shù)160那樣具有下述配置的壓縮函數(shù)170的配置示例在該配置中,將消息調(diào)度部劃分為兩個(gè)部分。這個(gè)壓縮函數(shù)170具有異或(XOR)運(yùn)算部174。在向壓縮函數(shù)170的輸入消息2a比特?cái)?shù)據(jù)被劃分為兩個(gè)a比特?cái)?shù)據(jù)段后,執(zhí)行用于在相應(yīng)的消息調(diào)度部171和172中產(chǎn)生c比特輸出的處理。在異或(XOR)運(yùn)算部174中執(zhí)行異或(XOR)運(yùn)算后,相應(yīng)的兩個(gè)消息調(diào)度部171和172的c比特輸出兩者被提供到鏈接變量(CV)處理部173。這是下述配置其中,兩個(gè)消息調(diào)度部的輸出在異或(XOR)運(yùn)算部174中被處理一次,然后被提供到鏈接變量(CV)處理部173。這種配置的優(yōu)點(diǎn)是可以通過防止在由鏈接變量(CV)處理部173接收的消息的尺寸上的增加來簡化鏈接變量(CV)處理部173的內(nèi)部。 順便提及,可以將異或(XOR)部分替換為模加法處理。圖19圖示壓縮函數(shù)210的配置示例,其中,在圖17中所示的壓縮函數(shù)160的配置被一般化,并且被設(shè)置來支持na比特的輸入。向壓縮函數(shù)210的na比特消息輸入被劃分為其數(shù)量為η的a比特消息,并且在每一個(gè)獨(dú)立地支持a比特輸入的消息調(diào)度部(MS部)211_1 至211-n中處理每一個(gè)a比特消息,以使得消息調(diào)度部(MS部)211-1至211_n產(chǎn)生c比特輸出。相應(yīng)的消息調(diào)度部(MS部)211-1至211_n的c比特輸出被提供到鏈接變量(CV) 處理部212。鏈接變量(CV)處理部212接收其數(shù)量為η的消息調(diào)度部(MS部)211-1至 211-n的nc比特輸出以及向壓縮函數(shù)210的b比特輸入,并且產(chǎn)生和輸出作為壓縮函數(shù)的輸出的b比特輸出[Z]。這種配置也具有與上面參考圖17描述的優(yōu)點(diǎn)類似的優(yōu)點(diǎn)。換句話說,可以配置下述壓縮函數(shù)該壓縮函數(shù)通過使用支持比皿比特短的a比特的輸入的函數(shù)(消息調(diào)度部) 來實(shí)現(xiàn)na比特消息輸入。圖20圖示壓縮函數(shù)220的配置示例,其中,在圖18中所示的壓縮函數(shù)170的配置被一般化,并且被設(shè)置來支持na比特的輸入。向壓縮函數(shù)220的na比特消息輸入被劃分為其數(shù)量為η的a比特消息,并且在每一個(gè)獨(dú)立地支持a比特輸入的消息調(diào)度部(MS部)221_1 至221- n中處理每一個(gè)a比特消息,以使得消息調(diào)度部(MS部)221-1至221_n產(chǎn)生c比特輸出。相應(yīng)的消息調(diào)度部(MS部)221-1至221_n的c比特輸出在異或(XOR)運(yùn)算部 223-1至223-n中被異或,然后被提供到單個(gè)鏈接變量(CV)處理部222。在接收到異或 (XOR)運(yùn)算部223-n的c比特輸出和向壓縮函數(shù)220的b比特輸入時(shí),鏈接變量(CV)處理部222產(chǎn)生和輸出作為壓縮函數(shù)的輸出的b比特輸出[Z]。使用這種配置,也可以配置下述壓縮函數(shù),該壓縮函數(shù)通過使用支持比na比特短的a比特的函數(shù)(消息調(diào)度部)來實(shí)現(xiàn) na比特消息輸入。順便提及,其中將異或(XOR)處理部替換為模加法處理部的配置也是可能的。以這種方式,根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)轉(zhuǎn)換裝置具有下述配置該配置具有多個(gè)處理系列,將劃分消息數(shù)據(jù)得到的數(shù)據(jù)段并行輸入該多個(gè)處理系列,并且該配置執(zhí)行應(yīng)用了多個(gè)壓縮函數(shù)執(zhí)行部(f)的數(shù)據(jù)轉(zhuǎn)換處理。多個(gè)壓縮函數(shù)執(zhí)行部(f)的每一個(gè)被配置來執(zhí)行應(yīng)用消息調(diào)度部(MS部)的處理,該消息調(diào)度部(MS部)通過接收作為消息數(shù)據(jù)的分段的數(shù)據(jù)段的輸入來執(zhí)行消息調(diào)度處理;以及,應(yīng)用鏈接變量(CV)處理部的處理,該鏈接變量(CV)處理部接收消息調(diào)度部 (MS部)的輸出和作為在前一級的處理部的輸出的中間值(鏈接變量)的輸入,并且通過輸入數(shù)據(jù)的壓縮來產(chǎn)生其比特?cái)?shù)量等于在中間值中的比特的數(shù)量的輸出數(shù)據(jù)。在多個(gè)處理系列中并行地執(zhí)行處理的多個(gè)壓縮函數(shù)執(zhí)行部共享消息調(diào)度部(MS 部)和鏈接變量(CV)處理部之一或兩者,并且使用單個(gè)消息調(diào)度部或單個(gè)鏈接變量處理部來執(zhí)行處理。這種配置實(shí)現(xiàn)了例如在硬件配置的尺寸上的減小和處理步驟的簡化。[10.使用用于CV處理部和MS部的重復(fù)類型的置換的散列函數(shù)實(shí)現(xiàn)方法]
如上所述,可以通過使得消息調(diào)度部(MS部)和鏈接變量(CV)處理部作為構(gòu)成元素來實(shí)現(xiàn)壓縮函數(shù)。將描述這些消息調(diào)度部(MS部)和鏈接變量(CV)處理部的具體配置示例。作為消息調(diào)度部(MS部)和鏈接變量(CV)處理部,基于置換函數(shù)的那些是通常已知的。例如,作為散列函數(shù)已知的SHA-I和Whirlpool等具有基于置換函數(shù)的配置。期望向消息調(diào)度部(MS部)和 鏈接變量(CV)處理部應(yīng)用的置換函數(shù)具有高混合性能。將描述置換函數(shù)的配置示例,該置換函數(shù)的混合性能通過重復(fù)地應(yīng)用相對簡單的置換函數(shù)而被改善。在下面的描述中,在置換函數(shù)中重復(fù)的相對簡單的置換將被稱為“內(nèi)部置換”,并且可以作為該置換的結(jié)果執(zhí)行的置換將被稱為“整體置換”。順便提及,置換函數(shù)是下述函數(shù),該函數(shù)基于輸入值來產(chǎn)生輸出值,使得輸入和輸出在尺寸上相同,并且相應(yīng)的輸入和輸出值一對一對應(yīng)。順便提及,對于置換函數(shù),逆函數(shù)因?yàn)檫@種屬性而存在。在整體置換內(nèi),可以執(zhí)行外部數(shù)據(jù)與在兩個(gè)內(nèi)部置換處理之間的中間數(shù)據(jù)的加法,并且向函數(shù)的外部輸出該中間數(shù)據(jù)。在壓縮函數(shù)中,存在下述情況其中,通過使用這種中間數(shù)據(jù),執(zhí)行向除了整體置換的原始輸入和輸出之外的位置的數(shù)據(jù)輸入以及附加數(shù)據(jù)的輸出。向除了原始輸入之外的輸入給出的這樣的數(shù)據(jù)被稱為附加輸入,并且當(dāng)使得中間數(shù)據(jù)成為除了原始輸出之外的輸出時(shí),該數(shù)據(jù)被稱為中間輸出。在圖21中圖示的置換函數(shù)(置換處理部)310是具有附加輸入311的置換函數(shù)的示例。此外,在圖22中圖示的置換函數(shù)(置換處理部)320是具有中間輸出321的置換函數(shù)的示例。在圖21和圖22中圖示的置換函數(shù)都基于支持a比特輸入和輸出的整體置換。內(nèi)部被配置使得從內(nèi)部置換1向內(nèi)部置換k重復(fù)應(yīng)用。在圖21中圖示的置換函數(shù)310具有下述配置附加輸入311與作為內(nèi)部置換的輸出值的中間數(shù)據(jù)異或,并且被輸出到在隨后級的內(nèi)部置換處理部或被輸出到外部。在圖22中所示的置換函數(shù)320中,作為內(nèi)部置換的輸出值的中間數(shù)據(jù)被作為中間輸出321輸出到外部。從現(xiàn)在開始,為了在這樣的整體置換和通常的整體置換之間相區(qū)別,將在圖21中圖示的類型的置換函數(shù)稱為具有附加輸入的置換函數(shù),并且將在圖22中圖示的類型的置換函數(shù)稱為具有中間輸出的置換函數(shù)。順便提及,具有附加輸入的置換函數(shù)繼承了置換的下面的原始屬性。*當(dāng)附加輸入固定時(shí),在輸入和輸出之間有一對一的對應(yīng)。此外,具有中間輸出的置換函數(shù)具有帶有從置換函數(shù)得出的下面的屬性的特征。*輸入和相應(yīng)的中間輸出一對一地對應(yīng)。如上參考圖13至圖20所述,具有散列函數(shù)的壓縮函數(shù)被配置來包括消息調(diào)度部 (MS部)和鏈接變量(CV)處理部。已知通過下述方式來來配置壓縮函數(shù)在鏈接變量(CV)處理部中使用具有附加輸入的置換函數(shù),在消息調(diào)度部(MS部)中使用具有中間輸出的置換函數(shù),并且建立相互連接(Whirlpool)。圖23圖示使用這種現(xiàn)有的置換函數(shù)的壓縮函數(shù)330的配置示例。在圖23中所示的壓縮函數(shù)330具有下述配置,消息調(diào)度部(MS部)331被設(shè)置為a比特的具有中間輸出的置換函數(shù),并且這個(gè)中間輸出連接到 在鏈接變量(CV)處理部332中使用的具有附加輸入的 a比特置換函數(shù)的附加輸入。在圖23中所示的配置中,為了使得描述容易,消息調(diào)度部(MS部)331和鏈接變量 (CV)處理部332作為a比特置換函數(shù),但是消息調(diào)度部(MS部)331和鏈接變量(CV)處理部332可以不必然在尺寸上相同。當(dāng)長度不同時(shí),可以通過適當(dāng)?shù)貓?zhí)行擴(kuò)展和減少操作來進(jìn)行調(diào)整。此外,在圖23中所示的所有中間輸出可以不必然在消息調(diào)度部(MS部)331和鏈接變量(CV)處理部332之間連接,并且可以執(zhí)行通過考慮安全性和處理效率的諸如適當(dāng)?shù)淖儽〉奶幚恚⑶铱梢赃x擇在消息調(diào)度部(MS部)331和鏈接變量(CV)處理部332之間連接的中間數(shù)據(jù)。[11.擴(kuò)展MS部的尺寸的方法]在圖24中圖示其中向壓縮函數(shù)輸入的數(shù)據(jù)的尺寸被擴(kuò)展的壓縮函數(shù)的配置示例。在圖24中圖示的壓縮函數(shù)340是其中輸入比特被增大到3a比特的壓縮函數(shù)。在這個(gè)圖24中圖示的壓縮函數(shù)340以與如上參見圖18所述的配置類似的方式來配置,并且具有兩個(gè)消息調(diào)度部(MS部)341和342以及單個(gè)鏈接變量(CV)處理部343,來自兩個(gè)消息調(diào)度部(MS部)341的輸出的異或(XOR)運(yùn)算的結(jié)果被輸入到鏈接變量(CV)處理部343。通過具有中間輸出的置換函數(shù)來形成兩個(gè)消息調(diào)度部(MS部)341和342的每一個(gè)。并且通過具有附加輸入的置換函數(shù)來形成單個(gè)鏈接變量(CV)處理部343。在圖24中所示的置換函數(shù)340被配置使得將2a比特的輸入X劃分為a比特部分, 所述a比特部分分別被輸入到兩個(gè)消息調(diào)度部(MS部)341和342,并且相應(yīng)的兩個(gè)消息調(diào)度部(MS部)341和342的中間輸出被提供到單個(gè)鏈接變量(CV)處理部343。當(dāng)以這種方式來使用具有附加輸入的置換函數(shù)和具有中間輸出的置換函數(shù)時(shí),可以容易地提高輸入長度。此外,在這個(gè)圖24中所示的置換函數(shù)340的配置中,用作消息調(diào)度部(MS部)的兩個(gè)置換函數(shù)應(yīng)當(dāng)不是相同的,這是因?yàn)樵谒鼈兿嗤那闆r下,當(dāng)向相應(yīng)的置換輸入相同的a比特?cái)?shù)據(jù)段時(shí),對應(yīng)的中間輸出彼此匹配,并且取消異或(XOR)運(yùn)算的結(jié)果。因?yàn)檫@個(gè)原因,必須準(zhǔn)備用于這兩者的不同置換函數(shù),而不能失敗。通過使得內(nèi)部置換配置不同來實(shí)現(xiàn)這一點(diǎn)。也可以通過一般化在圖24中所示的壓縮函數(shù)的配置來將輸入X增加為3a或更多的比特。例如,可以通過增加消息調(diào)度部(MS部)來實(shí)現(xiàn)這一點(diǎn)。將示出一種通過減小在圖24中所示的配置中的處理量來提高速度的方法。在具有形成散列函數(shù)的多系列配置的壓縮函數(shù)中,如參考例如圖4和圖5所述,由壓縮函數(shù)輸入的值是作為數(shù)據(jù)[X]的消息和作為數(shù)據(jù)Y的中間值,作為數(shù)據(jù)Y的中間值即鏈接變量(CV)。此時(shí),用于消息處理的置換的重復(fù)的次數(shù)和用于鏈接變量(CV)系列的置換的重復(fù)次數(shù)不必然彼此一致。將例如描述下述情況其中,用于消息處理的置換的處理的次數(shù)在不損害安全性的范圍內(nèi)減半。像圖24那樣,圖25是壓縮函數(shù)350,其中,將輸入比特增加到3a比特。向壓縮函數(shù)350的2a比特輸入X被劃分為a比特分段,所述a比特分段然后分別被輸入到兩個(gè)消息調(diào)度部(MS部)351和352,并且相應(yīng)的兩個(gè)消息調(diào)度部(MS部)351和352的中間輸出被輸入到單個(gè)鏈接變量(CV)處理部353。
在圖25中圖示的兩個(gè)消息調(diào)度部(MS部)351和352中的內(nèi)部置換的重復(fù)次數(shù)被設(shè)置為在鏈接變量(CV)處理部353中的內(nèi)部置換的重復(fù)次數(shù)的一半。在消息調(diào)度部(MS部)351中去除偶數(shù)編號的置換,而在消息調(diào)度部(MS部)352 中去除奇數(shù)編號的置換,使得在兩個(gè)消息調(diào)度部(MS部)351和352中的內(nèi)部置換的重復(fù)次數(shù)減半 。這種配置使得可以將消息處理所需要的運(yùn)算減半。在圖25中所示的這個(gè)壓縮函數(shù)350中,與在圖24中所示的壓縮函數(shù)340的配置相比,減少了處理,并且可以預(yù)期軟件處理將改善。在消息調(diào)度部(MS部)351和352中的函數(shù)的交替減小產(chǎn)生下述優(yōu)點(diǎn)可以設(shè)置能夠在硬件實(shí)現(xiàn)時(shí)同時(shí)執(zhí)行處理的兩種置換,并且可以使用小電路規(guī)模來實(shí)現(xiàn)處理,使得可以縮小硬件。此外,在圖26中所示的壓縮函數(shù)360中,像圖25那樣,將輸入比特增加為3a比特。 向壓縮函數(shù)360的2a比特輸入X被劃分為a比特分段,該a比特分段然后分別被輸入到兩個(gè)消息調(diào)度部(MS部)361和362,并且相應(yīng)的兩個(gè)消息調(diào)度部(MS部)361和362的中間輸出被輸入到單個(gè)鏈接變量(CV)處理部363。在圖26中所示的壓縮函數(shù)360中的鏈接變量(CV)處理部363被配置使得將一個(gè)內(nèi)部置換部364加到在圖25中所示的壓縮函數(shù)350中的鏈接變量(CV)處理部353的第一級,這是其中向內(nèi)部置換的重復(fù)次數(shù)增加一次重復(fù)的配置。在圖26中所示的壓縮函數(shù)360中,向鏈接變量(CV)處理部363的整體置換的開始位置加上一個(gè)內(nèi)部置換。這是下述配置伴隨這種改變,上消息調(diào)度部(MS部)361的輸入值與鏈接變量(CV)處理部363的輸入值異或。本配置具有下述特征當(dāng)關(guān)注消息調(diào)度部(MS部)之一時(shí),總是在鏈接變量(CV) 處理部363的每兩個(gè)置換函數(shù)提供向鏈接變量(CV)處理部363提供的中間數(shù)據(jù)。在這種配置中,垂直消息調(diào)度部(MS部)361和362均勻地影響鏈接變量(CV)處理部363的系列, 并且平滑的混合是可能的。結(jié)果,存在安全性評估變得容易的優(yōu)點(diǎn)。[12.擴(kuò)展CV處理部的尺寸的方法]在圖27中所示的壓縮函數(shù)370指示下述配置其中,共享如上參考圖15所述的壓縮函數(shù)的兩個(gè)系列的消息調(diào)度部。向在圖15中提供的定義域擴(kuò)展方法的b = a的情況的應(yīng)用擴(kuò)展了鏈接變量(CV)處理部的尺寸。在圖27中所示的壓縮函數(shù)370中,向消息調(diào)度部(MS部)371輸入消息[X]的a 比特,并且作為充當(dāng)中間值的兩個(gè)鏈接變量(CV)的a比特分別被輸入到鏈接變量(CV)處理部372和373。通過具有中間輸出的置換函數(shù)來形成消息調(diào)度部(MS部)371。通過具有附加輸入的置換函數(shù)形成兩個(gè)鏈接變量(CV)處理部372和373每一個(gè)。消息調(diào)度部(MS部)371 的中間輸出被設(shè)置為兩個(gè)鏈接變量(CV)處理部372和373的附加輸入。在鏈接變量(CV) 處理部372和373的每一個(gè)中,消息調(diào)度部(MS部)371的輸出與輸入或中間值異或,并且被輸入到內(nèi)部置換部?;蛘?,這個(gè)輸出用于產(chǎn)生輸出值。[13.擴(kuò)展CV處理部和MS部的尺寸的方法]在圖28中所示的壓縮函數(shù)380是在圖27中圖示的壓縮函數(shù)370的修改,并且是如下壓縮函數(shù)的配置示例,其中,通過與如上參考圖24所述的壓縮函數(shù)340的技術(shù)類似的技術(shù)來擴(kuò)大向壓縮函數(shù)輸入的數(shù)據(jù)的尺寸。在圖28中圖示的壓縮函數(shù)380是其中輸入比特被增加到3a比特的壓縮函數(shù)。在圖28中所示的這個(gè)壓縮函數(shù)380具有兩個(gè)消息調(diào)度部(MS部)381和382 ;以及,單個(gè)鏈接變量(CV)處理部383、384,其被輸入來自兩個(gè)消息調(diào)度部(MS部)381和382的輸出的異或(XOR)運(yùn)算的結(jié)果。通 過具有中間輸出的置換函數(shù)來形成兩個(gè)消息調(diào)度部(MS部)381和382的每一個(gè)。通過具有附加輸入的置換函數(shù)來形成兩個(gè)鏈接變量(CV)處理部383和384的每一個(gè)。 消息調(diào)度部(MS部)381的中間輸出被設(shè)置為向鏈接變量(CV)處理部383的附加輸入。消息調(diào)度部(MS部)382的中間輸出被設(shè)置為向鏈接變量(CV)處理部384的附加輸入。通過兩個(gè)鏈接變量(CV)處理部383和384,附加輸入與輸入或中間值異或,然后被輸入到內(nèi)部置換部,或被用于產(chǎn)生輸出值。[14.配置用于定義域擴(kuò)展方法的混合函數(shù)F的方法]可以通過下述方式來配置混合函數(shù)F:組合具有中間輸出的置換函數(shù)和具有附加輸入的置換函數(shù)。圖29是通過組合兩個(gè)具有中間輸出的置換函數(shù)和兩個(gè)具有附加輸入的置換函數(shù)而配置的混合函數(shù)F 390的配置示例?;旌虾瘮?shù)F 390具有兩個(gè)消息調(diào)度部(MS部)391和392 ;以及,單個(gè)鏈接變量 (CV)處理部393、394,向其輸入來自兩個(gè)消息調(diào)度部(MS部)391和392的輸出的異或(XOR)
運(yùn)算的結(jié)果。通過具有中間輸出的置換函數(shù)來形成兩個(gè)消息調(diào)度部(MS部)391和392的每一個(gè)。通過具有附加輸入的置換函數(shù)來形成兩個(gè)鏈接變量(CV)處理部393和394的每一個(gè)。消息調(diào)度部(MS部)391的中間輸出被設(shè)置為向鏈接變量(CV)處理部393的附加輸入。消息調(diào)度部(MS部)392的中間輸出被設(shè)置為向鏈接變量(CV)處理部394的附加輸入。通過兩個(gè)鏈接變量(CV)處理部393和394,附加輸入與輸入或中間值異或,然后被輸入到內(nèi)部置換部,或被用于產(chǎn)生輸出值。混合函數(shù)F 390接收作為輸入[Y]的2a比特輸入,并且產(chǎn)生和輸出2a比特輸出 [Z]。順便提及,根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換裝置的內(nèi)部置換可以被配置為部分減少,就像如上所述圖25和圖26中的配置那樣。[15.實(shí)現(xiàn)具有高擴(kuò)散性能的置換處理的方法]如上所述,可以通過重復(fù)地應(yīng)用作為相對簡單的置換函數(shù)的內(nèi)部置換來實(shí)現(xiàn)向消息調(diào)度部(MS部)和鏈接變量(CV)處理部應(yīng)用的置換函數(shù)。通過重復(fù)地應(yīng)用這樣的相對簡單的置換函數(shù),可以配置其混合性能被改善的置換函數(shù)。將參考圖30來描述用作內(nèi)部置換的置換函數(shù)的具體配置示例。在圖30中,配置了具有高混合性能的置換函數(shù)的重復(fù)類型,因此這是作為在執(zhí)行整體置換的置換函數(shù)中使用的內(nèi)部置換的置換函數(shù)的配置示例。這個(gè)內(nèi)部置換被重復(fù)地鏈接和應(yīng)用,因此,配置了整體置換。在圖30中的內(nèi)部置換處理部(置換函數(shù))410示出執(zhí)行256比特輸入和輸出的置換的配置。通過32字節(jié)數(shù)據(jù)來表示要向內(nèi)部置換處理部(置換函數(shù))410輸入的256比特的數(shù)據(jù)。每一個(gè)字節(jié)對應(yīng)于在附圖中圖示的單條輸入數(shù)據(jù)線。通過首先將從左起的4個(gè)字節(jié)(32比特)數(shù)據(jù)劃分為8個(gè)組(Gl至G8)來進(jìn)行描述。首先,在對應(yīng)的非線性轉(zhuǎn)換部411中,向奇數(shù)編號的組(G1、G3、G5和G7)中包括的4字節(jié)數(shù)據(jù)應(yīng)用非線性轉(zhuǎn)換處理。
當(dāng)被從非線性轉(zhuǎn)換部4 11輸出時(shí),四組(G1、G3、G5和G7)的每一個(gè)的4字節(jié)數(shù)據(jù)在異或(XOR)運(yùn)算部412中與右側(cè)下一個(gè)組的以字節(jié)為單位的數(shù)據(jù)異或,并且更新四個(gè)偶數(shù)編號的組(G2,G4,G6和G8)的每一個(gè)的4字節(jié)(32比特)數(shù)據(jù)。換句話說,組(Gl)的4字節(jié)數(shù)據(jù)的非線性轉(zhuǎn)換結(jié)果數(shù)據(jù)與組(G2)的輸入數(shù)據(jù)異或,組(G3)的4字節(jié)數(shù)據(jù)的非線性轉(zhuǎn)換結(jié)果數(shù)據(jù)與組(G4)的輸入數(shù)據(jù)異或,組(G5)的4字節(jié)數(shù)據(jù)的非線性轉(zhuǎn)換結(jié)果數(shù)據(jù)與組(G6)的輸入數(shù)據(jù)異或,并且組(G7)的4字節(jié)數(shù)據(jù)的非線性轉(zhuǎn)換結(jié)果數(shù)據(jù)與組(G8)的輸入數(shù)據(jù)異或。通過這些處理,更新四個(gè)偶數(shù)編號的組(G2,G4,G6和G8)的每一個(gè)的4字節(jié)(32 比特)數(shù)據(jù)。接下來,在交換處理部413中,執(zhí)行每一個(gè)1字節(jié)單位數(shù)據(jù)的交換處理。由從非線性轉(zhuǎn)換部411輸出的數(shù)據(jù)形成的四組(G1、G3、G5和G7)的數(shù)據(jù)以組來移動(dòng),即左端的組的數(shù)據(jù)移動(dòng)到右端組的位置,并且每一個(gè)剩余組的數(shù)據(jù)移動(dòng)到左側(cè)緊鄰的下一個(gè)組的位置。換句話說,組(Gl)輸出到輸出組(Gout8)的位置,組(G3)輸出到輸出組(Gout2)的位置,組(G5)輸出到輸出組(Gout4)的位置,并且組(G7)輸出到輸出組(Gout6)的位置。以這樣的對應(yīng)來執(zhí)行交換處理,并且產(chǎn)生輸出。另一方面,在異或(XOR)運(yùn)算部412中,通過被異或而更新的四個(gè)偶數(shù)編號的組 (G2,G4,G6和G8)的每一個(gè)的4字節(jié)(32比特)數(shù)據(jù)以字節(jié)劃分,并且進(jìn)行將每一個(gè)字節(jié)向不同的組移動(dòng)的交換處理。向組(G2)的4字節(jié)數(shù)據(jù)應(yīng)用下面的交換處理。從第一字節(jié)起,向組(G2)的4字節(jié)數(shù)據(jù)的相應(yīng)字節(jié)分配AB⑶。組(G2)的第一個(gè)1字節(jié)數(shù)據(jù)A被輸出為輸出組(Goutl)的第一個(gè)1字節(jié)數(shù)據(jù),組(G2)的第二個(gè)1字節(jié)數(shù)據(jù)B被輸出為輸出組(Gout3)的第二個(gè)1字節(jié)數(shù)據(jù),組(G2)的第三個(gè)1字節(jié)數(shù)據(jù)C被輸出為輸出組(Gout5)的第三個(gè)1字節(jié)數(shù)據(jù),并且組(G2)的第四個(gè)1字節(jié)數(shù)據(jù)D被輸出為輸出組(Gout7)的第四個(gè)1字節(jié)數(shù)據(jù)。以這樣的對應(yīng)來執(zhí)行交換處理,并且產(chǎn)生輸出。向組(G4)的4字節(jié)數(shù)據(jù)應(yīng)用下面的交換處理。從第一字節(jié)起,向組(G4)的4字節(jié)數(shù)據(jù)的相應(yīng)字節(jié)分配EFGH。組(G4)的第一個(gè)1字節(jié)數(shù)據(jù)E被輸出為輸出組(Gout3)的第一個(gè)1字節(jié)數(shù)據(jù),組(G4)的第二個(gè)1字節(jié)數(shù)據(jù)F被輸出為輸出組(Gout5)的第二個(gè)1字節(jié)數(shù)據(jù),組(G4)的第三個(gè)1字節(jié)數(shù)據(jù)G被輸出為輸出組(Gout7)的第三個(gè)1字節(jié)數(shù)據(jù),組(G4)的第四個(gè)1字節(jié)數(shù)據(jù)H被輸出為輸出組(Goutl)的第四個(gè)1字節(jié)數(shù)據(jù)。以這樣的對應(yīng)來執(zhí)行交換處理,并且產(chǎn)生輸出。向組(G6)的4字節(jié)數(shù)據(jù)應(yīng)用下面的交換處理。從第一字節(jié)起,向組(G6)的4字節(jié)數(shù)據(jù)的相應(yīng)字節(jié)分配IJKL。
組 (G6)的第一個(gè)1字節(jié)數(shù)據(jù)I被輸出為輸出組(Gout5)的第一個(gè)1字節(jié)數(shù)據(jù),組(G6)的第二個(gè)1字節(jié)數(shù)據(jù)J被輸出為輸出組(Gout7)的第二個(gè)1字節(jié)數(shù)據(jù),組(G6)的第三個(gè)1字節(jié)數(shù)據(jù)K被輸出為輸出組(Goutl)的第三個(gè)1字節(jié)數(shù)據(jù),組(G6)的第四個(gè)1字節(jié)數(shù)據(jù)L被輸出為輸出組(Gout3)的第四個(gè)1字節(jié)數(shù)據(jù)。以這樣的對應(yīng)來執(zhí)行交換處理,并且產(chǎn)生輸出。向組(G8)的4字節(jié)數(shù)據(jù)應(yīng)用下面的交換處理。從第一字節(jié)起,向組(G8)的4字節(jié)數(shù)據(jù)的相應(yīng)字節(jié)分配ΜΝ0Ρ。組(G8)的第一個(gè)1字節(jié)數(shù)據(jù)M被輸出為輸出組(Gout7)的第一個(gè)1字節(jié)數(shù)據(jù),組(G8)的第二個(gè)1字節(jié)數(shù)據(jù)N被輸出為輸出組(Goutl)的第二個(gè)1字節(jié)數(shù)據(jù),組(G8)的第三個(gè)1字節(jié)數(shù)據(jù)0被輸出為輸出組(Gout3)的第三個(gè)1字節(jié)數(shù)據(jù),組(G8)的第四個(gè)1字節(jié)數(shù)據(jù)P被輸出為輸出組(Gout5)的第四個(gè)1字節(jié)數(shù)據(jù)。以這樣的對應(yīng)來執(zhí)行交換處理,并且產(chǎn)生輸出。順便提及,在下一個(gè)回合的內(nèi)部置換處理部(置換函數(shù))中,將輸出組(Goutl, Gout3, Gout5和Gout7)輸入到非線性轉(zhuǎn)換。以這種方式,通過執(zhí)行用于交換輸入和輸出的交換處理,保證對于每一個(gè)以字節(jié)為單位的數(shù)據(jù),執(zhí)行不同類型的轉(zhuǎn)換處理。如在圖30中圖示的內(nèi)部置換處理部(置換函數(shù))410的輸出部中所示,假定32字節(jié)的輸出是Xl至x32。例如,在圖22中所示的具有中間輸出的置換函數(shù)的中間輸出等同于這些輸出。換句話說,在參考圖23至圖27所述的每一個(gè)壓縮函數(shù)或混合函數(shù)F的配置中的消息調(diào)度部(MS部)由具有中間輸出的置換函數(shù)形成,但是等同于由這些消息調(diào)度部 (MS部)輸出的中間輸出。這個(gè)中間輸出被輸入為在圖21中圖示的具有附加輸入的置換函數(shù)中的附加輸入。例如,在參考圖23至圖27所述的每一個(gè)壓縮函數(shù)或混合函數(shù)F的配置中的鏈接變量 (CV)處理部由具有附加輸入的置換函數(shù)形成,并且作為這些鏈接變量(CV)處理部的附加輸入,輸入在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410的輸出部的32字節(jié)輸出xl 至 x32。順便提及,如參考圖23至圖27所述,在壓縮函數(shù)或混合函數(shù)F內(nèi)多次設(shè)置在圖30 中所示的內(nèi)部置換處理部(置換函數(shù))410的配置??梢赃M(jìn)行設(shè)置,使得由這個(gè)內(nèi)部置換處理部(置換函數(shù))產(chǎn)生的中間數(shù)據(jù)的輸出值xl至x32被全部使用或部分使用。例如,可以提供一種配置,其中,關(guān)注在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410的配置,并且僅在非線性轉(zhuǎn)換部411的輸出側(cè)上的x5至x8、xl3至xl6、x21至x24 和x29至x32被用作中間輸出?;蛘?,可以提供如下配置,其中相反地,僅向在下一個(gè)置換函數(shù)中的非線性轉(zhuǎn)換部輸入的xl至x4、x9至xl2、xl7至x20和x25至x28被用作中間值。接下來,參考圖31,將描述在參考圖30所述的內(nèi)部置換處理部(置換函數(shù))410中配置的非線性轉(zhuǎn)換部411的內(nèi)部配置的示例。非線性轉(zhuǎn)換部411可以被配置為接收4字節(jié)數(shù)據(jù)并且輸出4字節(jié)數(shù)據(jù)的置換函數(shù)。向在圖31中所示的非線性轉(zhuǎn)換部411輸入4字節(jié)數(shù)據(jù)。在圖31中所示的單條線對應(yīng)于1字節(jié)數(shù)據(jù)。在異或(XOR)運(yùn)算部421中,輸入數(shù)據(jù)分別與對于每一個(gè)非線性轉(zhuǎn)換部411預(yù)定的四個(gè)常數(shù)值(常數(shù))C1、C2、C3和C4進(jìn)行異或。順便提及,存在在參考圖30描述的內(nèi)部置換處理部(置換函數(shù))410中配置的四個(gè)非線性轉(zhuǎn)換部411,并且,在這四個(gè)非線性轉(zhuǎn)換部411中設(shè)置相互不同的參數(shù)值(常數(shù))。下面將描述設(shè)置這個(gè)常數(shù)值(常數(shù)) 的處理。在小非線性轉(zhuǎn)換部422中對在異或(XOR)運(yùn)算部421中分別與對于每一個(gè)非線性轉(zhuǎn)換部411預(yù)定的四個(gè)常數(shù)值(常數(shù))C1、C2、C3和C4異或的數(shù)據(jù)進(jìn)行1字節(jié)輸入和輸出的非線性轉(zhuǎn)換處理。小非線性轉(zhuǎn)換部422的輸出被輸入到線性轉(zhuǎn)換部423,并且在進(jìn)行線性轉(zhuǎn)換后被輸出。順便提及,在此所述的小非線性轉(zhuǎn)換部422可以被稱為S-box,并且可以被表達(dá)為256 個(gè)1字節(jié)數(shù)據(jù)的轉(zhuǎn)換表。此外,線性轉(zhuǎn)換部423被執(zhí)行為通過相對于輸入數(shù)據(jù)使用線性轉(zhuǎn)換矩陣(M)進(jìn)行轉(zhuǎn)換處理來計(jì)算輸出數(shù)據(jù)的處理。線性轉(zhuǎn)換矩陣(M)也被稱為擴(kuò)散矩陣, 并且可以被表達(dá)為具有GF(28)個(gè)元素的4X4矩陣。順便提及,也期望在可能的情況下,置換函數(shù)使得特定數(shù)據(jù)影響最大數(shù)量的數(shù)據(jù)段,并且同時(shí)不使得在輸入和輸出中包括的非零元素的和在低水平上。這對于改善抗分析攻擊性和消除易損性是有效的。具體地說,這變成對于差分攻擊和線性攻擊的措施。如參考圖23至圖27所述,在壓縮函數(shù)或混合函數(shù)F中多次地設(shè)置 在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410的配置。換句話說,執(zhí)行下述處理,其中,以多個(gè)回合來重復(fù)在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410。此外,存在許多執(zhí)行回合運(yùn)算的加密算法,其中,以多個(gè)回合來重復(fù)同一置換處理配置,并且已知,所謂的DSM(擴(kuò)散轉(zhuǎn)換機(jī)制)的應(yīng)用作為對抗易損性的措施是有效的,該措施使用多個(gè)不同的矩陣,例如兩個(gè)矩陣[Ml]和[M2],而不使用作為單個(gè)固定矩陣向所有的回合應(yīng)用的線性轉(zhuǎn)換矩陣[M]。順便提及,例如在日本未審查專利申請公報(bào) No. 2007-199156中描述了應(yīng)用了 DSM的加密算法,該日本未審查專利申請公報(bào)是與本申請相同的申請人的專利申請。通過這種DSM來改善易損性的效果在散列函數(shù)中也是有效的。換句話說,使用多個(gè)不同的矩陣,而不使得向所有回合應(yīng)用的線性轉(zhuǎn)換矩陣[M]是單個(gè)固定矩陣,因此,可以使得難以與隨機(jī)函數(shù)相區(qū)別,并且可以改善對于各種分析處理的抗攻擊性。圖32圖示內(nèi)部置換處理部的重復(fù)回合的配置示例,其中,進(jìn)行設(shè)置使得多個(gè)不同的矩陣被用作在圖30中圖示的內(nèi)部置換處理部(置換函數(shù))410的非線性轉(zhuǎn)換部411中使用的線性轉(zhuǎn)換矩陣[M],在壓縮函數(shù)和混合函數(shù)F中設(shè)置了大量的內(nèi)部置換處理部(置換函數(shù))410。圖32是描述簡化配置的圖,在該簡化配置中,組合在壓縮函數(shù)或混合函數(shù)F中多次設(shè)置的、在圖30中所示的內(nèi)部置換處理部(置換函數(shù))的兩個(gè)回合。內(nèi)部置換處理部 (置換函數(shù))440具有與在圖30中的內(nèi)部置換處理部(置換函數(shù))410類似的配置。內(nèi)部置換處理部(置換函數(shù))450指示執(zhí)行下一個(gè)內(nèi)部置換的回合。每條輸入線等同于4字節(jié)數(shù)據(jù)。如在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410那樣,內(nèi)部置換處理部(置換函數(shù))440具有非線性轉(zhuǎn)換部441、異或(XOR)運(yùn)算部442和交換處理部443。非線性轉(zhuǎn)換部441具有參考圖31來描述的配置。如參考圖31所述那樣,非線性轉(zhuǎn)換部441具有異或(XOR)運(yùn)算部、小非線性轉(zhuǎn)換部和線性轉(zhuǎn)換部。線性轉(zhuǎn)換部使用線性轉(zhuǎn)換矩陣(M)來執(zhí)行線性轉(zhuǎn)換處理。圖32圖示每一個(gè)對于4字節(jié)數(shù)據(jù)單位作為非線性轉(zhuǎn)換部441的四個(gè)非線性轉(zhuǎn)換處理部,并且這些的每一個(gè)具有參考圖31所述的配置。向在這四個(gè)非線性轉(zhuǎn)換部中的線性轉(zhuǎn)換部應(yīng)用的線性轉(zhuǎn)換矩陣(M)指示為在圖32左起的M1、M2、M3和M4。線性轉(zhuǎn)換矩陣Ml、 M2、M3和M4是不同的線性轉(zhuǎn)換矩陣。在相應(yīng)的回合中的內(nèi)部置換處理部(置換函數(shù))440和450具有相同的配置。換句話說,在內(nèi)部置換處理部(置換函數(shù))440和450的任何一個(gè)中,向在該四個(gè)非線性轉(zhuǎn)換部中的線性轉(zhuǎn)換部應(yīng)用的線性轉(zhuǎn)換矩陣(M)是從左起的M1、M2、M 3和M4。以這種方式,在該內(nèi)部置換中,在相同的位置使用相同的矩陣。從在圖32中所示的鏈接回合的線(粗線)中顯然的那樣,在上級的回合中的內(nèi)部置換處理部(置換函數(shù))440的非線性轉(zhuǎn)換的輸出與在下級的回合中的內(nèi)部置換處理部 (置換函數(shù))450中的一個(gè)非線性轉(zhuǎn)換的輸出進(jìn)行異或。例如,在異或(XOR)運(yùn)算部452中,在上級的回合中的內(nèi)部置換處理部(置換函數(shù))440中的非線性轉(zhuǎn)換部441的左端的、具有線性轉(zhuǎn)換矩陣Ml的非線性轉(zhuǎn)換部441a的輸出(在圖中的輸出A)與在下級的回合中的內(nèi)部置換處理部(置換函數(shù))450中的非線性轉(zhuǎn)換部451的右端的、具有線性轉(zhuǎn)換矩陣M4的非線性轉(zhuǎn)換部451d的輸出(在圖中的輸出B) 進(jìn)行異或。作為結(jié)果的輸出是在圖中所示的輸出C。在上級的回合中的在內(nèi)部置換處理部(置換函數(shù))440中的非線性轉(zhuǎn)換部441 的四個(gè)非線性轉(zhuǎn)換部的輸出的任何一個(gè)與在下級的回合中的在內(nèi)部置換處理部(置換函數(shù))450中的非線性轉(zhuǎn)換部451的四個(gè)非線性轉(zhuǎn)換部的輸出的任何一個(gè)進(jìn)行異或。當(dāng)其中每一個(gè)在每一個(gè)垂直回合中被異或的、非線性轉(zhuǎn)換部441的輸出和非線性轉(zhuǎn)換部451的輸出的組合被表達(dá)為在每一個(gè)非線性轉(zhuǎn)換部中的線性轉(zhuǎn)換矩陣[M]的組合時(shí),該組合如下所示。(I)Ml和M4(非線性轉(zhuǎn)換部441a和451d)(2)M2和Ml (非線性轉(zhuǎn)換部441b和451a)(3)M3和M2(非線性轉(zhuǎn)換部441c和451b)(4)M4和M3(非線性轉(zhuǎn)換部441d和451c)以這種方式,通過提供其中使得使用不同的線性轉(zhuǎn)換矩陣執(zhí)行線性轉(zhuǎn)換處理的結(jié)果彼此影響的配置,可以實(shí)現(xiàn)應(yīng)用了上述的DSM(擴(kuò)散轉(zhuǎn)換機(jī)制)的配置,并且改善抗分析攻擊性。順便提及,當(dāng)通過使用符號“ I ”來表達(dá)在兩個(gè)矩陣之間的鏈接時(shí)并且當(dāng)提供了下述配置時(shí),可以進(jìn)一步改善抗分析攻擊性選擇和使用矩陣,在該矩陣中,進(jìn)行設(shè)置使得作為成對的上述矩陣(1)至(2)的鏈接矩陣的分支的數(shù)量變大(例如,三個(gè)或更多),該成對的上述矩陣(1)至(2)為M1|M4,M2|M1,M3|M2,M4|M3?;蛘?,它是下述配置在該配置中,其中獲得通過置換相應(yīng)的逆矩陣而獲取的所有矩陣的、矩陣tMr1ItMf1, tMf1ItMr1, tIO-11 tIC-1,和tMf11 tIC-1的分支的數(shù)量是三個(gè)或更多個(gè)。通過提供其中因此使得分支的數(shù)量較大的配置,可以改善對于差分攻擊和線性攻擊的抗攻擊性。以這種方式,期望提供提供下述配置作為在要作為重復(fù)的回合操作執(zhí)行的內(nèi)部置換處理部(置換函數(shù))中的非線性轉(zhuǎn)換部中設(shè)置的線性轉(zhuǎn)換矩陣,使用通過采用DSM配置的不同矩陣。此外,期望要使用的矩陣具有下述配置在成對的相互影響的矩陣的鏈接矩陣中的分支的數(shù)量被設(shè)置得較大。順便提及,在參考圖32提供的描述中,使用四個(gè)矩陣來用于描述,但是通過使用兩個(gè)矩陣來滿足相同數(shù)量的分支的條件的實(shí)施方式也是可能的。例如,可以提供下述配置 Ml |M2的分支的數(shù)量是3個(gè)或更多個(gè),或通過布置通過置換逆矩陣而獲取的矩陣而獲得的 tMr11 tMT1的分支的數(shù)量是3個(gè)或更多個(gè),因此,以與在圖33中圖示的配置類似的方式來建立矩陣布置。在圖33中所示的配置中,當(dāng)在每一個(gè)垂直回合中進(jìn)行異或的非線性轉(zhuǎn)換部441的輸出與非線性轉(zhuǎn)換部451的輸出的組合被表達(dá)為在每一個(gè)非線性轉(zhuǎn)換部中的線性轉(zhuǎn)換矩陣[M]的組合時(shí),該組合如下所示。(I)Ml和M2(非線性轉(zhuǎn)換部461a和471d)(2)M2和Ml (非線性轉(zhuǎn)換部461b和471a)
(3) Ml和M2(非線性轉(zhuǎn)換部461c和471b)(4)M2和Ml (非線性轉(zhuǎn)換部461d和471c)在圖33中所示的這種配置可以在實(shí)現(xiàn)上減少硬件電路和減小矩陣所需要的存儲器中的表的大小,因此是另一種優(yōu)選的配置。以這種方式,通過提供其中使得使用不同的線性轉(zhuǎn)換矩陣執(zhí)行線性轉(zhuǎn)換處理的結(jié)果彼此影響的配置,可以實(shí)現(xiàn)應(yīng)用了上述的DSM(擴(kuò)散轉(zhuǎn)換機(jī)制)的配置,并且改善抗分析攻擊性。至此,已經(jīng)描述了用于實(shí)現(xiàn)改善其混合性能的整體函數(shù)的內(nèi)部置換的配置示例。 順便提及,上述的處理示例已經(jīng)被描述為256比特輸入的示例,但是這是示例,可以不同地設(shè)置數(shù)據(jù)尺寸,并且可以根據(jù)數(shù)據(jù)尺寸來提供配置。在該情況下,進(jìn)行設(shè)置以還根據(jù)小非線性轉(zhuǎn)換部和線性轉(zhuǎn)換部的輸入尺寸和輸出尺寸來執(zhí)行處理。[16.產(chǎn)生具有高獨(dú)立性的輸出的置換函數(shù)的方法]在上面的處理示例中,已經(jīng)將在壓縮函數(shù)和混合函數(shù)F中多次設(shè)置的內(nèi)部置換處理配置描述為其中例如使用在圖30中圖示的內(nèi)部置換處理配置的處理示例,并且將這個(gè)同一配置設(shè)置為重復(fù)進(jìn)行。通過如上所述配置這個(gè)內(nèi)部置換處理的非線性轉(zhuǎn)換部中的線性轉(zhuǎn)換處理矩陣,可以改善抗分析攻擊性。此外,在需要多個(gè)整體壓縮函數(shù)的配置中,存在下述情況通過使用多個(gè)整體置換來改善抗分析攻擊性,就好像置換獨(dú)立于彼此作用那樣。在該情況下,存在通過改變在這些整體置換中包括的內(nèi)部置換而實(shí)現(xiàn)的方法。將描述其配置示例。為了實(shí)現(xiàn)多個(gè)不同的整體置換的處理,用于改變在整體置換的每一個(gè)中的內(nèi)部置換中包括的部件的技術(shù)是有效的。然而,考慮實(shí)現(xiàn)效率和安全評估處理的容易性,不總是期望使用多個(gè)不同的部件。期望通過將要使用的部件減少到最少來實(shí)現(xiàn)各種處理。作為用于使得內(nèi)部置換處理對于每一個(gè)整體置換不同的配置,可以設(shè)想下面的配置。*進(jìn)行改變使得要用于每一個(gè)整體置換的常數(shù)(在圖31的異或(XOR)運(yùn)算部421 中使用)彼此替換。
*使得作為非線性 轉(zhuǎn)換部的S-box(圖31的小非線性轉(zhuǎn)換部422)或線性轉(zhuǎn)換矩陣(圖31的線性轉(zhuǎn)換部423)不同,并且被重復(fù)地使用以提供整體置換,其中,該非線性轉(zhuǎn)換部是在整體置換中包括的內(nèi)部置換的部件。順便提及,常數(shù)值是要在參考圖30和圖31所述的內(nèi)部置換處理部410的非線性轉(zhuǎn)換部411的異或(XOR)運(yùn)算部421中輸入的常數(shù)。然而,為了對于每一個(gè)整體置換全面改變常數(shù)值或改變S-box、矩陣等,需要提供這些不同的數(shù)據(jù)段和部件配置,并且必須提高電路和存儲器容量。在電路和存儲器容量上的這種提高在實(shí)現(xiàn)上是缺點(diǎn),并且用于重新評估安全性的成本也提高,這是一個(gè)問題。因此,在本發(fā)明中,進(jìn)行設(shè)置使得內(nèi)部置換處理配置從一個(gè)整體置換向另一個(gè)整體置換不同。(a)當(dāng)使用多個(gè)不同的小非線性操作(S-box)(圖31的小非線性轉(zhuǎn)換部422)時(shí), 對于每一個(gè)整體置換替換內(nèi)部置換的小非線性操作(S-box)。(b)要被用作線性轉(zhuǎn)換部(圖31的線性轉(zhuǎn)換部423)的矩陣被設(shè)置為從單個(gè)矩陣產(chǎn)生的多個(gè)不同的矩陣,并且所述矩陣被設(shè)置為從一個(gè)整體置換到另一個(gè)整體置換變化。 例如,通過執(zhí)行行的交換和列的交換,從單個(gè)矩陣產(chǎn)生多個(gè)不同的矩陣。(c)當(dāng)將多種矩陣用作要被用作線性轉(zhuǎn)換部(圖31的線性轉(zhuǎn)換部423)的矩陣時(shí), 對于每一個(gè)整體替換替換內(nèi)部置換的矩陣(在其中DSM的條件未被破壞的范圍內(nèi)、當(dāng)使用上述的DSM時(shí)等)。(d)上述的(a)至(C)的任何一個(gè)的組合。可以基于諸如上述的(a)至(d)的設(shè)置來在重復(fù)地執(zhí)行的內(nèi)部置換處理中有效率地改變置換處理配置。換句話說,在不大大地提高電路和存儲器容量的情況下,可以執(zhí)行不同的置換處理。具體地說,當(dāng)組合上述的(C)和(b)時(shí),可以有效地實(shí)現(xiàn)不同的整體置換。換句話說,當(dāng)應(yīng)用上述的DSM配置并且在存儲器中存儲兩種或更多種的線性轉(zhuǎn)換矩陣時(shí),提供了下述配置通過交換這些矩陣的行和列來產(chǎn)生新的矩陣,并且這些新的矩陣被用作線性轉(zhuǎn)換矩陣。當(dāng)進(jìn)行這樣的設(shè)置時(shí),可以基于小數(shù)據(jù)量來有效地執(zhí)行不同的線性轉(zhuǎn)換處理。順便提及,在其中使用DSM并且提供多個(gè)不同的線性轉(zhuǎn)換矩陣的配置中,產(chǎn)生當(dāng)執(zhí)行交換矩陣的行和列的處理時(shí)評估安全性的問題,但是已知如果使用具有預(yù)定規(guī)則的矩陣,例如輪換矩陣或Hadamard矩陣,則即使當(dāng)應(yīng)用通過交換行和列而產(chǎn)生的矩陣時(shí)也不影響安全評估。因此,可以說,安全評估是容易的,并且通過容易的改變來建立不同的置換函數(shù)是有效的手段。[17.產(chǎn)生向置換函數(shù)應(yīng)用的常數(shù)的處理]如上所述,作為用于將每一個(gè)回合的置換處理配置設(shè)置為不同的一種技術(shù),用于進(jìn)行改變以使得以每一個(gè)回合為單位或以多個(gè)回合為單位將常數(shù)(在圖31的異或(XOR) 運(yùn)算部421中使用的[C])替換為另一個(gè)的技術(shù)是有效的。然而,為了保留與大量的回合對應(yīng)的常數(shù),需要大的存儲器容量。下面,將描述下述配置示例其中,從小數(shù)量的常數(shù)來有效率地產(chǎn)生多個(gè)不同的常數(shù),并且可以在置換函數(shù)中使用所述多個(gè)不同的常數(shù)。首先,限定置換函數(shù)所需要的常數(shù)。在此,將4個(gè)字節(jié)統(tǒng)稱為一個(gè)字。例如,在圖30中的內(nèi)部置換處理部(置換函數(shù))410中有四個(gè)非線性轉(zhuǎn)換部,每一個(gè)非線性轉(zhuǎn)換部具有在圖31中所示的配置。如圖31中所示,在一個(gè)非線性轉(zhuǎn)換部411中,使用四個(gè)常數(shù)。每一個(gè)常數(shù)在與1字節(jié)的輸入數(shù)據(jù)的異或運(yùn)算中使用,因此,一個(gè)常數(shù)Cn是1字節(jié)數(shù)據(jù)。在一個(gè)非線性轉(zhuǎn)換部411中,使用四個(gè)常數(shù),因此,每一個(gè)非線性轉(zhuǎn)換需要1個(gè)字的常數(shù)。在圖 30中的內(nèi)部置換處理部(置換函數(shù))410中,存在四個(gè)非線性轉(zhuǎn)換部,因此, 對于一個(gè)內(nèi)部置換處理需要4個(gè)字的常數(shù)。當(dāng)將這個(gè)基本置換重復(fù)k次并且因此配置整體置換時(shí),總共需要4k字的常數(shù)。在此,在其數(shù)量為k的內(nèi)部置換中,在從輸入側(cè)數(shù)的第i個(gè)內(nèi)部置換中包括的第j 個(gè)常數(shù)值被表達(dá)為Cu。因此,可以將單個(gè)整體置換所需要的常數(shù)表達(dá)如下。(單個(gè)整體操作所需要的常數(shù)組的示例)第一內(nèi)部置換=Clil,Clj2,C1j3, C1j4第二內(nèi)部置換=C2il,C2j2,C2j3, C2,4第三內(nèi)部置換=C3il,C3j2,C3,3,C3,4第四內(nèi)部置換=C4il,C4j2,C4j3, C4,4第k-Ι 內(nèi)部置換(; ,CkI2, Qri,3,C1^4第k 內(nèi)部置換=Cu, Ckj2, Ckj3, Ck,4作為公開產(chǎn)生常數(shù)的方法的常規(guī)技術(shù),存在在例如日本未審查專利申請公報(bào) No. 2008-58827中公開的一種技術(shù)。這種常規(guī)技術(shù)是用于下述的方法8次使用在8比特變量中存儲的值以產(chǎn)生64比特的常數(shù);并且,為了進(jìn)一步產(chǎn)生下一個(gè)常數(shù),假定在該變量中的數(shù)據(jù)為在GF (28)上的元素,并且將該數(shù)據(jù)進(jìn)行χ倍或χ—1倍的運(yùn)算,由此依序增大該種類的數(shù)據(jù)。順便提及,當(dāng)通過多項(xiàng)式f(x)來表達(dá)用于限定要使用的有限場GF(2n)的不可約多項(xiàng)式時(shí),在此使用的χ是變量X。下面,作為常數(shù)產(chǎn)生處理結(jié)構(gòu),將描述一種下面的方法基于通過參數(shù)產(chǎn)生數(shù)據(jù)的 X倍運(yùn)算而獲得的系列來產(chǎn)生部分常數(shù),并且基于通過χ—1倍運(yùn)算獲得的系列來產(chǎn)生其余部分。這種方法使得可以局部破壞在常數(shù)值之間的簡單關(guān)系,而不增加用于產(chǎn)生的工作。結(jié)果,可以增加常數(shù)的無序性。在該情況下,將描述下述示例其中,從單個(gè)16比特值來建立等同于兩個(gè)字的64個(gè)比特。將與在上述日本未審查專利申請公報(bào)No. 2008-58827中公開的常數(shù)產(chǎn)生處理作比較地描述根據(jù)本發(fā)明的常數(shù)產(chǎn)生處理。首先,將描述常規(guī)的常數(shù)產(chǎn)生過程。常規(guī)的常數(shù)產(chǎn)生過程如下。[1]在16比特變量S的每一個(gè)中存儲初始值。[2]i = 1···1 進(jìn)行下面的處理。(2. DCia = (S xor Mask1) <<< Rot1I (S xor Mask2) <<< Rot2Ci,2 = (S xor Mask3) <<< Rot3 (S xor Mask4) <<< Rot4Ci,3 = (S xor Mask5) <<< Rot5 (S xor Mask6) <<< Rot6Ci,4 = (S xor Mask7) <<< Rot7 (S xor Mask8) <<< Rot8(2. 2) S — S · χ順便提及,Maskn和Rotn是單獨(dú)地確定的常數(shù)。順便提及,在此,符號“ |,,指示在比特之間的鏈接。(A xor B)指示A和B的異或(XOR)運(yùn)算處理。以這種方式產(chǎn)生的四個(gè)常數(shù)(CiJo Ci,4)可以第一眼看起來是隨機(jī)數(shù),但是僅通過掩蔽運(yùn)算和旋轉(zhuǎn)移位運(yùn)算來進(jìn)行改變,因此,存在下述特征不論值S是什么,總是在常數(shù)之間保持由特定線性操作表達(dá)的關(guān)系。正如塊加密的示例中明顯的那樣,僅通過線性轉(zhuǎn)換來提高無序經(jīng)常是不夠的,并且期望在可能時(shí)存在非線性屬性。接下來,將描述根據(jù)本發(fā)明的參數(shù)產(chǎn)生技術(shù),其中,在常數(shù)之間引入非線性關(guān)系, 而不提高實(shí)現(xiàn)成本和降低性能。[1]在16比特變量S和T的每一個(gè)中存儲初始值。[2]i = 1···1 進(jìn)行下面的處理。(2. DCia = (S xor Mask1) <<< Rot1I (S xor Mask2) <<< Rot2Ci,2 = (S xor Mask3) <<< Rot3 (S xor Mask4) <<< Rot4Ci,3 = (Τ xor Mask5) <<< Rot5I (Τ xor Mask6) <<< Rot6Ci,4 = (Τ xor Mask7) <<< Rot7I (Τ xor Mask8) <<< Rot8(2· 2)S 一 S · χ,T 一 T · χ-1根據(jù)上面的處理,應(yīng)用16比特變量S和Τ,因此,產(chǎn)生四個(gè)常數(shù)(Cu至Ci,4),使得在每一個(gè)內(nèi)部置換中包括的四個(gè)常數(shù)的一半是χ倍系列,并且剩余的一半屬于χ-1倍系列。通過以這種方式配置,在從S產(chǎn)生的常數(shù)和由T構(gòu)成的常數(shù)之間不保持固定的線性關(guān)系,并且,獲得改善獨(dú)立性的效果。當(dāng)一般化和描述上述的常數(shù)產(chǎn)生處理時(shí),可以解釋這是下述處理其中,通過使用諸如Xa和Xb的具有不同的指數(shù)的值來更新初始值S和Τ。通過經(jīng)由應(yīng)用這樣的初始值S和 T來產(chǎn)生多個(gè)常數(shù),所產(chǎn)生的常數(shù)的一半變?yōu)閄a倍系列,并且剩余的一半屬于Xb倍系列。順便提及,此外,如果可接受不僅S和T兩個(gè)系列的增加,此外可接受初始值的增力口,則可以提供其中通過使用三個(gè)或更多個(gè)系列來產(chǎn)生常數(shù)的配置。[18.產(chǎn)生用于多個(gè)整體置換的常數(shù)的方法]在壓縮函數(shù)中,存在多個(gè)整體置換,并且對于每一個(gè)整體置換,必須準(zhǔn)備由多個(gè)常數(shù)形成的一組常數(shù)值。假定整體置換的數(shù)量是m,則這些被表達(dá)為Ρ1、Ρ2、…、Pm。如果應(yīng)用上述的常數(shù)產(chǎn)生技術(shù),則可以應(yīng)用下述方法其中,根據(jù)其數(shù)量為m的這些整體置換來對于每一個(gè)整體置換改變在m個(gè)組中的初始值,并且產(chǎn)生要在整體置換中的內(nèi)部置換中應(yīng)用的每一個(gè)常數(shù)值。然而,這樣的技術(shù)的使用使得用于通過m來產(chǎn)生常數(shù)值的工作加倍,這是低效率的。將描述一種用于簡化產(chǎn)生要向多個(gè)整體置換應(yīng)用的常數(shù)組的處理的技術(shù)。例如, 當(dāng)在壓縮函數(shù)中存在其數(shù)量為m的整體置換時(shí),通過使用多個(gè)初始值S和T的上述方法來產(chǎn)生第一整體置換所需要的常數(shù),通過將對于第一整體置換產(chǎn)生的常數(shù)進(jìn)行簡單操作來產(chǎn)生第二和隨后的整體置換所需要的常數(shù)。在數(shù)據(jù)轉(zhuǎn)換處理的一種配置中,例如,在其中在壓縮函數(shù)中設(shè)置其數(shù)量為m的整體置換的配置中,由Cm (χ)來表達(dá)在從第χ整體置換的輸入側(cè)數(shù)的第i個(gè)內(nèi)部置換中包括的第j個(gè)常數(shù)值(字)。假定通過使用多個(gè)初始值S和T的上述方法來產(chǎn)生用于第一整體置換的常數(shù)(;,」(1)。此時(shí),產(chǎn)生用于第二和隨后的整體置換的常數(shù)Ci,」(2),Ci,」(3),…(;,“!!!)。參考圖34,將描述一種用于產(chǎn)生用于第二和隨后的整體置換的常數(shù)Ciij (2),Ciij (3),-Ci, ,.(m) 的方法。圖34圖示作為其數(shù)量為m的整體置換所需要的常數(shù)組的、由使用多個(gè)初始值S和 T的上述方法產(chǎn)生的第一常數(shù)組480以及通過第一常數(shù)組480的轉(zhuǎn)換處理產(chǎn)生的第二常數(shù)組481、第三常數(shù)組482和第m個(gè)常數(shù)組483。這是下述示例其中,進(jìn)行設(shè)置使得在其數(shù)量為m的所有整體置換中,其數(shù)量為k 的內(nèi)部置換被包括在一個(gè)整體置換中,并且對于一個(gè)整體置換需要四個(gè)常數(shù)的字。 由向第一常數(shù)組480應(yīng)用的轉(zhuǎn)換處理來產(chǎn)生第二到第m個(gè)組。將描述轉(zhuǎn)換處理的具體示例。作為轉(zhuǎn)換處理,可以應(yīng)用下面三種類型的轉(zhuǎn)換處理的任何一種。(轉(zhuǎn)換處理示例1)假定對于每一個(gè)整體置換所區(qū)別地確定的旋轉(zhuǎn)量是Rx,并且基于Ciij(X) = Ci, j(l) <<<Rx來產(chǎn)生常數(shù)。Cio- (1)是作為由使用多個(gè)初始值S和T的上述方法產(chǎn)生的第一常數(shù)組480的元素的常數(shù)。χ是常數(shù)組的標(biāo)識號,并且取值2至m。(轉(zhuǎn)換處理示例2)假定對于每一個(gè)整體置換所區(qū)別地確定的掩蔽值(字)是Mx,并且基于Cm(X)= Cijj(I)Xor Mx來產(chǎn)生常數(shù)。Cio- (1)是作為由使用多個(gè)初始值S和T的上述方法產(chǎn)生的第一常數(shù)組480的元素的常數(shù)。χ是常數(shù)組的標(biāo)識號,并且取值2至m。(轉(zhuǎn)換處理示例3)從上述轉(zhuǎn)換處理示例1和2的組合產(chǎn)生的方法?;贑y (χ) = (Cijj(I) <<< Rx) xor Mx ^ Cijj (χ) = (Cijj(I)Xor Mx) <<< Rx
來產(chǎn)生常數(shù)。Cio- (1)是作為由使用多個(gè)初始值S和T的上述方法產(chǎn)生的第一常數(shù)組480的元素的常數(shù)。χ是常數(shù)組的標(biāo)識號,并且取值2至m。通過應(yīng)用上述轉(zhuǎn)換處理示例1至3的任何一個(gè),可以從一個(gè)常數(shù)組產(chǎn)生多個(gè)不同的常數(shù)組,并且這些被設(shè)置為向相應(yīng)的整體置換應(yīng)用的常數(shù)。順便提及,在上述轉(zhuǎn)換處理示例1的情況下,可以保證,只要Cm(O)沒有特殊比特模式,則在對于任意的x、y的Cm(X)和CM(y)之間的異或的結(jié)果不變?yōu)?,因此,可以配置不同的整體置換。此外,在上述轉(zhuǎn)換處理示例2的情況下,也可以保證異或運(yùn)算的結(jié)果不變?yōu)?,因此,這個(gè)處理示例也適合于產(chǎn)生不同的整體置換。順便提及,在上述轉(zhuǎn)換處理示例中所示的旋轉(zhuǎn)量和掩蔽值被配置來使用對于每一個(gè)整體置換確定的值,但是可以在其中多個(gè)值被設(shè)置并且用于產(chǎn)生一個(gè)整體置換所需要的多個(gè)常數(shù)值的配置中預(yù)期類似的效果。通過采用這些方案,只要存在用于第一置換函數(shù)的一組常數(shù)值,則可以以輕處理為代價(jià)來建立用于另一個(gè)置換函數(shù)的一組常數(shù)值,因此,可以預(yù)期處理的加速。具體地說,當(dāng)在數(shù)據(jù)轉(zhuǎn)換裝置中實(shí)現(xiàn)程序執(zhí)行功能,即軟件時(shí),可以必要時(shí)以動(dòng)態(tài)地建立用于所有的整體置換的一組常數(shù)值的形式來提供編程配置而沒有在存儲器上展開, 因此,可以預(yù)期在存儲器使用效率上的提高。順便提及,已經(jīng)通過使用下述示例來提供描述在該示例中,旋轉(zhuǎn)操作的目標(biāo)基于字單位,但是這可以改為以連接的兩個(gè)或更多個(gè)字為單位來應(yīng)用旋轉(zhuǎn)的形式,并且可以預(yù)期與如上所述的效果類似的效果。[19.減少散列函數(shù)的輸出值的技術(shù)]接下來,將描述數(shù)據(jù)轉(zhuǎn)換裝置的配置示例,其中,在散列值產(chǎn)生處理配置中,準(zhǔn)備用于輸出η比特散列值的函數(shù),并且截?cái)鄈比特輸出,因此可以輸出n-k比特散列值。這是下述配置其中,例如,準(zhǔn)備具有256比特的輸出的散列函數(shù),并且該輸出被減少32比特以產(chǎn)生224比特的散列函數(shù)。圖35圖示在整體置換的最后級中的內(nèi)部置換處理配置,這是與在圖30中所示的內(nèi)部置換處理部(置換函數(shù))410類似的配置。輸出71至%是整體置換的輸出,并且指示作為散列函數(shù)的輸出的散列值。順便提及,圖35以簡化的方式圖示作為一條數(shù)據(jù)線的1個(gè)字(4字節(jié))的數(shù)據(jù)線。71至%的輸出整體變?yōu)?\8 = 32字節(jié)=256比特的輸出。順便提及,為了容易描述,假定在輸出緊前不執(zhí)行在異或運(yùn)算后交換數(shù)據(jù)段的處理。此外,假定與在輸出緊前的數(shù)據(jù)系列進(jìn)行異或的數(shù)據(jù)Xi代表前向反饋的數(shù)據(jù),所述前向反饋的數(shù)據(jù)是由作為向這個(gè)壓縮函數(shù)輸入的中間值的鏈接值(CV)、消息等形成的。在此,將描述一種用于刪除輸出的η比特?cái)?shù)據(jù)的k比特?cái)?shù)據(jù)并由此執(zhí)行輸出數(shù)據(jù)的減少的方法。必須在圖中的輸出系列Y1至y8中確定要切斷在哪個(gè)數(shù)據(jù)系列中包括的比特。作為一種方法,存在其中從左依序切斷每一個(gè)k比特塊的方案。在該情況下,可設(shè)想下面的問題。如果該k個(gè)比特在從左起的兩條數(shù)據(jù)線的尺寸的和之外,則在左端的非線性轉(zhuǎn)換處理的結(jié)果不影響剩余輸出的任何比特。這使得顯然這部分的計(jì)算是無用的。關(guān)于不被偏置到特定數(shù)據(jù)系列以使得避免這樣的浪費(fèi)的減少技術(shù),將描述下面兩種處理技術(shù)。(數(shù)據(jù)減少技術(shù)1)假定輸出數(shù)據(jù)系列的數(shù)量是m,并且,假定要切斷的比特的數(shù)量(要?jiǎng)h除的比特的數(shù)量)是k。為了將k個(gè)比特盡可能均勻地劃分為m個(gè)塊,根據(jù)下面的等式來計(jì)算參數(shù)a和b。[等式1]
a = m-(k-mx Lk/mJ )
b = k - m χ Lk/mJ|_k/m」指示(k/m)的整數(shù)部分。在下面,將|_k/m j表達(dá)為f (k/m)。通過上面的公式,計(jì)算a和b。
32
順便提及,a+b= m。在作為輸出獲得的其數(shù)量為m的系列yl至ym中,從在其數(shù)量是a的輸出系列中的每一個(gè)輸出數(shù)據(jù)段,減少了 f(k/m)比特。此外,從在其數(shù)量是b的剩余的輸出系列中的每一個(gè)輸出數(shù)據(jù)段,減少了 f(k/m)+l比特。換句話說,如圖36中所示,對每一個(gè)輸出系列執(zhí)行數(shù)據(jù)減少處理。當(dāng)使用置換時(shí),可以通過執(zhí)行離散的切斷,而不是通過切斷依序比特串來保證所有的非線性轉(zhuǎn)換的結(jié)果影響任何輸出,因此,在用于產(chǎn)生輸出值的處理中不發(fā)生浪費(fèi)。在如上所述的輸出比特減少處理中,以所有的輸出數(shù)據(jù)系列作為數(shù)據(jù)減少的目標(biāo)來執(zhí)行處理,但是可以提供下述配置僅選擇輸出系列的一部分,并且執(zhí)行數(shù)據(jù)減少處理。例如,在圖33中所示的內(nèi)部置換處理配置中,從左起的兩個(gè)輸出數(shù)據(jù)被同一非線性轉(zhuǎn)換的輸出影響,因此,可以提供下述配置例如,僅將從左起的奇數(shù)編號(或偶數(shù)編號) 的數(shù)據(jù)系列選擇為切斷的目標(biāo)。即使當(dāng)執(zhí)行這樣的處理時(shí),也可以預(yù)期像上述效果那樣的不出現(xiàn)處理的浪費(fèi)的效果,此外,可以減少處理的工作,因?yàn)橐袛嗟牟糠值臄?shù)量變小。順便提及,當(dāng)輸出系列的數(shù)量是η時(shí),這個(gè)系列的選擇配置可以被應(yīng)用到要切斷的比特長度不大于η/2的情況。(數(shù)據(jù)減少技術(shù)2)假定輸出數(shù)據(jù)系列的數(shù)量是m,并且,假定要切斷的比特的數(shù)量(要?jiǎng)h除的比特的數(shù)量)是k。為了將k個(gè)比特盡可能均勻地劃分為m個(gè)塊,根據(jù)下面的等式來計(jì)算參數(shù)a和b。[等式2]
權(quán)利要求
1.一種數(shù)據(jù)轉(zhuǎn)換裝置,包括混合處理部,用于對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理;以及壓縮處理部,用于對包括數(shù)據(jù)段的輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部能夠接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列值。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述多級壓縮子部具有MD結(jié)構(gòu) (Merkle-Damgard 結(jié)構(gòu))。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述多級壓縮子部具有多個(gè)處理系列, 所述多個(gè)處理系列接收在所述消息數(shù)據(jù)中的相同數(shù)據(jù)段以并行地執(zhí)行處理。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中所述混合處理部被配置來對所述輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)混合處理,并且產(chǎn)生其比特?cái)?shù)量等于在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的輸出數(shù)據(jù),并且所述壓縮處理部被配置來對所述輸入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)壓縮處理,并且產(chǎn)生其比特?cái)?shù)量小于在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的輸出數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述數(shù)據(jù)轉(zhuǎn)換裝置被配置使得交錯(cuò)地執(zhí)行在所述混合處理部中的所述數(shù)據(jù)混合處理和在所述壓縮處理部中的所述數(shù)據(jù)壓縮處理。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述數(shù)據(jù)轉(zhuǎn)換裝置被配置使得與在所述壓縮處理部中的每一個(gè)多級數(shù)據(jù)壓縮處理對應(yīng)地執(zhí)行所述混合處理部的所述數(shù)據(jù)混合處理。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述混合處理部包括 數(shù)據(jù)轉(zhuǎn)換部,用于執(zhí)行在所述輸入數(shù)據(jù)中的比特?cái)?shù)量的調(diào)整處理;以及混合部嵌入壓縮部,用于接收所述輸入數(shù)據(jù)和來自所述數(shù)據(jù)轉(zhuǎn)換部的輸出,以對于其執(zhí)行壓縮處理。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述數(shù)據(jù)轉(zhuǎn)換部包括多個(gè)數(shù)據(jù)轉(zhuǎn)換子部,所述多個(gè)數(shù)據(jù)轉(zhuǎn)換子部并行地執(zhí)行處理,并且所述混合部嵌入壓縮部具有多個(gè)壓縮子部,所述多個(gè)壓縮子部對于來自相應(yīng)的數(shù)據(jù)轉(zhuǎn)換部的輸出并行地執(zhí)行處理。
9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述混合處理部包括具有中間輸出的置換函數(shù)執(zhí)行部,其被配置來重復(fù)地執(zhí)行每一個(gè)置換處理,以輸出作為每一個(gè)所述置換處理的結(jié)果的中間值;以及具有附加輸入的置換函數(shù)執(zhí)行部,其被配置來使用從所述具有中間輸出的置換函數(shù)執(zhí)行部輸出的所述中間值作為附加輸入來重復(fù)地執(zhí)行置換處理。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述具有附加輸入的置換函數(shù)執(zhí)行部被配置來使用異或結(jié)果作為在后級的所述置換處理的輸入數(shù)據(jù),所述異或結(jié)果是在從所述具有中間輸出的置換函數(shù)執(zhí)行部輸出的所述中間值和在前一級中的置換處理的結(jié)果之間的異或的邏輯值。
11.根據(jù)權(quán)利要求9所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,由所述置換函數(shù)執(zhí)行部執(zhí)行的置換處理的每一個(gè)被配置來包括對于輸入數(shù)據(jù)的一部分或全部執(zhí)行的非線性轉(zhuǎn)換處理和作為數(shù)據(jù)交換處理的交換處理。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,所述非線性轉(zhuǎn)換處理是包括使用常數(shù)的異或運(yùn)算、非線性轉(zhuǎn)換和使用線性轉(zhuǎn)換矩陣的線性轉(zhuǎn)換的處理。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,根據(jù)使用多個(gè)不同矩陣的DSM(擴(kuò)散切換機(jī)制)執(zhí)行由所述置換函數(shù)執(zhí)行部執(zhí)行的每一個(gè)所述置換處理中的所述線性轉(zhuǎn)換處理。
14.根據(jù)權(quán)利要求9所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,由所述置換函數(shù)執(zhí)行部執(zhí)行的每一個(gè)所述置換處理被配置使得基于彼此不同的多個(gè)常數(shù)集的相應(yīng)的一個(gè)來執(zhí)行數(shù)據(jù)處理,并且由對于基本集執(zhí)行的數(shù)據(jù)轉(zhuǎn)換處理產(chǎn)生并且彼此不同的多個(gè)常數(shù)集被應(yīng)用到相應(yīng)的置換處理,所述基本集被定義為要被應(yīng)用到一個(gè)置換處理的常數(shù)集。
15.根據(jù)權(quán)利要求14所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中要被用作所述基本集的所述常數(shù)集包括通過向彼此不同的多個(gè)初始值S和T應(yīng)用轉(zhuǎn)換規(guī)則而產(chǎn)生的多個(gè)常數(shù),并且所述轉(zhuǎn)換規(guī)則被配置來包括對于所述初始值的更新處理,通過下面的表達(dá)式來表示所述更新處理S — S · xa,T — T · xb其中,a ^ b0
16.根據(jù)權(quán)利要求14所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中,用于所述基本集的所述數(shù)據(jù)轉(zhuǎn)換處理是允許對于構(gòu)成所述基本集的每一個(gè)常數(shù)執(zhí)行比特旋轉(zhuǎn)操作的處理或允許對于預(yù)定掩蔽數(shù)據(jù)執(zhí)行運(yùn)算的處理。
17.根據(jù)權(quán)利要求1所述的數(shù)據(jù)轉(zhuǎn)換裝置,其中所述數(shù)據(jù)轉(zhuǎn)換部被配置來執(zhí)行截止處理,所述截止處理允許最終輸出的散列值在比特?cái)?shù)量上減少,并且根據(jù)預(yù)定的計(jì)算表達(dá)式來對于構(gòu)成所述數(shù)據(jù)轉(zhuǎn)換部的輸出的多個(gè)輸出數(shù)據(jù)系列的每一個(gè)的輸出比特執(zhí)行要減少的比特?cái)?shù)量的計(jì)算,然后,根據(jù)所述計(jì)算的結(jié)果來執(zhí)行所述截止處理。
18.—種在數(shù)據(jù)轉(zhuǎn)換裝置中執(zhí)行的數(shù)據(jù)轉(zhuǎn)換方法,所述方法包括步驟混合處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理;以及壓縮處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述輸入數(shù)據(jù)包括數(shù)據(jù)段,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中,所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列值。
19. 一種程序,包括記錄序列,所述記錄序列允許數(shù)據(jù)轉(zhuǎn)換裝置執(zhí)行數(shù)據(jù)轉(zhuǎn)換處理,所述序列包括步驟混合處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理;以及壓縮處理部對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理,所述輸入數(shù)據(jù)包括數(shù)據(jù)段,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo),其中,所述壓縮處理部包括多級壓縮子部,所述多級壓縮子部接收在所述消息數(shù)據(jù)中的所有所述數(shù)據(jù)段,所述多級壓縮子部的一部分被配置來基于所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,所述多級壓縮子部的一部分被配置來基于前一級壓縮子部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理,并且位于所述多級壓縮子部的最后級中的壓縮子部被配置來輸出所述消息數(shù)據(jù)的散列 值。
全文摘要
實(shí)現(xiàn)了一種用于產(chǎn)生具有增強(qiáng)的抗分析攻擊性和高安全度的散列值的數(shù)據(jù)轉(zhuǎn)換裝置。提供了用于對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)混合處理的混合處理部以及用于對包括數(shù)據(jù)段的輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮處理的壓縮處理部,所述數(shù)據(jù)段是消息數(shù)據(jù)的分段,所述消息數(shù)據(jù)是數(shù)據(jù)轉(zhuǎn)換的目標(biāo)。多級壓縮部的一部分接收所述混合處理部的輸出和在所述消息數(shù)據(jù)中的所述數(shù)據(jù)段兩者來執(zhí)行所述數(shù)據(jù)壓縮處理。提供了至少在多個(gè)回合的壓縮處理回合的固定時(shí)間執(zhí)行混合處理的配置,因此,實(shí)現(xiàn)了產(chǎn)生具有改善的抗分析攻擊性和高安全度的散列值的數(shù)據(jù)轉(zhuǎn)換裝置。
文檔編號G09C1/00GK102216967SQ20098013227
公開日2011年10月12日 申請日期2009年8月25日 優(yōu)先權(quán)日2008年8月25日
發(fā)明者巖田哲, 澀谷香士, 白井太三, 盛合志帆, 秋下徹 申請人:索尼公司