本公開涉及一種加密處理裝置、加密處理方法和程序,更具體地,涉及一種執(zhí)行公用密鑰系統(tǒng)加密的加密處理裝置、加密處理方法和程序。
背景技術:
:隨著信息社會的發(fā)展,用于安全保護待處理信息的信息安全技術已經變得更加重要。加密技術是信息安全技術的其中一個構成要素。目前,加密技術用于各種產品和系統(tǒng)。存在各種加密處理算法。作為一種基礎技術,存在一種稱為公用密鑰塊加密的技術。在公用密鑰塊加密中,加密密鑰和解密密鑰是公用的。在加密處理和解密處理中,由公用密鑰生成多個密鑰,并且,在某個塊單元中,例如,在64位、128位、256位等塊數據單元中,重復執(zhí)行數據轉換處理。作為代表性的公用密鑰塊加密算法,存在數據加密標準(DES)和高級加密標準(AES),該數據加密標準是過去的美國標準,而該高級加密標準是當前的美國標準。此外,目前繼續(xù)提出各種類型的公用密鑰塊加密技術。在2007年由索尼公司(SonyCorporation)提出的CLEFIA是一種公用密鑰塊加密技術。作為相關領域的公開了公用密鑰塊加密的技術,例如,存在專利文獻1(IP2012-215813A)。這種公用密鑰塊加密算法配置為主要包括加密處理部和密鑰調度部,該加密處理部包括重復轉換輸入數據的輪函數執(zhí)行部,該密鑰調度部生成輪密鑰,該輪密鑰應用于輪函數部的各輪中。該密鑰調度函數首先基于作為私人密鑰的總密鑰(主密鑰)生成位數增加了的擴展密鑰,并且基于所生成的擴展密鑰生成應用于該加密處理部的各輪函數部的輪密鑰(子密鑰)。作為執(zhí)行這種算法的具體結構,熟知的有重復執(zhí)行具有線性轉換部和非線性轉換部的輪函數的結構。例如,代表性結構有代換-置換網絡(SPN)結構、Feistel結構和擴展Feistel結構。這些結構全都是通過重復執(zhí)行具有線性轉換部和非線性轉換部的輪函數來將明文轉換成密文的結構。引文列表專利文獻專利文獻1:JP2012-215813A技術實現要素:技術問題作為試圖對加密算法或者私人密鑰進行解碼的攻擊,例如,存在差分攻擊和線性攻擊。對于加密處理裝置而言,抗各種攻擊的性能、高速處理、微型化等都是必需的。鑒于上述的情況構思了本發(fā)明,例如,可以提供一種加密處理裝置、加密處理方法、和在加密處理裝置所需的各要素諸如安全性、高速和微型化方面實現改進的程序。問題的解決方案本公開的第一方面提供了一種加密處理裝置,其包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。進一步地,本公開的第二方面提供了一種加密處理裝置,其包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;以及加密處理部具有如下配置:在函數E和反函數E-1中都執(zhí)行輪運算,在輪運算中應用一次或者多次常數,并且在函數E和反函數E-1的非對應位置處設置常數應用位置。進一步地,本公開的第三方面提供了一種在加密處理裝置中執(zhí)行的加密處理方法。該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。進一步地,本公開的第四方面提供了一種在加密處理裝置中執(zhí)行的加密處理方法。該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;加密處理部具有如下配置:在函數E和反函數E-1的非對應位置處設置常數應用位置;并且加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中都一次或者多次應用常數。進一步地,本公開的第五方面提供了一種使加密處理裝置執(zhí)行加密處理方法的程序。該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且該程序使加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。進一步地,本公開的第六方面提供了一種使加密處理裝置執(zhí)行加密處理方法的程序。該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;加密處理部具有如下配置:在函數E和反函數E-1的非對應位置處設置常數應用位置。并且,該程序使加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中都一次或者多次應用常數。根據本公開的程序記錄在記錄介質中并且提供給能夠執(zhí)行各種程序代碼的信息處理設備或者計算機系統(tǒng)。通處理序執(zhí)行單元在信息處理設備或者計算機系統(tǒng)上執(zhí)行該程序,實現了根據該程序的處理。本公開的目的、特征和優(yōu)點稍后將通過基于本公開的實施例和附圖的更加詳細的說明變得更加清晰。此外,本說明書中的系統(tǒng)并不限于邏輯上聚合了包含于同一個外殼內的多個裝置的配置。本發(fā)明的有益效果根據本公開的實施例的配置,實現了安全性好、抗各種攻擊性能高的加密處理。具體地,該加密處理裝置包括:加密處理部,其配置為對輸入數據重復進行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。該加密處理部具有對合性質,在對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且該加密處理部執(zhí)行輪運算,在輪運算中,在函數E和反函數E-1中的僅一個中一次或者多次應用常數。該常數配置為滿足如下條件的狀態(tài):由與輸入有常數的異或部相鄰位置處的線性轉換處理部在線性轉換處理中應用的對線性轉換矩陣的矩陣運算產生的狀態(tài)的所有構成元素均非零。通過本配置實現了抗各種攻擊性能提高的、安全性高的加密處理配置。此外,在本說明書中描述的效果不是限制性的而僅是示例性的,并且可以存在另外的效果。附圖說明圖1是描述與k位密鑰長度對應的n位公用密鑰塊加密算法的示意圖。圖2是描述與圖1中所示的與k位密鑰長度對應的n位公用密鑰塊加密算法對應的解密算法的示意圖。圖3是描述密鑰調度部與加密處理部之間的關系的示意圖。圖4是描述加密處理部的配置的示例的示意圖。圖5是描述具有SPN結構的輪函數的示例的示意圖。圖6是描述具有Feistel結構的輪函數的示例的示意圖。圖7是描述具有擴展Feistel結構的輪函數的示例的示意圖。圖8是描述具有擴展Feistel結構的輪函數的示例的示意圖。圖9是描述非線性轉換部的配置的示例的示意圖。圖10是描述線性轉換部的配置的示例的示意圖。圖11是描述對狀態(tài)(狀態(tài)表達數據)的數據轉換處理的示例的示意圖。圖12是描述對狀態(tài)的數據轉換處理的示例的示意圖。圖13是描述對狀態(tài)的數據轉換處理的示例的示意圖。圖14是描述對狀態(tài)的數據轉換處理的示例的示意圖。圖15是描述對狀態(tài)的列擴散計算處理的示意圖。圖16是描述對狀態(tài)的列擴散計算處理的示意圖。圖17是描述狀態(tài)下的行擴散計算處理的示意圖。圖18是描述對狀態(tài)的行擴散計算處理的示意圖。圖19是描述根據本公開的一個實施例的加密處理裝置的配置的示例的示意圖。圖20是描述根據本公開的一個實施例的加密處理裝置的配置的示例的示意圖。圖21是描述在加密處理部中執(zhí)行的數據轉換處理的示例的示意圖。圖22是描述加密處理部的非線性轉換部和線性轉換部的處理和配置的示意圖。圖23是描述加密處理部的線性轉換部的處理和配置的示意圖。圖24是描述應用于線性轉換處理的矩陣的示意圖。圖25是描述由線性轉換部P1執(zhí)行的列擴散運算的示意圖。圖26是描述由線性轉換部P2執(zhí)行的行擴散運算的示意圖。圖27是描述由線性轉換部P3執(zhí)行的行擴散運算的示意圖。圖28是描述加密處理部的線性轉換部的處理和配置的示意圖。圖29是描述當加密處理部的線性轉換部執(zhí)行同一個線性轉換處理時的配置的示意圖。圖30是描述當加密處理部的線性轉換部具有執(zhí)行有不同線性轉換處理的配置和執(zhí)行有相同線性轉換處理的配置時活躍S盒的數量的對比數據的示意圖。圖31是描述當加密處理部的線性轉換部具有執(zhí)行有不同線性轉換處理的配置和執(zhí)行有相同線性轉換處理的配置時活躍S盒的數量的對比數據的示意圖。圖32是描述密鑰調度部的處理和配置的示意圖。圖33是描述密鑰調度部的密鑰轉換部的處理和配置的示意圖。圖34是描述密鑰調度部的密鑰轉換部的處理和配置的示意圖。圖35是描述密鑰調度部的密鑰轉換部的轉換處理中的數據擴散處理的示意圖。圖36是描述用于執(zhí)行密鑰轉換處理和不執(zhí)行密鑰轉換處理的配置之間的對比的示意圖。圖37是描述用于執(zhí)行密鑰轉換處理和不執(zhí)行密鑰轉換處理的配置之間的對比的示意圖。圖38是描述用于執(zhí)行密鑰轉換處理和不執(zhí)行密鑰轉換處理的配置之間的對比的示意圖。圖39是描述密鑰調度部的處理和配置的示意圖。圖40是描述當密鑰轉換函數不具有對合性質時密鑰調度部的處理和配置的示意圖。圖41是描述當密鑰轉換函數具有對合性質時密鑰調度部的處理和配置的示意圖。圖42是描述密鑰調度部的處理和配置的示意圖。圖43是描述密鑰調度部的處理和配置的示意圖。圖44是描述當密鑰轉換函數G具有全擴散性質時加密處理配置的示意圖。圖45是描述當不執(zhí)行密鑰轉換時的處理和配置的示意圖。圖46是描述16位代換處理的示意圖。圖47是描述應用了全擴散4位函數和16位代換函數的密鑰轉換處理的示例的示意圖。圖48是描述應用了全擴散4位函數和16位代換函數的密鑰轉換處理的示例的示意圖。圖49是描述應用了全擴散4位函數和16位代換函數的密鑰轉換處理的示例的示意圖。圖50是描述應用了全擴散4位函數和16位代換函數的密鑰轉換處理的示例的示意圖。圖51是描述應用了全擴散4位函數和16位代換函數的密鑰轉換處理的示例的示意圖。圖52是描述用于分裂密鑰的代換函數G1和G2的設置示例的示意圖。圖53是描述在加密處理部中的常數輸入配置的示例的示意圖。圖54是描述具有對合性質的加密處理部的配置的示例的示意圖。圖55是描述具有對合性質的加密處理部的配置的問題的示意圖。圖56是描述在加密處理部中的常數輸入配置的示例的示意圖。圖57是描述在加密處理部中的常數輸入配置的示例的示意圖。圖58是描述在加密處理部中的常數輸入配置的示例的示意圖。圖59是描述在加密處理部中的常數輸入配置的示例的示意圖。圖60是描述基于活躍S盒的安全評估的示意圖。圖61是描述基于活躍S盒的安全評估處理的示意圖。圖62是描述基于活躍S盒的安全評估處理的示意圖。圖63是描述在加密處理部中的常數輸入配置的示例的示意圖。圖64是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖65是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖66是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖67是描述加密處理部的非線性轉換部的S盒的線性轉換層的配置的示例的示意圖。圖68是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖69是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖70是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖71是描述加密處理部的非線性轉換部的S盒的配置的示例的示意圖。圖72是描述加密處理部的配置的一個示例的示意圖。圖73是圖示用作加密處理裝置的IC模塊700的配置的示例的示意圖。圖74是圖示具有加密處理執(zhí)行函數的智能手機的配置的示例的示意圖。具體實施方式下面將參照附圖對根據本公開的加密處理裝置、加密處理方法和程序進行詳細描述。將對以下項目進行描述:1.公用密鑰塊加密的概述2.公用密鑰塊加密中的安全指數3.安全性提高了的公用密鑰加密處理的整體配置概述4.加密處理部的線性轉換部的處理和配置5.密鑰調度部的處理和配置5-1.密鑰調度部的處理和配置的描述5-2.基于密鑰調度部的全擴散性質的效果5-3.基于密鑰轉換部的對合性質的效果5-3-a.展開安裝中的效果5-3-b.輪安裝中的效果5-4.根據本公開的密鑰調度部的配置和效果的總結5-5.密鑰調度部的配置的其它示例5-6.具有全擴散性質的密鑰轉換部的配置的示例6.通過常數輸入實現安全性提高的配置6-1.相關技術中通過常數輸入實現安全性提高的配置和問題6-2.具有高安全性的常數輸入配置的加密處理裝置的配置6-3.輸入插入位置的變型7.應用于非線性轉換部的S盒的具體配置的示例8.加密處理裝置的具體示例9.加密處理裝置的安裝示例10.根據本公開的構造的總結[1.公用密鑰塊加密的概述]首先,將對公用密鑰塊加密的概述進行說明。(1-1.公用密鑰塊加密)下面將對本文中使用的公用密鑰塊加密(下文中有時也稱為塊加密)進行說明。在塊加密中,將明文P和密鑰k作為輸入,并且輸出密文C。明文和密文的位長度稱為塊大小。例如,設置塊大?。絥。此處,n是任意整數值,并且是通常預先確定為各個塊加密算法的一個值的值。具有塊長度n的塊加密也稱為n位塊加密。密鑰的位長度用k來指示。密鑰可以采用任意整數值。公用密鑰塊加密算法對應一個密鑰大小或者多個密鑰大小。例如,假定某個塊加密算法A具有可以對應塊大?。?28或者密鑰大小k=128、k=192或者k=256的配置。明文P:n位密文C:n位密鑰K:k位圖1是圖示具有與k位的密鑰長度對應的n位的公用密鑰塊加密算法E的示意圖。與加密算法E對應的解密算法D可以定義為加密算法E的反函數E-1,并且采用密文C和密鑰K作為輸入并輸出明文P。圖2是圖示與圖1所示的加密算法E對應的解密算法D。(1-2.內部配置)塊加密可以被認為分裂成兩個部分。一個部分是“密鑰調度部”,該密鑰調度部在輸入一個私人密鑰K時在某個決定步驟中輸出應用于加密處理部的每一輪的輪密鑰。另一個部分是“加密處理部”,該加密處理部在從密鑰調度部輸入明文P和輪密鑰時執(zhí)行數據轉換并且輸出密文C。圖3中圖示了這兩個部分之間的關系。加密處理部具有如下配置:在許多情況下,輸入密文C和輸出明文P的解密處理也可以在該配置中執(zhí)行。甚至在這種情況下,也執(zhí)行應用從密鑰調度部供給的輪密鑰的解密處理。圖3中圖示了這兩個部分之間的關系。(1-3.加密處理部)假定將在下面描述中使用的加密處理部分成處理單元,也稱輪函數。該輪函數對輸入數據執(zhí)行預定的數據轉換并且輸出轉換的數據。在加密期間,至輪函數的輸入數據為例如n位數據。輪函數在某一輪中的輸出被提供為隨后一輪的輸入。包括具有基于從密鑰調度部輸出的密鑰而生成的輪密鑰的運算配置,作為輪函數的一個配置。具體地,在加密期間執(zhí)行輪密鑰和n位數據的異或運算。輪函數的總數稱為總輪數,并且是針對各種加密算法預先決定的值。當X1從加密處理部的輸入側的角度看是第一輪的輸入數據時,Xi為輸入至第i輪函數的數據,并且RKi為輪密鑰。圖4中圖示了整個加密處理部。(1-4.輪函數)輪函數可以具有根據塊加密算法的各種形式。根據加密算法所采用的結構可以將輪函數進行分類。作為代表性結構,在本文中舉例說明了代換-置換網絡(SPN)結構、Feistel結構和擴展Feistel結構。(A)代換-置換網絡(SPN)結構輪函數在配置中,將具有輪密鑰、非線性轉換或者線性轉換處理等的異或運算應用于所有的n位輸入數據。不特別地決定運算的序列。圖5圖示了具有SPN結構的輪函數的示例。在某些情況下,線性轉換部也稱為P層(置換層)。(B)Feistel結構將n位輸入數據分裂成兩條n/2位數據。應用具有一條位數據和輪密鑰作為輸入的函數(F函數),并且利用另一條數據對輸出進行異或處理。此后,將通過數據的右側和左側的置換而獲得的數據設置為輸出數據。存在各種類型的F函數的內部配置。基本上,這些配置是通過組合具有輪密鑰數據的異或運算、非線性運算和線性轉換來實現,與在SPN結構中的一樣。圖6圖示了具有Feistel結構的輪函數的示例。(C)擴展Feistel結構擴展Feistel結構是通過將數據的分裂條數為2的Feistel結構擴展成數據的分裂條數為3或者更多的形式的結構。當d為數據的分裂條數時,可以根據d來定義各種擴展的Feistel結構。由于F函數的輸入和輸出大小較小,所以擴展Feistel結構適用于微型安裝。圖7圖示了當將d設置為d=4并且在一輪中并行應用了兩個F函數時的擴展Feistel結構的示例。圖8圖示了當將d設置為d=8并且在一輪中應用了一個F函數時的擴展Feistel結構的示例。(1-5.非線性轉換部)當輸入數據的大小增加時,非線性轉換部有增加安裝成本的傾向。為了避免這種情況,許多非線性轉換部具有如下配置:將目標數據分裂成多個單元,并且在各個單元中執(zhí)行非線性轉換。例如,非線性轉換部具有如下配置:輸入大小為ms位,將該輸入大小分裂成具有s位的m條數據,并且在各條數據上執(zhí)行具有s位輸入和輸出的非線性轉換。這種具有s位單元的非線性轉換執(zhí)行部稱為S盒。圖9中圖示了S盒的示例。圖9中示出的示例為如下配置:將具有ms位的輸入數據分裂成m條s位數據,將各條數據輸入至執(zhí)行s位非線性轉換處理的m個S盒,并且將S盒的輸出進行關聯以獲得ms位非線性轉換結果。(1-6.線性轉換部)根據性質可以將線性轉換部定義為矩陣。一般而言,矩陣的元素可以有不同的表達,諸如擴展GF(28)的元素和GF(2)的元素。圖10圖示了具有ms位輸入和輸出并且由GF(28)上定義的m×m矩陣來定義的線性轉換部的示例。(1-7.使用狀態(tài)的數據表達)在表示每條數據(明文、密文或者密鑰等)時,有時將數據表示為具有m行和n列的矩陣類型的m×n陣列數據。由m×n陣列表示的數據稱為狀態(tài)或者狀態(tài)表達數據。圖11圖示了,當A為輸入數據而B為輸出數據時,在對輸入數據A進行數據轉換之后,將輸入數據A和輸出數據B分別表示為具有m×n陣列的狀態(tài)的示例。輸入數據A具有擴展GF(2s)mn的元素。輸入數據A=(a0a1a2...amn-2amn-1)。進一步地,a0為在MSB側的位數據,而amn-1為LSB側的位數據。同樣,輸出數據B也具有擴展GF(2s)mn的元素。輸出數據B=(b0b1b2...bmn-2bmn-1)。進一步地,b0為在MSB側的位數據,而bmn-1為LSB側的位數據。如圖所示,在m×n陣列狀態(tài)中包括了m×n個元素。例如,在圖11所示的狀態(tài)A中包括了mn個元素a0至anm-1。狀態(tài)B的元素為mn個元素b0至bnm-1。mn個元素中的各個元素均為s位元素(其中,s=1或者更大)。具體地,例如各個元素均為位數據,諸如4位數據或者8位(1字節(jié))數據。在下面的實施例中,將對各個元素均為4位數據的實施例進行說明。然而,本公開的處理也可以應用于除了4位元素數據之外的配置。圖12圖示了當4×4狀態(tài)中包括的16個元素中的各個元素均為4位數據時的4×4狀態(tài)的示例。在圖12所示的示例中,假定A為輸入數據,而B為任何數據轉換之后的輸出數據,與圖11中的一樣。輸入數據A具有擴展GF(24)4×4的元素。輸入數據A=(a0a1a2...a14a15)。進一步地,a0為在MSB側的位數據,而a15為LSB側的位數據。同樣,輸出數據B也具有擴展GF(24)4×4的元素。輸出數據B=(b0b1b2...b14b15)。進一步地,b0為在MSB側的位數據,而b15為LSB側的位數據。圖12所示的示例為輸入數據A和輸出數據B均表示為具有4×4陣列的狀態(tài)的示例,在該4×4陣列中,各個元素均為4位數據。例如,圖12所述的狀態(tài)A包括16個元素:a0至a15。各個元素均為4位數據。換言之,當將64位輸入數據A指示為狀態(tài)時,該狀態(tài)可以表示為具有4×4陣列的狀態(tài)A,在該4×4陣列中,圖12所示的各個元素均為4位數據。同樣,圖12所述的狀態(tài)B包括16個元素:b0至b15。各個元素均為4位數據。換言之,當將64位輸出數據B指示為狀態(tài)時,該狀態(tài)可以表示為具有4×4陣列的狀態(tài)B,在該4×4陣列中,圖12所示的各個元素均為4位數據。(1-8.對狀態(tài)表達數據的基本運算)接著,將對狀態(tài)(狀態(tài)表達數據)的運算處理進行說明。(1)非線性轉換處理(S)例如,通過應用多個S盒來執(zhí)行非線性轉換處理,在該多個S盒中,對在4位單元中的狀態(tài)的各個元素執(zhí)行非線性轉換。如圖13(1)所示,假定狀態(tài)B是通過對輸入狀態(tài)A的非線性轉換處理而生成的。在這種情況下,各個元素的4位單元的輸出bi與輸入ai之間的關系如下:bi=S(ai),其中,i=0、1、...、15。(2)線性轉換處理(P)如圖13(2)所示,假定狀態(tài)B是通過對輸入狀態(tài)A的線性轉換處理而生成的。例如,通過將4×4狀態(tài)的各行的四條數據視為向量并且對4×4矩陣[M]執(zhí)行運算,對4×4狀態(tài)執(zhí)行線性轉換處理,作為對值進行更新的運算。這稱為行擴散運算。在轉換處理之后的狀態(tài)的各個元素的4位單元的輸出bi與輸入ai之間的關系如下:t(bi,bi+4,bi+8,bi+12)=M×t(ai,ai+4,ai+8,ai+12),其中,i=1、2、3。此處,tX表示X的轉置矩陣。作為線性轉換處理,除了行擴散運算之外,還存在各種方法,諸如列擴散運算和位代換。(3)異或運算(密鑰應用運算處理(K))如圖14所示,假定狀態(tài)B是通過對輸入狀態(tài)A的異或運算處理而生成的。例如,執(zhí)行通過從密鑰調度部輸出的輪密鑰K和輸入數據A的異或運算來計算輸出數據B的運算。輸入數據A、輪密鑰K和輸出數據B全都是64位數據,在該64位數據中,表示出了由16個4位元素形成的狀態(tài)。在轉換處理之后的狀態(tài)的各個元素的4位單元的輸出bi、輸入ai與輪密鑰ki之間的關系如下:bi=ai(XOR)ki,其中,i=0、1、...、15。在上式中,(XOR)表示異或運算。通過運算組合來設置一個輪運算,在該運算組合中,按照預定的序列順序地執(zhí)行前述運算(1)至(3)。通過對輸入數據重復執(zhí)行輪運算來生成輸出數據,例如,加密數據,并且輸出。通過執(zhí)行一次具有輪密鑰、線性轉換處理和非線性轉換處理的異或運算來設置基本輪運算。然而,也可以將無規(guī)律的輪運算配置設置成按照解密處理序列執(zhí)行的輪運算。例如,也可以設置不同于另一種輪運算的輪運算,諸如,如下配置:省略了包括多次具有輪密鑰的異或運算的輪運算或者線性改變處理。通常也會使用如下配置:在加密處理序列開始或者結束時僅執(zhí)行具有輪密鑰的運算。該處理稱為密鑰白化處理,并且通常不會算入輪數。(1-9.對狀態(tài)表達數據的列擴散運算)接著,將參照圖15和圖16對指示為m×n矩陣陣列的狀態(tài)表達數據的列擴散運算處理進行說明。假定X0、X1、Xn-1中的每一個均為m×m矩陣,在該m×m矩陣中,各個元素均為GF(2s)上的元素。圖15中圖示了MC[X0、X1、...、Xn-1]。將上述運算,即將狀態(tài)的各列(0至n-1)的元素和與各列對應的矩陣X0、X1、...、Xn-1應用于狀態(tài)表達數據的元素的矩陣運算,定義為列擴散運算。MC指列單元的擴散(Mix),即(MixColumn)。在列擴散運算中,執(zhí)行將一個矩陣Xk應用于狀態(tài)的一列的元素的矩陣運算。針對應用于構成狀態(tài)的多個列中的各列的矩陣Xk,可以設置相同的矩陣的設置或者不同的矩陣的設置。例如,用于通過對作為輸入數據的狀態(tài)A執(zhí)行列擴散運算來計算作為輸出數據的狀態(tài)B的運算公式可以表示為如下:B=MC[X0,X1,...,Xn-1](A)。列擴散運算處理是用以下公式表示的處理,如圖15的下部分所示。換言之,通過上述運算公式計算出的狀態(tài)B的元素如下:t(b0b1...bm-1)=X0×t(a0a1...am-1),t(bmbm+1...b2m-1)=X1×t(amam+1...a2m-1),...t(b(n-1)mb(n-1)m+1...bnm-1)=Xn-1×t(a(n-1)ma(n-1)m+1...anm-1)。在上式中,t(b1、b2...bk)表示(b1、b2...bk)的轉置矩陣。當根據實際狀態(tài)A和B的元素陣列來表示運算公式時,該運算公式變成以下運算公式,如圖15的下部分所示。[數學式1]b0b1...bm-1=X0·a0a1...am-1,bmbm+1...b2m-1=X1·amam+1...a2m-1,...,...,b(n-1)mb(n-1)m+1...bnm-1=Xn-1·a(n-1)ma(n-1)m+1...anm-1]]>圖16是圖示列擴散運算的應用處理示例的示意圖。當輸入數據A為64位數據并且狀態(tài)A設置為由16個4位數據元素形成的狀態(tài)A,而輸出數據B也為64位數據并且狀態(tài)B設置為由16個4位數據元素形成的狀態(tài)B時,MC[X0,X1,X2,X3]。換言之,如參照圖15所描述的,通過以下列擴散運算處理來說明狀態(tài)B的元素的計算處理示例:B=MC[X0,X1,X2,X3](A)。換言之,根據上述運算公式計算出的狀態(tài)B的元素如下:t(b0b1b2b3)=X0×t(a0a1a2a3),t(b4b5b6b7)=X1×t(a4a5a6a7),t(b8b9b10b11)=X2×t(a8a9a10a11),以及t(b12b13b14b15)=X3×t(a12a13a14a15)。當根據實際狀態(tài)A和B的元素陣列來表示上述運算公式時,可以得到以下運算公式,如圖16的下部分所示。[數學式2]b0b1b2b3=X0·a0a1a2a3,b4b5b6b7=X1·a4a5a6a7,b8b9b10b11=X2·a8a9a10a11,b12b13b14b15=X3·a12a13a14a15]]>當執(zhí)行將相同的矩陣X應用于狀態(tài)的各列元素的矩陣運算時,也可以將矩陣運算表示為:MC[X]。換言之,MC[X]和MC[X,X,...,X]是相同的運算。(1-10.對狀態(tài)表示數據的行擴散運算)接著,將參照圖17和圖18對指示為m×n矩陣陣列的狀態(tài)表示數據的行擴散運算處理進行說明。假定X0、X1、Xm-1中的每一個均為n×n矩陣,在該n×n矩陣中,各個元素均為GF(2s)上的元素。圖17中圖示了MR[X0,X1,...,Xm-1]。將上述運算,即將狀態(tài)的各行(0至n-1)的元素和與各行對應的矩陣X0、X1、...、Xm-1應用于狀態(tài)表達數據的元素的矩陣運算,定義為行擴散運算。MR指行單元的擴散(Mix),即(MixRow)。在行擴散運算中,執(zhí)行將一個矩陣Xk應用于狀態(tài)的一行的元素的矩陣運算。針對應用于構成狀態(tài)的多個行中的各行的矩陣Xk,可以設置相同的矩陣的設置或者不同的矩陣的設置。例如,用于計算通過對作為輸入數據的狀態(tài)A執(zhí)行行擴散運算來計算作為輸出數據的狀態(tài)B的運算公式可以表示為如下:B=MR[X0,X1,...,Xm-1](A)。圖17的下部分圖示了該行擴散運算處理。換言之,通過上述運算公式計算出的狀態(tài)B的元素如下:t(b0,bm...b(n-1)m)=X0×t(a0am...a(n-1)m),t(b1bm+1...b(n-1)m+1)=X1×t(a1am+1...a(n-1)m+1),...t(bm-1b2m-1...bnm-1)=X1×t(ama2m-1...anm-1)。在上式中,t(b1、b2...bk)表示(b1、b2...bk)的轉置矩陣。當根據實際狀態(tài)A和B的元素陣列來表示運算公式時,運算公式變成以下運算公式,如圖17的下部分所示。[數學式3]b0bm...b(n-1)m=X0·a0am...a(n-1)m,b1bm+1...b(n-1)m+1=X1·a1am+1...a(n-1)m+1,...,...,bm-1b2m-1...bnm-1=Xm-1·am-1a2m-1...anm-1]]>圖18是圖示行擴散運算的應用處理示例的示意圖。當輸入數據A為64位數據并且狀態(tài)A設置為由16個4位數據元素形成的狀態(tài)A,而輸出數據B也為64位數據并且狀態(tài)B設置為由16個4位數據元素形成的狀態(tài)B時,MR[X0,X1,X2,X3]。換言之,如參照圖17所描述的,通過以下行擴散運算處理來說明狀態(tài)B的元素的計算處理示例:B=MR[X0,X1,X2,X3](A)。換言之,根據上述運算公式計算出的狀態(tài)B的元素如下:t(b0b4b8b12)=X0×t(a0a4a8a12),t(b1b5b9b13)=X1×t(a1a5a9a13),t(b2b6b10b14)=X2×t(a2a6a10a14),以及t(b3b7b11b15)=X1×t(a3a7a11a15)。當根據實際狀態(tài)A和B的元素陣列來表示運算公式時,運算公式變成了以下運算公式,如圖18的下部分所示。[數學式4]b0b4b8b12=X0·a0a4a8a12,b1b5b9b13=X1·a1a5a9a13,b2b6b10b14=X2·a2a6a10a14,b3b7b11b15=X3·a3a7a11a15]]>當執(zhí)行將相同的矩陣X應用于狀態(tài)的各行元素的矩陣運算時,也可以將矩陣運算表示為如下:MR[X]。換言之,MR[X]和MR[X,X,...,X]是相同的運算。(1-11.對合性質)當輪密鑰為應用于從明文P生成密文C的公用密鑰塊加密的各輪中的K1、K2、…和KR時,計算來自明文P的密文C的加密函數E可以表示為如下:C=E(P,K1,K2,...,KR)。此時,計算來自密文C的明文P的解密函數D表示為如下:P=D(C,k1,k2,...,kr)。然而,當上述解密函數D滿足:D(C,k1,k2,...,kr)=E(C,KR,...,K2,K1)時,即,當解密函數D的輪密鑰的應用序列與加密函數E的輪密鑰的應用序列相反并且相同的函數可以用于其它時,假定公用密鑰塊加密具有對合性質。通過這種方式,可以認為僅通過使用加密函數E來改變輪密鑰的輸入序列可以配置出解密函數D的公用密鑰塊加密具有對合性質。例如,熟知的有通常可以通過僅顛倒待使用輪密鑰的使用順序的相同電路來執(zhí)行加密函數和解密函數的Feistel型公用密鑰塊加密,并且由此可以認為該Feistel型公用密鑰塊加密具有對合性質。由于加密函數和解密函數基本上可以通過僅在具有對合性質的公用密鑰塊加密中安裝加密函數來實現,所以必要電路的數量較少,可以減少重量(微型化),提高安裝效率。[2.公用密鑰塊加密中的安全指數]作為對公用密鑰塊加密的攻擊,例如,熟知的有實施以對私人密鑰進行解密的各種攻擊。具體地,存在差分攻擊和線性攻擊。差分攻擊是通過將具有比差的數據輸入至加密裝置并且從輸出中檢測出反應該輸入差異的數據來評估密鑰的攻擊。差值的傳播概率稱為差異概率。線性攻擊是通過測定輸入的特殊位的異或與輸出的特殊位的異或之間的相關性并且發(fā)現強相關性來評估密鑰的攻擊。輸入的特殊位與輸出的特殊位的相關系數稱為線性概率。安全性高的加密是抗上述各種攻擊性能高的加密,即,對應用于加密處理的私人信息(例如,密鑰)的解密難度高的加密。下面將對作為加密算法的安全指數的多條數據進行說明。(2-1.分支數)在公用密鑰塊加密中,例如,執(zhí)行各種數據轉換,諸如上述的線性轉換、非線性轉換和異或運算。作為關于這種數據轉換的解密難度的安全指數,存在分支數。例如,從n×a位數據至n×b位數據的映射θ如下:θ:{0,1}na→{0,1}nb。將用于映射θ的分支數(Branchn(θ))定義為如下:Branchn(θ)=minα≠0{hwn(α)+hwn(θ(α))}。此處,minα≠0{X(α)}表示滿足α≠0的所有Xα中的最小值,hwn(Y)是返回在每隔n位對位流Y進行分割時無n位數據為0(所有數據均非零)的組分的數量的函數。一般而言,分支數越大,解密難度便越大。因此,認為提高了抗差分攻擊或者線性攻擊的性能。分支數Branchn(θ)為b+1的映射θ稱為最佳擴散轉換(最佳擴散映射)。作為用于具有大分支數的線性轉換的矩陣,例如,存在用于執(zhí)行最佳擴散轉換的最大距離可分(MDS)矩陣。該MDS矩陣是構成矩陣的任意子矩陣均為規(guī)則矩陣的矩陣。規(guī)則矩陣為具有逆矩陣的矩陣。當矩陣為A而逆矩陣為A-1時,滿足以下條件:AA-1=A-1A=E,其中,E是單位矩陣。滿足上式的、具有逆矩陣A-1的矩陣A為規(guī)則矩陣。(2-2.差分活躍S盒的最小數量)如上所述,在設置有公用密鑰塊加密的非線性轉換部中,使用以s位為單位執(zhí)行非線性轉換的S盒。作為實現抗差分攻擊性能的指數,存在差分活躍S盒的最小數量,即,表達差異連接關系的差分路徑中包括的差分活躍S盒的最小數量。該差分路徑為加密函數中除了密鑰數據之外的所有數據指定具體的差分值。該差分值并不是隨意決定的,并且在轉換處理之前和之后的差分值是互相關的。在線性轉換處理之前和之后,在一對一的基礎上確定輸入差異與輸出差異之間的關系。在非線性轉換之前和之后,不在一對一的基礎上確定輸入差異與輸出差異之間的關系,但是會引入概率的概念。假定某個輸入差異和某個輸出差異的概率是可預先計算的。當添加了所有輸出的所有概率時,得到1。在一般加密(塊加密)中,非線性轉換只是由S盒執(zhí)行的一部分處理。因此,在這種情況下,具有除0之外的概率的差分路徑是從明文(輸入)的差分值開始一直到密文(輸出)的差分值的一組差分數據。在所有S盒之前和之后給出的差分值均為除0之外的概率。輸入至具有除0之外的概率的差分路徑的S盒中的差分值不為0的S盒稱為差分活躍S盒。在具有除0之外的概率的所有差分路徑中的S盒的數量的最小數量稱為是差分活躍S盒的最小數量。S盒的數量認為是抗差分攻擊的安全指數。一般而言,當確保了差分活躍S盒的最小數量足夠大時,可以展現出抗差分攻擊的安全性??梢詫⒈WC差分活躍S盒的最小數量大于輪函數的較小重復次數的加密視為是具有高性能的加密。在所有差分值均為0的差分路徑中,概率為1,從而使攻擊毫無意義。(2-3.線性活躍S盒的最小數量)作為指示抗線性攻擊性能的一個指數,可以舉例說明線性路徑中包括的線性活躍S盒的最小數量,該線性活躍S盒的最小數量表示出線性掩碼之間的連接關系。線性路徑也稱為線性近似,但是在本文中路徑用于與差異對應。線性路徑為加密函數中除了密鑰數據之外的所有數據指定具體的線性掩碼值。線性掩碼值不是隨意決定的,并且在轉換處理之前和之后的線性掩碼值是互相關的。在線性轉換處理之前和之后,在一對一的基礎上確定輸入的線性掩碼值與輸出的線性掩碼值之間的關系。在非線性轉換處理之前和之后,不在一對一的基礎上確定輸入的線性掩碼值與輸出的線性掩碼值之間的關系,但是會引入概率的概念。存在可以相對于輸入的線性掩碼值輸出的一組一個或者多個線性掩碼值,并且可以預先計算輸出各個線性掩碼值的概率。當添加了所有輸出的概率時,得到1。在一般加密(塊加密)中,非線性轉換只是由S盒執(zhí)行的一部分處理。因此,在這種情況下,具有除0之外的概率的差分路徑是從明文(輸入)的線性掩碼值開始一直到密文(輸出)的線性掩碼值的一組線性掩碼值數據。在所有S盒之前和之后給出的線性掩碼值均為除0之外的概率。輸入至具有除0之外的概率的線性路徑的S盒中的線性掩碼值不為0的S盒稱為線性活躍S盒。在具有除0之外的概率的所有線性路徑中的S盒的數量的最小數量稱為是線性活躍S盒的最小數量。S盒的數量認為是抗線性攻擊的安全指數。一般而言,當確保了線性活躍S盒的最小數量足夠大時,可以展現出抗線性攻擊的安全性??梢詫⒈WC線性活躍S盒的最小數量大于輪函數的較小重復次數的加密視為是具有較高性能的加密。在所有線性掩碼值均為0的線性路徑中,概率為1,從而使攻擊毫無意義。[3.安全性提高了的公用密鑰加密處理的整體配置概述]接著,將對根據本公開的安全性提高了的公用密鑰加密處理裝置的處理和配置進行說明。下面將要描述的根據本公開的加密處理裝置是執(zhí)行公用密鑰塊加密(塊加密)的裝置并且是具有代換-置換網絡(SPN)結構輪函數的裝置。具有輪密鑰的異或運算、非線性轉換和線性轉換處理配置為對所有的n位輸入數據重復執(zhí)行多輪。圖19圖示了根據本公開的公用密鑰加密處理裝置的一個具體配置示例。如圖19所示,加密處理裝置100包括密鑰調度部110和加密處理部120。當輸入私人密鑰K時,密鑰調度部110根據預定的密鑰生成算法輸出應用于加密處理部120的各輪的輪密鑰。當從密鑰調度部110輸出輪密鑰時,加密處理部120對明文P進行數據轉換并且輸出密文C。當輸入密文C時,加密處理部120也可以執(zhí)行輸出明文P的解密處理。在執(zhí)行解密處理時,執(zhí)行按照與針對從密鑰調度部110供應的輪密鑰的加密處理的順序相反的順序應用的處理。加密處理部120包括:執(zhí)行輸入數據和輪密鑰的異或運算的異或部121、對輸入數據執(zhí)行非線性轉換處理的非線性轉換部122、和對輸入數據執(zhí)行線性轉換處理的線性轉換部123。如圖所示,根據本公開的加密處理裝置100的加密處理部120具有如下配置:異或部121、非線性轉換部122和線性轉換部123重復執(zhí)行三種不同的數據轉換處理。作為輸入數據的明文P和作為輸出數據的密文C均為上述的狀態(tài)表達數據,如圖20所示,并且均為由4×4的16個元素構成的64位數據,各個元素均為4位數據。從密鑰調度部110輸入的輪密鑰也是64位數據,在該64位數據中表示出了由16個4位元素構成的狀態(tài)。如圖21所示,加密處理部120重復執(zhí)行以下三種數據轉換處理:(a)異或運算處理;(b)非線性轉換處理;以及(c)線性轉換處理。這些處理是作為針對狀態(tài)的處理來執(zhí)行。已經參照圖13和圖14對狀態(tài)執(zhí)行的這些處理進行了說明。由加密處理部120的非線性轉換部執(zhí)行的非線性轉換處理是通過使用,例如,如圖22(1)所示的多個S盒來執(zhí)行。例如,各個S盒均為具有4位輸入與輸出配置的非線性轉換部,并且4×16=64位的非線性轉換處理通過16個S盒的并行處理來執(zhí)行。由加密處理部120的線性轉換部執(zhí)行的線性轉換處理是作為,例如,如圖22(2)所示的矩陣運算處理來執(zhí)行。[4.加密處理部的線性轉換部的處理和配置]如參照圖19所述的,根據本公開的加密處理裝置100的加密處理部120具有如下配置:重復執(zhí)行具有輪密鑰的異或運算、非線性轉換和線性轉換處理多輪。根據本公開的加密處理裝置的一個特點在于在各輪中執(zhí)行的線性轉換處理配置為作為各輪的不同處理來執(zhí)行。下面將對由根據本公開的加密處理裝置執(zhí)行的線性轉換處理進行詳細說明。圖23是描述根據本公開的加密處理裝置的加密處理部中包括的不同線性轉換部的配置的示例的示意圖。圖23的配置示意圖是圖示省略了異或部的配置的示意圖。在圖23所示的示例中,在該配置中包括了執(zhí)行三種不同線性轉換處理的線性轉換部。換言之,包括了以下三個不同的線性轉換部:線性轉換部P1201;線性轉換部P2202;以及線性轉換部P3203。在該配置中,在各輪中執(zhí)行三種不同的轉換處理中的任意一種。在連續(xù)幾輪中,相同的線性改變處理不會繼續(xù),而是設置為執(zhí)行不同的線性轉換處理。在圖23所示的示例中,按照以下順序從明文P的輸入側依次執(zhí)行線性轉換處理五次:線性轉換部P1;線性轉換部P2;線性轉換部P1;線性轉換部P3;以及線性轉換部P1。在這五個線性轉換處理中,在連續(xù)幾輪中,相同的線性改變處理不會繼續(xù),而是根據輪的切換來執(zhí)行不同的轉換處理。在上述示例中,通過組合并且執(zhí)行三種不同的線性轉換P1、P2和P3,將相同的線性轉換設置為不在連續(xù)幾輪中執(zhí)行。通過這種方式,在加密處理中,通過根據輪過渡改變線性轉換形式,可以增加差分活躍S盒的最小數量和線性活躍S盒的最小數量。從而,可以提高抗差分攻擊或者線性攻擊的性能。將參照圖24和隨后的附圖對這三種線性轉換處理的具體處理進行說明。在線性轉換處理P1至P3中,將圖24(1)中所示的四種不同的矩陣M0至M3進行組合使用。換言之,以下4×4矩陣M0至M3配置為被組合在一起。[數學式5]M0=0111101111011110M1=1101111001111011]]>M2=1110110110110111M3=1011011111101101]]>在線性轉換處理P1至P3,將上述四種不同的矩陣M0至M3進行組合使用。上述四種矩陣均不是上述的最大距離可分(MDS)矩陣,而是非MDS矩陣。在下文將要描述的實施例中,將對使用非MDS矩陣的線性轉換處理的示例進行說明。然而,可以配置為應用MDS矩陣。圖24(2)是描述線性轉換處理P1至P3的具體矩陣運算的形式的示意圖。此處,圖24(2)中所示的4×4矩形表示狀態(tài),這些狀態(tài)分別是由16個4位元素構成,這些4位元素是進行線性轉換處理的目標。換言之,這些狀態(tài)是64位4×4狀態(tài)。組合并且使用矩陣M0至M3的矩陣運算是對4×4狀態(tài)的輸入數據執(zhí)行的。在線性轉換處理P1中,執(zhí)行以列為單位將一個矩陣M0應用于4×4狀態(tài)的輸入數據的各列的元素的矩陣運算。該運算是上面參照圖15和圖16描述的列擴散運算(MixColum)。換言之,線性轉換處理P1是由以下公式表示的列擴散運算(MC):MC[M0]。MC[M0]是表示將相同矩陣M0應用于狀態(tài)的各列的矩陣運算、并且具有與單獨指示應用于該狀態(tài)的各列的矩陣的以下公式相同的意義的公式:MC[M0,M0,M0,M0]。接著,將對線性轉換處理P2進行說明。如圖24(2)所示,線性轉換處理P2執(zhí)行以各行為單位將不同矩陣應用于4×4狀態(tài)的輸入數據的各行的元素的矩陣運算。在線性轉換處理P2中,對高階第一行至第四行執(zhí)行應用了以下矩陣的矩陣運算:第一行:應用矩陣M0;第二行:應用矩陣M1;第三行:應用矩陣M2;以及第四行:應用矩陣M3。該運算是上面參照圖17和圖18描述的行擴散運算(MixRow)。換言之,線性轉換處理P2是由以下公式表示的行擴散運算(MixRow):MR[M0,M1,M2,M3]。接著,將對線性轉換處理P3進行說明。在線性轉換處理P3中,如圖24(2)所示,與線性轉換處理P2一樣,以各行為單位對4×4狀態(tài)的輸入數據的各行的元素執(zhí)行應用了不同矩陣的矩陣運算。在線性轉換處理P3中,與線性轉換處理P2不同,對高階第一行至第四行執(zhí)行應用了以下矩陣的矩陣運算:第一行:應用矩陣M2;第二行:應用矩陣M0;第三行:應用矩陣M1;以及第四行:應用矩陣M3。該運算是上面參照圖17和圖18描述的行擴散運算(MixRow)。換言之,線性轉換處理P3是由以下公式表示的行擴散運算(MixRow):MR[M2,M0,M1,M3]。為了將線性轉換處理P2和P3彼此區(qū)分開來,在下面將線性轉換處理P2稱為行擴散運算類型1(MixRow1)而將線性轉換處理P3稱為行擴散運算類型2(MixRow2)。線性轉換處理P1為列擴散運算(MixColumn)。下面將參照圖25和隨后的附圖對這三種線性轉換處理P1至P3的具體矩陣運算的計算處理示例進行說明。圖25是描述線性轉換處理P1的示例(即,列擴散運算(MixColumn)的具體計算處理示例)的示意圖。圖25(1)圖示了線性轉換部P1的輸入數據和輸出數據的示例。輸入A為由n位數據的16個元素a0至a15構成的狀態(tài)。輸入B為由n位數據的16個元素b0至b15構成的狀態(tài)。輸入數據和輸出數據的元素ai和bi(其中,i=0至15)均是配置為具有0或者1的n位數據。在該實施例中,設置n=4,各個元素均為4位數據,并且輸入A和輸出B均具有64位。圖25(2)圖示了線性轉換處理P1,即,列擴散運算(MixColumn)的具體計算處理示例。作為線性轉換處理P1來執(zhí)行的列擴散運算(MixColumn)是根據以下公式的矩陣運算。[數學式6]b0b1b2b3=0111101111011110·a0a1a2a3,b4b5b6b7=0111101111011110·a4a5a6a7]]>b8b9b10b11=0111101111011110·a8a9a10a11,b12b13b14b15=0111101111011110·a12a13a14a15]]>基于矩陣M0和輸入A的16個元素a0至a15,通過以下運算來計算輸出B的16個元素b0至b15:b0=a1(+)a2(+)a3;b1=a0(+)a2(+)a3;b2=a0(+)a1(+)a3;b3=a0(+)a1(+)a2;b4=a5(+)a6(+)a7;b5=a4(+)a6(+)a7;b6=a4(+)a5(+)a7;b7=a4(+)a5(+)a6;b8=a9(+)a10(+)a11;b9=a8(+)a10(+)a11;b10=a8(+)a9(+)a11;b11=a8(+)a9(+)a10;b12=a13(+)a14(+)a15;b13=a12(+)a14(+)a15;b14=a12(+)a13(+)a15;以及b15=a12(+)a13(+)a14。在上式中,運算符號(+)指異或運算。在作為線性轉換處理P1來執(zhí)行的列擴散運算(MixColumn)中,基于矩陣M0和輸入A的16個元素a0至a15來計算輸出B的16個元素b0至b15。圖26是描述線性轉換處理P2的示例(即,行擴散運算類型1(MixRow1)的具體計算處理示例)的示意圖。圖26(1)圖示了線性轉換部P2的輸入數據和輸出數據的示例。輸入A為由n位數據的16個元素a0至a15構成的狀態(tài)。輸入B為由n位數據的16個元素b0至b15構成的狀態(tài)。輸入數據和輸出數據的ai和bi(其中,i=0至15)均是配置為具有0或者1的n位數據。在該實施例中,設置n=4,各個元素均為4位數據,并且輸入A和輸出B均具有64位。圖26(2)圖示了線性轉換處理P2,即,行擴散運算類型1(MixRow1)的具體計算處理示例。作為線性轉換處理P2來執(zhí)行的行擴散運算類型1(MixRow1)是根據以下公式的矩陣運算。[數學式7]b0b4b8b12=0111101111011110·a0a4a8a12,b1b5b9b13=1101111001111011·a1a5a9a13]]>b2b6b10b14=1110110110110111·a2a6a10a14,b3b7b11b15=1011011111101101·a3a7a11a15]]>基于矩陣M0、M1、M2和M3和輸入A的16個元素a0至a15,通過以下運算來計算輸出B的16個元素b0至b15:b0=a4(+)a8(+)a12;b1=a1(+)a5(+)a13;b2=a2(+)a6(+)a10;b3=a3(+)a11(+)a15;b4=a0(+)a8(+)a12;b5=a1(+)a5(+)a9;b6=a2(+)a6(+)a14;b7=a7(+)a11(+)a15;b8=a0(+)a4(+)a12;b9=a5(+)a9(+)a13;b10=a2(+)a10(+)a14;b11=a3(+)a7(+)a11;b12=a0(+)a4(+)a8;b13=a1(+)a9(+)a13;b14=a6(+)a10(+)a14;以及b15=a3(+)a7(+)a15。在上式中,運算符號(+)指異或運算。在作為線性轉換處理P2來執(zhí)行的行擴散運算類型1(MixRow1)中,基于矩陣M0、M1、M2和M3和輸入A的16個元素a0至a15來計算輸出B的16個元素b0至b15。圖27是描述線性轉換處理P3的示例(即,行擴散運算類型2(MixRow2)的具體計算處理示例)的示意圖。圖27(1)圖示了線性轉換部P3的輸入數據和輸出數據的示例。輸入A為由n位數據的16個元素a0至a15構成的狀態(tài)。輸入B為由n位數據的16個元素b0至b15構成的狀態(tài)。輸入數據和輸出數據的ai和bi(其中,i=0至15)均是配置為具有0或者1的n位數據。在該實施例中,設置n=4,各個元素均為4位數據,并且輸入A和輸出B均具有64位。圖27(2)圖示了線性轉換處理P2,即,行擴散運算類型2(MixRow2)的具體計算處理示例。作為線性轉換處理P3來執(zhí)行的行擴散運算類型2(MixRow2)是根據以下公式的矩陣運算。[數學式8]b0b4b8b12=1110110110110111·a0a4a8a12,b1b5b9b13=0111101111011110·a1a5a9a13]]>b2b6b10b14=1101111001111011·a2a6a10a14,b3b7b11b15=1011011111101101·a3a7a11a15]]>基于矩陣M0、M1、M2和M3和輸入A的16個元素a0至a15,通過以下運算來計算輸出B的16個元素b0至b15:b0=a0(+)a4(+)a8;b1=a5(+)a9(+)a13;b2=a2(+)a6(+)a14;b=a3(+)a11(+)a15;b4=a0(+)a4(+)a12;b5=a1(+)a9(+)a13;b6=a2(+)a6(+)a10;b7=a7(+)a11(+)a15;b8=a0(+)a8(+)a12;b9=a1(+)a5(+)a13;b10=a6(+)a10(+)a14;b11=a3(+)a7(+)a11;b12=a4(+)a8(+)a12;b13=a1(+)a5(+)a9;b14=a2(+)a10(+)a14;以及b15=a3(+)a7(+)a15。在上式中,運算符號(+)指異或運算。在作為線性轉換處理P3來執(zhí)行的行擴散運算類型2(MixRow2)中,基于矩陣M0、M1、M2和M3和輸入A的16個元素a0至a15來計算輸出B的16個元素b0至b15。通過這種方式,通過改變各輪的一次加密處理序列中的多個線性轉換處理,可以增加差分活躍S盒的最小數量和線性活躍S盒的最小數量。從而,可以提高抗差分攻擊或者線性攻擊的性能。下面將對活躍S盒的數量的驗證結果進行說明。已經對在根據本公開的加密處理裝置(即執(zhí)行三種不同的線性轉換處理P1至P3的加密處理裝置)和相關技術的重復執(zhí)行單種線性轉換處理的加密處理裝置中的活躍S盒的數量進行了驗證。根據本公開的加密處理裝置具有如下配置:按照加密處理序列來使用三種線性轉換處理,并且針對各輪切換線性轉換處理,如圖28所示。在圖28所示的附圖中,省略具有輪密鑰的異或運算部。在圖28所示的加密處理裝置中,由于非線性轉換部的數量等于6,所以配置了6輪。對輪數進行定義存在多種方法。此處,將非線性轉換部的數量用作輪數。在圖28所示的示例中,應用了7個輪密鑰:輪密鑰RK1至RK7。由于非線性轉換部為6層,所以假定6輪的加密處理裝置。如圖28所示,在加密處理期間執(zhí)行至少一次三種不同的線性轉換處理。線性轉換處理P1是應用了矩陣M0的列擴散運算(MixColumn)。線性轉換處理P2是應用了矩陣M0、M1、M2和M3的行擴散運算類型1(MixRow1)。線性轉換處理P3是應用了矩陣M0、M1、M2和M3的行擴散運算類型2(MixRow2)。相較于圖28所示的加密處理裝置,在圖29中圖示了相關技術的執(zhí)行單種線性轉換處理的加密處理裝置的示例。圖29所示的加密處理裝置具有如下配置:配置了6輪,但是各輪的線性轉換處理是相同的線性轉換處理。在圖29所示的加密處理裝置的所有線性轉換處理部中,設置要執(zhí)行僅使用了在圖28的加密處理裝置中也使用了的矩陣M0的線性轉換處理P1,即使用了矩陣M0的列擴散運算。對于圖28所示的執(zhí)行多種不同的線性轉換處理的加密處理裝置和圖29所示的相關技術的執(zhí)行單種線性轉換處理的裝置,配置了各種輪數的裝置,并且已經對差分活躍S盒的最小數量和線性活躍S盒的最小數量進行了驗證。圖28和圖29的配置設置為如下:對64位輸入明文P執(zhí)行加密處理,并且輸出64位密文C。S盒設置在非線性轉換部中。如上面參照圖22所描述的,各個S盒具有如下配置:執(zhí)行4位輸入和輸出的非線性轉換。在圖28和圖29的加密處理裝置的各個非線性轉換部中,設置了16個4位輸入與輸出S盒以對4×16=64位執(zhí)行非線性轉換。在圖28和圖29所示的6輪類型的加密處理裝置中,設置了6個非線性轉換部,從而S盒的總數為16×6=96。從全部96個S盒中,已經計算出在所有輸入模式中的活躍S盒的數量,并且已經對差分活躍S盒的最小數量和線性活躍S盒的最小數量進行了驗證。在圖30和圖31中圖示了驗證結果。如圖30所示,配置了不同輪數(即,4輪至24輪)的加密處理裝置,并且圖示出了通過對差分活躍S盒和線性活躍S盒的最小數量進行計數來獲得結果。在輪數等于4時,在重復執(zhí)行相關技術的相同線性轉換部的配置和本公開中執(zhí)行不同線性轉換處理的配置中,活躍S盒的數量為4,并且設置了相同的值。在輪數為6至24(包括8)的所有情況下,不管怎樣,在本公開中執(zhí)行不同線性轉換處理的配置中的活躍S盒的數量較多。該結果顯示為圖31所示的圖。在上述實施例中,已經描述了如下配置:將輸入數據設置為由4×4個元素構成的狀態(tài),各個元素均為4位元素,并且線性轉換部通過使用4種矩陣M0、M1、M2和M3的矩陣運算來執(zhí)行線性轉換處理。然而,在下面的設置中,可以將上述處理描述為具有通用配置。當輸入數據是由m×n個元素構成的狀態(tài),各個元素均為1位或者多位元素時,線性轉換部具有如下配置:在輪運算中,執(zhí)行通過應用以狀態(tài)的各列元素為單位的矩陣來執(zhí)行線性轉換的列擴散運算和通過應用以狀態(tài)的各行元素為單位的矩陣來執(zhí)行線性轉換的行擴散運算中的一種。此處,線性轉換部具有如下配置:通過使用多種矩陣M0至Mk(其中,k是1或者更大的整數)的矩陣運算來執(zhí)行線性轉換處理,并且根據輪過渡,切換并且執(zhí)行通過按照特定序列將選自M0至Mk的已選矩陣以狀態(tài)的各列元素為單位應用于各列來執(zhí)行線性轉換的列擴散運算和通過按照特定序列將選自M0至Mk的已選矩陣以狀態(tài)的各行元素為單位應用于各行來執(zhí)行線性轉換的行擴散運算。具體的線性轉換處理配置的示例如下,例如:(a)通過按照特定序列將選自M0至Mk的已選矩陣以狀態(tài)的各列元素為單位應用于各列來執(zhí)行線性轉換的列擴散運算;(b)通過按照特定序列A將選自M0至Mk的已選矩陣以狀態(tài)的各行元素為單位應用于各行來執(zhí)行線性轉換的行擴散運算類型1;以及(c)通過按照不同于特定序列A的序列B將選自M0至Mk的已選矩陣以狀態(tài)的各行元素為單位應用于各行來執(zhí)行線性轉換的行擴散運算類型2。加密處理裝置根據輪過渡來切換并且執(zhí)行上述運算。進一步地,也可以使用置換了上述配置中的列擴散運算和行擴散運算的以下配置:(a)通過按照特定序列將選自M0至Mk的已選矩陣以狀態(tài)的各行元素為單位應用于各行來執(zhí)行線性轉換的列擴散運算;(b)通過按照特定序列A將選自M0至Mk的已選矩陣以狀態(tài)的各列元素為單位應用于各列來執(zhí)行線性轉換的行擴散運算類型1;以及(c)通過按照不同于特定序列A的序列B將選自M0至Mk的已選矩陣以狀態(tài)的各列元素為單位應用于各列來執(zhí)行線性轉換的行擴散運算類型2。加密處理裝置根據輪過渡切換并且執(zhí)行上述運算。當輸入數據是由4×4個元素構成的狀態(tài),各個元素均為4位元素時,作為線性轉換處理的實現的配置,可以是以下配置:線性轉換部具有如下配置:通過使用4種矩陣M0、M1、M2和M3的矩陣運算來執(zhí)行線性轉換處理;(a)通過以狀態(tài)的各列元素為單位應用矩陣M0來執(zhí)行線性轉換的列擴散運算;(b)通過按照矩陣M0、M1、M2和M3的順序以狀態(tài)的各行元素為單位應用各個矩陣來執(zhí)行線性轉換的行擴散運算類型1;以及(c)通過按照不同于上述類型1的順序以狀態(tài)的各行元素為單位應用各個矩陣來執(zhí)行線性轉換的行擴散運算類型2。加密處理裝置根據輪過渡切換并且執(zhí)行這三種矩陣運算。在行擴散運算類型1中以狀態(tài)的各行元素為單位應用的矩陣和在行擴散運算類型2中以狀態(tài)的各行元素為單位應用的矩陣的組合設置為如下組合:關于狀態(tài)的任意兩行,總共4個矩陣(包括應用于類型1的兩個矩陣和應用于類型2的兩個矩陣)通過至少3種矩陣進行配置。例如,當在類型1中應用于4×4狀態(tài)的第一行至第四行中的各行的矩陣為M1、M3、M0和M2時,在類型2中應用于4×4狀態(tài)的第一行至第四行中的各行的矩陣為M0、M2、M3和M1。在上述設置中,使用了如下組合:針對4×4狀態(tài)的任意兩行,總共4個矩陣(包括應用于類型1的兩個矩陣和應用于類型2的兩個矩陣)通過至少3種矩陣進行配置。換言之,在上述設置中,應用于4×4狀態(tài)的第一行的矩陣如下:類型1=M1;以及類型2=M0。應用于4×4狀態(tài)的第二行的矩陣如下:類型1=M3;類型2=M2。在該組合中,應用于類型1和類型2的第一行和第二行的矩陣為四種矩陣:M0至M3。在上述設置中,該任意其它兩行的組合為如下組合:針對4×4狀態(tài)的任意兩行,總共4個矩陣(包括應用于類型1的兩個矩陣和應用于類型2的兩個矩陣)通過至少3種矩陣進行配置。進一步地,也可以使用置換了上述配置中的列擴散運算和行擴散運算的以下配置:線性轉換部具有如下配置:通過使用4種矩陣M0、M1、M2和M3的矩陣運算來執(zhí)行線性轉換處理;(a)通過以狀態(tài)的各行元素為單元應用矩陣M0來執(zhí)行線性轉換的行擴散運算;(b)通過按照矩陣M0、M1、M2和M3的順序以狀態(tài)的各列元素為單元應用各個矩陣來執(zhí)行線性轉換的列擴散運算類型1;以及(c)通過按照不同于上述類型1的順序以狀態(tài)的各列元素為單元應用各個矩陣來執(zhí)行線性轉換的列擴散運算類型2。加密處理裝置根據輪過渡切換并且執(zhí)行這三種矩陣運算。在該配置中,在行擴散運算類型1中以狀態(tài)的各列元素為單位應用的矩陣和在行擴散運算類型2中以狀態(tài)的各列元素為單位應用的矩陣的組合設置為如下組合:關于狀態(tài)的任意兩列,總共4個矩陣(包括應用于類型1的兩個矩陣和應用于類型2的兩個矩陣)通過至少3種矩陣進行配置。通過這種方式,可以通過改變各輪的一次加密處理序列中的線性轉換處理,來增加差分活躍S盒的最小數量和線性活躍S盒的最小數量。從而,可以提高抗差分攻擊或者線性攻擊的性能。[5.密鑰調度部的處理和配置]接著,將對根據本公開的加密處理裝置的密鑰調度部的處理和配置進行說明。[5-1.密鑰調度部的處理和配置的描述]如上面參照圖19所描述的,根據本公開的密鑰處理裝置100包括密鑰調度部110和加密處理部120。例如,密鑰調度部110根據預定的密鑰生成算法基于私人密鑰K生成應用于加密處理部120的各輪的輪密鑰,并且將該輪密鑰輸出至密鑰處理部120。當從密鑰調度部110輸入輪密鑰時,密鑰處理部120對明文P進行數據轉換并且輸出密文C。在解密處理時也執(zhí)行相同的處理。下面將對執(zhí)行生成并且供應輪密鑰的處理的密鑰調度部110的處理和配置進行說明。圖32是圖示根據本公開的加密處理裝置中的密鑰調度部的配置的一個示例的示意圖。密鑰調度部300包括用作存儲私人密鑰K1的存儲部的密鑰供應部(密鑰寄存器)301。密鑰調度部300將密鑰K1輸出至加密處理部320中的第一輪的異或部(輪密鑰運算部)321。換言之,將密鑰K1用作第一輪的輪密鑰。進一步地,密鑰調度部300將密鑰K1輸入至密鑰轉換部302a。密鑰轉換部302a對密鑰K1執(zhí)行預定運算以生成轉換密鑰Kd1。進一步地,將由密鑰轉換部302a生成的轉換密鑰Kd1輸出至加密處理部320中的第二輪的異或部(輪密鑰運算部)322。換言之,將轉換密鑰Kd1用作第二輪的輪密鑰。進一步地,密鑰調度部300將轉換密鑰Kd1輸入至密鑰轉換部302b。密鑰轉換部302b對轉換密鑰Kd1執(zhí)行預定運算以生成密鑰K1。密鑰K1與作為轉換密鑰Kd1的生成源的密鑰K1相同。密鑰調度部300將由密鑰轉換部302b生成的密鑰K1輸出至加密處理部320中的第三輪的異或部(輪密鑰運算部)323。換言之,將密鑰K1用作第三輪的輪密鑰。此后重復執(zhí)行相同的處理,這樣通過密鑰轉換部302c至302f交替生成密鑰K1和密鑰K1d,并且將生成的密鑰輸出至加密處理部的異或部324至327。密鑰轉換部302c至302f全都執(zhí)行相同的運算。換言之,通過相同的運算處理,從密鑰K1生成轉換密鑰Kd1,并且從轉換密鑰Kd1生成密鑰K1。通過使用轉換函數G和反函數G-1的公式來表示密鑰:Kd1=G(K1);以及K1=G-1(Kd1)。進一步地,還滿足G=G-1。換言之,應用于密鑰轉換部302a至302f中的密鑰轉換的數據轉換函數G具有對合性質,即,正向函數G和反向函數G-1為相同函數的性質,如圖33所示。在圖33中,將圖32中描述的密鑰K1圖示為基本密鑰K,而將轉換密鑰Kd1圖示為轉換密鑰Kd。圖33所示的密鑰表示為具有16個4位元素的4×4狀態(tài)。換言之,圖示了總共64位的密鑰數據。將參照圖34對由密鑰轉換部302執(zhí)行的密鑰轉換處理的示例。圖34是圖示從基本密鑰K生成轉換密鑰Kd的處理的示意圖。從基本密鑰K生成轉換密鑰Kd的處理配置為包括以下兩個步驟:(S1)通過執(zhí)行將中間密鑰生成列擴散運算(MixColumn_KSF())應用于基本密鑰K的運算來生成中間密鑰S的步驟;以及(S2)通過執(zhí)行將轉換密鑰生成列擴散運算(MixRow_KSF())應用于中間密鑰S的運算來生成轉換密鑰Kd的步驟。在步驟S1中執(zhí)行的列擴散運算(MixColumn)和在步驟S2中執(zhí)行的行擴散計算(MixRow)都是和上面參照圖24至圖27描述的矩陣應用運算相同的矩陣應用運算。此處,應用于該密鑰轉換處理中的矩陣MD為如下矩陣:[數學式9]MD=1246216446126421]]>上述的MD是稱為哈達馬(Hadamard)MDS矩陣的矩陣。MDS矩陣是構成矩陣的任意子矩陣均為規(guī)則矩陣的矩陣。規(guī)則矩陣是具有反矩陣的矩陣。當矩陣為A而反矩陣為A-1時,滿足以下條件:AA-1=A-1A=E,其中,E為單位矩陣。具有滿足上述公式的反矩陣A-1的矩陣A為規(guī)則矩陣。如上所述,分支數Branch(θ)為b+1的映射θ稱為最佳擴散轉換(最佳擴散映射)。MDS矩陣是用于執(zhí)行最佳擴散轉換的矩陣。在圖34中所示的步驟S1的列擴散運算和步驟S2的行擴散運算都是通過應用哈達馬MDS矩陣MD來執(zhí)行的。步驟S1的列擴散運算通過以下運算公式來表示:MC[MD]=MC[MD,MD,MD,MD]。步驟S2的行擴散運算通過以下運算公式來表示:MR[MD]=MR[MD,MD,MD,MD]。換言之,在步驟S1的列擴散運算中,執(zhí)行了將相同的哈達馬MDS矩陣MD應用于由4位元素構成的4×4狀態(tài)表達數據的全部四列的矩陣運算。換言之,在步驟S2的行擴散運算中,執(zhí)行了將相同的哈達馬MDS矩陣MD應用于由4位元素構成的4×4狀態(tài)表達數據的全部四行的矩陣運算。應用了哈達馬MDS矩陣MD的矩陣運算的算法可以表示為如下:MD():{0,1}16→{0,1}16輸入:{x0,x1,x2,x3},xi∈{0,1}4輸出:{y0,y1,y2,y3},yi∈{0,1}4運算·y0=x0(+)2(×)x1(+)4(×)x3(+)6(×)x4·y1=2(×)x0(+)x2(+)6(×)x3(+)4(×)x4·y2=4(×)x0(+)6(×)x2(+)x3(+)2(×)x4·y3=6(×)x0(+)4(×)x2(+)2(×)x3(+)x4此處,(+)表示異或運算,而(×)表示由不可約多項式x4+x+1定義的展開式GF(24)的乘法。圖34中所示的步驟S1的列擴散運算MC[MD]是根據以下公式的矩陣運算。[數學式10]s0s1s2s3=1246216446126421·k0k1k2k3,...,s12s13s14s15=1246216446126421·k12k13k14k15]]>上述列擴散運算MC[MD]的算法可以表示為如下:MixColumn_KSF():{0,1}64→{0,1}64輸入:{k0,k1,...,k15},xi∈{0,1}4輸出:{s0,s1,...,s15},si∈{0,1}4運算·(s0,s1,s2,s3)=MD(k0,k1,k2,k3)·(s4,s5,s6,s7)=MD(k4,k5,k6,k7)·(s8,s9,s10,s11)=MD(k8,k9,k10,k11)·(s12,s13,s14,s15)=MD(k12,k13,k14,k15)圖34中所示的步驟S2的行擴散運算MR[MD]是根據以下公式的矩陣運算。[數學式11]kd0kd4kd8kd12=1246216446126421·s0s4s8s12,...,kd3kd7kd11kd15=1246216446126421·s3s7s11s15]]>上述行擴散運算MR[MD]的算法可以表示為如下:MixRow_KSF():{0,1}64→{0,1}64輸入:{k0,k1,...,k15},xi###{0,1}4輸出:{kd0,kd1,...,kd15},kdi∈{0,1}4運算·(kd0,kd4,kd8,kd12)=MD(s0,s4,s8,s12)·(kd1,kd5,kd9,kd13)=MD(s1,s5,s9,s13)·(kd2,kd6,kd10,kd14)=MD(s2,s6,s10,s14)·(kd3,kd7,kd11,kd15)=MD(s3,s7,s11,s15)通過這種方式,圖32所示的密鑰調度部300的密鑰轉換部302執(zhí)行將矩陣MD應用于圖34所示的步驟S1中的列運算MC[MD],并且執(zhí)行將矩陣MD應用于步驟S2中的行擴散運算MR[MD]。通過連續(xù)執(zhí)行兩次矩陣運算,由基本密鑰K生成轉換密鑰Kd。甚至在從轉換密鑰Kd生成基本密鑰K時,也執(zhí)行和圖34中所示的處理相同的處理。換言之,如上面參照圖33所描述的,由列擴散運算MC[MD]和行擴散運算MR[MD]的連續(xù)處理形成的函數G具有對合性質,并且正向函數G和反向函數G-1是相同的。因此,通過重復執(zhí)行該運算兩次,來計算初始值。進一步地,密鑰轉換部302執(zhí)行應用了矩陣MD的列擴散運算MC[MD]和應用了矩陣MD的行擴散運算MR[MD],從而使構成輸入數據的4×4狀態(tài)的所有構成元素,即,全部16個構成元素,能夠影響輸出數據的全部16個構成元素。換言之,在輸入和輸出狀態(tài)的所有元素中實現了數據擴散。這種數據轉換形式定義為“全擴散轉換”或者具有全擴散性質的擴散。例如,當輸入和輸出中的每一個是由16個n位元素構成的狀態(tài),并且f是應用于輸入的轉換函數時,將輸出狀態(tài)B設置為根據以下公式計算:B=f(A)。輸入狀態(tài)為A=(a0,a1,a2,...a15)。輸出狀態(tài)為B=(b0,b1,b2,...b15)。此處,ai和bi是狀態(tài)A和B的元素。此時,當輸出狀態(tài)B的任意元素bi可以用以下公式來表示時,假定函數f是全擴散轉換:bi=f(a0,a1,a2,...a15)。通過這種方式,密鑰轉換部302的執(zhí)行函數G是具有以下兩種性質的函數:(1)全擴散性質,在該全擴散性質中實現了全擴散轉換;以及(2)對合性質,在該對合性質中,正向函數G和反向函數G-1是相同的。密鑰轉換部302具有這兩種性質。[基于密鑰調度部的全擴散性質的效果]因此,作為密鑰轉換部302的性質的全擴散性質在圖32所示的加密處理部320中確保了甚至在轉換目標數據與密鑰之間的全擴散性質。下面將參照圖35進行說明。圖35圖示了基本密鑰K=(k0,k1,k2,...k15)和轉換密鑰Kd=(kd0,kd1,kd2,...kd15)。將基本密鑰K輸入至加密處理部的異或部331,并且和輸入狀態(tài)A一起進行異或運算。其后,非線性/線性轉換部(S&P)332執(zhí)行非線性轉換處理和線性轉換處理。進一步地,異或運算部333對輸出和轉換密鑰Kd執(zhí)行異或運算。假定異或運算部333的輸出是狀態(tài)B。此時,在基本密鑰K和轉換密鑰Kd之間的關系中,滿足以下關系式:Kdi=f(k0,k1,k2,...k15),其中,i=0至15。換言之,確保了全擴散性質。從上述關系式中,在狀態(tài)B與基本密鑰K之間還滿足以下關系式:bi=f(k0,k1,k2,...k15),其中,i=0至15。滿足了該關系式。換言之,在基本密鑰K與轉換數據B之間也確保了全擴散性質。該性質可以視為是有助于加密處理裝置的安全性或者安裝性能的性質。具體地,通過密鑰實現了數據擴散性質的提高。從而,甚至在減少了輪數時,也可以具有高擴散性能。因此,可以提高抗各種攻擊的性能。例如,基于使用密鑰依賴性的中間值匹配處理可以進一步提高抗密鑰分析處理的性能。如上所述,通過應用根據本公開的配置,可以提高加密處理部中的轉換目標數據的擴散性能,從而可以利用較少的輪數實現安全加密處理,例如,抗各種攻擊(諸如,密鑰分析)性能高的加密處理。圖36圖示了加密處理配置的兩個示例:(1)在各輪中不執(zhí)行密鑰轉換的情況下應用相同輪密鑰的加密處理配置;和(2)通過執(zhí)行根據本公開的密鑰轉換交替地應用兩種輪密鑰的加密處理配置。圖36(2)所示的G盒與圖32所示的密鑰轉換部302對應。在不執(zhí)行圖36(1)的密鑰轉換的加密處理配置中,關于應用密鑰的配置信息(位流)為轉換目標數據的輸入明文P的所有位的擴散(全擴散)所必需的輪數取決于輪函數(R)的處理。相應地,當輪函數的擴散性能較低時,需要較大輪數以便增加擴散水平。從而,難以實現高速處理或者減輕重量。相反,在執(zhí)行圖36(2)所示的根據本公開的密鑰轉換的加密處理配置中,關于應用密鑰的配置信息(位流)為轉換目標數據的輸入明文P的所有位的擴散(全擴散)所必需的輪數取決于使用兩個密鑰(基本密鑰K1和轉換密鑰Kd1)的輪數。在附圖所示的示例中,使用了一輪。換言之,當應用根據本公開的處理時,在一輪中實現了關于轉換目標數據中密鑰數據的配置信息的擴散,從而確保了較高的擴散性能而不依賴于輪函數(R)的處理。換言之,利用較少的輪實現了抗攻擊性能高的安全加密處理。從而,實現了高速處理或者減輕重量。[5-3.基于密鑰轉換部的對合性質的效果]如上面參照圖32和圖33等所描述的,根據本公開的密鑰調度部300的密鑰轉換部302具有對合性質,在該對合性質中,正向函數G和反向函數G-1通過相同的函數來實現。下面將對基于對合性質的效果進行說明。重復執(zhí)行作為相同數據轉換處理的輪函數的加密處理裝置的硬件安裝配置有以下兩種類型:(a)“展開安裝”,在該“展開安裝”中,將數量與規(guī)定數量的輪對應的輪函數執(zhí)行部配置為硬件;以及(b)“輪安裝”,在該“輪安裝”中,將一個輪函數執(zhí)行部配置為硬件,輸入該輪函數執(zhí)行部的輸出作為對該同一個輪函數執(zhí)行部的反饋,并且重復執(zhí)行規(guī)定數量的輪的輪函數。下面將對這兩種類型中基于對合性質的效果進行順序說明。[5-3-a.展開安裝中的效果]將對在加密處理部的展開安裝情況下由根據本公開的密鑰轉換部的對合性質產生的效果進行說明。在展開安裝中,將數量與規(guī)定數量的輪對應的輪函數執(zhí)行部配置為加密處理部中的硬件。將參照圖37和圖28對在加密處理部的展開安裝情況下由根據本公開的密鑰轉換部的對合性質產生的效果進行說明。圖37和圖38圖示了加密處理裝置的以下安裝示例:在密鑰轉換部F不具有對合性質時圖37(1)中的硬件安裝示例;以及在密鑰轉換部(G)具有對合性質時圖38(2a)和圖28(2b)中的硬件安裝示例。圖38(2a)和圖28(2b)與根據本公開的密鑰轉換部的安裝示例對應,即,在密鑰轉換部具有對合性質時的安裝示例。由于在圖37中密鑰轉換部F不具有對合性質,所以通過密鑰轉換部F順序地獲得的作為轉換結果的密鑰成為不同的密鑰。圖37圖示了如下配置:通過密鑰轉換部F的轉換處理基于密鑰K1順序地生成Kd1、Kd2、Kd3、Kd4、Kd5和Kd6,并且將這些密鑰作為輪密鑰順序地輸入至加密處理部的異或部(輪密鑰運算部)。相反,圖38(2a)和圖38(2b)所示的示例是在密鑰轉換部(G)具有對合性質時的硬件安裝示例。圖38(2a)所示的示例示出了如下配置:將生成至加密處理部的異或部(輪密鑰運算部)的輸入密鑰(輪密鑰)的密鑰轉換部G設置為與各輪關聯,與圖37(1)所示的硬件配置中的一樣。另一方面,圖38(2b)圖示了如下配置:僅設置一個密鑰轉換部G,并且將預先保存的基本密鑰K1和由密鑰轉換部G生成的轉換密鑰Kd1設置為交替地輸入至加密處理部的異或部(輪密鑰運算部)。由于密鑰轉換部G具有對合性質,所以通過密鑰轉換部的轉換處理重復生成的密鑰以K1、Kd1、K1、Kd1、K1等的方式重復。基于該性質,如圖38(2b)所示,利用一個密鑰轉換部G,可以將基本密鑰K1和由密鑰轉換部G通過一次密鑰轉換處理生成的轉換密鑰Kd1交替地輸入至加密處理部的異或部(輪密鑰運算部)。因此,由于可以將密鑰轉換部G的數量設置為1,所以實現了硬件安裝的輕重量(微型化)。在圖39中圖示了與圖28(2b)所示的配置對應的加密處理裝置的配置的示例。如圖39所示,利用密鑰調度部300的僅一個密鑰轉換部(G)302,可以交替地輸入預先保存在加密處理部320的各個異或部(輪密鑰運算部)中的基本密鑰K1和由密鑰轉換部G生成的轉換密鑰Kd1。[5-3-b.輪安裝中的效果]接下來,將對在加密處理部的輪安裝情況下由根據本公開的密鑰轉換部的對合性質產生的效果進行說明。在輪安裝中,將設置在加密處理部中的一個輪函數配置為重復使用。圖40圖示了在密鑰轉換部不具有對合性質時的(a1)加密處理配置和(a2)輪安裝示例。圖41圖示了在密鑰轉換部具有對合性質時的(b1)加密處理配置和(b2)輪安裝示例。圖40(a1)所示的加密處理配置是和上面參照圖37所述的配置相同的配置。換言之,由于密鑰轉換部F不具有對合性質,所以通過密鑰轉換部F順序地獲得的作為轉換結果的密鑰成為不同的密鑰。圖40(a1)圖示了如下配置:通過密鑰轉換部F的轉換處理基于密鑰K1順序地生成Kd1、Kd2、Kd3、Kd4、Kd5和Kd6,并且將這些密鑰作為輪密鑰順序地輸入至加密處理部的異或部(輪密鑰運算部)。當在輪類型硬件安裝中實現這種配置時,實現了圖40(a2)所示的配置。加密處理部350可以配置為包括一個異或部(輪密鑰運算部)351和一個非線性/線性轉換部352。另一方面,密鑰調度部360配置為包括存儲并且供應基本密鑰K1的密鑰寄存器361、存儲并且供應轉換密鑰Kd1至Kd6的密鑰寄存器362、密鑰轉換部(F)363、和執(zhí)行密鑰寄存器361和362的輸出的切換的開關364。相反,圖41(b1)所示的加密處理配置是密鑰轉換部G具有對合性質的加密處理配置,與上面參照圖38(2b)所示的配置中的一樣。由于密鑰轉換部G具有對合性質,所以通過密鑰轉換部的轉換處理重復生成的密鑰以K1、Kd1、K1、Kd1、K1等的方式重復?;谠撔再|,如圖41(b1)所示,利用一個密鑰轉換部G,可以將基本密鑰K1和由密鑰轉換部G通過一次密鑰轉換處理生成的轉換密鑰Kd1交替地輸入至加密處理部的異或部(輪密鑰運算部)。當在輪類型硬件安裝中實現這種配置時,實現了圖41(b2)所示的配置。加密處理部350可以配置為包括一個異或部(輪密鑰運算部)351和一個非線性/線性轉換部352。另一方面,密鑰調度部370配置為包括存儲并且供應基本密鑰K1和轉換密鑰Kd1的密鑰寄存器371、和密鑰轉換部(G)372。在圖40(a2)所示的密鑰轉換部(F)不具有對合性質時的輪安裝配置的示例中,在密鑰調度部360中需要有兩個密鑰寄存器、一個密鑰轉換部和一個開關。相反,具有在圖41(b2)所示的密鑰轉換部(G)具有對合性質時的輪安裝配置的密鑰調度部370配置為包括一個密鑰寄存器和一個密鑰轉換部。從而,經過證明,實現了硬件配置的輕重量(微型化)。例如,在密鑰轉換部(F)不具有對合性質時的輪安裝配置中,如圖40(a2)所示,需要有順序地生成并且供應多個不同的轉換密鑰的密鑰寄存器。因此,需要與密鑰寄存器的數量對應的新硬件電路。[5-4.根據本公開的密鑰調度部的配置和效果的總結]如上所述,在根據本公開的密鑰處理裝置中包括的密鑰調度部的密鑰轉換部具有以下兩種特點:(1)全擴散性質,在該全擴散性質中實現了全擴散轉換;以及(2)對合性質,在該對合性質中,正向函數G和反向函數G-1是相同的。密鑰調度部的密鑰轉換部具有這兩種特點?;谶@兩種特點可以得到以下效果:(效果1)基于全擴散性質,可以利用較少的輪實現轉換目標數據的全擴散性質;因此,利用較少的輪,可以執(zhí)行安全性高的加密處理,從而實現了處理的高速(低時延)和裝置的輕重量(微型化);(效果2)當實現了硬件配置的展開安裝時,基于對合性質,可以只包括一個密鑰轉換部,從而實現了裝置的輕重量(微型化);以及(效果3)當實現了硬件配置的輪安裝時,基于對合性質,可以安裝只包括一個密鑰寄存器和一個密鑰轉換部的密鑰調度部,從而實現了裝置的輕重量(微型化)。[5-5.密鑰調度部的配置的其它示例]接著,將參照圖42和隨后的附圖對包括了執(zhí)行應用了具有上述兩種特點(即,以下兩種特點)的函數G的密鑰轉換處理的密鑰轉換部的密鑰調度部的配置的其它示例進行說明:(1)全擴散性質,在該全擴散性質中實現了全擴散轉換;以及(2)對合性質,在該對合性質中,正向函數G和反向函數G-1是相同的。圖42是圖示包括密鑰調度部380的加密處理裝置的配置的一個示例的示意圖,該密鑰調度部380包括具有上述兩種特點的密鑰轉換部。圖42所示的加密處理裝置包括密鑰調度部380和加密處理部385。預先生成的私人密鑰K存儲在密鑰調度部380的密鑰寄存器381中。私人密鑰K是密鑰K1和K2的鏈接數據。例如,K1和K2均為64位密鑰,而作為鏈接數據的私人密鑰K為128位數據。附圖中所示的G表示密鑰轉化部,該密鑰轉換部是執(zhí)行應用了具有這兩種特點(即,全擴散性質和對合性質)的函數G的密鑰轉換處理的密鑰轉換部,與上面參照圖32和隨后的附圖所述的密鑰轉換部302中的一樣。圖42所示的密鑰調度部380順序地輸出作為存儲在密鑰寄存器381中的私人密鑰K的分裂數據的密鑰K1和K2,并且進一步將從密鑰轉換部(G)中的這些密鑰轉換而來的轉換密鑰Kd1和Kd2輸出至加密處理部385的異或部(輪密鑰運算部)。在附圖所示的示例中,當密鑰K1和K2均為64位密鑰時,作為加密處理部385的轉換目標的明文P也為64位數據。在圖42所示的示例中,密鑰輸出序列如下:密鑰K1;密鑰K2;轉換密鑰Kd1;轉換密鑰Kd2;密鑰K1;密鑰K2;以及轉換密鑰Kd1。按照該序列,將四種密鑰輸入至加密處理部385中。密鑰輸入序列可以設置為不同的。在圖42中,圖示了多個密鑰轉換部(G)。然而,在進行上面參照圖41所述的輪安裝時,可以只包括一個密鑰轉換部(G)。將參照圖43對密鑰調度部的配置的另一個示例進行說明。在圖43中圖示了以下配置:(a)密鑰調度部的配置;以及(b)通過密鑰調度部的密鑰輸出配置。如圖43(a)所示,預先生成的私人密鑰K存儲在密鑰調度部的密鑰寄存器391中。私人密鑰K是密鑰K1和K2的鏈接數據。例如,K1和K2均為64位密鑰,而作為鏈接數據的私人密鑰K為128位數據。圖43(a)所示的密鑰調度部包括密鑰轉換部G393和異或部392和394。密鑰轉換部G393是執(zhí)行應用了具有兩種特點(即,全擴散性質和對合性質)的函數G的密鑰轉換處理的密鑰轉換部,和上面參照圖32和隨后的附圖所述的密鑰轉換部302中的一樣。圖43(a)所示的密鑰調度部基于每種配置生成以下六種密鑰:密鑰K1;密鑰K2;轉換密鑰Kd1;轉換密鑰Kd2;異或運算密鑰K1(+)K2;以及異或運算轉換密鑰Kd1(+)Kd2。圖43(a)所示的密鑰調度部生成這六種密鑰并且將這些密鑰順序地輸出至加密處理部。當密鑰K=128位時,上述的六種密鑰全都是64位密鑰。在這種情況下,作為加密處理部的轉換目標的明文P也為64位數據。在圖43(b)所示的示例中,密鑰輸出序列如下:密鑰K1;密鑰K2;轉換密鑰Kd1;轉換密鑰Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;轉換密鑰Kd2;轉換密鑰Kd1;密鑰K2;以及密鑰K1。按照該序列,將六種密鑰輸入至加密處理部中。上述密鑰的輸入序列和其反向序列是相同的序列。這就意味著可以將在從明文P生成密文C的加密處理中的密鑰輸入序列和在從密文C生成明文P的解密處理中的密鑰輸入序列設置為相同的。這就意味著應用于加密處理和解密處理的硬件或者程序可以是共用的,從而使設置有助于裝置的輕重量(微型化)。稍后將對包括圖43所示的密鑰調度部的加密處理裝置的具體配置進行進一步說明。[具有全擴散性質的密鑰轉換部的配置的示例]在上述的實施例中,已經對通過將轉換函數G應用于私人密鑰K的轉換處理生成轉換密鑰Kd的密鑰轉換部具有對合性質和全擴散性質的這兩種性質的情況進行了說明。甚至在應用了不具有對合性質而只具有全擴散性質的密鑰轉換部時,也實現了對輸入數據的擴散性能提高了的、抗各種攻擊性能高的加密處理配置。下面將對具有全擴散性質的加密處理配置的實施例進行說明。圖44是圖示在密鑰轉換函數G具有全擴散性質時確保輸入數據(P)的內部狀態(tài)S的全擴散性質的示意圖。如參照圖35等在前述項[5-2.基于密鑰調度部的全擴散性質的效果]中所描述的,當密鑰轉換部的密鑰轉換函數G具有全擴散性質時,在轉換目標數據與密鑰之間也確保了全擴散性質。在圖44所示的配置中,將基本密鑰K1輸入至待進行具有輸入狀態(tài)的異或運算的加密處理部的異或部中。其后,在輪運算部R1中執(zhí)行非線性轉換處理和線性轉換處理。進一步地,對異或運算部中的輸出執(zhí)行具有轉換密鑰Kd1的異或運算。將對異或運算部的輸出(S)進行檢查。在基本密鑰K1與轉換密鑰Kd1之間確保了全擴散性質。使轉換目標數據在輪運算部R1中進行非線性轉換處理和線性轉換處理,隨后進行具有轉換密鑰Kd1的異或運算。從而,甚至在基本密鑰K1與轉換數據之間也確保了全擴散性質。該性質可以視為是有助于加密處理裝置的安全性或者安裝性能的性質。具體地,通過密鑰實現了數據擴散性質的提高。從而,甚至在減少了輪數時,也可以具有高擴散性能。因此,可以提高抗各種攻擊的性能。例如,基于使用密鑰依賴性的中間值匹配處理可以進一步提高抗密鑰分析處理的性能。在不執(zhí)行圖45的密鑰轉換的加密處理配置中,關于應用密鑰的信息(位流)為轉換目標數據的輸入明文P的所有位的擴散(全擴散)所必需的輪數取決于輪函數(R)的處理。相反,在執(zhí)行圖44所示的密鑰轉換的配置中,關于應用密鑰的信息(位流)為轉換目標數據的輸入明文P的所有位的擴散(全擴散)所必需的輪數是使用兩個密鑰(基本密鑰K1和轉換密鑰Kd1)的輪數。在附圖所示的示例中,使用了一輪。換言之,當應用根據本公開的處理時,在一輪中實現了關于轉換目標數據中密鑰數據的配置信息的擴散,從而在不依靠輪函數(R)的處理的情況下確保了較高擴散性能。換言之,利用較少的輪實現了抗攻擊性能高的安全加密處理。從而,實現了高速處理或者減輕重量。將對具有全擴散性質的G函數的具體示例進行說明。下面將要描述的G函數是通過以下兩種函數的組合來配置的:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。(a)全擴散4位函數是設置為輸出和輸出4位的轉換函數,并且是具有指示輸入的4位對全部輸出的4位的影響的全擴散性質的函數。換言之,輸入:x0,x1,x2,x3(分別為1位);以及輸出:y0,y1,y2,y3(分別為1位)。此時,函數f為:yi=f(x0,x1,x2,x3),其中,i=0、1、2、3。全擴散4位函數是具有上述性質的函數。接著,將參照圖46對16位代換函數(Bp16)進行說明。圖46圖示了16位代換函數(Bp16)的示例。將輸入X設置為x0、x1、x2、...、x15的16位數據,并且將在輸入至轉換函數G的輸入X的轉換之后的輸出Y設置為y0、y1、y2、...、y15的16位數據。進一步地,xi和yi均為0或者1的1位數據。通過16位代換函數(Bp16)的輸入位與輸出位之間的關系為以下對應關系:輸入:x0,,x1,...,x15(分別為1位);輸出:y0,y1,y2,...,y15(分別為1位);函數:y0=x0,y1=x4,y2=x8,y3=x12;y4=x1,y5=x5,y6=x9,y7=x13;y8=x2,y9=x6,y10=x10,y11=x14;以及y12=x3,y13=x7,y14=x11,y15=x15。圖47是圖示應用了配置為包括以下兩種函數并且具有全擴散性質的G函數的密鑰轉換處理的示例(處理示例1)的示意圖:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。假定基本密鑰為A而轉換密鑰為B。這兩種密鑰均是由4位元素構成的4×4狀態(tài)數據。在圖47所示的示例中,從基本密鑰A生成轉換密鑰B的處理配置為包括以下4個步驟:(S11)將全擴散4位函數(Df4)應用于基本密鑰A的16個4位元素中的各個元素以便轉換的步驟;(S12)將16位代換函數(Bp16)應用于通過步驟S11的轉換處理生成的數據(4×4狀態(tài))的各個列16位數據以便轉換的步驟;(S13)將全擴散4位函數(Df4)應用于通過步驟S12的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;以及(S14)將16位代換函數(Bp16)應用于通過步驟S13的轉換處理生成的數據(4×4狀態(tài))的各個行16位數據以便轉換的步驟。通過這個處理,從基本密鑰A生成轉換密鑰B。轉換密鑰B的元素b0至b15成為接收基本密鑰A的元素a0至a15的影響的數據,并且在基本密鑰A與轉換密鑰B之間確保了全擴散性質。圖48是圖示應用了配置為包括以下兩種函數并且具有全擴散性質的G函數的密鑰轉換處理的示例(處理示例2)的示意圖:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。假定基本密鑰為A而轉換密鑰為B。這兩種密鑰均是由4位元素構成的4×4狀態(tài)數據。在圖48所示的示例中,從基本密鑰A生成轉換密鑰B的處理配置為包括以下5個步驟:(S21)將全擴散4位函數(Df4)應用于基本密鑰A的16個4位元素中的各個元素以便轉換的步驟;(S22)將16位代換函數(Bp16)應用于通過步驟S21的轉換處理生成的數據(4×4狀態(tài))的各個列16位數據以便轉換的步驟;(S23)將全擴散4位函數(Df4)應用于通過步驟S22的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;(S24)將16位代換函數(Bp16)應用于通過步驟S23的轉換處理生成的數據(4×4狀態(tài))的各個行16位數據以便轉換的步驟;以及(S25)將全擴散4位函數(Df4)應用于通過步驟S24的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟。通過這個處理,從基本密鑰A生成轉換密鑰B。轉換密鑰B的元素b0至b15成為接收基本密鑰A的元素a0至a15的影響的數據,并且在基本密鑰A與轉換密鑰B之間確保了全擴散性質。圖49是圖示應用了配置為包括以下兩種函數并且具有全擴散性質的G函數的密鑰轉換處理的示例(處理示例3)的示意圖:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。假定基本密鑰為A而轉換密鑰為B。這兩種密鑰均是由4位元素構成的4×4狀態(tài)數據。在該處理示例3中應用的(a)全擴散4位函數(Df4)是還具有對合性質的函數。在圖49所示的示例中,從基本密鑰A生成轉換密鑰B的處理配置為包括以下5個步驟:(S31)將具有對合性質和全擴散的4位函數(Df4)應用于基本密鑰A的16個4位元素中的各個元素以便轉換的步驟;(S32)將16位代換函數(Bp16)應用于通過步驟S31的轉換處理生成的數據(4×4狀態(tài))的各個列16位數據以便轉換的步驟;(S33)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S32的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;(S34)將16位代換函數(Bp16)應用于通過步驟S33的轉換處理生成的數據(4×4狀態(tài))的各個行16位數據以便轉換的步驟;以及(S35)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S34的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟。通過這個處理,從基本密鑰A生成轉換密鑰B。轉換密鑰B的元素b0至b15成為接收基本密鑰A的元素a0至a15的影響的數據,并且在基本密鑰A與轉換密鑰B之間確保了全擴散性質。進一步地,由于(a)全擴散4位函數(Df4)和(b)16位代換函數(Bp16)兩者都具有對合性質,所以在基本密鑰A與轉換密鑰B之間也確保了對合性質。圖50是圖示應用了配置為包括以下兩種函數并且具有全擴散性質的G函數的密鑰轉換處理的示例(處理示例4)的示意圖:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。假定基本密鑰為A而轉換密鑰為B。這兩種密鑰均是由4位元素構成的4×4狀態(tài)數據。在該處理示例4中應用的(a)全擴散4位函數(Df4)是還具有對合性質的函數。在圖50所示的示例中,從基本密鑰A生成轉換密鑰B的處理配置為包括以下5個步驟:(S41)將16位代換函數(Bp16)應用于基本密鑰A(4×4狀態(tài))的各個列16位數據以便轉換的步驟;(S42)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S41的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;(S43)將16位代換函數(Bp16)應用于通過步驟S42的轉換處理生成的數據(4×4狀態(tài))的各個列16位數據以便轉換的步驟;(S44)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S43的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;以及(S45)將16位代換函數(Bp16)應用于通過步驟S44的轉換處理生成的數據(4×4狀態(tài))的各個行16位數據以便轉換的步驟。通過這個處理,從基本密鑰A生成轉換密鑰B。轉換密鑰B的元素b0至b15成為接收基本密鑰A的元素a0至a15的影響的數據,并且在基本密鑰A與轉換密鑰B之間確保了全擴散性質。進一步地,由于(a)全擴散4位函數(Df4)和(b)16位代換函數(Bp16)兩者都具有對合性質,所以在基本密鑰A與轉換密鑰B之間也確保了對合性質。圖51是圖示應用了配置為包括以下兩種函數并且具有全擴散性質的G函數的密鑰轉換處理的示例(處理示例5)的示意圖:(a)全擴散4位函數(Df4);以及(b)16位代換函數(Bp16)。假定基本密鑰為A而轉換密鑰為B。這兩種密鑰均是由4位元素構成的4×4狀態(tài)數據。在該處理示例5中應用的(a)全擴散4位函數(Df4)是還具有對合性質的函數。在圖51所示的示例中,從基本密鑰A生成轉換密鑰B的處理配置為包括以下5個步驟:(S51)將具有對合性質和全擴散的4位函數(Df4)應用于基本密鑰A的16個4位元素中的各個元素以便轉換的步驟;(S52)將16位代換函數(Bp16)應用于通過步驟S51的轉換處理生成的數據(4×4狀態(tài))的各個行16位數據以便轉換的步驟;(S53)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S52的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟;(S54)將16位代換函數(Bp16)應用于通過步驟S53的轉換處理生成的數據(4×4狀態(tài))的各個列16位數據以便轉換的步驟;以及(S55)將具有對合性質和全擴散的4位函數(Df4)應用于通過步驟S54的轉換處理生成的數據(4×4狀態(tài))的16個4位元素中的各個元素以便轉換的步驟。通過這個處理,從基本密鑰A生成轉換密鑰B。轉換密鑰B的元素b0至b15成為接收基本密鑰A的元素a0至a15的影響的數據,并且在基本密鑰A與轉換密鑰B之間確保了全擴散性質。進一步地,由于(a)全擴散4位函數(Df4)和(b)16位代換函數(Bp16)兩者都具有對合性質,所以在基本密鑰A與轉換密鑰B之間也確保了對合性質。已經對圖47至圖51的5種密鑰轉換函數G的配置的示例進行了說明。這些密鑰轉換函數可以在從基本密鑰K生成轉換密鑰時應用,也可以應用于通過分裂上面參照圖42所述的基本密鑰K來生成的分裂密鑰上的轉換處理。進一步地,應用于兩個分裂密鑰的密鑰轉換函數可以設置為不同。圖52所示的加密處理裝置包括密鑰調度部380和加密處理部385。預先生成的私人密鑰K存儲在密鑰調度部380的密鑰寄存器381中。私人密鑰K是密鑰K1和K2的鏈接數據。例如,K1和K2均為64位密鑰,而作為鏈接數據的私人密鑰K為128位數據。附圖中圖示的G1和G2是密鑰轉換部。這些密鑰轉換部至少具有全擴散性質。作為替代方案,這些密鑰轉換部具有兩種特點:全擴散性質和對合性質。密鑰轉換函數G1和G2的組合可以是以下設置:(a)G1和G2在不具有對合性質的情況下具有全擴散性質;(b)G1和G2具有全擴散性質和對合性質;以及(c)G1和G2具有全擴散性質,并且將G1和G2設置為反函數,即,G2=G1-1的關系。密鑰轉換函數G1和G2的組合可以是上述的各種設置。[6.通過常數輸入實現安全性提高的配置]接著,將對通過將常數輸入至重復執(zhí)行輪運算和對轉換目標數據或者輪密鑰和常數執(zhí)行運算的加密處理部來提高擴散性能的加密處理裝置進行說明。[6-1.相關技術中通過常數輸入實現安全性提高的配置和問題]對于通過輪函數重復執(zhí)行輪運算的配置,在相關技術中已經提出了不同常數針對各輪有效的配置以便排除針對各輪的轉換處理的同一性。因為抗攻擊(稱為滑動攻擊或者反射攻擊)的性能較高,所以這種常數輸入處理被視為是有效的方法。首先,將對有關技術的常數輸入配置的概述和問題進行說明。作為相關技術的常數輸入配置的示例,例如,存在圖53所示的配置。圖53所示的輪運算執(zhí)行部401a至401d是在加密處理部中包括非線性轉換部、線性轉換部和異或部(輪密鑰運算部)的輪函數執(zhí)行部。將常數1(CON1)至常數(CON4)順序地輸入至輪運算部401a至401d。輸入的常數CON在輪運算部中進行了具有輪密鑰或者轉換數據的異或運算。通過這種方式,通過在各輪中使用各種不同的常數執(zhí)行運算,排除了輪運算之間的同一性,從而可以提高抗各種攻擊性能。接著,將對這種常數輸入配置中存在的問題進行說明。對于加密處理裝置,加密處理和解密處理可以通過設計輪函數的設置由相同的裝置來執(zhí)行。具體地,如圖54所示,當從中心將應用于加密處理裝置的加密處理部的多個轉換函數的配置分成右側和左側時,加密處理和解密處理可以通過設置左半部分和右半部分之間的反函數的關系利用相同的裝置的來執(zhí)行。這就是所謂的具有對合性質的加密處理裝置。在圖54所示的示例中,轉換函數E411和轉換函數E-1413具有反函數的關系。中央線性轉換部M輸出針對輸入A的輸出B,并且輸出針對輸入B的輸出A。通過按照該序列將轉換函數E411、線性轉換部412和轉換函數E-1413應用于明文P可以得到密文C。按照相同的序列將轉換部應用于密文C。換言之,通過按照該序列應用轉換函數E411、線性轉換部412和轉換函數E-1413可以得到原始明文P。這種加密處理裝置稱為具有對合性質的加密處理裝置。在具有對合性質的加密處理裝置中,存在如下的加密處理裝置:輪函數的執(zhí)行序列在正向方向和反向方向上都是相同的序列,并且應用于各輪中的輪密鑰的輸入序列在正向方向和反向方向上也都是相同的序列。例如,上面參照圖43所述的密鑰輸入序列是實現了加密處理裝置的對合性質的一個密鑰輸入序列。然而,具有這種對合性質的加密處理裝置的一個問題是安全性問題。下面將參照圖55對該問題進行說明。圖55(a)是描述在沒有常數輸入至具有對合性質的加密處理裝置時轉換部的數據輸入值與輸出值之間的關系的示意圖。假定明文P的局部配置數據=Y。假定轉換函數E411相對于數據Y的轉換結果為X。線性轉換部412對來自轉換函數E411的輸出值執(zhí)行線性轉換,但是在某些情況下,不加改變地輸出局部配置數據(位)的值。在線性轉換中輸入值和輸出值相同的點稱為固定點。許多加密處理裝置中應用的線性轉換處理中存在有若干個固定點。在圖55(a)所示的示例中,由于線性轉換部412的固定點的作用,假定至線性轉換部412的輸入值X是線性轉換部412的輸出X,而不改變。在這種情況下,將值X輸入至轉換函數E-1413。由于轉換函數E-1413是轉換函數E411的反函數,所以輸入值X返回到初始值Y。換言之,使構成密文C的局部輸出值Y變成和輸入明文P的配置值Y相同的值。換言之,在整個加密處理裝置中發(fā)生輸入值和輸出值不改變的固定點。該性質是導致抗各種攻擊性弱的性質,并且是可能破壞加密處理裝置的安全性的不可取性質。在圖55(b)中,與圖55(a)中的一樣,加密處理裝置是具有對合性質的加密處理裝置,但是具有如下配置:在將常數1(CON1)輸入至轉換函數E411時執(zhí)行運算,并且在將常數2(CON2)輸入至轉換函數E-1413時執(zhí)行運算。圖解說明了在輸入這些常數時轉換部的數據輸入值與輸出值之間的關系。假定明文P的部分配置數據=Y。假定轉換函數E411相對于數據Y的轉換結果為X。在該示例中,假定通過線性轉換處理由線性轉換部412將至線性轉換部412的輸入值X轉換成X+ΔA。在這種情況下,將值X+ΔA輸入至轉換函數E-1413。轉換函數E-1413是轉換函數E411的反函數,具有在輸入常數2(CON2)時執(zhí)行運算的配置,并且不是在輸入常數1(CON1)時執(zhí)行運算的轉換函數E411的完全反函數。然而,根據常數選擇方法,如圖所示,在某些情況下,將與至轉換函數E-1413的輸入X+ΔA對應的輸出值設置為與Y+ΔB相同。換言之,線性轉換部的輸入值和輸出值的對應關系為X和X+ΔA,而加密處理裝置的輸入值和輸出值的對應關系為Y和Y+ΔB。這樣,在某些情況下,發(fā)生將比差數據添加到輸入數據的相關性。輸入數據與輸出數據之間的相關性也是導致抗各種攻擊性弱的性質并且是可能破壞加密處理裝置的安全性的不可取性質。[6-2.具有安全性高的常數輸入配置的加密處理裝置的配置]接著,將對具有解決了相關技術的配置的問題并且安全性高的常數數據配置的加密處理裝置的配置進行說明。將參照圖56和隨后的附圖對根據該實施例的加密處理裝置的配置的示例進行說明。圖56是描述根據該實施例的加密處理部中的常數輸入配置的示例的示意圖。在圖56(a)中,將包括具有對合性質的數據轉換部的加密處理部圖示為與參照圖54的描述中的一樣。換言之,加密處理部包括以下數據轉換部:轉換函數E431;線性轉換部432;以及轉換函數E-1433。轉換函數E-1433是轉換函數E431的反函數。在該實施例中,將常數(CON)435輸入至轉換函數E-1433。轉換函數E-1433配置為包括多個輪函數,而常數(CON)配置為輸入至一個或者多個輪函數部。在本文描述的實施例中,作為常數(CON)的輸入部的設置,將常數輸入至轉換函數E-1433,但是常數可以設置為輸入至轉換函數E431側。換言之,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行轉換函數E431和作為轉換函數E431的反函數的轉換函數E-1433;并且加密處理部具有如下配置:在轉換函數E和反函數E-1中的僅一個中執(zhí)行一次或者多次應用了常數的輪運算。圖56(b)圖示了常數(CON)435的輸入配置的具體示例。在加密處理部的線性轉換部437的前一階段將常數(CON)435輸入至異或部436,并且利用至異或部436的輸入數據A來執(zhí)行異或運算。異或部436是利用輪密鑰Kr執(zhí)行異或運算的輪密鑰運算部。異或部436對在該圖所示的前一階段從輪運算部輸出的數據A、輪密鑰Kr和常數CON執(zhí)行異或運算。換言之,異或運算部436計算出B作為以下運算的執(zhí)行結果,并且在后一階段將該執(zhí)行結果輸出至輪運算部的線性轉換部437:B=A(+)Kr(+)CON。在上式中,(+)表示異或運算。在該配置中,將以下條件設置為待輸入常數(CON)435的條件:條件:輸入值與輸出值之間的差值設置為在與異或部437相鄰的線性轉換部(即,該圖所示的示例中的線性轉換部437)的線性轉換處理中不會減少的值。上述條件是:由于對常數CON進行的矩陣運算和在線性轉換部437中應用的線性轉換矩陣而得到的所有元素均非零,即,不為零的值。下面將參照圖57對該條件進行說明。圖57圖示了如下的4×4矩陣:轉換函數E431構成待輸入至異或部436的常數CON435和在線性轉換部437中采用的線性轉換矩陣M。常數CON435是各個元素(con0至con15)均為4位數據和64位數據的4×4狀態(tài)。線性轉換矩陣M是4×4矩陣數據。換言之,線性轉換矩陣是如下所示的線性轉換矩陣:[數學式12]m0m4m8m12m1m5m9m13m2m6m10m14m3m7m11m15]]>常數CON的條件是:由于對常數CON進行的矩陣運算和在線性轉換部437中應用的線性轉換矩陣而得到的所有元素均非零,即,不為零的值。換言之,通過以下矩陣運算得到的值均非零:[數學式13]m0m4m8m12m1m5m9m13m2m6m10m14m3m7m11m15·con0con1con2con3,...,m0m4m8m12m1m5m9m13m2m6m10m14m3m7m11m15·con12con13con14con15]]>將常數CON設置為:通過上述矩陣運算公式計算出來的16個值都不為零,即,所有值均非零。在這種設置中,可以防止減少與輸入有常數CON的異或部相鄰的線性轉換部(即,該圖所示的示例中的線性轉換部437)中的線性轉換處理的輸入值與輸出值之間的差值。從而,可以將差分活躍S盒的最小數量保持在預定數量或者更多。將參照圖58對常數CON的具體設置示例進行說明。圖58所示的示例為如下設置:與輸入有常數CON的異或部相鄰的線性轉換部437設置為上面參照圖23至圖30所述的線性轉換部P1。換言之,該示例是如下設置示例:執(zhí)行應用了以下矩陣的列擴散運算(MixColumn):[數學式14]M0=0111101111011110]]>線性轉換部437執(zhí)行應用了矩陣M0的列擴散運算(MixColumn),即:MC[M0]。此時,常數CON的條件是:由于對常數CON進行的矩陣運算和在線性轉換部437中應用的線性轉換矩陣M0而得到的所有元素均非零,即,不為零的值。常數CON的示例是圖58所示的常數CON并且是具有以下元素配置的4×4狀態(tài):[數學式15]將具有上述設置的4×4狀態(tài)的常數輸入至與執(zhí)行列擴散運算(MixColumn)的線性轉換部相鄰的異或部。執(zhí)行應用了矩陣M0的MC[M0]和異或運算。在該配置中,防止了由線性轉換部的線性轉換引起的差值的減少。從而,可以防止差分活躍S盒的最小數量的減少。因此,實現了抗各種攻擊性能高、安全性高的加密處理配置。圖59是圖示加密處理裝置的加密處理部中的輪密鑰和常數CON的運算配置示例和輸入配置的示意圖,該加密處理裝置具有滿足上述常數條件的常數CON的輸入配置。在圖59中,從左下角輸入明文P,并且從右下角輸出密文C。圖59所示的加密處理裝置的加密處理部451(E)與圖56(a)所示的轉換函數E431對應。線性轉換部(P2)452與圖56(a)所示的線性轉換部432對應。加密處理部453(E-1)與圖56(a)所示的轉換函數E-1433對應。具有圖59所示的配置的加密處理裝置是具有對合性質的加密處理裝置。圖59所示的輪密鑰的輸入示例與上面參照圖43所述的配置的示例對應。換言之,至加密處理部中包括的異或部的輪密鑰的輸入序列如下:密鑰K1;密鑰K2;轉換密鑰Kd1;轉換密鑰Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;轉換密鑰Kd2;轉換密鑰Kd1;密鑰K2;以及密鑰K1。在圖43所示的設置中,將異或運算密鑰K1(+)K2設置為輸入至輪運算部R6。然而,在圖59所示的示例中,將異或運算密鑰K1(+)K2設置為在線性轉換452之前和之后重復輸入。圖59所示的配置對應如下配置:將圖43所示的輪運算部R6設置為輪運算部,該輪運算部配置為包括以下轉換部:線性轉換部452;線性轉換部452之前和之后的兩個異或運算密鑰K1(+)K2的異或部;以及非線性轉換部。密鑰調度部的輪密鑰供應部按照上述序列輸出六種密鑰。密鑰的輸入序列及其反向序列是相同的序列。這就意味著可以將在從明文P生成密文C的加密處理中的密鑰輸入序列和在從密文C生成明文P的解密處理中的密鑰輸入序列設置為是相同的。換言之,該密鑰輸入序列是具有對合性質的密鑰輸入序列,應用于加密處理和解密處理的硬件或者程序可以是共用的,從而使設置有助于裝置的輕重量(微型化)。在圖59所示的配置中,將常數CON輸入至加密處理部453(E-1)的異或部:異或部461、異或部463和異或部465。例如,常數CON是參照圖58所述的4×4狀態(tài)的常數CON。與這三個異或部461、463和465相鄰的線性轉換部462、464和466全都執(zhí)行應用了上述矩陣M0的列擴散運算(MixColumn),即:MC[M0]。圖59所示的加密處理部具有對合性質,在該對合性質中,通過執(zhí)行從明文P生成密文C的序列的反向序列也可以從密文C生成明文P;并且該加密處理部通過應用相同硬件或者相同程序可以執(zhí)行加密處理和解密處理。由于密鑰輸入序列在加密處理和解密處理中也是相同的,所以密鑰調度部的密鑰供應處理也可以作為應用了相同硬件或者相同程序的處理來執(zhí)行。在上述的常數輸入配置中,可以防止差分活躍S盒的最小數量的減少。從而,實現了抗各種攻擊性能高、安全性高的加密處理配置。在一般加密處理中基于活躍S盒的評估處理和在根據本公開的常數輸入配置中基于活躍S盒的評估處理稍有不同。將參照圖60和圖61對該差別進行說明。如上所述,在設置有公用密鑰塊加密的非線性轉換部中使用以S位為單位執(zhí)行非線性轉換的S盒。實現抗差分攻擊性能的一個指數是差分活躍S盒的最小數量,即,在表示差值連接關系的差分路徑中包括的差分活躍S盒的最小數量。在一般的塊加密中,非線性轉換只是由S盒執(zhí)行的處理的一部分。如圖60的(A)和(B)所示,在執(zhí)行塊加密的塊加密裝置中,具有比差ΔX的數據P1和數據P2是單獨輸入的,并且得到加密處理結果C1和C2。在這兩個加密處理(A)和(B)中,將輸入有差值的S盒定義為活躍S盒。通過指定輸入有差值的S盒,提高了分析便利性。換言之,削弱了抗攻擊性能。一般而言,將輸入有在設置具有如圖60所示的預定差值ΔX的兩個輸入P1和P2時產生的差值的若干個S盒定義為活躍S盒。通過對該數量進行計數,來評估安全性。圖61圖示了配置為包括具有上述圖56(a)所示的對合性質的數據轉換部的加密處理部。換言之,加密處理部包括以下數據轉換部:轉換函數E431;線性轉換部432;以及轉換函數E-1433。轉換函數E-1433是轉換函數E431的反函數。常數(CON)435輸入至轉換函數E-1433。轉換函數E-1433配置為包括多個輪函數,而常數(CON)輸入至一個或者多個輪函數部。加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行轉換函數E431和作為轉換函數E431的反函數的轉換函數E-1433;并且在轉換函數E和反函數E-1中的僅一個中執(zhí)行一次或者多次應用了常數的輪運算。在該配置中,將輸入S1從線性轉換部432側輸入至轉換函數E431以得到輸出T。另一方面,同樣,將通過使差值ΔX和上述輸入值S1相加得到的輸入S2(=S1(+)ΔX)從線性轉換部432側輸入至轉換函數E-1433以得到輸出T(+)ΔY。當將在反向方向上具有差值ΔX的輸入值S1和S2輸入至兩個函數(即,轉換函數E431和作為轉換函數E431的反函數的轉換函數E-1433)時,如圖61所示,將在位于函數的對應位置處的S盒中輸入有差值的S盒設置為活躍S盒。圖62是描述在上述圖59所示的加密處理配置中包括若干個活躍S盒的配置的示意圖。將輸入值S1從圖62所示的加密處理裝置的加密處理部451(E)的線性轉換部452側輸入,并且執(zhí)行應用了加密處理部451(E)的加密處理。將在輸入值S1中設置差值的輸入值S2從作為加密處理部451(E)的反函數的加密處理部453(E-1)的線性轉換部452側輸入,并且執(zhí)行應用了加密處理部453(E-1)的加密處理。將在位于兩個加密處理中的加密處理部(E)和(E-1)的對應位置處的S盒中輸入有差值的S盒設置為活躍S盒。當減少了活躍S盒的數量時,例如,削弱了抗攻擊(稱為滑動攻擊或者反射攻擊)的性能。從而,通過將活躍S盒的數量保持在指定數量,可以提高抗這種攻擊的性能,從而可以提高安全性。在上述的常數輸入配置中,可以防止差分活躍S盒的數量的減少。從而,實現了抗各種攻擊性能高、安全性高的加密處理配置。[6-3.輸入插入位置的變型]在上述實施例中,已經對用于執(zhí)行如下輪運算的配置進行了說明,在該輪運算中,將常數CON輸入至函數E和反函數E-1中的僅一個并且將常數應用于具有如下對合性質的加密處理裝置中,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1。在這種設置中,可以防止減少與輸入有常數CON的異或部相鄰的線性轉換部(即,圖57所示的示例中的線性轉換部437)中的線性轉換處理的輸入值與輸出值之間的差值。從而,可以將差分活躍S盒的最小數量保持在預定數量或者更多。常數輸入配置并不限于函數E和反函數E-1中的僅一個,而是可以使用如下配置:在函數E和反函數E-1中都執(zhí)行一次或者多次應用了常數的輪運算。然而,常數應用位置設置為偏離對應位置的位置(非對應位置),該位置不是函數E和反函數E-1的對應位置。在圖63中圖示了具有常數輸入配置的加密處理裝置的配置的示例。在圖63中,從左下角輸入明文P,并且從右下角輸出密文C。圖63所示的加密處理裝置的加密處理部451(E)與圖56(a)所示的轉換函數E431對應。線性轉換部(P2)452與圖56(a)所示的線性轉換部432對應。加密處理部453(E-1)與圖56(a)所示的轉換函數E-1433對應。具有圖63所示的配置的加密處理部是具有對合性質的加密處理部。圖63所示的輪密鑰的輸入示例與上面參照圖43所述的配置的示例對應。換言之,至加密處理部中包括的異或部的輪密鑰的輸入序列如下:密鑰K1;密鑰K2;轉換密鑰Kd1;轉換密鑰Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;轉換密鑰Kd2;轉換密鑰Kd1;密鑰K2;以及密鑰K1。在圖43所示的設置中,將異或運算密鑰K1(+)K2設置為輸入至輪運算部R6。然而,在圖63所示的示例中,將異或運算密鑰K1(+)K2設置為在線性轉換452之前和之后重復輸入。圖63所示的配置對應如下配置:將圖43所示的輪運算部R6設置為輪運算部,該輪運算部配置為包括以下轉換部:線性轉換部452;線性轉換部452之前和之后的兩個異或運算密鑰K1(+)K2的異或部;以及非線性轉換部。密鑰調度部的輪密鑰供應部按照上述序列輸出六種密鑰。密鑰的輸入序列及其反向序列是相同的序列。這就意味著可以將在從明文P生成密文C的加密處理中的密鑰輸入序列和在從密文C生成明文P的解密處理中的密鑰輸入序列設置為是相同的。換言之,該密鑰輸入序列是具有對合性質的密鑰輸入序列,應用于加密處理和解密處理的硬件或者程序可以是共用的,從而使設置有助于裝置的輕重量(微型化)。在圖63所示的配置中,將常數CON輸入至加密處理部451(E)的異或部:異或部471和異或部472。進一步地,將常數CON也輸入至加密處理部453(E-1)的異或部473。例如,常數CON是參照圖58所述的4×4狀態(tài)的常數CON。與這三個異或部471、472和473相鄰的線性轉換部481、482和483全都執(zhí)行應用了上述矩陣M0的列擴散運算(MixColumn),即:MC[M0]。這樣,常數輸入配置并不限于函數E和反函數E-1中的僅一個,而是可以使用如下配置:在函數E和反函數E-1中都執(zhí)行一次或者多次應用了常數的輪運算。然而,常數應用位置設置為偏離位置(非對應位置),該偏離位置不是函數E和反函數E-1的對應位置。圖63所示的加密處理部具有對合性質,在該對合性質中,通過執(zhí)行從明文P生成密文C的序列的反向序列也可以從密文C生成明文P;并且該加密處理部通過應用相同硬件或者相同程序可以執(zhí)行加密處理和解密處理。由于密鑰輸入序列在加密處理和解密處理中也是相同的序列,所以密鑰調度部的密鑰供應處理也可以作為應用了相同硬件或者相同程序的處理來執(zhí)行。[7.應用于非線性轉換部的S盒的具體配置的示例]接著,將對應用于非線性轉換部的S盒的具體配置的示例進行說明。例如,在圖19所示的加密處理裝置100中,按照使加密處理部120具有對合性質的順序,即,按照使從明文P生成并輸出密文的硬件或者程序和從密文C生成并輸出明文P的硬件或者程序相同的順序,對于加密處理部120中包括的非線性轉換部122來說也需要具有對合性質。下文將對加密處理部120中包括的非線性轉換部122具有對合性質的配置的示例進行說明。如上面參照圖22所述的,圖19所示的加密處理裝置100的加密處理部120中的非線性轉換部122具有,例如,有如圖22(1)所示的多個S盒的配置。例如,各個S盒均為具有4位輸入與輸出配置的非線性轉換部,并且4×16=64位的非線性轉換處理通過16個S盒的并行處理來執(zhí)行。對于4位輸入和輸出的S盒來說,需要具有對合性質的配置。換言之,需要實現如下配置:當從4位輸入值中獲得某個4位輸出值并且將該4位輸出值輸入至相同S盒時,得到原始4位輸入值。具有對合性質的函數f(x)是相對于所有輸入值x滿足以下公式的函數:f(f(x))=x。加密處理部120中包括的非線性轉換部122必須是具有對合性質的函數f(x)。下面將參照圖64和隨后的附圖對具有對合性質的4位輸入與輸出S盒的配置的示例進行說明。圖64(1)是圖示非線性轉換部的配置的示例的示意圖,與上述圖22(1)中的一樣。換言之,該圖圖示了圖19所示的加密處理裝置100的加密處理部120中包括的非線性轉換部122的配置的示例。非線性轉換部122具有如下配置:設置了執(zhí)行非線性轉換處理的多個S盒。各個S盒執(zhí)行4位數據的非線性轉換。圖64(2)圖示了非線性轉換部中包括的一個S盒的配置。該S盒可以分為3層:第一非線性轉換層521;線性轉換層522;以及第二非線性轉換層523。第二非線性轉換層523是第一非線性轉換層521的反函數。圖65圖示了具體S盒的電路配置的示例。如圖65所示,第一非線性轉換部521配置為包括兩個異或運算部(XOR)和兩個基本運算符號。在圖65所示的示例中,圖示了將NOR電路設置為基本運算符號的示例?;具\算符號可以用執(zhí)行AND電路、OR電路和NAND電路中的一個的2個輸入和1個輸出的運算的基本運算符號。這兩個基本運算符號可以由相同的基本運算符號組合而成或者可以由不同的基本運算符號組合而成。線性轉換層522是執(zhí)行輸入的4位的置換處理并且基本上具有對合性質的線性轉換層。第二非線性轉換層523是由第一非線性轉換層521的反函數配置而成。配置為包括這三層的S盒電路用作具有對合性質的非線性轉換電路。在圖65的底部,圖示了圖65所示的S盒中的輸入值(in)和輸出值(out)的對應關系數據。輸入值和輸出值全都是4位數據,并且是0000至1111的數據。圖65所示的表圖示為用0000至1111的十進制記數法表示的0至15的輸入值和輸出值的對應表。從該表中可以理解的是,通過將從任意輸入值X獲得的輸出值Y用作輸出值Y而得到的輸出值變成原始輸入值X。換言之,圖65所示的4位輸入與輸出S盒是具有對合性質的非線性轉換電路。圖66圖示了S盒的數據轉換公式。此處,假定ain,bin,cin,和din是至S盒的4位輸入,而假定aout,bout,cout,和dout是來自S盒的4位輸出。S盒中的數據轉換公式如下:[數學式16]aout=cin⊕~((din⊕~(ain|bin))|(ain⊕~(bin|cin)))]]>bout=din⊕~(ain|bin)]]>cout=ain⊕~(bin|cin)]]>dout=bin⊕~(bout|aout)=bin⊕~((din⊕~(ain|bin))|(cin⊕~((din⊕~(ain|bin))|(ain⊕~(bin|cin)))))]]>在上述公式中,~(x|y)表示()中的值的否定(NOT)。具體地,這表明了在至NOR電路的輸入值為x和y時NOR電路的輸出值。執(zhí)行用上述公式表示數據轉換的S盒具有對合性質。圖66所示的S盒電路具有差分概率和線性概率(兩者均為2-2)并且具有足夠的安全性。圖66所示的S盒配置為包括4個異或運算(XOR)和4個NOR電路。在硬件電路上需要有13個門。門的所需數量是按照異或運算符號(XOR)=2.25個門和NOR電路=1個門來計算的。例如,參照圖54所述的加密處理部具有如下配置:轉換函數E411;線性轉換部412;以及轉換函數E-1413。通過使用圖64至圖66所示的S盒來配置具有這種配置的加密處理部中的轉換函數E411和轉換函數E-1413中的非線性轉換部,實現了整個加密處理部的對合性質。參照圖65至圖66所述的S盒具有如下的三層配置:第一非線性轉換層;線性轉換層;以及第二非線性轉換層。將對具有這三層配置的S盒的另一個示例進行說明。當執(zhí)行該三層配置中的線性轉換層的必要條件和不具有代換部分的位代換(其中,輸入位和輸出位不變)時,需要實現具有對合性質的配置。將參照圖67對線性轉換層的條件進行說明。圖67圖示了在4位輸入與輸出S盒中的線性轉換層的設置示例。與參照圖65至圖66所述的S盒一樣,具有如下三層配置的4位輸入與輸出S盒中的線性轉換層具有例如在67(1)所示的一種設置:第一非線性轉換層;線性轉換層;以及第二非線性轉換層。當在線性轉換層中的輸入4位是X=(x0,x1,x2,x3)而輸出4位是Y=(y0,y1,y2,y3)時,該配置具有對合性質。進一步地,線性轉換層的條件是如下設置:輸入位和輸出位是不相同的,即,滿足以下公式:yi≠xi,其中,i=0、1、2、3。圖67(2)所示的線性轉換配置不滿足上述條件并且是不兼容的。執(zhí)行4位代換的線性轉換層的代換函數P4可以用如下公式表示:(a)P4(P4(X))=X;以及(b)yi≠xi,其中,i=0、1、2、3。上述(a)是指示代換函數P4具有對合性質的條件公式。上述(b)是指示輸入位和輸出位不相同的條件公式。對于線性轉換層而言,需要具有執(zhí)行滿足了上述條件的代換處理的配置。參照圖68和隨后的附圖,將與參照圖65和圖66所述的配置不同的配置的示例描述為執(zhí)行4位代換的S盒的示例。圖68所示的S盒是具有如下三層配置的4位輸入與輸出S盒:第一非線性轉換層531;線性轉換層532;以及第二非線性轉換層533。第一非線性轉換層531配置為包括兩個異或運算部(XOR)、NAND電路和NOR電路。線性轉換層522是執(zhí)行輸入的4位的置換處理并且具有對合性質的線性轉換層。第二非線性轉換層533是由第一非線性轉換層531的反函數配置而成。配置為包括這三層的S盒電路用作具有對合性質的非線性轉換電路。在圖68的底部,圖示了圖68所示的S盒中的輸入值(in)和輸出值(out)的對應關系數據。輸入值和輸出值全都是4位數據,并且是0000至1111的數據。圖68所示的表圖示為用0000至1111的十進制記數法表示的0至15的輸入值和輸出值的對應表。從該表中可以理解的是,通過將從任意輸入值X獲得的輸出值Y用作輸出值Y而得到的輸出值變成原始輸入值X。換言之,圖68所示的4位輸入與輸出S盒是具有對合性質的非線性轉換電路。圖69圖示了S盒的數據轉換公式。此處,假定ain,bin,cin,和din是至S盒的4位輸入,而假定aout,bout,cout,和dout是來自S盒的4位輸出。S盒中的數據轉換公式如下:[數學式17]在上述公式中,~(x|y)表明了在至NOR電路的輸入值為x和y時NOR電路的輸出值。進一步地,~(x|y)表明了在至NAND電路的輸入值為x和y時NAND電路的輸出值。執(zhí)行用上述運算公式表示的數據轉換的S盒具有對合性質。圖69所示的S盒電路也具有差分概率和線性概率(兩者均為2-2)并且具有足夠的安全性。圖69所示的S盒配置為包括4個異或運算(XOR)、2個NOR電路和2個NAND電路。例如,參照圖54所述的加密處理部具有如下配置:轉換函數E411;線性轉換部412;以及轉換函數E-1413。通過使用圖69所示的S盒來配置具有這種配置的加密處理部中的轉換函數E411和轉換函數E-1413中的非線性轉換部,實現了整個加密處理部的對合性質。接著,將參照圖70對具有另一種配置的4位輸入與輸入S盒的示例進行說明。圖70所示的S盒是具有如下三層配置的4位輸入與輸出S盒:第一非線性轉換層541;線性轉換層542;以及第二非線性轉換層543。第一非線性轉換層541配置為包括兩個異或運算部(XOR)和兩個OR電路。線性轉換層542是執(zhí)行輸入4位的置換處理并且具有對合性質的線性轉換層。第二非線性轉換層543是由第一非線性轉換層541的反函數配置而成。配置為包括這三層的S盒電路用作具有對合性質的非線性轉換電路。在圖70的底部,圖示了圖70所示的S盒中的輸入值(in)和輸出值(out)的對應關系數據。輸入值和輸出值全都是4位數據,并且是0000至1111的數據。圖70所示的表圖示為用0000至1111的十進制記數法表示的0至15的輸入值和輸出值的對應表。從該表中可以理解的是,通過將從任意輸入值X獲得的輸出值Y用作輸出值Y而得到的輸出值變成原始輸入值X。換言之,圖70所示的4位輸入與輸出S盒是具有對合性質的非線性轉換電路。圖71圖示了S盒的數據轉換公式。此處,假定ain,bin,cin,和din是至S盒的4位輸入,而假定aout,bout,cout,和dout是來自S盒的4位輸出。S盒中的數據轉換公式如下:[數學式18]aout=cin⊕((din⊕(ain|bin))|(ain⊕(bin|cin)))]]>bout=din⊕(ain|bin)]]>cout=ain⊕(bin|cin)]]>dout=bin⊕(bout|aout)=bin⊕((din⊕(ain|bin))|(cin⊕((din⊕(ain|bin))|(ain⊕(bin|cin)))))]]>在上述公式中,~(x|y)表明了在至OR電路的輸入值為x和y時OR電路的輸出值。執(zhí)行用上述運算公式表示的數據轉換的S盒具有對合性質。圖69所示的S盒電路也具有差分概率和線性概率(兩者均為2-2)并且具有足夠的安全性。圖69所示的S盒配置為包括4個異或運算(XOR)和4個OR電路。例如,參照圖54所述的加密處理部具有如下配置:轉換函數E411;線性轉換部412;以及轉換函數E-1413。通過使用圖71所示的S盒來配置具有這種配置的加密處理部中的轉換函數E411和轉換函數E-1413中的非線性轉換部,實現了整個加密處理部的對合性質。[8.加密處理裝置的具體示例]接著,將對包括所有的上述配置(即,如下配置)的加密處理裝置的整體配置的示例進行說明:(1)安全性提高了的公用密鑰加密處理的整體配置(圖19至圖22);(2)執(zhí)行應用了多個不同的線性轉換矩陣的線性轉換的配置(圖23至圖31);(3)提供通過使用基本密鑰和轉換密鑰生成的輪密鑰并且實現對合性質和全擴散性質的密鑰調度部的配置(圖32至圖52);(4)常數輸入配置(圖53至圖63);以及(5)應用了具有對合性質的S盒的非線性轉換部的配置(圖64至圖71)。圖72所示的加密處理裝置700是圖示具有全部上述配置的加密處理裝置的示例的示意圖。加密處理裝置700包括密鑰調度部720和加密處理部750。密鑰處理部750包括數據轉換部、異或部751、非線性轉換部752和線性轉換部753,并且具有重復執(zhí)行這些處理的配置。密鑰調度部720將輪密鑰RKn輸出至加密處理部750中包括的各個異或部,并且執(zhí)行與轉換目標數據的異或運算。密鑰調度部720包括輪密鑰供應部721和常數供應部(常數寄存器)725。輪密鑰供應部721包括存儲私人密鑰K的密鑰寄存器722和密鑰轉換部723。例如,圖72所示的加密處理裝置700的加密處理部750輸入64位的明文P并且輸出64位的密文C。通過應用該加密處理部750,可以輸入密文C并且輸出明文P。當轉換數據具有64位時,各個輪密鑰RKn也具有64位。各64位數據全都是具有16個元素的4×4狀態(tài),各個元素均為4位元素。加密處理部750具有對合性質的配置,在該對合性質中,將明文P用作輸入數據重復執(zhí)行輪運算,并且輸出密文C作為輸出數據;并且,通過按照相反的順序設置使用密文C作為輸入數據的輪運算的執(zhí)行序列的數據轉換處理,可以生成明文P作為輸出數據。當從明文P生成密文C時,從附圖所示的加密處理部750的頂部階段到底部階段執(zhí)行各個轉換處理。相反,當從密文P生成明文C時,從附圖所示的加密處理部750的底端到頂端執(zhí)行各個轉換處理。密鑰調度部720的輪密鑰供應部721具有用于執(zhí)行密鑰供應處理的配置,該密鑰供應處理具有對合性質;并且在該密鑰供應處理中,從明文P生成密文C的情況下的密鑰供應序列與從密文C生成明文P的情況下的密鑰供應序列相匹配。當針對加密處理部750執(zhí)行密鑰供應處理時,密鑰調度部720通過常數對一些供應的密鑰執(zhí)行運算并且輸出密鑰數據作為針對加密處理部750的運算的結果。這樣,與上面參照圖59所描述的配置中的一樣,由于轉換函數是按照轉換函數E、線性轉換函數和轉換函數E-1的序列來設置的,所以圖72所示的加密處理部750的配置是具有對合性質的配置。在加密處理部750中,設置了執(zhí)行三種不同的線性轉換處理的線性轉換處理部,如上面在[4.加密處理部的線性轉換部的處理和配置]部分中參照圖23至圖31所述的一樣。換言之,加密處理部750包括以下三種不同的線性轉換部:線性轉換部P1;線性轉換部P2;以及線性轉換部P3。加密處理部750針對加密處理中的各輪來改變待執(zhí)行的線性轉換處理。換言之,相同的線性轉換處理設置為不在連續(xù)幾輪中執(zhí)行。在線性轉換處理部P1中,執(zhí)行以列為單位將一個矩陣M0應用于4×4狀態(tài)的輸入數據的各列的元素的矩陣運算。該運算是上面參照圖24和圖25所描述的列擴散運算(MixColum)。換言之,線性轉換處理部P1執(zhí)行由以下公式表示的列擴散運算(MC):MC[M0]。MC[M0]是表示將相同矩陣M0應用于狀態(tài)的各列的矩陣運算并且具有與單獨指示應用于該狀態(tài)的各列的矩陣的以下公式相同的意義的公式:MC[M0,M0,M0,M0]。如上面參照圖24和圖26等所描述的,線性轉換部P2執(zhí)行以行為單位將不同矩陣應用于4×4狀態(tài)的輸入數據的各行的元素的矩陣運算。在高階第一行至第四行上執(zhí)行應用了以下矩陣的矩陣運算:第一行:應用矩陣M0;第二行:應用矩陣M1;第三行:應用矩陣M2;以及第四行:應用矩陣M3。換言之,線性轉換部P2執(zhí)行由以下公式表示的行擴散運算(MixRow):MR[M0,M1,M2,M3]。在線性轉換處理P3中,如圖24(2)所示,與線性轉換處理P2一樣,以各行為單位對4×4狀態(tài)的輸入數據的各行的元素執(zhí)行應用了不同矩陣的矩陣運算。在線性轉換處理P3中,與線性轉換處理P2不同,在高階第一行至第四行上執(zhí)行應用了以下矩陣的矩陣運算:第一行:應用矩陣M2;第二行:應用矩陣M0;第三行:應用矩陣M1;以及第四行:應用矩陣M3。該運算是上面參照圖27所描述的行擴散運算(MixRow)。換言之,線性轉換處理P3是由以下公式表示的行擴散運算(MixRow):MR[M2,,M0,M1,M3]。通過針對各輪切換待執(zhí)行的線性轉換處理并且組合和使用多個不同的線性轉換處理,如上面參照圖30所述的,可以增加活躍S盒的數量。從而,實現了安全性較高的加密處理(加密處理和解密處理)。圖72所示的加密處理部750執(zhí)行順序地應用了以下數據轉換部的數據轉換處理:利用輪密鑰RK1執(zhí)行異或運算的異或部;非線性轉換部S;線性轉換部P1;利用輪密鑰RK2執(zhí)行異或運算的異或部;非線性轉換部S;線性轉換部P2;利用輪密鑰RK3執(zhí)行異或運算的異或部;非線性轉換部S;線性轉換部P1;利用輪密鑰RK4執(zhí)行異或運算的異或部;非線性轉換部S;線性轉換部P3;利用輪密鑰RK5執(zhí)行異或運算的異或部;非線性轉換部S;線性轉換部P1;利用輪密鑰RK6執(zhí)行異或運算的異或部;非線性轉換部S;利用輪密鑰RK7執(zhí)行異或運算的異或部;線性轉換部P2;利用輪密鑰RK7執(zhí)行異或運算的異或部;非線性轉換部S;利用輪密鑰RK8執(zhí)行異或運算的異或部;線性轉換部P1;非線性轉換部S;利用輪密鑰RK9執(zhí)行異或運算的異或部;線性轉換部P3;非線性轉換部S;利用輪密鑰RK10執(zhí)行異或運算的異或部;線性轉換部P1;非線性轉換部S;利用輪密鑰RK11執(zhí)行異或運算的異或部;線性轉換部P2;非線性轉換部S;利用輪密鑰RK12執(zhí)行異或運算的異或部;線性轉換部P1;非線性轉換部S;利用輪密鑰RK13執(zhí)行異或運算的異或部。該輪運算執(zhí)行配置和上面參照圖59所述的配置相同,并且按照以下序列來設置:轉換函數E;線性轉換部;以及轉換函數E-1。該配置具有對合性質。非線性轉換部是由具有上面參照圖64至圖66所述的對合性質的S盒配置而成。密鑰調度部720的輪密鑰供應部721包括密鑰寄存器722和密鑰轉換部723。由輪密鑰供應部721執(zhí)行的處理是上面在項[密鑰調度部的處理和配置]中參照圖32至圖43所述的處理。換言之,將通過使用基本密鑰和轉換密鑰生成的輪密鑰提供給加密處理部750。在輪密鑰供應配置中,實現了對合性質和全擴散性質。密鑰寄存器中存儲的私人密鑰K是128位密鑰數據,該128位密鑰數據是64位基本密鑰K1和K2的鏈接數據。密鑰轉換部723基于基本密鑰K1生成轉換密鑰Kd1,并且通過轉換處理基于基本密鑰K2生成轉換密鑰Kd2。該轉換處理通過使用轉換函數G和反函數G-1用公式表示為如下:Kd1=G(K1);K1=G-1(Kd1)。此處,滿足G=G-1。換言之,應用于密鑰轉換部723中的密鑰轉換的數據轉換函數G具有對合性質,即,正向函數G和反向函數G-1為相同函數的性質,如圖33所示。如上面參照圖34等所述,該密鑰轉換處理是通過應用哈達馬(Hadamard)MDS矩陣MD來執(zhí)行的。具體地,執(zhí)行了圖34所示的步驟S1的列擴散運算和步驟S2的行擴散運算。步驟S1的列擴散運算通過以下運算公式來表示:MC[MD]=MC[MD,MD,MD,MD]。步驟S2的行擴散運算通過以下運算公式來表示:MR[MD]=MR[MD,MD,MD,MD]。換言之,在圖34的步驟S1的列擴散運算中,執(zhí)行了將相同的哈達馬(Hadamard)MDS矩陣MD應用于由4位元素構成的4×4狀態(tài)表達數據的全部四列的矩陣運算。在步驟S2的行擴散運算中,執(zhí)行了將相同的哈達馬(Hadamard)MDS矩陣MD應用于由4位元素構成的4×4狀態(tài)表達數據的全部四行的矩陣運算。換言之,由列擴散運算MC[MD]和行擴散運算MR[MD]的連續(xù)處理形成的函數G具有對合性質,并且正向函數G和反向函數G-1是相同的。因此,通過重復執(zhí)行運算兩次,計算出初始值。進一步地,通過應用了在密鑰轉換部723中執(zhí)行的矩陣MD的列擴散運算MC[MD]和應用了矩陣MD的行擴散運算MR[MD],在輸入狀態(tài)與輸出狀態(tài)的全部元素之間執(zhí)行數據擴散,即“全擴散轉換”。通過將具有全擴散性質的輪密鑰輸入至加密處理部并且執(zhí)行與轉換目標數據的異或,提高了轉換數據的擴散性能,而且實現了安全性較高的加密處理。由輪密鑰供應部721執(zhí)行的輪密鑰供應配置具有以下兩種性質:(1)全擴散性質,在該全擴散性質中實現了全擴散轉換;以及(2)對合性質,在該對合性質中,正向函數G和反向函數G-1是相同的。如上所述,根據這兩種特點取得了以下效果:基于實現全擴散轉換的全擴散性質,利用較少的輪實現了關于轉換目標數據的密鑰數據配置信息的擴散,從而確保了較高的擴散性能而不依賴于輪函數(R)的處理。換言之,利用較少的輪實現了抗攻擊性能高的安全加密處理。從而,實現了高速處理或者減輕重量。作為基于對合性質的效果,可以是重復使用一個密鑰轉換部的配置,并且在展開安裝或者輪安裝中都實現了硬件的微型化。在圖72所示的示例中,輪密鑰供應部721按照以下序列輸出密鑰:密鑰K1;密鑰K2;轉換密鑰Kd1;換密鑰Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;異或運算轉換密鑰Kd1(+)Kd2;異或運算密鑰K1(+)K2;轉換密鑰Kd2;轉換密鑰Kd1;密鑰K2;以及密鑰K1。按照該序列,輸出六種密鑰。輸入至加密處理部750的輪密鑰K1至K13是通過使用上述密鑰或者運行常數CON來生成的。在位于加密處理部750的中央位置處的線性轉換部P2之前和之后,將異或運算轉換密鑰Kd1(+)Kd2重復用作輪密鑰K。輪密鑰RK8、RK10和RK12是通過對由常數供應部725提供的常數CON和由輪密鑰供應部721提供的密鑰執(zhí)行異或來生成的。這些密鑰的輸入序列和上面參照圖59所述的序列相同,并且其相反序列也是相同的序列。這就意味著,在從密文C生成明文P的解密處理中,輪密鑰供應部721可以按照和在從明文P生成密文C的加密處理中的密鑰輸入序列相同的序列來生成和輸出密鑰。這就意味著應用于加密處理和解密處理的硬件或者程序可以是共用的,從而使設置有助于裝置的輕重量(微型化)。在密鑰調度部720中設置的常數供應部725根據上面在項[6.通過常數輸入實現安全性提高的配置]中參照圖53至圖59所述的處理來執(zhí)行常數供應處理。在該圖所示的示例中,利用由輪密鑰供應部在生成以下輪密鑰時生成的密鑰數據,對常數(CON)進行異或運算:輪密鑰RK8;輪密鑰RK10;以及輪密鑰RK12。換言之,輪密鑰RK8=Kd1(+)Kd2(+)CON;輪密鑰RK10=Kd2(+)CON;以及輪密鑰RK12=K2(+)CON。進一步地,(+)指異或運算。作為輸入常數(CON)的處理的結果,輸入至加密處理部750的輪密鑰RK1至RK13的設置如下:RK1=K1;RK2=K2;RK3=Kd1;RK4=Kd2;RK5=K1(+)K2;RK6=Kd1(+)Kd2;RK7=K1(+)K2;RK7=K1(+)K2;RK8=Kd1(+)Kd2(+)CON;RK9=K1(+)K2;RK10=Kd2(+)CON;RK11=Kd1;RK12=K2(+)CON;以及RK13=K1。進一步地,(+)指異或運算。RK7設置為:在線性轉換部(P2)之前和之后兩次輸入相同的輪密鑰。通過這種方式,利用由輪密鑰供應部在生成輪密鑰時生成的密鑰,對常數(CON)進行異或處理。除了輪密鑰之外,可以將常數輸入至加密處理部的異或部,并且可以執(zhí)行與轉換數據的異或處理。在這種情況下的結果是相同的。作為常數(CON),如上所述,使用了如下常數(CON),在該常數(CON)中,常數CON上的矩陣運算和與輸入有常數CON的加密處理部的異或部相鄰的線性轉換部中應用的線性轉換矩陣的結果的所有元素均非零,即,不為零的值。在該配置中,防止了由線性轉換部的線性轉換引起的差值的減少。從而,可以防止差分活躍S盒的最小數量的減少。從而,實現了抗各種攻擊性能高、安全性高的加密處理配置。進一步地,在加密處理部750中設置的非線性轉換部具有如下配置:設置了如上面在項[7.應用于非線性轉換部的S盒的具體配置的示例]中參照圖64至圖66所述的多個盒(S盒)和具有對合性質的4位輸入與輸出k。如上所述,加密處理部750具有包括了轉換函數E、線性轉換部和轉換函數E-1的配置。通過實現在轉換函數E-和轉換函數E的非線性轉換部中使用圖64至圖66所示的S盒的配置,實現了整個加密處理部的對合性質。[9.加密處理裝置的安裝示例]最后,將對根據上述實施例的執(zhí)行加密處理的加密處理裝置的安裝示例進行說明。根據上述實施例的執(zhí)行加密處理的加密處理裝置可以安裝在執(zhí)行加密處理的各種信息處理設備上。具體地,加密處理裝置可以使用在執(zhí)行與數據處理或者通信處理相關聯的加密處理的各種設備中,諸如PC、TV、錄音機、播放器、通信設備、RFID、智能卡、傳感器網絡設備、電池/蓄電池認證模塊、醫(yī)療設備和獨立網絡設備。IC模塊800的配置的示例在圖73中圖示為執(zhí)行根據本公開的加密處理的設備的示例。上述處理可以在各種信息處理設備諸如PC、IC卡、讀寫器、智能手機和可穿戴裝置中執(zhí)行。圖73所示的IC模塊可以配置在各種設備中。圖73所示的中央處理單元(CPU)801是執(zhí)行加密處理的開始或者結束、對數據傳輸和接收的控制、對組成單元之間的數據傳輸的控制、以及各種程序的處理器。存儲器802是通過,例如,存儲固定數據諸如由CPU801執(zhí)行的程序或者運行參數的只讀存儲器(ROM)或者用作在CPU801的處理中執(zhí)行的程序和在程序處理中適當改變的參數的存儲區(qū)或者工作區(qū)的隨機存取存儲器來實現的。存儲器802可以用作加密處理需要的密鑰數據、在加密處理中應用的轉換表(代換表)、應用于轉換矩陣的數據等的存儲區(qū)。該數據存儲區(qū)優(yōu)選地配置為具有防篡改結構的存儲器。加密處理部803具有上述的加密處理配置,并且根據公用密鑰塊加密處理算法執(zhí)行加密處理和解密處理。此處,已經對將加密處理部設置為單獨模塊的示例進行了說明。例如,加密處理程序可以配置為存儲在ROM中,而CPU801可以配置為在不設置獨立的加密處理模塊的情況下讀取并執(zhí)行ROM中存儲的程序。隨機數生成器804執(zhí)行生成密鑰生成所需的隨機數或者加密處理中所需的隨機數等的處理。收發(fā)部805是數據通信處理部,該數據通信處理部執(zhí)行與外界的數據通信并且執(zhí)行與IC模塊諸如讀寫器的數據通信以輸出在IC模塊中生成的密文或者來自諸如外部讀寫器等設備的輸入數據。在上述實施例中描述的加密處理裝置不僅可以適用于對作為輸入數據的明文進行加密的加密處理,而且可以適用于將作為輸入數據的密文恢復到明文的解密處理。在上述實施例中描述的配置可以適用于加密處理和解密處理。圖74是圖示進行根據本公開的加密處理的智能手機900的示意性配置的示例的框圖。智能手機900包括處理器901、存儲器902、存儲裝置903、外部連接接口904、攝像頭906、傳感器907、麥克風908、輸入裝置909、顯示裝置910、揚聲器911、無線通信接口913、天線開關914、天線915、總線917、蓄電池918和輔助控制器919。處理器901可以是,例如,CPU或者片上系統(tǒng)(SoC),而且控制智能手機900的應用層和另一層的功能并控制加密處理。存儲器902包括RAM和ROM,并且存儲由處理器901執(zhí)行的程序和數據。進一步地,存儲器902可以用作加密處理需要的密鑰數據、在加密處理中應用的轉換表(代換表)、應用于轉換矩陣的數據等的存儲區(qū)。該數據存儲區(qū)優(yōu)選地配置為具有防篡改結構的存儲器。存儲裝置903可以包括諸如半導體存儲器和硬盤等存儲介質。外部連接接口904是用于將諸如存儲卡和通用串行總線(USB)裝置等外部裝置連接至智能手機900的接口。攝像頭906包括諸如電荷耦合器件(CCD)和互補金屬氧化物半導體(CMOS)等圖像傳感器,并且生成捕捉圖像。傳感器907可以包括一組傳感器,諸如測量傳感器、陀螺儀傳感器、地磁傳感器和加速度傳感器。麥克風908將輸入至智能手機900的聲音轉換成音頻信號。利用攝像頭906生成的圖像或者由傳感器907獲得的傳感器數據和由麥克風908獲得的音頻信號可以通過處理器901來加密,并且可以經由無線通信接口913傳輸至另一設備。輸入裝置909包括,例如,配置為顯示裝置910的屏幕上的觸控的觸控傳感器、按鍵、鍵盤、按鈕或者開關,并且接收來自用戶的操縱或者信息輸入。顯示裝置910包括屏幕,諸如液晶顯示器(LCD)和有機發(fā)光二極管(OLED)顯示器,并且顯示出智能手機900的輸出圖像。揚聲器911將從智能手機900輸出的音頻信號轉換成聲音。無線通信接口913實行無線通信,并且通??梢园ɑ鶐幚砥?、射頻(RF)電路和功率放大器。無線通信接口913可以是單片模塊,在該單片模塊中集成有存儲通信控制程序的存儲器、執(zhí)行該程序的處理器和相關電路。無線通信接口913可以支持不同種類的無線通信方案,諸如,除了無線LAN方案之外,短距離無線通信方案、鄰近無線通信方案和蜂窩通信方案。總線917將處理器901、存儲器902、存儲裝置903、外部連接接口904、攝像頭906、傳感器907、麥克風908、輸入裝置909、顯示裝置910、揚聲器911、無線通信接口913和輔助控制器919相互連接。蓄電池918經由饋電線為圖74所示的智能手機900的各個塊供電,饋電線在圖中部分地圖示為虛線。輔助控制919,例如,在睡眠模式下運行智能手機900的最少必要功能。在上述實施例中描述的智能手機中的加密處理不僅可以適用于對作為輸入數據的明文進行加密的加密處理,而且可以適用于將作為輸入數據的密文恢復到明文的解密處理。在上述實施例中描述的配置可以適用于加密處理和解密處理。圖73所示的IC模塊800可以安裝在圖74所示的智能手機900上,這樣可以在IC模塊800中執(zhí)行根據上述實施例的加密處理。[10.本公開的構造的總結]到目前為止,已經參照具體實施例對本公開的實施例進行了詳細說明。但是,應該注意的是,在不脫離本公開的范圍的情況下,對本領域技術人員而言各種變型和替代實施例會變得顯而易見。換言之,應該注意的是,本公開是通過實施例來公開的,但是并不詮釋為受這些實施例的限制。為了確定本公開的范圍,需要考慮權利要求書的范圍。此外,在本文中公開的當前技術也可以如下配置:(1)一種加密處理裝置,其包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。(2)根據(1)所述的加密處理裝置,其中,加密處理部對常數和轉換目標數據或者常數和輪密鑰執(zhí)行異或運算作為應用常數的輪運算。(3)根據(1)或者(2)所述的加密處理裝置,其中,配置為執(zhí)行輪運算的輪運算部包括配置為執(zhí)行線性轉換處理的線性轉換處理部,以及加密處理部將常數輸入至與線性轉換處理部互相關的異或部,并且執(zhí)行與轉換目標數據或者輪密鑰的異或運算。(4)根據(3)所述的加密處理裝置,其中,輸入數據和常數是由m×n個元素形成的狀態(tài),各個元素是1位或者多位元素,線性轉換部具有執(zhí)行有矩陣運算的配置,在該矩陣運算中,將線性轉換矩陣應用于狀態(tài),以及該常數是滿足如下條件的狀態(tài):對常數和由與輸入有常數的異或部互相關的線性轉換處理部在線性轉換處理中應用的線性轉換矩陣的矩陣運算產生的狀態(tài)的所有構成元素均非零。(5)根據(3)或者(4)所述的加密處理裝置,其中,輸入數據和常數是由4×4個元素形成的狀態(tài),各個元素是4位元素,線性轉換部具有執(zhí)行有矩陣運算的配置,在該矩陣運算中,將線性轉換矩陣應用于狀態(tài),以及該常數是滿足如下條件的4×4狀態(tài):對常數和由與輸入有常數的異或部相鄰位置處的線性轉換處理部在線性轉換處理中應用的線性轉換矩陣的矩陣運算產生的狀態(tài)的所有構成元素均非零。(6)根據(3)至(5)中任一項所述的加密處理裝置,其中,線性轉換部執(zhí)行列擴散運算和行擴散運算中的一個矩陣運算,在該列擴散運算中通過以狀態(tài)的各列元素為單位應用矩陣來執(zhí)行線性轉換,在該行擴散運算中通過以狀態(tài)的各行元素為單位應用矩陣來執(zhí)行線性轉換。(7)根據(1)至(6)中任一項所述的加密處理裝置,其中,配置為執(zhí)行輪運算的輪運算部包括配置為執(zhí)行線性轉換處理的線性轉換處理部,以及加密處理部每隔一輪將常數輸入至與線性轉換處理部互相關的異或部,并且執(zhí)行與轉換目標數據或者輪密鑰的異或運算。(8)根據(1)至(7)中任一項所述的加密處理裝置,其中,加密處理部具有對合性質的配置,在該對合性質中,通過使用明文P作為輸入數據來重復輪運算并且輸出密文C作為輸出數據,并且,通過數據轉換處理可將明文P生成為輸出數據,在該數據轉換處理中,按照相反的順序設置使用密文C作為輸入數據的輪運算的執(zhí)行序列。(9)根據(1)至(8)中任一項所述的加密處理裝置,其中,密鑰調度部具有如下配置:密鑰供應處理具有對合性質,在該對合性質中,密文C由明文P生成的情況的密鑰供應序列與明文P由密文C生成的情況的密鑰供應序列匹配。(10)根據(1)至(9)中任一項所述的加密處理裝置,其中,當執(zhí)行針對加密處理部的密鑰供應處理時,密鑰調度部根據常數對一些供應的密鑰執(zhí)行運算,并且輸出由對加密處理部的運算產生的密鑰數據。(11)根據(1)至(10)中任一項所述的加密處理裝置,其中,由加密處理部重復執(zhí)行的輪運算是包括由線性轉換部進行的線性轉換處理的運算,以及線性轉換部根據輪過渡來改變線性轉換形式。(12)根據(1)至(11)中任一項所述的加密處理裝置,其中,輪運算包括非線性轉換處理,以及執(zhí)行非線性轉換處理的S盒具有對合性質的配置,在該對合性質中,通過再輸入從輸入值獲得的輸出值來獲取輸入值。(13)一種加密處理裝置,其包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1,以及加密處理部具有如下配置:在函數E和反函數E-1中都執(zhí)行輪運算,在輪運算中應用一次或者多次常數,并且在函數E和反函數E-1的非對應位置處設置常數應用位置。(14)根據(13)所述的加密處理裝置,其中,加密處理部對常數和轉換目標數據或者常數和輪密鑰執(zhí)行異或運算作為應用常數的輪運算。(15)根據(13)或者(14)所述的加密處理裝置,其中,配置為執(zhí)行輪運算的輪運算部包括配置為執(zhí)行線性轉換處理的線性轉換處理部,以及加密處理部將常數輸入至與線性轉換處理部互相關的異或部,并且執(zhí)行與轉換目標數據或者輪密鑰的異或運算。(16)根據(15)所述的加密處理裝置,其中,輸入數據和常數是由m×n個元素形成的狀態(tài),各個元素是1位或者多位元素,線性轉換部具有執(zhí)行有矩陣運算的配置,在該矩陣運算中,將線性轉換矩陣應用于狀態(tài),以及該常數是滿足如下條件的狀態(tài):對常數和由與輸入有常數的異或部互相關的線性轉換處理部在線性轉換處理中應用的線性轉換矩陣的矩陣運算產生的狀態(tài)的所有構成元素均非零。(17)一種在加密處理裝置中執(zhí)行的加密處理方法,其中,該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。(18)一種在加密處理裝置中執(zhí)行的加密處理方法,其中,該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;加密處理部具有如下配置:在函數E和反函數E-1的非對應位置處設置常數應用位置;并且加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中都一次或者多次應用常數。(19)一種用于使加密處理裝置執(zhí)行加密處理方法的程序,其中,該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。(20)一種用于使加密處理裝置執(zhí)行加密處理方法的程序,其中,該加密處理裝置包括:加密處理部,其配置為對輸入數據執(zhí)行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部,其中,加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;加密處理部具有如下配置:在函數E和反函數E-1的非對應位置處設置常數應用位置;并且該程序使加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中都一次或者多次應用常數。在本說明書中描述的一系列處理可以由硬件、軟件或者硬件和軟件的組合配置來執(zhí)行。當處理是由軟件來執(zhí)行時,記錄有處理序列的程序可以安裝在嵌入待執(zhí)行的專用硬件的計算機中的存儲器中,或者該程序可以安裝在能夠執(zhí)行各種待執(zhí)行處理的通用計算機中。例如,該程序可以預先記錄在記錄介質中。該程序可以從記錄介質安裝在計算機中,而且該程序也可以經由諸如局域網(LAN)或者因特網等網絡來接收并可以安裝在諸如內置硬盤等記錄介質中。本說明書中描述的各種處理可以根據描述按照時間順序來執(zhí)行,也可以根據執(zhí)行程序的設備的處理性能或者必要時并行地或者單獨地執(zhí)行。本說明書中的系統(tǒng)是多種設備的邏輯設置配置,但是并不限于各配置均處于同一外殼內的情況。[工業(yè)實用性]如上所述,根據本公開的實施例的配置,實現了安全性好、抗各種攻擊性能高的加密處理。具體地,加密處理裝置包括:加密處理部,其配置為對輸入數據重復進行輪運算并且生成輸出數據;以及密鑰調度部,其配置為將待由加密處理部應用于輪運算中的輪密鑰輸出至加密處理部。該加密處理部具有對合性質,在該對合性質中,順序地執(zhí)行數據轉換函數E和數據轉換函數E的反函數E-1;并且該加密處理部執(zhí)行輪運算,在該輪運算中,在函數E和反函數E-1中的一個中一次或者多次應用常數。該常數配置為滿足如下條件的狀態(tài):由與輸入有常數的異或部相鄰位置處的線性轉換處理部在線性轉換處理中應用的對線性轉換矩陣的矩陣運算產生的狀態(tài)的所有構成元素均非零。通過本配置實現了抗各種攻擊性能提高了的、安全性高的加密處理配置。附圖標記列表:100加密處理裝置110密鑰調度部120加密處理部121異或部122非線性轉換部123線性轉換部201線性轉換部P1202線性轉換部P2203線性轉換部P3300密鑰調度部301密鑰供應部(密鑰寄存器)302密鑰轉換部320加密處理部321至327異或部331,333異或部332非線性/線性轉換部(S&P)350加密處理部351異或部352非線性/線性轉換部(S&P)360密鑰調度部361,362密鑰寄存器363密鑰轉換部371密鑰寄存器372密鑰轉換部381密鑰寄存器391密鑰寄存器392,394異或部393密鑰轉換部401輪運算執(zhí)行部402常數輸入部411轉換函數E412線性轉換部413轉換函數E-1431轉換函數E432線性轉換部433轉換函數E-1435常數輸入部436異或部437線性轉換部451轉換函數E452線性轉換部453轉換函數E-1521非線性轉換層1522線性轉換層523非線性轉換層700加密處理裝置720密鑰調度部721輪密鑰供應部722密鑰寄存器723密鑰轉換部725常數輸入部750加密處理部751異或部752非線性轉換部753線性轉換部800IC模塊801CPU(中央處理單元)802存儲器803加密處理部804隨機數生成部805收發(fā)部900智能手機901處理器902存儲器903存儲裝置904外部連接接口906攝像頭907傳感器908麥克風909輸入裝置910顯示裝置911揚聲器913無線通信接口914天線開關915天線917總線918蓄電池919輔助控制器。當前第1頁1 2 3