可随机更换的非线性正形置换生成器的制作方法

文档序号:2400584阅读:724来源:国知局
专利名称:可随机更换的非线性正形置换生成器的制作方法
技术领域
本发明涉及用于密码设计的装置,特别涉及可随机更换的非线性正形置换生成器。
背景技术
众所周知,分组密码的设计实际上是生成在密钥控制之下的大集合随机置换,该随机置换由基础置换迭代与乘积生成。随机置换的随机原因可由两种逻辑生成一种为内在因素,例如混沌逻辑;另一种为外在因素,例如带有外来输入的多输出布尔逻辑。基于混沌逻辑生成的置换由于受计算精度的影响,目前仍在预研阶段。基于带有外来输入的多输出布尔逻辑设计的分组密码是当前实际使用的分组密码算法的主流,这类分组密码算法主要包括两种结构一种是SP结构,另一种是Feistel结构。
基于SP(代替和置换)结构设计的分组密码算法主要代表是AES算法等,此类为差分马氏链密码算法,虽然其为当前美国加密算法标准,但其仍有以下两个主要缺点一为其是简单的基础置换乘积密码算法,没有基础置换的迭代因素;二为其代数次数较低,代数攻击方法攻击复杂度低于密钥枚举攻击复杂度。
基于Feistel结构设计的分组密码算法主要代表是DES、3-DES、CAST算法。基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好。
上述两类结构的分组密码算法的S-盒是固定不变的。

发明内容
本发明的目的是解决基于SP(代替和置换)结构设计的分组密码算法是简单的基础置换乘积密码算法,没有基础置换的迭代因素;且其代数次数较低,代数攻击方法攻击复杂度低于密钥枚举攻击复杂度;基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好的问题和不足,提供一种代数次数高、具有良好的密码学特性的可随机更换的非线性正形置换生成器。
为解决上述问题,本发明采用如下技术方案该可随机更换的非线性正形置换生成器,通过下述步骤实现(1)构造满足正形置换的函数fi(xi+1,…,xi+n-1),其中i为拍,i=0,1,...,s-1;(2)任意给定置换Ti;(3)对fi(xi+1,…,xi+n-1)的值进行Ti运算得Ti(fi(xi+1,…,xi+n-1));(4)再实施Ti(fi(xi+1,…,xi+n-1))得xi+n,其中可以是“”或“+”。
根据上述本发明技术方案,该可随机更换的正形置换生成器是置换的迭代,每拍与每轮都是正形置换,代数次数高,克服了基于SP结构设计的分组密码算法简单的基础置换乘积以及代数次数低的缺点。众所周知,正形置换是完全映射,其具有良好的密码学特性,克服了基于Feistel结构设计的分组密码算法基本置换的密码学性质不够良好的缺点。该可随机更换的正形置换生成器为高次大集合可随机更换的正形置换生成器。


