一种对输入序列进行多维动态非线性变换的系统和方法技术方案

技术编号:2845239 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种对输入序列进行多维动态非线性变换的系统和方法,输入为2↑[i]相序列,输出为2↑[i]相序列。该变换系统包括多维动态非线性变换表部件,多维动态非线性变换表取值部件和多维动态非线性变换表转换部件。该变换方法首先完成多维动态非线性变换表B↑[0]的初始化;然后在输入序列中获得输入值m,以m为参数根据基于多维动态非线性变换表的取值算法得到输出值E;以E为参数根据作用于多维动态非线性变换表的转换算法对多维动态非线性变换表B↑[0]进行转换,转换后的多维动态非线性变换表称为B↑[1];将转换后得到的B↑[1]作为下一次循环的B↑[0];判断输入序列是否结束,如果是则结束变换,否则继续获得输入值以继续进行变换。该方法变换简单、实现容易,可用于产生随机性高的伪随机序列。

【技术实现步骤摘要】

本专利技术涉及伪随机序列技术,更具体地说,涉及。
技术介绍
伪随机序列的理论与应用,从产生到发展,已有二十几年的历史了。伪随机序列的理论在它形成的初期,便在通信、雷达、导航以及密码学等重要的
获得了广泛的应用。而在近年来的发展中,它的应用范围远远超过了上述领域,如自动控制、计算机、声学和光学测量、数字式跟踪和测距系统以及数字网络系统的故障检测等。有关此方面的内容可参考文献“杨自强、魏公毅,综述产生伪随机数的若干新方法,数值计算与计算机应用,2001(3)201-216”,“张传林、林立东,伪-随机数发生器及其应用,数值计算与计算机应用,2002(3)188-208”和“胡德文,伪随机整数串与伪随机序列发生的新方法,中国科学(E辑),2000(3)258-264”。在以密码学为基础的信息安全领域中,随机序列扮演着重要的角色密钥的生成、数字签名、认证和鉴别以及各种安全通信协议都离不开高质量的随机序列,可参考文献“王新成、孙宏,高速伪-随机数发生器的设计与实现,计算机工程与应用,2004(11)20-23”。从某种意义上讲,随机序列的安全性确定了整个安全体系的安全性。密码学领域对随机序列的要求很高,从安全的角度来说,真正意义上的随机序列是最可靠的,真正的随机序列是完全不可预测的,随机序列中的任何一个随机数都不可能由其他的数推测得到的。在实际应用中,真正的随机序列只能取自于自然界事件的随机特性。我们常使用的都是伪随机序列。通常伪随机序列发生器是通过算法实现的,由于算法确定,伪随机序列发生器不能生成真正的随机序列。伪随机序列发生器生成的伪随机序列具有或长或短的周期,当伪随机序列发生器的周期足够大时,产生的序列看起来是随机的,因此称为伪随机序列。在此可参考文献“张传林、林立东,伪-随机数发生器及其应用,数值计算与计算机应用,2002(3)188-208”,“王新成、孙宏,高速伪-随机数发生器的设计与实现,计算机工程与应用,2004(11)20-23”和“陈叙、杨万全,一种产生周期任意长伪随机序列的方法, 通信保密,2000(4)80-81”。伪随机序列的产生长期以来都是各国学者研究的热点,随着计算机的计算能力的提高和广泛应用,利用计算机来产生伪随机序列成为一种重要的方法,目前,有许多文献讨论如何设计伪随机序列发生器,这些伪随机序列发生器都能够通过多种随机性统计检验。其中比较著名的有线性同余发生器LCG(Linear Congruential Generator)、Fibonacci序列发生器、线性反馈移位寄存器LFSR(Linear Feedback Shift Register)和二次剩余发生器BBS(Blum,Blum and Shub Generator)等等。这些伪随机序列发生器在实际中得到了广泛的应用,这方面已经有大量的实例,此处不一一列举,可参考文献“胡德文,伪随机整数串与伪随机序列发生的新方法,中国科学(E辑),2000(3)258-264”。但是由伪随机序列发生器产生的伪随机序列仍存在一些重要的基本问题尚待解决。其中,线性同余序列具有长周期相关现象,也就是说,线性同余发生器所得到的伪随机序列其前后两半段是强相关的,并且线性同余序列的最大缺陷是高维不均匀性,即所有线性同余序列都有高维稀疏网络结构。Matteis-Pagnutti(1988,1990)已从理论上证明了所有线性和非线性同余序列都存在长周期相关现象,也证明了所有逆同余序列也都像线性同余序列那样存在长周期相关现象。Fibonacci序列也存在着令人不能容忍的不居中现象,即由前两个数得到的第三个数同时大于或者同时小于前二者,而永不居中;另一个缺点就是显著的序列相关,即取小值的数后面出现也取小值的趋势。有关这方面的内容可参考文献“杨自强、魏公毅,综述产生伪随机数的若干新方法,数值计算与计算机应用,2001(3)201-216”,“Knuth,D.E.,The Art ofComputer Programming,Vol.2,2nd ed.Addison Wesley,(1981).”,“L’Ecuyer,P.,Efficient and Portable Combined Random NumberGenerators,Communications of ACM,316(1988),742-749,774.”,“Matteis,A.D.,Pagnutti,S.,Parallelization of Random Number Generators andLong-Range Correlations,Numerische Mathematic,53(1988),595-608.”,“Matteis,A.D.,Pagnutti,S.,Long-Range Correlation in Linear andNon-Linear Random Number Generation,Parallel Computing,14(1990),207-210.”和“Tezuka,S.,Lattice Structure of Pseudorandom Sequencesfrom Shift Register Generators,Proceedings of the 1990 WinterSimulation Conference,IEEE Press,(1990)”。虽然人们针对这些问题提出了一些改进方法,但未能解决根本问题。例如,线性同余组合发生器优于组成它的任何一个发生器,但是线性同余组合发生器本质上等价于另一个线性同余发生器,因此线性同余组合发生器也具有高维网格结构的特征,可参考文献“杨自强、魏公毅,综述产生伪随机数的若干新方法,数值计算与计算机应用,2001(3)201-216”。现有技术中已提出一种“洗牌算法”,可对当前序列进行动态变换。“洗牌算法”的输入为2i相序列,输出为2i相序列,它是一种对序列进行动态变换的方法。其中所述序列是一个由0到255共256个元素组成的一维数组。“洗牌算法”虽然是针对密码技术提出来的,但也可以应用于对其它随机序列的动态变换,所以在此将其与本专利技术进行比较。洗牌算法1.弹洗算法Scb(p,q)先将序列0,1,2,…,254,255等分成两子序列0,1,…,126,127和128,129,…254,255,然后将两子序列按q间距交叉重组p次构成新的序列。若最后剩下的元素不足q个时,则只要将剩余部分进行直接交叉。例如Scb(2,3)操作的第一次变换结果是0,1,2,128,129,130,3,4,5,131,132,133,…,123,124,125,251,252,253,126,127,254,255。然后对此新的序列同前一次一样再弹洗一次即可。2.抽洗算法Dcb(p,q)以p、q为前、后边界,从序列0,1,…,p-1,p,…,q,q+1,…,255之中,将其部分抽取出,然后将该部分放回到原序列的头部。完成算法Dcb(p,q)后的结果序列为p,…,q,0,1,,…,p-1,q+1,…255若q<p时,则以p、q为前、后边界,从序列0,1,…,q-1,q,…,p,p+1,…,255之中将其部分抽本文档来自技高网...

