采用Feistel-PG结构的密码装置及加密方法

文档序号:7867078阅读:967来源:国知局
专利名称:采用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日
发明者吴文玲, 张蕾, 于晓丽 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1