图1是本发明所述可随机更换的非线性正形置换生成器一步迭代逻辑框图。
具体实施例方式
下面是对发明内容实现步骤的注释[1]如fi(x1,...,xn-1)=ai1x1...ain-1xn-1,其中aij∈Z2e]]>通过如下方式所确定是给定的常数,则fi(x1,...,xn-1)称为满足正形置换的函数。
Ti是任意给定的Z2e;上的置换,i=0,1,...,s-1,j=1,2,...,n-1。记F=(f0,f1,...,fs-1),T=(T0,T1,...,Ts-1)。一个由F,T定义的Z2en上的高次大集合可随机更换的正形置换生成器的输入变量为(x0,x1,...,xn-1),其中x0,x1,...,xn-1∈Z2e.]]>以(x0,x1,...,xn-1)为初始值作序列迭代xn+i=xiTi(fi(xi+1,...,xi+n-1)),i=0,1,...,s-1,得到(xs,xs+1,...,xs+n-1),定义Z2en到Z2en上的映射
′s Z2en→Z2en(x0,x1,...,xn-1)→(xs,xs+1,...,xs+n-1)由xi=xn+iTi(fi(xi+1,...,xi+n-1)),i=s-1,...,1,0,可见该变换是可逆的,说明′s是Z2en上的一个置换。其中,线性函数组F称为线性合成函数序列,置换组T称为合成置换序列。
设λi(x)=ai1x+ai2x2+…+ai(n-1)xn-1,且λi(x)≡gi(x)=bi0+bi1x+...+bi,s-1xs-l(mod xs-1),其中,bij=Σk=0n/saks+j,]]>i,j=0,1,...,s-1。可以得到矩阵 设s|n,当且仅当B′作为模2域上矩阵是可逆阵时,′s为正形置换。
设s|n,当n是偶数时,若λi(x)≡x+x2+...+xn-1(mod 2),i=0,1,...,s-1。则对任意置换T,′s是正形置换。
高次大集合可随机更换的正形置换生成器,其中高次是指对称群Sl中的l非常大;大集合是指可生成的正形置换集合非常大;可随机更换是指Ti为任意置换的情况下,都生成正形置换。
下面算法是基于本发明的原理实现的,其具体实现方法如下本算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
用Z2e表示e-比特的向量集,Z232中的元素称为字,Z28中的元素称为字节。
S盒为固定的8比特输入8比特输出的置换,记为Sbox(.)。
基本运算在本算法中采用了以下基本运算 32比特异或
<<<i 32比特循环左移i位。
密钥及密钥参量加密密钥长度为128比特,表示为MK=(MK0,MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。
轮密钥表示为(rk0,rk1,...,rk31),其中rki(i=0,...,31)为字。轮密钥由加密密钥生成。
FK=(FK0,FK1,FK2,FK3)为系统参数,CK=(CK0,CK1,...,CK31)为固定参数,用于密钥扩展算法,其中FKi(i=0,...,31)、CKi(i=0,...,31)为字。
轮函数F本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。
设输入为(X0,X1,X2,X3)∈(Z232)4,]]>轮密钥为rk∈Z232,]]>则轮函数F为F(X0,X1,X2,X3,rk)=X0T(X1X2X3rk)合成置换TTZ232→Z232,是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。
非线性变换ττ由4个并行的S盒构成。
设输入为A=(a0,a1,a2,a3)∈(Z28)4,]]>输出为B=(b0,b1,b2,b3)∈(Z28)4,]]>则(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))线性变换L非线性变换τ的输出是线性变换L的输入。设输入为B∈Z232,]]>输出为C∈Z232,]]>则C=L(B)=B(B<<<2)(B<<<10)(B<<<18)(B<<<24)
S盒S盒中数据均采用16进制表示。

