并行循环移位寄存器prr的制作方法

文档序号:7823723阅读:418来源:国知局
并行循环移位寄存器prr的制作方法
【专利摘要】移位寄存器是保密通信领域用于产生伪随机序列的密码部件,有线性反馈移位寄存器LFSR和非线性反馈移位寄存器NLFSR等,其最大周期T≤2n。字长为m比特时,令并行循环移位寄存器PRR的初值为a0~an-1,则用以下模式由前n字递推后n字。先求和:akn=akn-1+…+akn-nmod 2m;其中k≥1,模运算mod表示求余数。然后并行计算后n-1字:For i=1 to n-1{j=kn+i;aj=[akn<<<(j mod m)]+aj-n+i mod 2m}其中n≥2,m取平台的位数;<<<j表示循环左移j位;初值a0~an-1不限。字长为m比特时,n级PRR的周期大于(2m)n,即安全性高于(N)LFSR;PRR效率也高于(N)LFSR。主要用途:设计流密码算法;设计分组密码中的密钥编排算法;设计Hash函数中的消息扩展算法;扩频通信中用于提高可靠性。
【专利说明】并行循环移位寄存器PRR

【技术领域】
[0001] 并行循环移位寄存器PRR是保密通信领域用于产生非线性伪随机序列的密码部 件,主要用途:设计流密码算法;设计分组密码中的密钥编排算法;设计杂凑(Hash)函数中 的消息扩展算法;扩频通信中用于提高可靠性。

