一种高效的电子数据置乱方法

文档序号:6410771阅读:271来源:国知局
专利名称:一种高效的电子数据置乱方法
技术领域
本发明属于信息处理技术领域,特别涉及对数据分组选代加密置乱方法的改进设计。
在当今信息时代中,计算机和网络信息的使用、交换和处理以成为广泛和频繁的事。在这个过程中对敏感数据的保护已成为一个普遍关注的问题。为达到提供数据安全的目的,采用的主要技术措施之一是使用秘密控制块的分组密码。当今世界上广泛使用的分组密码方法是美国国家标准局1977年公布的“数据加密标准”(即DES)。这种用户控制块长56比特的DES在九十年代已显得不够安全。1992年有人提出了分组加密方法IDEA(其在欧洲获得专利EP0482154B1,在美国获得专利US005214703),其已实际应用于PGP电子邮件加密软件包中,DES、IDEA均属分组迭代加密方法。
所谓加密是一个数据处理过程,在此过程中明文P在控制块K的控制下依照特定的方法将其处理成密文C,解密者再利用控制块K和相应的解密方法将密文C恢复成明文P。而对外人来说,由于他不知道控制块K,所以他无法从密文C得到关于明文P的任何信息。不同的加密方法,就是指不同的数据处理方法。它决定这种加密方法安全保密性。
加密是指加密时将明文分成固定大小的组P=(p(1),p(2)…,p(n))。
其中p(i)为固定大小的分组。然后对各个分组进行加密,用特定的方法在控制块控制下将p(i)处理成c(i),i=1..n。然后在将各密文组相连组成密文C=(c(1),c(2)…,c(n))。解密时类似反向处理。
迭代密码是指加密过程是有若干次相同子过程迭代组成。即处理过程为将明文P在子控制块Z[1]的控制下经过一个简单的子过程生成中间密文C[1],再将中间密文C[1]在子控制块Z[2]的控制下经过一个简单的子过程生成中间密文C[2],如此类推,最后中间密文C[n-1]在子控制块Z[n]的控制下经过一个简单的子过程生成密文C[n],把C[n]就作为最终的密文C。其中Z[i],i=1…n,是工作子控制块组,它是由用户控制块Z在一定方法处理下生成的。每个子过程是简单的,实现是容易的,通过子过程的迭代构成一个复杂的过程,实现混乱和扩散的目的,最终达到安全的效果。
IDEA作为迭代类型的分组密码。其构成加密的圈结构处理为基于群的代数结构的圈结构处理,f(X,Z)=P(In(X⊙ZA,ZB),其中X是被加密数据,Z=(ZA,ZB)是工作控制块子块,⊙是群变换结构,In是卷积结构,P是对合置换结构。IDEA由于其方法强调加密与解密的结构上的严格相似,并且由于它选用的变换结构,造成了以下几个不足1.IDEA的群密码结构⊙中包含了模216+1的乘法变换结构,使得在解密时要特别对ZA的操作;2.IDEA中未包含非对称群变换结构,使得群运算的差分矩阵的性质不好。
3.IDEA中只选用了异或、加和乘法变换结构。加法和乘法的合痕性质与加法和异或的线性性质皆使置乱效果不好。
4.IDEA中的卷积结构有使加密过程退化的可能。
5.IDEA的线性置换过于简单使得置乱不足。
6.IDEA的工作控制块生成方式过于简单,无法对付相关控制块攻击。
本发明的目的在于避免上述已有技术的不足,提出一种新的分组迭代加密方法(简称TUC),对已有技术的圈结构处理进行了改进,提出了新的工作子控制块的生成过程,以及设计了新的数据组与工作子控制块的处理方式,使用本方法不但提高了数据的置乱效果,加强了数据的安全性和相关密钥攻击的能力,而且该方法易操作,处理结构紧凑,且采用便于软件实现的面向字与字节的变换结构,使该方法能快速实现。
本发明提出了一种高效的电子数据置乱方法,其特征在于包括以下操作步骤1)将待置乱的明文数据分成等比特长的数据组;2)将用户控制块z按设置的程序生成多个工作子控制块;3)将所说各数据组作为输入与所说相当个数的工作子控制块进行多次圈结构处理,每一次处理均使用不同的工作子控制块,每次的输出作为下一次处理的输入;4)将最后一次圈结构处理的输出数据组分别再与其余的工作子控制块进行输出变换处理,得到已置乱的数据组;5)将置乱的数据组连接得到置乱的密文数据;待置乱的数据顺序通过上述第一、三、四、五步骤,顺序进行处理,第二步的处理应在第三步的处理开始之前;所说的第三个步骤中的圈结构处理由群密码变换结构处子操作,广义卷积结构处理子操作和非线性对合置换结构处理子操作所组成,所说的群密码变换结构处理子操作采用两种以上的各组数据与工作子控制块处理方式。
本发明所说的相邻两组数据的群密码变换结构处理子操作的处理方式可分别为一个可交换群操作处理和0变换处理,所说的0变换处理为若数据组两个存储单元x、y中y的末位为1则作y-x,否则作x+y,这里所说的加减法是指模2的n次方的加减法,n为x和y的比特长度。
所说的广义卷积结构处理子操作可为将数据组通过一个由多个工作子控制块控制的网状结构,处理后得到新的输出数据组,包括多个由两个输入得到两个输出的操作,一个数据组通过每一层网状结构的操作后得到下一层的输入数据,其与上一层数据是非合痕的或合痕关系是复杂的。
所说的非线性的对合置换结构处理子操作可包括两对以上的互逆操作,和一个高度非线性的双输入双输出操作组成。
所说的第四步骤的输出变换处理可为将最后一圈结构处理后的输出数据组与对应的工作子控制块进行群密码变换处理,且每组处理方式不全相同。
所说的非合痕关系可以通过以下操作达到1)两个存储器的内容做逐比特异或;2)两个存储器的内容做加法,溢出部分舍弃;3)两个存储单元内容做模2的n次方加1乘法,全零处理为2的n次方,n为存储单元的比特长;4)两个存储单元内容的左右两部分分别做模2的m次方加1乘法,全零处理为2的m次方,存储单元的比特长为2m;5)两个存储单元内容作如下处理,若第二个存储单元内容的最低位为1,用第二个存储单元内容减第一个存储单元内容,否则用第二存储单元内容加第一个存储单元内容,溢出部分舍弃。
本发明所说的步骤二生成工作子控制块的操作可包括以下步骤1)将一定长度的用户控制块z的线性组合填充所需长度的存储单元M;2)将一非线性散列操作作用于M的内容,结果放入存储单元N;3)将N加上M和固定的偏移量T,结果放入存储单元P;4)将P逐段赋给工作子控制块,生成工作子控制块组。
本发明的技术特点如下第一、提供了一种基于群变换结构的,且含有广义卷积结构、非线性对合结构和群密码结构的圈处理方式。
第二、本密码还给出了一种特殊的由用户密码生成工作子控制块的方式。
第三、重新改进了圈结构处理结构中的基本变换结构设计。除了含有已有技术的一般处理方式外,还采用了两个存储单元内容的左右两部分分别做模2的m次方加1乘法,全零处理为2的m次方,存储单元的比特长为2m;两个存储单元内容作如下处理,若第二个存储单元内容的最低位为1,用第二个存储单元内容减第一个存储单元内容,否则用第二存储单元内容加第一个存储单元内容,溢出部分舍弃。它来自于一个非交换群一二面体群的群变换结构。
本发明具有如下优点第一、TUC的群密码结构⊙中不包含乘法变换结构,使得在解密时要不必计算ZA的逆,特殊变换的逆可由它的逆变换结构实现。特殊变换的非对称性增加了加密过程的置乱性。
第二、TUC中包含非对称群变换结构,使得群变换结构的差分矩阵的性质很好。
第三、TUC中选用了两个存储器的内容做逐比特异或;两个存储器的内容做加法,溢出部分舍弃;两个存储单元内容做模2的n次方加1乘法,全零处理为2的n次方,n为存储单元的比特长;两个存储单元内容的左右两部分分别做模2的m次方加1乘法,全零处理为2的m次方,存储单元的比特长为2m;两个存储单元内容作如下处理,若第二个存储单元内容的最低位为1,用第二个存储单元内容减第一个存储单元内容,否则用第二存储单元内容加第一个存储单元内容,溢出部分舍弃。它来自于一个非交换群的群变换结构。其中所包含的群变换结构所对应的群,两两之间不是合痕的或是合痕关系是复杂的。
第四、TUC中的卷积结构没有是加密过程退化的可能。同时它提供了一种灵活的变换构成方式。由于多种来自不同群的变换结构的组合及离散对数和幂结构处理的运用和网状结构的使用提供了安全性所要求的混乱和扩散。
第五、TUC的非线性置换使得置乱充分。
第六、TUC的工作控制块生成方式,即先对用户控制块作线性扩充,再用单向散列结构处理作用,最后加上偏移量的方式使得子控制块间相关性复杂。可以抵抗相关控制块攻击的威胁。
第七、TUC的广义卷积密码结构和非线性置换结构,特别是诸多变换(从变换1到变换9)的选取方式的自由性使本方法可以提供丰富的分组密码子模式。这使得用户有更大的选择不同子模式的自由,也使设计具有更高密码安全性的子模式的工作成为理所当然的事情。
第八、本密码中所用到的变换结构皆可用软件快速实现。并无由于特殊变换结构的引入增加软件实现的复杂度。
第九、数据的混乱程度比已有技术有所提高。
对本发明的测试,结果表明本方法的操作体制的安全性和速度于与国外受专利保护的较为通用方法的操作体制相当,在一些指标上甚至超过了它们。
附图的简要说明。