【技术保护点】
一种对输入序列进行多维动态非线性变换的系统,其特征在于,其中包括:多维动态非线性变换表部件,用于得到初始多维动态非线性变换表B↑[0];多维动态非线性变换表取值部件,用于从多维动态非线性变换表B↑[0]中得到输出值E;多维动态非线性变换表转换部件,以输出值E为参数对多维动态非线性变换表B↑[0]进行转换,转换后的多维动态非线性变换表称为B↑[1],将转换后得到的B↑[1]作为多维动态非线性变换表部件的下一个初始多维动态非线性变换表B↑[0]。

【技术特征摘要】
1.一种对输入序列进行多维动态非线性变换的系统,其特征在于,其中包括多维动态非线性变换表部件,用于得到初始多维动态非线性变换表B0;多维动态非线性变换表取值部件,用于从多维动态非线性变换表B0中得到输出值E;多维动态非线性变换表转换部件,以输出值E为参数对多维动态非线性变换表B0进行转换,转换后的多维动态非线性变换表称为B1,将转换后得到的B1作为多维动态非线性变换表部件的下一个初始多维动态非线性变换表B0。2.根据权利要求1所述的对输入序列进行多维动态非线性变换的系统,其特征在于,多维动态非线性变换表部件根据输入序列2i得到初始多维动态非线性变换表B0时包括下列步骤(s201)将i的值分成n份,得到a1、a2、……、an,其中a1+a2+……+an-1+an=i,以2a1、2a2、……、2an作为第1维、第2维、……第n维的长度构造n维非线性变换表;(s202)将0到2i-1共2i个数顺序地填入步骤(s201)中构造的n维非线性变换表中,得到顺序排列的n维动态非线性变换表;(s203)由预定的任一伪随机数发生器根据用作密钥的参数产生2i个服从均匀分布的i比特伪随机数;(s204)以2i个i比特的伪随机数为参数,根据n维动态非线性变换表的转换算法,对步骤(s202)中得到的顺序排列的n维动态非线性变换表进行2i次转换;(s205)得到初始n维动态非线性变换表B0。3.根据权利要求2所述的对输入序列进行多维动态非线性变换的系统,其特征在于,所述多维动态非线性变换表取值部件获得输出值包括从输入序列中获得输入值m,将m表示为i比特二进制形式,将m分成n份,分别为a1、a2、……、an比特,其中a1+a2+……+an-1+an=i;接着用bj表示第j份的值,其中1≤j≤n;然后从多维动态非线性变换表B0中得到输出E=B0[b1+1][b2+1]…[bn+1]。4.根据权利要求3所述的对输入序列进行多维动态非线性变换的系统,其特征在于,多维动态非线性变换表转换部件对多维动态非线性变换表B0的转换包括将i比特的输出值E分成n份,分别为a1、a2、……、an比特,其中a1+a2+……+an-1+an=i;用cj表示第j份的值,其中1≤j≤n,进行cj=(cj+l)mod(2aj)]]>变换;在多维动态非线性变换表的第j维,将第1层到第cj+1层进行循环交换。5.一种对输入序列进行多维动态非线性变换的方法,输入为2i相序列,输出为2i相序列,i为大于0的整数,其特征在于,该方法包括下列步骤(a)生成初始的多维动态非线性变换表B0;(b)从输入序列中获得输入值m,以m为参数根据基于多维动态非线性变换表B0的取值算法得到输出值E;(c)以E为参数,根据作用于多维动态非线性变换表B0的转换算法对多维动态非线性变换表进行转换,得到转换后的多维动态非线性变换表B1;将转换后得到...

【专利技术属性】
技术研发人员:郑志彬位继伟胡汉平王祖喜吴晓刚石永许娅周麟朱子奇卢鹏宇
申请(专利权)人:华中科技大学华为技术有限公司
类型:发明
国别省市:83[中国|武汉]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1