基于反馈移位寄存器的杂凑方法

文档序号:7962516阅读:550来源:国知局
专利名称:基于反馈移位寄存器的杂凑方法
技术领域
本发明涉及信息加密技术领域,更确切地说是涉及一种杂凑技术。
杂凑技术的一个重要用途是应用于数字签名中,它可以带来一系列好处,包括可破坏数字签名方案的某些数学结构;可提高数字签名的速度;无需泄露签名所对应的消息;可将签名变换和加密变换分开。杂凑技术除了可用于数字签名之外,还可用于消息的完整性检测、消息的起源认证检测等。
目前已有很多公开了的hash方案(参见2000年由机械工业出版社出版的应用密码学,吴世忠等译),比较著名的有MD4、MD5、SHA-1和WHIRLPOOL等,其中的SHA-1是美国制定的安全hash标准(SHS),WHIRLPOOL是正在征集的欧洲hash标准中唯一的候选方案。
这些杂凑方案,从它们进行hash运算的速度看,绝大多数都不能令人满意。还有一个缺陷是很多方案的压缩长度不可变,虽然输入长度是任意的,但输出长度是固定的、不能选择的。
另一方面,随着半个世纪以来移位寄存器理论的逐渐成熟,移位寄存器被广泛应用于生成伪随机序列上,特别是用于生成拥有良好统计特性的长周期序列。移位寄存器序列密码,是将移位寄存器应用于现代序列电子密码设计之中,使其作为生成伪随机密钥流序列的基础。但在杂凑方案中,以移位寄存器的状态变化为基础来实现杂凑功能的实用方案比较少见。
实现本发明目的的技术方案是这样的,一种基于反馈移位寄存器的杂凑方法,其特征在于包括以下处理步骤A.设置一个环Z/(232)上的16级移位寄存器;B.移位寄存器前八级的反馈方式是由第0级至第7级顺序移位反馈,并将原第0级和第7级的值作为反馈函数f的输入,在无整形原文馈入时,直接将f的输出值反馈至第0级,在有整形原文馈入时,将f的输出值与输入的整形原文对位模2加后反馈至第0级;C.移位寄存器后八级各级的反馈值是前一级的内容与本级内容作模232加;D.在作首尾折合时,将移位寄存器的第15级至第8级,以对位模2加形式,分别加到前八级移位寄存器的第0级至第7级;E.按照所需要的摘要长度N,将16级移位寄存器的部分或全部状态截位后,将截出的值串接成N比特,作为摘要值。
所述的整形原文,是经修补后的原文数据,是由原文数据经循环派生修补成的,整形原文字节数为4n,n是自然数。
所述的由原文数据生成整形原文,进一步包括在原文数据的字节数不是4n-1的形式时,以循环派生方式补满为4n-1的形式,再在其后,缀加以16进制表示的、标识真正原文字节数的1个字节;在原文数据的字节数大于255时,在其后,缀加以16进制表示的、表示原文真正字节数模256后的余数的1个字节;在原文数据的字节数少于27时,直接以循环派生方式填满到31字节,再在其后,缀加以16进制表示的、标识真正原文字节数的1个字节。
所述的反馈函数f包括第1反馈函数f1(X,Y)=a11X+b11+((a12Y+b12)<<<11)mod 232和第2反馈函数f2(X,Y)=a21X+b21+((a22Y+b22)<<<7)mod232,a11、a12、a21、a22、b11、b12、b21、b22为常数,“<<<”为左循环串移,X、Y为0至232-1之间的整数。
所述的常数分别是a11=1345687009,b11=34568049,a12=4045126809,b12=4013687009,a21=3459687041,b21=1456870107,a22=2345687085,b22=2456870093。
所述的有整形原文馈入,是将字节数为4n的整形原文,按每相连4字节串接成一个大小为0至232-1的数,共组成n个32比特的数。
所述的步骤B、C、D进一步包括按第一反馈函数f1实施第一反馈移位阶段,和按第二反馈函数f2实施第二反馈移位阶段。
所述的第一反馈移位阶段进一步包括a1.在无密钥方式时,将所述16级移位寄存器的状态全部置为“0x0000FFFF”,或在有密钥方式时,将所述16级移位寄存器的状态初置为由密钥派生的16个数值;b1.移位寄存器后八级的移位方式是将前一级的内容以模232加形式累加到本级,移位寄存器第1至第7级的反馈方式是将每一本级的前一级内容反馈到该本级,移位寄存器第0级的反馈值是第一反馈函数f1的运算结果与整形原文第i位的数值作对位模2加,i=1、2、3、…、n;c1.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;d1.重复执行步骤b1、c1,直至i=n时转为执行下述步骤;
e1.移位寄存器后八级的反馈方式是将前一级内容以模232加的形式加到每一本级,移位寄存器第1至第7级的反馈方式是将前一级内容反馈到该本级,移位寄存器第0级的反馈值是第一反馈函数f1的运算结果;f1.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;g1.重复执行步骤e1、f1,共16拍时转为执行所述的步骤D。
所述的第二反馈移位阶段进一步包括a2.在无密钥方式时,将所述16级移位寄存器的状态全部置为“0x0000FFFF”,或在有密钥方式时,将所述16级移位寄存器的状态初置为由密钥派生的16个数值;b2.移位寄存器后八级的移位方式是将前一级内容以模232加形式累加到本级,移位寄存器第1至第7级的反馈方式是将每一本级的前一级内容反馈到该本级,移位寄存器第0级的反馈值是第二反馈函数f2的运算结果与整形原文第i位的数值的补码作对位模2加后的值,i=1、2、3、…、n;c2.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加形式加到第u级,和将第v+8级的状态自身左循环串移17位;d2.重复执行步骤b2、c2,直至i=n时转为执行下述步骤;e2.移位寄存器后八级的反馈方式是将前一级内容以模232加形式加到每一本级,移位寄存器第1至7级的反馈方式是将前一级内容反馈到该本级,移位寄存器第0级的反馈值是第二反馈函数f2的运算结果;f2.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;g2.重复执行步骤e2、f2,共16拍时转为执行所述的步骤D。
所述的有密钥方式时,所述的由密钥派生16个数值进一步包括(1)设用户密钥为K1,K2,…,Kg,当g小于5字节时,将密钥循环派生为5字节,g=5;(2)当h=g+1,g+2,g+3,…,64时,计算Kh=Kh-5+Kh-2mod 256;(3)将它们每4字节顺序串接,构成16个32比特的数字。
所述的步骤E,进一步包括在要求摘要长度为128比特时,依次取移位寄存器前八级的高位16比特;在要求摘要长度为160比特时,依次取移位寄存器前八级的高位16比特和移位寄存器第8、第9级的低位16比特;在要求摘要长度为192比特时,依次取移位寄存器前八级的高位16比特和移位寄存器第8、第9、第10、第11级的低位16比特;在要求摘要长度为256比特时,取移位寄存器前八级的高位16比特和后八级的低位16比特。
本发明的基于反馈移位寄存器的杂凑方法(FSR-hash),其技术方案的基本结构是一个模232的16级反馈移位寄存器,该移位寄存器拥有两个反馈阶段,不同阶段使用不同的反馈逻辑函数,而且在每个反馈阶段内又分为有原文数据馈入、无原文数据馈入和首尾折合三种方式,而且在状态变化过程中使用模2加、模232加和循环串移三种逻辑运算方式。其算法的不可逆性依据是摘要值仅仅是移位寄存器状态的截位符号。
本发明的基于反馈移位寄存器的杂凑方法,所采用的新技术是利用移位寄存器的状态变化规则设计,包括设置f1与f2两种反馈逻辑;利用移位寄存器第0级的高3比特和低3比特分别控制移位寄存器前八级中有一级被累加,后八级中有一级做串移;采用首尾对合的技术;独创性地设计出原文的整形派生规则和整形原文的正反码两次使用;和采用截位输出方式。
本发明的是一种基于反馈移位寄存器状态变换实施的hash算法方案,是一个适合于32位字长运算的、输入和输出长度都可变的杂凑方案。该方案安全可靠、逻辑结构严谨、易于实现,而且运算速度很快。
本发明的基于反馈移位寄存器的杂凑方法,在算法的逻辑结构上与上述比较著名的MD4、MD5、SHA-1、WHIRLPOOL方案几乎没有共同之处,但运算速度比WHIRLPOOL快四到五倍,比MD5、SHA-1等快得更多。此外,SHA-1的输出固定为160比特,WHIRLPOOL的输出固定512比特,而本发明的杂凑方案则可以有多种可供选择的输出长度。
移位寄存器前八级的移位方式是将原第M0级的内容反馈到第M1级,原第M1级的内容反馈到第M2级,…,原第M6级的内容反馈到第M7级,原第M7级的内容与原第M0级的内容经反馈逻辑函数f(M0,M7)运算后的结果,或与原文数据(或其补码)作对位模2加后反馈到第M0级,或直接反馈到第M0级;移位寄存器后八级的移位方式是将原第M7级的内容与原第M8级的内容进行模232加后送到第M8级,…,原第M14级的内容与原第M15级的内容进行模232加后送到第M15级。在满足某种条件时,将第M0级与第M15级的内容经对位模2加后送到第M0级,其余的M1与M14间、M2与M13间、…M7与M8间,也按同样的原则操作。
本发明方法中,原文数据长度可以是以字节为单位的任意长度,但在参与杂凑运算时需约定为4n-1形式,n是自然数。因此,在参与运算前,如果原文的字节数不是4n-1形式,则要以循环派生方式将其补满为4n-1形式,并在其后缀加标识真正的原文字节数(以16进制表示)的1字节数据。这种经修补后的原文数据称为整形原文。例如原文数据长度为64字节,它不是4n-1形式,需将其派生为67(n=17,4×17-1=67),即第65、66、67这3个字符分别是朱文数据的第1、2、3个字符,第68个字符的值为“0x40”(用16进制表示的64),表示真正的原文是前64字节。
由此得到的整形原文的数据长度是68字节。当原文字节数大于255时,后缀的1字节数据表示原文字节数模256加后的余数。当原文数据长度少于27字节时,直接以循环派生方式填满到31字节,其后再缀加1字节的原文字节数标识,构成32字节长度的整形原文。这样,整形原文长度总是4字节的倍数,便于在32位字长机上操作。
本发明的摘要长度是可选择的,有128比特、160比特、192比特、256比特等,但至多为256比特。
本发明在实施时,需要存储8个常数,a11、a21、b11、b21、a12、a22、b12、b22,经实验分别取为a11=1345687009 b11=34568049 a12=4045126809 b12=4013687009a21=3459687041 b21=1456870107 a22=2345687085 b22=2456870093由它们构成两种反馈函数,作为本发明

