基于非线性循环移位寄存器的流密码算法snrr的制作方法

文档序号:7823152阅读:290来源:国知局
基于非线性循环移位寄存器的流密码算法snrr的制作方法
【专利摘要】移位寄存器是保密通信领域用于产生伪随机序列的密码部件,有线性反馈移位寄存器LFSR和非线性反馈移位寄存器NLFSR等,其最大周期T≤2n。n级非线性循环移位寄存器NRR的反馈模式为:上式中,i≥0,n≥2,字长m取平台的位数;<<<j表示循环左移j位;表示模加;c为1~2m-1之间的奇数;输入的初始n个字a0~an-1取值都不限,每字都是任意m位数。字长为m比特时,n级NRR的周期大于(2m)n,即安全性高于传统的(N)LFSR;NRR效率也高于常用的(N)LFSR。采用5个NRR设计了一个流密码算法SNRR,其中第1个NRR用于密钥编排,另4个NRR的输出进行模加产生SNRR的密钥流。SNRR的效率高于常用对称密码算法,主要用于网络与信息系统安全中的数据加解密。
【专利说明】基于非线性循环移位寄存器的流密码算法SNRR

【技术领域】
[0001] 基于非线性循环移位寄存器NRR的流密码算法SNRR是保密通信领域的一种对称 密码算法,主要用于网络与信息系统安全中的数据加解密。

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


【发明内容】