【背景技术】
[0002] 密码编码中产生伪随机序列的常用密码部件有线性反馈移位寄存器LFSR[1]和非 线性反馈移位寄存器NLFSR[2]等,以下合称(N) LFSR。例如,第2代移动通信系统GSM的加 密标准A5算法[3'4]、蓝牙加密标准E0算法[4]和流密码国际标准SNOW2算法 [3]都采用了 LFSR ;Hash函数标准SHA1和SHA2的消息扩展算法[3]以及第3代标准SHA3的多个候选算 法采用了(N) LFSR或其它发生器。
[0003] n级(N)LFSR的当前输出比特都是前n比特的逻辑函数,这样的逻辑函数共有2" 个,其中线性的有2"个,非线性的有22" _2"个。LFSR采用以下反馈模式由前n比特a,?au+H 线性递推下一比特an+i:
[0004] an+i= a厂(^-而+厂… '。仏別
[0005] 其中,常数ck= 0或1,1彡k彡n-1,'是异或即模2加法。如果输入的初始n比 特aQ?a n_i全为0,则LFSR输出恒为0,因此,n级LFSR的最大周期为2 n-l。当且仅当LFSR 的反馈多项式为本原多项式时,LFSR的周期才达到最大。产生一个本原多项式并不容易, 需借助数学软件包。SHA1的消息扩展算法采用以下模式由前16个字wt_16?w t..:递推下一 个字wt:
[0006] wt= (wt_3"wt_8"wt_ 14"wt_16) <<< 1
[0007] 其中,<<< 1表示循环左移1位,字长m为32比特。这相当于字长m为32b(比 特)的16级发生器,如果输入的初始16个字W(l?w 15全为0,则输出恒为0,因此,其最大 周期小于等于(2 32) 16_1。n级NLFSR的最大周期为2n。当字长为m比特时,n级并行循环移 位寄存器PRR的周期大于(2m)n。(N) LFSR软件实现慢,解决的办法是并行m个(N) LFSR,相 当于字长为m比特,但最大周期还是小于等于2n,除非象SNOW2 -样采用模2m的本原多项 式,最大周期才小于等于(2T。也就是说,对于不同的字长m和不同的级数n,(N)LFSR要 寻找不同的反馈模式。不管字长m和级数n为多大,NRSR存在统一的反馈模式,无须寻找 达到最大周期的反馈模式,可以直接适应各种平台,包括将来128位以上的平台。在32位 平台下(2. 4GHz 双核 CPU、2GB 内存、Windows XP、C 语言),SNOW2 的 LFSR 速度为 630MB/s。 SHA1和SHA256的消息扩展算法速度都小于400MB/s。PRR的速度为700MB/S。对于A5和 E0算法采用的LFSR,除非同时并行32个LFSR,效率才和PRR相当。对于周期达到最大的 (N) LFSR,其输出是绝对均匀的,遍历了所有状态才会重复。测试表明,PRR产生的输出是伪 随机均匀的,又能遍历所有状态。
[0008] [1](美)Schneier B.应用密码学一一协议、算法与C源程序.吴世忠等译.机械 工业出版社,2000-1. 264?269
[0009] [2](中)王育民,刘建伟.通信网的安全一一理论与技术.西安电子科技大学出 版社,1999-04. 81 ?82
[0010] [3](中)谷利泽,郑世慧,杨义先.现代密码学教程.北京邮电大学出版社, 2009-08. 169 ?175,189 ?204
[0011] [4](中)徐胜波,马文平,王新梅.无线通信网中的安全技术.人民邮电出版社, 2003-07. 149 ?150,183 ?187


【发明内容】

[0012] 【发明目的】
[0013] 为了快速产生伪随机性更好的输出序列,用于设计安全高效的对称密码算法和杂 凑Hash函数,并行循环移位寄存器PRR相比(N)LFSR而言,扩大了输出序列的周期,改善了 输出的伪随机性,增强了多平台适应性,提高了效率。
[0014] 【技术方案】
[0015] 并行循环移位寄存器PRR是一种新型移位寄存器,其采用的技术方案是:当字长 为m比特时,令n级PRR的初值为aQ?a n_i,则PRR采用以下模式由前n个字递推后n个字。
[0016] (1)先对前n个字求和:akn= (a 其中k彡1,模运算mod表示 求余数。
[0017] (2)并行计算后 n-1 个字:Fori = lto n-1 {j = kn+i 叫=[a to< < < (j mod m)]+aj_n+i mod2m}
[0018] 其中,n彡2,字长m取平台的位数:<<< j表示循环左移j位:输入的初始n个 字%?a n_i取值都不限,输入的每个字都是任意m比特长的数。
[0019] PRR与(N)LFSR不同之处在于:(1)循环移位数j循环变化;(2)计数加i ;(3)寄 存器初值不受限。
[0020] 【有益效果】
[0021] 相比(N)LFSR而言,非线性循环移位寄存器(NRSR)有以下优点:
[0022] (1)周期更大、安全性更高。由于循环移位数L不固定,字长为m比特时,n级PRR的 周期大于(2m)n。对于并行模式a』=[akn<<< (j mod m)]+aj_n+i mod2m},当字长为8b (比 特)时,测试得2级PRR的周期为227560 > 21? (字节);3级PRR的周期为331,573248 > 2 24 (16MB)。对于并行模式a」=[ato<<< (j mod m)]+a」_n+j mod2m},当字长为8b时,测 试得2级PRR的周期为8569856 > 2 16B ;3级PRR的周期为2639, 364096 > 2 24B。测试表 明,周期与寄存器的初值、循环移位数L的初值无关。
[0023] 对于周期达到最大的LFSR,其输出状态1?2n_l是绝对均匀的;对于周期达到最 大的NLFSR,其输出状态0?2n-l是绝对均匀的,遍历了所有状态才会重复。测试表明,PRR 产生的输出是伪随机均匀的,没有遍历所有状态也可能出现重复。寄存器状态重复不一定 是周期重复,当寄存器的状态和循环移位数L的状态同时重复才是周期重复。因此,PRR的 不可预测性和安全性优于(N)LFSR。
[0024] PRR输入的初始n个字aQ?a n_i取值都不限。对于Hash函数标准SHA1和SHA2的 消息扩展算法,如果初始消息全为〇,则扩展消息也全为0。PRR不存在该问题。
[0025] (2)效率更高。对于32位平台、2GHz单核CPU(512MB内存、Windows XP、C语言), PRR 速度为 760MB/s。对于 32 位平台、2.4GHz 双核 CPU (2GB 内存、Windows XP、C 语言),PRR 速度为lGB/s。常用(N)LFSR速度不超过630MB/s。
[0026] (3)多平台适应性更灵活。(N)LFSR软件实现慢,解决的办法是,平台的位数为m 时,并行m个(N) LFSR,相当于字长为m比特,但最大周期还是小于等于2n,除非象SN0W2 - 样采用模2m的本原多项式,最大周期才小于等于(2T。也就是说,对于不同的字长m和不同 的级数n,(N) LFSR要寻找不同的反馈模式。不管字长m和级数n为多大,NRSR存在固定的 反馈模式 &j= [akn<<< (j mod m)]+aj_n+i mod2m}和 a』=[akn<<< (j mod m)]+aj_n+j mod2m},无须寻找达到最大周期的反馈模式,可以直接适应各种平台,包括将来128位以上 的平台。

【专利附图】

【附图说明】
[0027] 图1并行循环移位寄存器PRR
[0028] 说明:n彡2,k彡l,l<i< n-1,j = kn+i ;<<< j表示循环左移j位,模运算 mod表示求余数,字长m取平台的位数。

【具体实施方式】
[0029] 并行循环移位寄存器PRR是一种新型移位寄存器,其【具体实施方式】为:当字长为m 比特时,令n级PRR的初值为aQ?a n_i,则PRR采用以下模式由前n个字递推后n个字。
[0030] (1)先对前n个字求和:akn= (a 其中k彡1,模运算mod表示 求余数。
[0031] (2)并行计算后 n-1 个字:Fori = lto n-1 {j = kn+i 叫=[a to< < < (j mod m)]+aj_n+i mod2m}
[0032] 其中,,彡2,字长m取平台的位数;<<< j表示循环左移j位;输入的初始n个 字%?a n_i取值都不限,输入的每个字都是任意m比特长的数。
[0033] 应用时,对于具体的平台,通过扩展PRR的级数以提高效率。例如,对于四核平台, 如果n mod4辛1,则将n级PRR扩展成41+1级,这样同时并行计算产生4个字。
【权利要求】
1. 并行循环移位寄存器PRR,其总体特征是:当字长为m比特时,令n级PRR的初值为 a。?a n_i,则先对前n个字求和,即akn= 2m,其中k多1,模运算mod表 示求余数;然后并行计算出后n-1个字。
2. 根据权利要求1所述的并行循环移位寄存器PRR,其并行计算后n-1个字的模式为: For i = lto n-1 {j = kn+i ;aj= [akn<<< (j mod m)]+aj_n+i mod 2m} 其中,n多2,字长m取平台的位数;<<< j表示循环左移j位;输入的初始n个字 %?a n_i取值都不限,输入的每个字都是任意m比特长的数。
3. 根据权利要求1所述的并行循环移位寄存器PRR,其并行计算后n-1个字的模式为: For i = lto n-1 {j = kn+i ;aj= [akn<<< (j mod m)]+aj_n+j mod 2m} 其中,n多2,字长m取平台的位数;<<< j表示循环左移j位;输入的初始n个字 %?a n_i取值都不限,输入的每个字都是任意m比特长的数。
【文档编号】H04L9/06GK104506303SQ201410809169
【公开日】2015年4月8日 申请日期:2014年12月19日 优先权日:2014年12月19日
【发明者】黄玉划, 苏菲, 陶怡婷, 丁莉莉, 汪骏 申请人:苏州中科启慧软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1