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