[001引【发明目的】
[0014] 为了设计安全高效的对称密码算法,用于网络与信息系统安全中的数据加解密, 基于非线性循环移位寄存器NRR的流密码算法SNRR相比其它对称密码算法而言,扩大了输 出序列的周期,增强了多平台适应性,提高了效率。
[00巧]【技术方案】
[0016] 本发明中的非线性循环移位寄存器NRR采用的技术方案是;当字长为m比特时,n 级NRR采用W下反馈模式由前n个字a,?a 中的首尾2个字递推下一个字a
[0017] = {[(幻<?7)虫幻,' ]+ C } mod 2",
[0018] 其中,i > 0,n > 2,字长m取平台的位数;模运算mod表示求余数;<<< j表示 循环左移j位,j在0?m-1之间循环变化,即j = i mod m ;?表示模加;C为!?2"-1之 间的奇数;输入的初始n个字a。?a。_1取值都不限,输入的每个字都是任意m比特长的数。
[0019] 本发明中的NRR与传统的(N)LFSR不同之处在于;(1)循环移位数j循环变化;(2) 计数加C; (3)初值不受限。
[0020] 流密码算法的加密方式为;密文C = P'KS ;解密方式为;明文P = C'KS。其中KS 为密钥流,所W其关键是如何产生密钥流。SNRR算法采用了 5个NRR,其中第1个NRR用于 密钥编排,另4个NRR的输出进行模加来产生密钥流。SNRR算法产生密钥流的过程用KS = SNRR化,IV)表示。其中输入参数K为长度化> 16B (字节)的密钥;IV是保密通信中用于 抗重放攻击的初始向量,与密钥K等长。对于16B的密钥和32位平台,将密钥K和初值IV 表示成4个32位字级联:
[002U K = (KoIlKiIlKsllig ;IV = (IVoMlVil IIV2MIV3)
[002引 SNRR算法中第1个NRR的初值为Aa= (a。I I aj I 321 I as) = rIV。其反馈模式为;
[002引 aw= {[(a i+3<<< j)-a i]+l}mod 232,其中 i > 0, j = i mod 32,-表示逐位异 或运算。
[0024] 另 4 个 NRR 的初值分别为;B〇=化。II bj I b21 I bs) = (awel I a側 I k巧81 k 巧9);
[0025] D〇= (d。II dj I d2 II eg = (a"4〇+ig I I (awi+K。)II (aw2+Ki) I I (a"43+ig ;
[0026] E〇= (e J I ej I 621 I 63) = (aw4+K2) II (aws+Kg) I I (awe+K〇) I I (aw7+Ki);
[0027] F〇= (f J I f J I fa I I fs) = (aw81 I aw91 I a;巧01 I a;巧 1)。
[002引对于i > 0,后4个NRR的反馈模式分别为:
[0029] b"4= {[化 w<<< j i)+bJ+:3}mod 232,其中 ji= i巧mod 32 ;
[0030] d"4= {[(d"3<<< j2)+di]+引mod 232,其中 j2= i+llmod 32 ;
[003U ew= {[(e i"<<< j 3)+eJ+7}mod 232,其中 j3= i+17mod 32 ;
[003引 f"4= {[(f "3<<< j4)+fJ+U}mod 232,其中 j.4= i+23mod 32。
[0033] SNRR算法的输出密钥流由后4个NRR的输出进行模加来产生; KS, = (6, +4 拓 4 +4 宙 e, +4 宙乂 +4 )。
[0034] 【有益效果】
[0035] 相比常用对称密码算法,流密码算法SNRR有W下优点:
[0036] (1)周期更大、安全性更高。由于乘法系数b和循环移位数j不固定,字长为m比 特时,n级NRR的周期大于(2T。对于反馈模式3;+。= [(aiw<<< j)+ai+l]mod 2-,当 字长为8b (比特)时,测试得2级NRSR的周期为484192 > 21屯(字节);3级NRR的周期 为 81,782456 > 224(16MB) ;4 级 NRR 的周期为 27, 251403552 > 232 (4GB)。当字长为 16b 时,2级NRR的周期为 37,540033008 >4G个短整数。对于反馈模式ai+。=[化Xai+。_l) + (ai <<< ^+l]mod 2-,当字长为8b时,b取1?2--1之间循环变化的奇数,测试得2级NRR 的周期为4,765440 >2"(64邸)。如果b取3?2--1之间循环变化的奇数,周期更大。测 试表明,周期与寄存器的初值、循环移位数j的初值及乘法系数b的初值无关。
[0037] 对于周期达到最大的LFSR,其输出状态1?2D-1是绝对均匀的;对于周期达到最 大的NLFSR,其输出状态0?2"-1是绝对均匀的,遍历了所有状态才会重复。测试表明,NRR 产生的输出是伪随机均匀的,没有遍历所有状态也可能出现重复。寄存器状态重复不一定 是周期重复,当寄存器的状态和循环移位数j的状态W及乘法系数b的状态同时重复才是 周期重复。因此,NRR的不可预测性和安全性优于(N)LFSR。
[003引 NRR输入的初始n个字a。?a。_1取值都不限。对于杂凑版sh)函数标准SHA1和 SHA2的消息扩展算法,如果初始消息全为0,则扩展消息也全为0。NRR不存在该问题。
[0039] 另外,有个分组密码算法叫RC6,需要5轮加密才能实现伪随机性。其加密轮函数 f (i,a, b,C,d)为;
[0040] {u = [d(2d+l) ] <<< 5 ;t =比(2b+l) ] <<< 5 ;a = [ (a_1:) <<< u]+k[i]; c = [(c_u) <<< 1:]+k[i+l] ;}
[0041] 用NRR直接取代2个缓存变量u和t,对d和b进行可逆更新;
[0042] {t = d ;d = [ (t+1) < < < i]+b ;b = (d < < < ;〇+t+l ;a = [ (a_d) <<<b]+k[i] ;c= [(c_b) <<<d]+k[i+l] ;}
[0043] 5轮加密也实现了伪随机性,该也说明NRR具有良好的密码特性。
[0044] 因此,流密码算法SNRR的周期大于常用对称密码算法。从该方面讲,SNRR的安全 性高于常用对称密码算法。
[0045] (2)效率更高。在32位平台下(2. 4GHz双核CPU、2GB内存、Windows XP、C语言), NRR速度为700MB/S。常用(N)LFSR速度不超过630MB/S。
[0046] 单核时,常用对称密码算法的速度不超过50MB/S ;双核时不超过lOOMB/s。2GHz 单核时,RC6_ECB的加密速度,即RC6-CTR和RC6-0FB产生密钥流的速度为45MB/S ;RC4、 AES-CTR和AES-0FB产生密钥流的速度为30MB/S。2. 4細Z双核时,AES-CTR和AES-0FB产 生密钥流的速度为75MB/S。2GHz单核时,SNRR产生密钥流的速度为61MB/S ;2. 4GHz双核 时,SNRR产生密钥流的速度为118MB/S。SNRR算法的4个NRR能并行处理,四核时效率达 到最佳,适合目前普遍使用的双核四核计算机。
[0047] (3)多平台适应性更灵活。(脚LFSR软件实现慢,解决的办法是,平台的位 数为m时,并行m个㈱LFSR,相当于字长为m比特,但最大周期还是小于等于2",除 非象SNOW2-样采用模2-的本原多项式,最大周期才小于等于(2-)n。也就是说,对 于不同的字长m和不同的级数n,㈱LFSR要寻找不同的反馈模式。不管字长m和 级数n为多大,NRR存在固定的反馈模式a,+,,={[(a, +。l<?y)?a,.]+c}mod2m和 幻,心={[(6><(3,+。-1)@的《<7)]+£;}1110(^2。',无须寻找达到最大周期的反馈模式,能直接适应 各种平台,包括将来128位W上的平台。
[0048] SNRR算法能直接扩展成面向64位W上平台的密码算法,也能直接改成面向资源 受限的8位平台算法。

【专利附图】

【附图说明】
[0049] 图1基于非线性循环移位寄存器的流密码算法SNRR [0化日]说明;?表示模加。

【具体实施方式】
[0化1] 本发明中的非线性循环移位寄存器NRR的【具体实施方式】是;当字长为m比特时,n 级NRR采用W下反馈模式由前n个字a,?a 中的首尾2个字递推下一个字a
[005引 幻,'+" = {[(幻,+n-i <?y)迅幻,' ]+ C } mod 2。'
[005引其中,n > 2,字长m取平台的位数;<<< j表示循环左移j位,j在0?m-1之 间循环变化,即j = i mod m 表示模加;C为1?2-1之间的奇数;输入的初始n个字a。? 3。_1取值都不限,输入的每个字都是任意m比特长的数。
[0054] SNRR算法采用了 5个NRR,其中第1个NRR用于密钥编排,另4个NRR的输出进行 模加来产生密钥流。SNRR算法产生密钥流的过程用KS = SNRR(K,IV)表示。其中输入参 数K为长度化> 16B (字节)的密钥;IV是保密通信中用于抗重放攻击的初始向量,与密 钥K等长。对于16B的密钥和32位平台,将密钥K和初值IV表示成4个32位字级联; [005引 K =化0 I I Ki I I 馬 IIIQ ;IV = (IV0 I I IVi I IIV2IIIV3)
[0056] SNRR算法中第1个NRR的初值为Aa= (a。I I aj I 321 I as) = K'IV。其反馈模式为;
[0057] aw= {[(a i巧<<< j)-a i]+l}mod 232,其中 i > 0,j = imod 32,-表示逐位异 或运算。
[005 引另 4 个 NRR 的初值分别为;B0=化。II bj I b21 I bs) = (awel I a側 I k巧81 k 巧9);
[0059] D〇= (del |dj Idgl Ids) = (awo+Ks) I I (awi+K〇) I I (aw2+Ki) I I (aw3+K2);
[0060] E〇= (e J I ej I 621 I 63) = (aw4+K2) II (aws+Kg) I I (awe+K〇) I I (aw7+Ki);
[0061 ] F〇= (f。I I f J I fa I I fs) = (aw81 I aw91 I a;巧01 I a;巧 1)。
[0062] 对于i > 0,后4个NRR的反馈模式分别为:
[0063] b"4= {[化 i巧<<< j i)+bJ+:3}mod 232,其中 ji= i巧mod 32 ;
[0064] dw= {[(d i"<<< j 2)+di]+引mod 232,其中 j2= i+llmod 32 ;
[00(55] ew= {[(e iw<<< j 3)+eJ+7}mod 232,其中 j3= i+17mod 32 ;
[0066] f"4= {[(f "3<<< j4)+fi]+U}mod 232,其中 J.4= i+23mod 32。
[0067] SNRR算法的输出密钥流由后4个NRR的输出进行模加来产生; KS,.=化' 牛4 史 4 +4 宙 e, +4 苗乂 +4 )。
[0068] 流密码算法SNRR的加密方式为:密文C = P'KS ;解密方式为;明文P = C'KS。
【权利要求】
1. 基于非线性循环移位寄存器NRR的流密码算法SNRR,其总体特征是:采用了 5个 NRR,其中第1个NRR用于密钥编排,另4个NRR的输出进行模加来产生密钥流KS,即
其中i彡 0,bi+4、di+4、ei+4、心+4分别为 4 个NRR的输出,KS丨和bi+4、di+4、ei+4、fi+4都是 32 位数。
2. 根据权利要求1所述的流密码算法SNRR,其采用的非线性循环移位寄存器NRR的特 征是:当字长为m比特时,n级NRR采用以下反馈模式由前n个字ai?ai+Iri中的首尾2字 递推下一个字ai+n
上式中,i彡〇,n彡2,字长m取平台的位数;模运算mod表示求余数;<<<j表示循 环左移j位,j在0?m-1之间循环变化,即j=imodm; ?表示模加;c为1?2m-l之间 的奇数;输入的初始n个字%?an_i取值都不限,输入的每个字都是任意m比特长的数。
3. 根据权利要求1所述的流密码算法SNRR,其产生密钥流KS的过程用KS=SNRR(K, IV)表示;其中输入参数K为长度Lk彡16B(字节)的密钥;IV是保密通信中用于抗重放 攻击的初始向量,与密钥K等长;对于16B的密钥和32位平台,将密钥K和初值IV表示成 4个32份字级联:
SNRR算法中第1个NRR的特征是:初值为心=(a^ | | 1 |a21 |a3) =ITIV;其反馈模式 为:
【文档编号】H04L9/06GK104486068SQ201410781810
【公开日】2015年4月1日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】黄玉划, 苏菲, 陶怡婷, 汪骏, 丁莉莉 申请人:苏州中科启慧软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1