非线性循环移位寄存器的制作方法

文档序号:7599137阅读:342来源:国知局
专利名称:非线性循环移位寄存器的制作方法
技术领域
非线性循环移位寄存器(NRSR)是保密通信领域用于产生非线性伪随机序列的密码部件,主要用途设计流(序列)密码算法;设计分组密码中的密钥编排算法;设计杂凑 (Hash)函数中的消息扩展算法。
背景技术
密码编码中产生伪随机序列的常用密码部件有线性反馈移位寄存器(LFSR)[1]和非线性反馈移位寄存器(NLFSR)[2]等,以下合称(N)LFSR。例如,第2代移动通信系统GSM 的加密标准A5算法[3’4]、蓝牙加密标准EO算法M和流密码国际标准SN0W2算法[3]都采用了 LFSR ;杂凑(Hash)函数标准SHAl和SHA2的消息扩展算法[3]以及第3代标准SHA3的多个候选算法采用了(N) LFSR或其它发生器。η级(N) LFSR的当前输出比特都是前η比特的逻辑函数(η彡2),这样的逻辑函数共有22η个,其中线性的有2η个,非线性的有22η-2η个。LFSR采用以下反馈模式由前η比特 (a, ‘Η)线性递推下一比特^vi an+i = Bi-C^aw"-"cliWl (其中常数 ck = 0 或 1,1 彡 k 彡 n_l,~ 是模 2 加法,i 一般从0开始)如果输入的初始η比特( 全为0,则LFSR输出恒为0,因此,η级 LFSR的最大周期为2η-1。当且仅当LFSR的反馈多项式为本原多项式时,LFSR的周期才达到最大。产生一个本原多项式并不容易,可借助数学软件包。SHAl的消息扩展算法采用以下模式由前16个字(wt_16 WtJ递推下一个字Wt wt = (wt_3"wt_8"wt_14"wt_16) <<< 1 ( <<< 1 表示循环左移 1 位,字长 m 为 32 比特)这相当于字长m为32b (比特)的16级发生器,如果输入的初始16个字(wQ W15)全为0,则输出恒为0,因此,其最大周期小于等于032)16_1。11级^^51 的最大周期为2\当字长为m比特时(m—般取平台的位数,例如8、16、32、64),n级非线性循环移位寄存器(NRSR) 的周期大于Om)n。(N) LFSR软件实现慢,解决的办法是并行m个(N) LFSR,相当于字长为m 比特,但最大周期还是小于等于2n,除非象SN0W2 —样采用模2m的本原多项式,最大周期才小于等于Om)n。也就是说,对于不同的字长m和不同的级数n,(N)LFSR要寻找不同的反馈模式。不管字长m和级数η为多大,NRSR存在统一的反馈模式,无须寻找达到最大周期的反馈模式,可以直接适应各种平台,包括将来1 位以上的平台。在32位平台下0.4GHz 双核 CPU、2GB 内存、Windows XP、C 语言),SN0W2 的 LFSR 速度为 630MB/s。SHAl 和 SHA256 的消息扩展算法速度都小于400MB/S。NRSR的速度为700MB/s。对于A5和EO算法采用的 LFSR,除非同时并行32个LFSR,效率才和NRSR相当。对于周期达到最大的(N)LFSR,其输出是绝对均勻的,遍历了所有状态才会重复。测试表明,NRSR产生的输出是伪随机均勻的, 又能遍历所有状态。[1](美)Schneier B.应用密码学——协议、算法与C源程序.吴世忠等译.机械工业出版社,2000-1. 264 269[2](中)王育民,刘建伟.通信网的安全——理论与技术.西安电子科技大学出版社,1999-04. 81 82[3](中)谷利泽,郑世慧,杨义先.现代密码学教程.北京邮电大学出版社, 2009-08. 169 175,189 204W](中)徐胜波,马文平,王新梅.无线通信网中的安全技术.人民邮电出版社, 2003-07. 149 150,183 18
发明内容
发明目的为了快速产生伪随机性更好的输出序列,用于设计安全高效的对称密码算法和杂凑(Hash)函数,非线性循环移位寄存器(NRSR)相比(N) LFSR而言,扩大了输出序列的周期,改善了输出的伪随机性,增强了多平台适应性,提高了效率。技术方案非线性循环移位寄存器(NRSR)是一种新型反馈移位寄存器(FSR),其采用的技术方案是当字长为m比特时(111一般取平台的位数,例如8、16、32、64),11级殿51 采用以下反馈模式由前η个字( h)递推下一个字 +n(n彡2,i从0或从1开始均可)al+n = {[c x r (b X a,+n-,) ......Θ C1X X a,)] + C0} mod 2m其中,rk(a) (1 ^ k ^ n)表示a循环移位,至少有一个循环移位数在0 m_l之间循环变化,其它可以不移位; 表示模2加(逐位异或)或者模2m加,X表示模2m乘,mod 2m表示模2m运算(求余数);bx、cy为0 2m-l之间的整数(1彡χ彡n,0彡y彡n),但cQ、 Vc1为奇数,还有1对(bx,cx)为奇数O 彡η),一般bn、Cn取奇数;输入的初始η个字 (a0 取值都不限,输入的每个字都可以是任意m比特长的数。为提高效率,我们推荐使用简单的NRSR,由前η个字( + _》中的2个字递推下一个字(首字 必选,一般取首尾2个字,如附图1所示)α,+η = {[( δ X α,+ -ι) (a, < j)] + 1 } mod 2m其中,b为3 2m_l之间循环变化的奇数,可取b = 2 +1 ;<<< j表示循环左移 j位,j在0 m-Ι之间循环变化,可取j = i mod m。当m较大时,例如m彡32,从应用上来说,b在3 2m-l之间循环变化与b在1 2m-l之间循环变化的性能差异不大。
如果平台处理乘法的能力差,可取al+ = {[( ,+ -1< /) <3, ] + 1 } mod ImNRSR与(N) LFSR不同之处在于(1)乘法系数b循环变化;( 循环移位数j循环变化;(3)计数加1。有益效果相比(N)LFSR而言,非线性循环移位寄存器(NRSR)有以下优点(1)周期更大、安全性更高。由于乘法系数b和循环移位数j不固定,η级NRSR的周期大于(2m)n(字长为m比特)。对于反馈模式[( + <<<< j)+ai+l]mod 2m(j 在0 m-1之间循环变化),当字长为8b (比特)时,测试得2级NRSR的周期为484192 > 216B (字节);3 级 NRSR 的周期为 81,782456 > 224 (16MB) ;4 级 NRSR 的周期为 27,251403552 > 232 (4GB)。当字长为16b时,2级NRSR的周期为37,540033008 > 4G个短整数。对于反馈模式 *= [(bXai+nl) + (ai <<< j)+l]mod 2m(b为1 2m_l之间循环变化的奇数),当字长为汕时,测试得2级NRSR的周期为4,765440 > 216(64KB)。如果b取3 2m_l之间循环变化的奇数,周期更大。测试表明,周期与寄存器的初值、循环移位数j的初值及乘法系数b的初值无关。对于周期达到最大的LFSR,其输出状态1 2n_l是绝对均勻的;对于周期达到最大的NLFSR,其输出状态0 2n-l是绝对均勻的,遍历了所有状态才会重复。测试表明,NRSR 产生的输出是伪随机均勻的,没有遍历所有状态也可能出现重复(寄存器状态重复不一定是周期重复,当寄存器的状态和循环移位数j的状态以及乘法系数b的状态同时重复才是周期重复)。因此,NRSR的不可预测性和安全性优于(N)LFSR。NRSR输入的初始η个字( ^v1)取值都不限,可以全为0。对于杂凑(Hash)函数标准SHAl和SHA2的消息扩展算法,如果初始消息全为0,则扩展消息也全为0。NRSR不存在该问题。另外,有个分组密码算法叫RC6,需要5轮加密才能实现伪随机性。其加密轮函数 f(i, a, b, c, d)为{u = [d(2d+l)] <<< 5 ;t = [b(2b+l)] <<< 5 ;a = [(a"t) <<< u]+k[i]; c = [(c"u) <<< t]+k[i+l] ;}用NRSR直接取代2个缓存变量u和t,对d和b进行可逆更新{t = d ;d = [(t+1) < < < i]+b ;b = (d < < < i)+t+l ;a = [(a"d) <<< b]+k[i] ;c = [(c"b) <<< d]+k[i+l] ;}5轮加密也实现了伪随机性,这也说明NRSR具有良好的密码特性。(2)效率更高。在32位平台下(2. 4GHz双核CPU、2GB内存、Windows XP、C语言), NRSR速度为700MB/s。常用(N) LFSR速度一般不超过630MB/s。(3)多平台适应性更灵活。(N)LFSR软件实现慢,解决的办法是并行m个(N)LFSR(m 一般取平台的位数),相当于字长为m比特,但最大周期还是小于等于2n,除非象SN0W2 —样采用模2">的本原多项式,最大周期才小于等于Qm)n。也就是说,对于不同的字长m和不同的级数n,(N)LFSR要寻找不同的反馈模式。不管字长m和级数η为多大,NRSR存在固定的反馈模式如》= ([( α 1 + -, < j) a, ] + U mod 2m (j在 m_l之间循环变化, 表示模2加或者模2m加)和α,+ = {[( bXal+n-x)&(a,< j)] + 1 } mod 2m (b为3 2m_l之间循环变化的奇数),无须寻找达到最大周期的反馈模式,可以直接适应各种平台,包括将来1 位以上的
D ο


图1非线性循环移位寄存器(NRSR)说明<<< j表示循环左移j位, 表示模2加(逐位异或)或者模2m加,X表示模2m乘,mod m表示模m运算(求余数);m—般取平台的位数,例如8、16、32、64 ;i从0 或从1开始均可,η彡2。
具体实施例方式(1)当字长为m比特时(m—般取平台的位数,例如8、16、32、64),η级非线性循环移位寄存器(NRSR)由前η个字( 中的首尾2个字( , Bi^1)递推下一个字ai+n(如附图1所示,η彡2,i从0或从1开始均可)al+ = {[( 6 X α,+η-ι) (a, <j·)] + 1 } mod 2"其中,b为3 2m_l之间或1 2m_l循环变化的奇数,可取b = 2 +1 ;<<< j表示循环左移j位,j在0 m-1之间循环变化,可取j = i mod m 表示模2加(逐位异或) 或者模2m加,X表示模2m乘,mod 2m表示模2m运算(求余数)。输入的初始η个字( an_i)取值都不限,输入的每个字都可以是任意m比特长的数。当m较大时,例如m彡32,从应用上来说,b在3 2m-l之间循环变化与b在1 2m-l之间循环变化的性能差异不大。(2)如果平台处理乘法的能力差,当字长为m比特时,η级非线性循环移位寄存器 (NRSR)由前η个字( + _)中的首尾2个字( , +」递推下一个字 +η,可取al+n= {[( α,+ , < ; ) α, ] + 1 } mod 2m其中,<<< j表示循环左移j位,j在0 m-Ι之间循环变化,可取j = i mod m 表示模2加或者模2m加。(3)当字长为m比特时,η级非线性循环移位寄存器(NRSR)由前η个字递推下一个字 +η,也可取al+ = {[c X r (b X a,+frl) ...... d Xr1C^X a,)] + C0} mod 2m其中,rk(a) (1彡k彡n)表示a循环移位,至少有一个循环移位数在0 m_l之间循环变化,其它可以不移位;bx、cy为0 2m-l之间的整数(1彡χ彡n,0彡y彡η),但cQ、 bp C1为奇数,还有1对(bx,cx)为奇数0彡乂彡11),一般1^、(^取奇数; 表示模2加(异或)或者模2m加,X表示模2m乘,mod 2m表示模2m运算(求余数)。
权利要求
1.非线性循环移位寄存器(NRSR)是一种新型反馈移位寄存器(FSR),其总体特征是 当字长为m比特时(m—般取平台的位数,例如8、16、32、64),η级NRSR采用以下反馈模式由前η个字( h)递推下一个字 +n(n彡2,i从0或从1开始均可)al+n= {[c Xr (0 Xa,+ -,) ...... C1 Xr1Pi Xa,)] +c0} mod 2m其中,rk(a) (1 ^ k ^ n)表示a循环移位,至少有一个循环移位数在0 m_l之间循环变化,其它可以不移位; 表示模2加(逐位异或)或者模2m加,X表示模2m乘,mod 2m 表示模2m运算(求余数);bx、、为0 2m-l之间的整数(1彡χ彡n,0彡y彡n),但cQ、 Vc1为奇数,还有1对(bx,cx)为奇数O 彡η),一般bn、Cn取奇数;输入的初始η个字 (a0 取值都不限,输入的每个字都可以是任意m比特长的数。
2.根据权利要求1所述的非线性循环移位寄存器(NRSR),为提高效率,只由前η个字 ㈨ +㈣)中的2个字递推下一个字,首字 必选,一般取首尾2个字( , +^),其特征是当字长为m比特时,η级NRSR采用以下反馈模式由前η个字中的2个字Gi,递推下一个字彡 k 彡 i+n-1)a,+ = {[{bXak) {a, <j)] + c } mod 2m其中,b为3 2m-l之间循环变化的奇数,可取b = 2 +1 ;<<< j表示循环左移j位, j在0 m-Ι之间循环变化,可取j = i mod m ;c为1 2m_l之间的奇数,可取c = 1 ; 表示模2加(逐位异或)或者模2m力卩,X表示模2m乘,mod 2m表示模2m运算(求余数),m — 般取平台的位数;当m较大时,例如m ^ 32,从应用上来说,b在3 2m_l之间循环变化与 b在1 2m-l之间循环变化的性能差异不大;输入的初始η个字( an_i)取值都不限, 输入的每个字都可以是任意m比特长的数。
3.根据权利要求1所述的非线性循环移位寄存器(NRSR),如果平台处理乘法的能力差,为提高效率,只由前η个字( + _)中的2个字递推下一个字,首字 必选,一般取首尾2个字,其特征是当字长为m比特时,η级NRSR采用以下反馈模式由前η个字中的2 个字( ,ak)递推下一个字ai+n(i+l彡k彡i+n-1)al+n= {[(ak <j) α, ] + c } mod 2m其中,<<< j表示循环左移j位,j在0 m-1之间循环变化,可取j = i mod m ;c 为1 2m-l之间的奇数,可取c = 1 ; 表示模2加(逐位异或)或者模2m加,mod 2m表示模2m运算(求余数),m—般取平台的位数;输入的初始η个字(% %_》取值都不限,输入的每个字都可以是任意m比特长的数。
全文摘要
反馈移位寄存器(FSR)是保密通信领域用于产生伪随机序列的密码部件,有线性FSR(LFSR)和非线性FSR(NLFSR)等。非线性循环移位寄存器(NRSR)是一种新型FSR。n级LFSR的最大周期为2n-1;n级NLFSR的最大周期为2n。字长为m比特时,n级NRSR采用以下反馈模式由前n个字递推下一个字(<<<表示循环左移,表示模2加或者模2m加)上式中,m一般取平台的位数,例如8、16、32、64;mod表示模运算(求余),i从0或1开始均可,n≥2。字长为m比特时,n级NRSR的周期大于(2m)n,即安全性高于(N)LFSR;NRSR效率也高于常用的(N)LFSR。主要用途设计流密码算法;设计分组密码中的密钥编排算法;设计杂凑(Hash)函数中的消息扩展算法。
文档编号H04L9/06GK102176693SQ20111005150
公开日2011年9月7日 申请日期2011年3月4日 优先权日2011年3月4日
发明者任勇军, 杜庆伟, 王俊波, 薛英花, 黄玉划 申请人:南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1