图1为本发明方法实施例的总体操作步骤框图。
图2为本实施例中的圈结构处理操作示意图。
图3为本实施例中的工作子控制块生成步骤框图。
本发明提出一种高效的计算机数据置乱方法实施例,其处理结构及操作步骤如图1~3所示结合附图描述如下本实施例的总体操作步骤如图1所示,它由8次圈结构处理和最后的一个输出处理组成。首先读入密文分组X_in,再读入用户控制块Z,依照子控制块生成步骤生成52个工作子控制块z(1)..z(52),接着作初始化,将圈数计数器r置1,第一圈的输入Y(0)设置为X_in,然后开始迭代过程,在子控制块的控制下对Y(r-1)处理,将子控制块与Y(r-1)混合生成Y(r)。具体描述为图2中的第一圈迭代,它可表述为如下的处理过程,Y(r)=f(Y(r-1),ZA(r),ZB(r))=NLP(GIn(Y(r-1)⊙ZA(r),ZB(r))),其中NLP(○)表示一个特殊的非线性对合结构处理,GIn(○1,○2)表示一个特殊的广义对合结构处理,○1⊙○2表示一个特殊的群密码结构处理,ZA(r)=(z(6(r-1)+1),z(6(r-1)+2),z(6(r-1)+3),z(6(r-1)+4)),ZB(r)=(z(6(r-1)+5),z(6(r-1)+6))。处理完毕后将圈数计数器r加1,看r是否已超过总圈数8,若没有则开始新的一圈迭代,若已超过则开始作输出变换。将Y(r)与子控制块组(z(49),z(50),z(51),z(52))作输出处理。其结果作为密文输出。
每次迭代处理的具体过程如图2所示。共分三个子过程,群密码变换处理,广义卷积结构处理,非线性对合结构处理。以第一圈为例,首先将输入的明文分组x顺序分为四个等大的子块,x1,x2,x3,x4,每块16比特,然后进行群密码处理,将x1与子控制块z(1)进行群变换结构,生成中间变量tmp11,x2与子控制块z(2)进行群变换结构,生成中间变量tmp12,x3与控制块z(3)进行群变换结构,生成中间变量tmp13,x4与子控制块z(4)进行群变换结构,生成中间变量tmp14。这里群变换结构的选取方式是使得这四个群变换结构不全相同。具体实现子模式可以为,将x1与子控制块z(1)进行可交换群操作(异或),生成中间变量tmp11,x2与子控制块z(2)进行变换0处理,生成中间变量tmp12,x3与控制块z(3)进行异或,生成中间变量tmp13,x4与子控制块z(4)进行变换0,生成中间变量tmp14。其中变换0是指两个存储单元x与y作如下变换结构,若y的末位为1,作y-x,否则作x+y,这里的加减都是指模216的加减法。
接着让tmp11、tmp12、tmp13、tmp14通过一个由子控制块控制的网状结构,作广义卷积变换处理,具体方法为,将tmp11与z(5)输入变换1生成中间变量tmp21与tmp24;将tmp21与tmp12输入变换2生成中间变量tmp22与tmp25;将tmp13与tmp22输入变换3生成中间变量tmp23与tmp26;将tmp23与tmp14输入变换4生成中间变量tmp27;将tmp27与z(6)输入变换8生成中间变量tmp210与tmp34;将tmp210与tmp26输入变换7生成中间变量tmp29与tmp33;将tmp29与tmp25输入变换6生成中间变量tmp32与tmp28;将tmp28与tmp24输入变换1生成中间变量tmp31。其中变换1、变换2、变换3、变换6、变换7、变换8为双输入双输出的变换,变换4和变换5为双输入单输出的变换,它们的构成原则是双输入双输出的变换的两个输出结构处理是不同的,一个变换的输出结构处理与它的下一个变换的输出结构处理是在群的意义上非合痕的或合痕关系是复杂的。下面是一个子模式构成的例子。
在这个子模式中几个不同的群变换结构作用于16比特的存储单元,将高度非线性的幂与对数变换结构作用于8比特的字节。并由它们构成以下若干变换。
(1)两个(字)存储单元内容做逐比特异或,下面用xor(x,y)表示。它是群Z216上的群变换结构,它不与其他几个群有合痕关系。
(2)两个做加法溢出部分舍弃,下面用add(x,y)表示。它是群Zp,p=216,上的群变换结构。它不与除(3)外的几个群有合痕关系。
(3)两个做模乘法,全零字处理为,下面用mul(x,y)表示。它是群Z*p+1,p=216,上的群变换结构。它与add(x,y)的合痕关系是复杂的。它不与其他几个群有合痕关系。
(4)两个做逐字节模乘法,全零字节处理为,下面用mul2(x,y)表示。它是群Z*p+1×Z*p+1,p=28,上的群变换结构。它不与其他几个群有合痕关系。
(5)1两个x、y做如下变换结构,若y的最低位为1,做y-x;否则做x+y.下面用bh(x,y)表示。它是非交换的二面体群上的群变换结构。它不与其他几个群有合痕关系。此外还有(1)对一个的两个字节分别做45的幂,并交换高低字节,下面用pow(x)表示。
(2)对一个的两个字节分别求45为底的对数,并交换高低字节,下面用log(x)表示。
它们是高度非线性的映射。
由这几个变换结构组成如下变换变换1tmp21=mul(z(5),tmp11);tmp24=log(add(z(5),tmp11))变换2tmp22=mul2(tmp12,tmp21);tmp25=log(add(tmp12,tmp21))变换3tmp23=mul(tmp22,tmp13);tmp26=log(add(tmp13,tmp22))变换4tmp27=log(add(tmp14,tmp23))变换5tmp31=xor(tmp24,tmp28)变换6tmp28=mul(tmp29,tmp25);tmp32=xor(tmp29,tmp25)变换7tmp29=pow(bh(tmp210,tmp26);tmp33=xor(tmp210,tmp26)变换8tmp210=mul(z(6),tmp27);tmp34=xor(z(6),tmp27)
在进行广义卷积变换处理之后,将tmp31、tmp32、tmp33、tmp34输入非线性对合置换结构,将tmp31与tmp33进行“相加1”变换结构生成tmp35,将tmp32与tmp34进行“相加2”变换结构生成tmp36,将tmp35与tmp36输入变换9生成中间变量tmp37与tmp38,将tmp31与tmp38异或生成中间变量tmp41,将tmp32与tmp37异或tmp42,将tmp41与tmp35进行“相减1”变换结构生成tmp43,将tmp42与tmp36进行“相减2”变换结构生成tmp44,tmp41、tmp42、tmp43、tmp44作为第一圈的输出,第二圈的输入。这里的“相加1”和“相减1”,“相加2”和“相减2”是两对独立的互逆变换结构,可选取为相加和相减,或是异或和它本身,相乘和它的逆,变换9是一个双输入双输出的变换,由任意选取的非线性变换结构组成。下面是一个子模式构成的例子。
选取相加1和相加2就为模216的相加,相减1和相减2就为模216的相减。选取变换9为tmp38=mul(mul(tmp35,tmp36),tmp35);tmp37=mul(tmp35,tmp36);(符号同前)。
在进行8次迭代后,将tmp41、tmp42、tmp43、tmp44输入到输出变换中,将它们分别与子控制块z(49)、z(50)、z(51)、z(52)作群变换结构,将tmp41与子控制块z(49)进行群变换结构,生成中间变量y1,tmp42与子控制块z(50)进行群变换结构,生成中间变量y2,tmp43与控制块z(51)进行群变换结构,生成中间变量y3,tmp44与子控制块z(52)进行群变换结构,生成中间变量y4。这里群变换结构的选取方式是使得这四个群变换结构不全相同。具体实现子模式可以为,将tmp41与子控制块z(49)进行异或,生成中间变量y1,tmp42与子控制块z(50)进行变换0,生成中间变量y2,tmp43与控制块z(51)进行异或,生成中间变量tmp13,tmp44与子控制块z(52)进行变换0,生成中间变量y4。其中变换0的意义同前。
本实施例中,加密过程由用户控制块Z生成52个子控制块组z(1)-z(52)的方法如图3所示,首先读入用户给出的128比特(16个字节)控制块Z,用Z填充长为104字节的M的前16个字节,将M的前16个字节看作16个变量,用它们的各种不同的线性组合填充M的第17到第104字节,选取一个非线性的单向散列结构处理作用于M,生成长度为832比特(52个16比特字)的N,将N加上M和固定偏移量T生成832比特(52个16比特字)的P,其中T的选取是自由的,如取作T的第i个字为65535×Sin(i)的整数部分。最后将52个16比特字长的P分成16段,逐段赋给52个单字长的子控制块z(1)-z(52)。
权利要求
1.一种高效的电子数据置乱方法,其特征在于包括以下操作步骤1)将待置乱的明文数据分成等比特长的数据组;2)将用户控制块z按设置的程序生成多个工作子控制块;3)将所说各数据组作为输入与所说相当个数的工作子控制块进行多次圈结构处理,每一次处理均使用不同的工作子控制块,每次的输出作为下一次处理的输入;4)将最后一次圈结构处理的输出数据组分别再与其余的工作子控制块进行输出变换处理,得到已置乱的数据组;5)将置乱的数据组连接得到置乱的密文数据;待置乱的数据顺序通过上述第一、三、四、五步骤,顺序进行处理,第二步的处理应在第三步的处理开始之前;所说的第三个步骤中的圈结构处理由群密码变换结构处子操作,广义卷积结构处理子操作和非线性对合置换结构处理子操作所组成,所说的群密码变换结构处理子操作采用两种以上的各组数据与工作子控制块处理方式。
2.如权利要求1所述的方法,其特征在于所说的相邻两组数据的群密码变换结构处理子操作的处理方式分别为一个可交换群操作处理和0变换处理,所说的0变换处理为若数据组两个存储单元x、y中y的末位为1则作y-x,否则作x+y,里所说的加减法是指模2的n次方的加减法,n为x和y的比特长度。
3.如权利要求1所说的方法,其特征在于所说的广义卷积结构处理子操作为将数据组通过一个由多个工作子控制块控制的网状结构,处理后得到新的输出数据组,包括多个由两个输入得到两个输出的操作,一个数据组通过每一层网状结构的操作后得到下一层的输入数据,其与上一层数据是非合痕的或合痕关系是复杂的。
4.如权利要求1所说的方法,其特征在于所说的非线性的对合置换结构处理子操作包括两对以上的互逆操作,和一个高度非线性的双输入双输出操作组成。
5.如权利要求1所说的方法,其特征在于所说的第四步骤的输出变换处理为将最后一圈结构处理后的输出数据组与对应的工作子控制块进行群密码变换处理,且每组处理方式不全相同。
6.如权利要求书3所述的方法,其特征在于所说的非合痕关系是通过以下操作达到的1)两个存储器的内容做逐比特异或;2)两个存储器的内容做加法,溢出部分舍弃;3)两个存储单元内容做模2的n次方加1乘法,全零处理为2的n次方,n存储单元的比特长;4)两个存储单元内容的左右两部分分别做模2的m次方加1乘法,全零处理为2的m次方,存储单元的比特长为2m;5)两个存储单元内容作如下处理,若第二个存储单元内容的最低位为1,用第二个存储单元内容减第一个存储单元内容,否则用第二存储单元内容加第一个存储单元内容,溢出部分舍弃。
7.如权利要求1所述的方法,其特征在于所说的步骤二生成工作子控制块的操作包括以下步骤1)将一定长度的用户控制块z的线性组合填充所需长度的存储单元M;2)将一非线性散列操作作用于M的内容,结果放入存储单元N;3)将N加上M和固定的偏移量T,结果放入存储单元P;4)将P逐段赋给工作子控制块,生成工作子控制块组。
全文摘要
本发明涉及对数据分组选代加密方法的改进,其技术关键是提供了一种基于特殊圈结构的数据置乱方法,这个圈结构由一个特殊的群密码结构、一个特殊的网状广义卷积密码结构和一个特殊的非线性对合置换构成,这种基于特殊圈结构的数据处理方法包括基于几个选自特殊群的群变换结构。在此圈结构处理结构中采用了便了软件实现的面向字与字节的变换结构,这使得该密码算法能快速实现。本发明的置乱效果比已有技术有所提高。
文档编号G06F12/14GK1158453SQ9612058
公开日1997年9月3日 申请日期1996年11月22日 优先权日1996年11月22日
发明者朱峰, 郭宝安 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1