图1中移位寄存器三个阶段的反馈逻辑,即f1(X,Y)=a11X+b11+((a12Y+b12)<<<11)mod 232f2(X,Y)=a21X+b21+((a22Y+b22)<<<7)mod 232。
式中的“<<<”为左循环串移,即将移出去的高位比特回馈到低位。
本发明方法中,共设计有两种使用方法,包括无密钥与有密钥。无密钥使用方式是选择16级移位寄存器的初始状态全部为“0x0000FFFF”,而有密钥则是将密钥及其派生码作为16级移位寄存器的初始预置。
密钥长度可以随意设置,但约定密钥长度以字节为单位且至多为32字节。设用户密钥为K1,K2,…,Kg,当g小于5字节时,将密钥循环派生为5字节,此时g=5,当h=g+1,g+2,g+3,…,64时,计算Kh=Kh-5+Kh-2mod 256,得到一个长为64字节的密钥符序列,将它们每4字节顺序串接,构成16个32比特的数字,再将它们分别预置到16级移位寄存器的第0至15级。
下面说明本发明方案的三个主要执行步骤f1反馈阶段、f2反馈阶段和输出hash值。
第一步骤,f1反馈阶段,包括n拍有整形原文馈入的移位方式、16拍无整形原文馈入的移位方式和首尾折合方式。
第1步,在n拍有整形原文馈入的移位方式时,令修补后的原文长度为4n字节,按每相连4字节串接成一个大小为0-232-1的数,共得到n个32比特的数,记为C1,C2,…,Cn,其中任意一个32比特的数设为Ci;将M的16级状态全部置成无密钥方式时的“0x0000FFFF”,或初置为秘密密钥方式时的由秘密密钥所派生的16个数值;然后,设M0,M1,…,M15分别为16级移位寄存器中的第0,1,…,15级,对i=1,2,…,n做{对j=15,14,…,8分别做给Mj赋新值Mj←Mj+Mj-1mod 232对j=7,6,…,1分别做给Mj赋新值Mj←Mj-1给M0赋新值M0←f1(M0,M7)+Cimod 232取u和v分别为由M0的最高3个比特位和最低3个比特位构成的值,即,u=[M0/229],v=M0mod 8,做给Mu赋新值Mu←Mu+M15-umod 232,即将第15-u级的状态以模232形式加到第u级。
给Mv+8赋新值Mv+8←Mv+8<<<17,即将第v+8级的状态自身左循环串移17位。
}其中f1(M0,M7)=a11M0+b11+((a12M7+b12)<<<11)mod 232=1345687009 M0+34568049+((4045126809 M7+4013687009)<<<11)mod 232;第二步,在16拍无整形原文馈入的移位方式时,将M移位寄存器推移16拍,其反馈方式与有整形原文馈入时的移位方式基本相同,差异仅仅是没有整形原文进入移位寄存器,或者说这时可以看作是对i=1,2,…,16操作,均是Ci=0的情形,即可以看作每次给M0赋新值,M0←f1(M0,M7)=f1(M0,M7)+Ci;第三步,作首尾折合对j=0,1,…,7做给Mj赋新值,Mj←M15-jMj,即进行按比特操作的对位加。
第二步骤,f2反馈阶段,包括n拍有反码整形原文馈入的移位方式、16拍无反码整形原文馈入的移位方式和首尾折合方式。
第一步,在n拍有反码整形原文馈入的移位方式时,对i=1,2,…,n做{对j=15,14,…,8分别做给Mj赋新值Mj←Mj+Mj-1mod 232对j=7,6,…,1分别做给Mj赋新值Mj←Mj-1给M0赋新值M0←f2(M0,M7)+(Ci0xFFFFFFFF)mod 232取u和v分别为由M0的最高3个比特位和最低3个比特位构成的值,即u=[M0/229],v=M0mod 8,做给Mu赋新值Mu←Mu+M15-umod 232,即将第15-u级的状态以模232形式加到第u级。
给Mv+8赋新值Mv+8←Mv+8<<<17,即将第v+8级的状态自身左循环串移17位}其中f2(M0,M7)=3459687041 M0+1456870107+((2345687085M7+2456870093)<<<7) mod 232第二步,在16拍无反码整形原文馈入的移位方式时,将M级移位寄存器推移16拍,其反馈方式与有反码整形原文馈入的移位方式基本相同,差异也只是,对i=1,2,…,16,Ci=0,即可以看作每次给M0赋新值M0←f2(M0,M7)=f2(M0,M7)+Ci。
第三步,首尾折合,对j=0,1,…,7做给Mj赋新值Mj←M15-jMj第三步骤,输出摘要(hash)值,是依照所需的摘要长度,从M0-M15中输出hash值,即采用截位输出方式。
其具体做法是若要输出128比特,则依次取M0-M7的高位16比特;若要输出160比特,则依次取M0-M7的高位16比特和M8、M9的低位16比特;若要输出192比特,则紧接上述取法后再补取M10和M11的低位16比特;若要输出256比特,则取M0-M7的高位16比特和M8-M15的低位16比特。因此摘要值仅仅是移位寄存器状态的截位符号。
下面结合一个无密钥情形下的运算过程,进一步说明本发明的技术方案,包括中间运算过程及部分结果。
1.建立整形原文。
以原文为A至Z、a至z、0至9这62个字母为例,对应于16进制表示的ASC II值为41至5a、61至7a、30至39。得整形原文为41424344 45464748494a4b4c 4d4e4f50 51525354 55565758 595a6162 63646566 6768696a 6b6c6d6e6f707172 73747576 7778797a 30313233 34353637 3839413e,其中尾部的413e是循环添补码和原文长度标识,n=16。
2.将M的各级状态均初始预置为“0X0000FFFF”,以有整形原文馈入的移位方式走n=16拍后,M的状态变为186355al ef11d12b 7388962d 541d1895 7530f2f5 efbe71cc 9617f0ab51e46f11 efa558bd e77fb6af e4e62e38 0ee78b19 1043613b e38b76ec cdf3b126e74c216b;3.以无整形原文馈入的移位方式走固定16拍后,M的状态变为88f84c31 34721838 b2c37d8d bbc1dcc4 25e3caf9 d02e3162 137613540f64e366 f4f09bea 3c54c717 fb6749a0 5dd02dde f5f6c423 c38bb650 8470083612017e4e;4.将M的后8级状态折合到前8级后,得M的前8级状态为9af9327f b002100e 7148cbdd 4e3718e7 7833e727 2b4978c2 2f22d443fb94788c;5.以f2为反馈函数,以有反码原文馈入的移位方式走n拍后,M的状态变为34c8a28e b8022cb4 701e3746 1e678d4f 71d6be24 350df47c 258311892970ac24 d6facf90 f53b58be 37ccd24e 7e5830d8 0eef0217 81a05112 b7de94cf11b4f8a8;6.以无反码原文馈入的移位方式走固定16拍后,M的状态变为c85587f5 9bc31d8f 0daece61 163983b3 3cc78721 f48aee30 7b491b89856d9229 b8b9e85d 1987d3bf 3441328e e86e453e d93031b8 6d60e9c2 7dacf6eeb3bf6516;7.将M的后8级状态折合到前8级后,得M的状态为7beae2e3 e66feb61 60ce27a3 cf09b20b d4a9c21f c0cbdcbe 62cec8363dd47a74 b8b9e85d 1987d3bf 3441328e e86e453e d93031b8 6d60e9c2 7dacf6eeb3bf6516;8.得160比特的摘要值为
7b ea e6 6t 60 ce cf 09 d4 a9 c0 cb 62 ce 3d d4 e8 5d d3 bf。
本发明的方法能有效阻止当前的一些主要攻击手段,其算法的不可逆性主要表现在其输出的摘要值并不是M级移位寄存器的全部状态,此外,在运算过程中使用两种不同的非线性反馈函数,再加上混合使用了模2加、模232加和循环串移三种方式,从而具有很好的非线性,使不具有全部M状态下的状态逆推很困难。另外,输入的原文与输出摘要间没有可供利用的相关性。因此,要想用某个hash值以逆推的形式求它的原文是非常困难的。
本发明方法软件编程的实现是非常方便的,如用C语言编程,对长数据进行压缩时,每个原文字节只需要31个脉冲,对整形原文长度固定为512字节的短数据进行压缩时,每个整形原文字节平均需要56个脉冲,在PIII500微机上,每秒钟可以完成14万次hash运算,所需要存储的固定数据也很少,只需存放8个字长为32的常数。
权利要求
1.一种基于反馈移位寄存器的杂凑方法,其特征在于包括以下处理步骤A.设置一个环Z/(232)上的16级移位寄存器;B.移位寄存器前八级的反馈方式是由第0级至第7级顺序移位反馈,并将原第0级和第7级的值作为反馈函数f的输入,在无整形原文馈入时,直接将f的输出值反馈至第0级,在有整形原文馈入时,将f的输出值与输入的整形原文对位模2加后反馈至第0级;C.移位寄存器后八级各级的反馈值是前一级的内容与本级内容作模232加;D.在作首尾折合时,将移位寄存器的第15级至第8级,以对位模2加形式,分别加到前八级移位寄存器的第0级至第7级;E.按照所需要的摘要长度N,将16级移位寄存器的部分或全部状态截位后,将截出的值串接成N比特,作为摘要值。
2.根据权利要求1所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的整形原文,是经修补后的原文数据,是由原文数据经循环派生修补成的,整形原文字节数为4n,n是自然数。
3.根据权利要求2所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的由原文数据生成整形原文,进一步包括在原文数据的字节数不是4n-1的形式时,以循环派生方式补满为4n-1的形式,再在其后,缀加以16进制表示的、标识真正原文字节数的1个字节;在原文数据的字节数大于255时,在其后,缀加以16进制表示的、表示原文真正字节数模256后的余数的1个字节;在原文数据的字节数少于27时,直接以循环派生方式填满到31字节,再在其后,缀加以16进制表示的、标识真正原文字节数的1个字节。
4.根据权利要求1所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的反馈函数f包括第1反馈函数f1(X,Y)=a11X+b11+((a12Y+b12)<<<11)mod 232和第2反馈函数f2(X,Y)=a21X+b21+((a22Y+b22)<<<7)mod232,a11、a12、a21、a22、b11、b12、b21、b22为常数,“<<<”为左循环串移,X、Y为0至232-1之间的整数。
5.根据权利要求4所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的常数分别是a11=1345687009,b11=34568049,a12=4045126809,b12=4013687009,a21=3459687041,b21=1456870107,a22=2345687085,b22=2456870093。
6.根据权利要求1所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的有整形原文馈入,是将字节数为4n的整形原文,按每相连4字节串接成一个大小为0至232-1的数,共组成n个32比特的数。
7.根据权利要求1或4或6所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的步骤B、C、D进一步包括按第一反馈函数f1实施第一反馈移位阶段,和按第二反馈函数f2实施第二反馈移位阶段。
8.根据权利要求7所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的第一反馈移位阶段进一步包括a1.在无密钥方式时,将所述16级移位寄存器的状态全部置为“0x0000FFFF”,或在有密钥方式时,将所述16级移位寄存器的状态初置为由密钥派生的16个数值;b1.移位寄存器后八级的移位方式是将前一级的内容以模232加形式累加到本级,移位寄存器第1至第7级的反馈方式是将每一本级的前一级内容反馈到该本级,移位寄存器第0级的反馈值是第一反馈函数f1的运算结果与整形原文第i位的数值作对位模2加,i=1、2、3、…、n;c1.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;d1.重复执行步骤b1、c1,直至i=n时转为执行下述步骤;e1.移位寄存器后八级的反馈方式是将前一级内容以模232加的形式加到每一本级,移位寄存器第1至第7级的反馈方式是将前一级内容反馈到该本级,移位寄存器第0级的反馈值是第一反馈函数f1的运算结果;f1.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;g1.重复执行步骤e1、f1,共16拍时转为执行所述的步骤D。
9.根据权利要求7所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的第二反馈移位阶段进一步包括a2.在无密钥方式时,将所述16级移位寄存器的状态全部置为“0x0000FFFF”,或在有密钥方式时,将所述16级移位寄存器的状态初置为由密钥派生的16个数值;b2.移位寄存器后八级的移位方式是将前一级内容以模232加形式累加到本级,移位寄存器第1至第7级的反馈方式是将每一本级的前一级内容反馈到该本级,移位寄存器第0级的反馈值是第二反馈函数f2的运算结果与整形原文第i位的数值的补码作对位模2加后的值,i=1、2、3、…、n;c2.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加形式加到第u级,和将第v+8级的状态自身左循环串移17位;d2.重复执行步骤b2、c2,直至i=n时转为执行下述步骤;e2.移位寄存器后八级的反馈方式是将前一级内容以模232加形式加到每一本级,移位寄存器第1至7级的反馈方式是将前一级内容反馈到该本级,移位寄存器第0级的反馈值是第二反馈函数f2的运算结果;f2.取移位寄存器第0级的最高3个比特位和最低3个比特位,由最高3个比特位构成值u,由最低3个比特位构成值v,将第15-u级的内容以模232加的形式加到第u级,和将第v+8级的状态自身左循环串移17位;g2.重复执行步骤e2、f2,共16拍时转为执行所述的步骤D。
10.根据权利要求8或9所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的有密钥方式时,所述的由密钥派生16个数值进一步包括(1)设用户密钥为K1,K2,…,Kg,当g小于5字节时,将密钥循环派生为5字节,g=5;(2)当h=g+1,g+2,g+3,…,64时,计算Kh=Kh-5+Kh-2mod 256;(3)将它们每4字节顺序串接,构成16个32比特的数字。
11.根据权利要求1所述的一种基于反馈移位寄存器的杂凑方法,其特征在于所述的步骤E,进一步包括在要求摘要长度为128比特时,依次取移位寄存器前八级的高位16比特;在要求摘要长度为160比特时,依次取移位寄存器前八级的高位16比特和移位寄存器第8、第9级的低位16比特;在要求摘要长度为192比特时,依次取移位寄存器前八级的高位16比特和移位寄存器第8、第9、第10、第11级的低位16比特;在要求摘要长度为256比特时,取移位寄存器前八级的高位16比特和后八级的低位16比特。
全文摘要
本发明涉及一种基于反馈移位寄存器的杂凑方法,适于32位字长运算,原文与摘要长度都可变。包括设置一个Z/(文档编号H04L9/00GK1426192SQ0114047
公开日2003年6月25日 申请日期2001年12月10日 优先权日2001年12月10日
发明者冯登国, 张玉安 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1