例输入‘ef’,则经S盒后的值为表中第e行和第f列的值,Sbox(‘ef’)=‘84’。
加/解密算法定义反序变换R为R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z232,]]>i=0,1,2,3。
设明文输入为(X0,X1,X2,X3)∈(Z232)4,]]>密文输出为(Y0,Y1,Y2,Y3)∈(Z232)4,]]>轮密钥为rki∈Z232,]]>i=0,1,2,…,31。则本算法的加密变换为Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=XiT(Xi+1Xi+2Xi+3rki),i=0,1,…,31.
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。
本算法解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。
加密时轮密钥的使用顺序为(rk0,rk1,...,rk31)..
解密时轮密钥的使用顺序为(rk31,rk30,...,rk0)密钥扩展算法本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。
加密密钥MK=(MK0,MK1,MK2,MK3),MKi∈Z232,]]>i=0,1,2,3;令Ki∈Z232,]]>i=0,1,...,35,轮密钥为rki∈Z232,]]>i=0,1,...,31,则轮密钥生成方法为首先,(K0,K1,K2,K3)=(MK0FK0,MK1FK1,MK2FK2,MK3FK3)然后,对i=0,1,2,...,31rki=Ki+4=KiT′(Ki+1Ki+2Ki+3CKi)说明(1)T′变换与加密算法轮函数中的T基本相同,只将其中的线性变换L修改为以下L′L′(B)=B(B<<<13)(B<<<23);(2)系统参数FK的取值,采用16进制表示为FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC)(3)固定参数CK的取值方法为设cki,j为CKi的第j字节(i=0,1,...,31;j=0,1,2,3),即CKi=(cki,0,cki,1,cki,2,cki,3)∈(Z28)4,]]>则cki,j=(4i+j)×7(mod 256)。32个固定参数CKi,其16进制表示为00070e15,1c232a31,383f464d,545b6269,70777e85,8c939aa1,a8afb6bd,c4cbd2d9,e0e7eef5,fc030a11,181f262d,343b4249,50575e65,6c737a81,888f969d,a4abb2b9,c0c7ced5,dce3eaf1,f8ff060d,141b2229,30373e45,4c535a61,686f767d,848b9299,a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,10171e25,2c333a41,484f565d,646b7279
上述具体实施方式
以较佳实施例对本发明进行了说明,但这只是为了便于理解而举的形象化的实例,不应被视为是对本发明范围的限制。同样,根据本发明的技术方案及其较佳实施例的描述,可以做出各种可能的等同改变或替换,而所有这些改变或替换都应属于本发明权利要求的保护范围。
权利要求
1.一种可随机更换的非线性正形置换生成器,其特征在于,所述正形置换生成器通过下述步骤实现(1)构造满足正形置换的函数fi(xi+1,...,xi+n-1),其中i为拍,i=0,1,...,s-1;(2)任意给定置换Ti;(3)对fi(xi+1,...,xi+n-1)的值进行Ti运算得Ti(fi(xi+1,...,xi+n-1));(4)再实施Ti(fi(xi+1,...,xi+n-1))得xi+n,其中可以是“”或“+”。
2.根据权利要求1所述的可随机更换的非线性正形置换生成器,其特征在于,fi(x1,...,xn-1)=ai1x1...ain-1xn-1,其中aij∈Z2e]]>通过如下方式所确定是给定的常数,fi(x1,...,xn-1)称为满足正形置换的函数;Ti是任意给定的Z2e上的置换,i=0,1,...,s-1,j=1,2,...,n-1;记F=(f0,f1,...,fs-1),T=(T0,T1,...,Ts-1);一个由F,T定义的Z2en上的可随机更换的正形置换生成器的输入变量为(x0,x1,...,xn-1),其中x0,x1,...,xn-1∈Z2e;]]>以(x0,x1,...,xn-1)为初始值作序列迭代xn+i=xiTi(fi(xi+1,...,xi+n-1)),i=0,1,...,s-1,得到(xs,xs+1,...,xs+n-1),定义Z2en到Z2en上的映射′sZ2en→Z2en]]>(x0,x1,...,xn-1)→(xs,xs+1,...,xs+n-1)由xi=xn+iTi(fi(xi+1,...,xi+n-1)),i=s-1,...,1,0,可见该变换是可逆的,说明′s是Z2en上的一个置换;其中,线性函数组F称为线性合成函数序列,置换组T称为合成置换序列;设λi(x)=ai1x+ai2x2+…+ai(n-1)xn-1,且λi(x)≡gi(x)=bi0+bi1x+...+bi,s-1xs-1(mod xs-1),其中,bij=Σk=0n/saks+j,i,j=0,1,...,s-1,]]>可以得到矩阵 设s|n,当且仅当B′作为模2域上矩阵是可逆阵时,′s为正形置换;设s|n,当n是偶数时,若λi(x)≡x+x2+...+xn-1(mod 2),i=0,1,...,s-1;则对任意置换T,′s是正形置换。
3.根据权利要求1所述的可随机更换的非线性正形置换生成器,其特征在于,其中线性函数组F为线性合成函数序列,置换组T为合成置换序列。
4.根据权利要求1或2所述的可随机更换的非线性正形置换生成器,其特征在于,其中算法的分组长度为128比特。
5.根据权利要求4所述的可随机更换的非线性正形置换生成器,其特征在于,其中密钥长度为128比特。
6.根据权利要求5所述的可随机更换的非线性正形置换生成器,其特征在于,其中加密算法与密钥扩展算法都采用32轮非线性迭代结构。
7.根据权利要求6所述的可随机更换的非线性正形置换生成器,其特征在于,基中异或运算是32比特异或,其中循环移位运算是32比特循环左移16位。
8.根据权利要求7所述的可随机更换的非线性正形置换生成器,其特征在于,所述T是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.));τ由4个并行的S盒构成,设输入为A=(a0,a1,a2,a3)∈(Z28)4,]]>输出为B=(b0,b1,b2,b3)∈(Z28)4,]]>则(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3));非线性变换τ的输出是线性变换L的输入,设输入为B∈Z232,]]>输出为C∈Z232,]]>则C=L(B)=B(B<<<2)(B<<<10)(B<<<18)(B<<<24)。
全文摘要
本发明公开了一种可随机更换的非线性正形置换生成器,涉及用于密码设计的装置。为解决基于SP(代替和置换)结构设计的分组密码算法没有基础置换的迭代因素,且其代数次数较低;基于Feistel结构设计的分组密码算法的基本置换的密码学性质不够良好的问题而提出,本发明可随机更换的非线性正形置换生成器,通过下述步骤实现(1)构造满足正形置换的函数f
文档编号G09C1/00GK1845214SQ20061007866
公开日2006年10月11日 申请日期2006年4月30日 优先权日2006年4月30日
发明者吕述望, 张剑 申请人:张剑
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1