採用Feistel-PG結構的密碼裝置及加密方法
2023-05-13 03:45:16
專利名稱:採用Feistel-PG結構的密碼裝置及加密方法
技術領域:
本發明提出了一種採用FeiStel-PG加密結構的密碼裝置及加密方法,可應用於設計各種參數下的密碼算法,可以使得密碼算法的設計更靈活,並可以在同等安全強度下擁有更低的實現代價,屬於通信技術領域。
背景技術:
密碼算法的設計一直是密碼學研究的熱點,其設計都是基於Shannon提出的混淆和擴散原則。混淆原則使密文與密鑰之間的統計關係複雜化,使得利用密文無法得到密鑰的統計特徵。擴散原則將明文的統計特徵散布到密文中,使得每一比特的密文與明文的若干比特相關。密碼算法設計的核心是算法的結構,算法的結構決定了算法整體的密碼學性質及其實現性能。目前常見的分組密碼算法的結構有SP結構、Feistel結構和廣義Feistel結構等。SP結構由密鑰加、混淆層和擴散層三部分組成。通常,混淆層由一些S盒並置構成,S盒必須是雙射,密鑰加是指輪子密鑰和輪輸入做異或操作。密碼算法的加解密性質要求SP結構的混淆層和擴散層必須可逆,這對設計SP結構的算法提出了一個基本的要求,同時,SP結構輪函數的輸入長度與算法整體的輸入長度相同,輪函數相對複雜。高級加密標準AES算法就是採用SP結構的典型代表。Feistel結構是分組密碼另外一個常用的結構,如
圖1所示,其使用的仍然是輪密鑰加、S盒層和置換層,只不過Feistel結構將算法的輸入分為左右兩個相等的部分,輪函數的輸入長度只有算法整體輸入長度的一半,同時因為Feistel結構的可逆性導致輪函數不需要可逆也能實現算法的解密。所以,Feistel結構的優勢在於可以利用不可逆的函數構造整體可逆的函數。Feistel輪函數的結構為
權利要求
1.一種密碼裝置,其特徵在於包括一採用FeiStel-PG加密結構的處理器, 所述Feistel-PG加密結構由輪函數F構成,所述輪函數F將輸入X經過線性變換P和非線性變換G映射為U,即X — U,其中U=G (P (X))且輸入X和輸出U均為t XkXm比特的串,其中t,k,m均為正整數; 所述線性變換P是基於t XkXm比特串的置換,是t Xm個k比特串的位置變換; 所述非線性變換G是基於kXm比特串的t個非線性變換T的並置; 所述非線性變換T是基於kXm比特串的非線性變換,非線性變換T將Ov1,…,U1, U0)經過S盒層和線性變換A變為
2.如權利要求1所述的密碼裝置,其特徵在於所述處理器為8位、32位、64位處理器中的一種。
3.如權利要求1所述的密碼裝置,其特徵在於所述置換P為tXm個k比特串的換位變換,且不同的P構成不同的輪函數。
4.如權利要求1所述的密碼裝置,其特徵在於根據t、m、k的不同選取構成不同的輪函數。
5.如權利要求1所述的密碼裝置,其特徵在於選取不同的t、m、k和線性變換P構成不同的輪函數。
6.一種採取權利要求1所述密碼裝置的加密方法,其特徵在於包括輪密鑰加、線性變換P和非線性變換G,該方法的步驟包括 1)將每一輪的輸入M平均分成兩個部分,分別記為左半支L與右半支R,其中M為2XtXkXm比特的串,L與R均為tXkXm比特的串; 2)輸入的左半支L與輪密鑰RKi,(I ^ i ^ r)進行異或,異或之後的輸出作為線性變換P的輸入; 3)線性變換P的輸出作為非線性變換G的輸入; 4)非線性變換G將輸入平均分成t個部分,每個部分均有kXm比特,每個部分分別進入t個相同的非線性變換T中; 5)每個非線性變換T將輸入的kXm比特平均分成m個部分,每個部分分別進入m個相同的s盒,其中s盒為k入k出的置換; 6)m個s盒輸出的kXm比特作為線性變換A的輸入; 7)每個線性變換A的輸出作為每個非線性變換T的輸出; 8)t個非線性變換T的輸出的並置作為非線性變換G的輸出; 9)非線性變換G的輸出與輸入的右半支R的異或作為下一輪輸入的左半支,輸入的左半支L作為下一輪輸入的右半支; 10)如步驟I)至9)所述為一輪輪函數,將輸入明文W經過輪函數迭代r輪後輸出為密文。
7.如權利要求6所述的加密方法,其特徵在於所述處理器為8位、32位、64位處理器中的一種。
8.如權利要求6所述的加密方法,其特徵在於所述置換PStXmfk比特串的換位變換,且不同的P構成不同的輪函數。
9.如權利要求6所述的加密方法,其特徵在於根據t、m、k的不同選取構成不同的輪函數。
10.如權利要求6所述的加密方法,其特徵在於選取不同的t、m、k和線性變換P構成不同的輪函數。
全文摘要
本發明公開了一種採用Feistel-PG結構的密碼裝置及加密方法。所述Feistel-PG結構由輪函數F組成輪函數F將一個t×k×m比特的串映射為一個t×k×m比特的串,將輸入X經過線性變換P和非線性變換G映射為U;線性變換P是基於t×k×m比特串的置換,是t×m個k比特字的位置變換;非線性變換G是t個基於k×m比特串的非線性變換的並置;非線性變換T是基於k×m比特串的非線性變換,T將(um-1,…,u1,u0)經過S盒層和線性變換A變為A(S(um-1,…,u1,u0)),其中S盒層是由m個k×k的s盒並置而成,線性變換A是基於k×m比特串的線性變換。採用Feistel-PG加密結構的加密方法包括輪密鑰加、線性變換P和非線性變換G,將明文W迭代r輪後的輸出作為密文。本發明可使密碼算法設計更靈活,且能在相同的安全強度下具有更低的實現代價。
文檔編號H04L9/06GK103051442SQ20121050141
公開日2013年4月17日 申請日期2012年11月29日 優先權日2012年10月16日
發明者吳文玲, 張蕾, 於曉麗 申請人:中國科學院軟體研究所