[发明专利]一种伪随机数生成器及伪随机数生成方法有效
申请号: | 201110428803.3 | 申请日: | 2011-12-20 |
公开(公告)号: | CN102520908A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 金银军;李晓龙;宁振虎;周端阳;王博;喻贤成 | 申请(专利权)人: | 大唐微电子技术有限公司 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 随机数 生成器 生成 方法 | ||
技术领域
本发明涉及数据信号生成技术领域,尤其涉及一种伪随机数生成器及伪随机数生成方法。
背景技术
伪随机数在计算机软件、硬件、安全等领域有着广泛的应用,因而产生高效优质(即随机性高)的伪随机数变得非常重要。当前产生伪随机数的方案是通过模指数定义的伪随机数发生器产生。在伪随机数生成过程中,需要一直对数据求n次方,并按顺序保存数据。利用该现有方法产生的数据,其长度可长可短,但容易出现循等破坏伪随机数质量的数据。总体而言,现有的伪随机数生成方案所产生的伪随机数,占用空间大,效率低,并且所产生数据的随机性也不够高,不能满足当前实际应用中对随机性越来越高的要求。
因此,如何高效地生成高质量的伪随机数成为当前需要解决的一个问题。
发明内容
本发明所要解决的技术问题在于,提供一种伪随机数生成器及伪随机数生成方法,用于克服当前伪随机数生成效率低且质量较差的缺陷,解决如何实现高效地生成高质量伪随机数的技术问题。
为了解决上述问题,本发明提出了一种伪随机数生成器,包括:
奇偶判断模块,用于判断当前伪随机数ai是奇数还是偶数,若为偶数,则将当前伪随机数送入平方处理模块,若为奇数,则将当前伪随机数送入双曲处理模块;
所述平方处理模块,用于对当前伪随机数ai按照平方算法生成下一伪随机数ai+1;
所述双曲处理模块,用于对当前伪随机数ai按照双曲算法生成下一伪随机数ai+1。
其中,所述平方处理模块,在ai是偶数时,进行平方处理时,令ai+1=S(ai)来获得新的伪随机数ai+1;其中,函数S(x)=x2mod p;p是一个素数。
其中,所述双曲处理模块,在ai是奇数时,进行双曲处理时,令ai+1=T(ai)来获得新的伪随机数ai+1;其中,函数T(x)=(x-x-1)mod p;p是一个素数。
本发明还提供一种伪随机数生成器,包括:
参数输入模块,用于配置初始参数及初始伪随机数a0;
奇偶判断模块,用于判断当前伪随机数ai是奇数还是偶数,若为偶数,则将当前伪随机数送入平方处理模块,若为奇数,则将当前伪随机数送入双曲处理模块;
所述平方处理模块,用于对当前伪随机数ai按照平方算法生成下一伪随机数ai+1输出至计数判断模块;
所述双曲处理模块,用于对当前伪随机数ai按照双曲算法生成下一伪随机数ai+1输出至计数判断模块;
所述计数判断模块,用于接收下一伪随机数ai+1,对计数值i进行加1递增令i=i+1,将利用平方处理或双曲处理后所得的伪随机数ai+1作为当前伪随机数ai,判断当前计数值i是否大于预设计数门限L,若递增后的计数值大于预设计数门限,即i>L,则跳转至溢出处理模块进行处理,否则,将当前伪随机数ai发送给输出模块;
溢出处理模块,用于在i>L时,对伪随机数ai进行溢出处理,令ai=(ai-ai-L)mod p,将ai作为伪随机数输出至输出模块;
所述输出模块,一方面用于对外输出新生成的伪随机数ai,另一方面将新生成的伪随机数ai及当前计数值i反馈至奇偶判断模块,用于继续生成下一个伪随机数。
其中,所述参数输入模块配置初始参数的包括:一个大素数p,一个用于限制初始a0的长度的整数N;一个整数L,用于作为对计数值i进行大小判断的门限值;所述初始伪随机数a0是一个非平凡(nonuniform)大数,即计数值i=0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐微电子技术有限公司,未经大唐微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110428803.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种易于制作马靴的鞋楦结构
- 下一篇:走路可按摩的鞋