CN102314332B - 伪随机数生成装置和方法 - Google Patents
伪随机数生成装置和方法 Download PDFInfo
- Publication number
- CN102314332B CN102314332B CN201110211521.8A CN201110211521A CN102314332B CN 102314332 B CN102314332 B CN 102314332B CN 201110211521 A CN201110211521 A CN 201110211521A CN 102314332 B CN102314332 B CN 102314332B
- Authority
- CN
- China
- Prior art keywords
- shift register
- random number
- linear feedback
- feedback shift
- pseudo random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/583—Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供一种伪随机数生成装置和方法,其中该装置包括:第一线性反馈移位寄存器LFSR和第二线性反馈移位寄存器LFSR,第一LFSR和第二LFSR的位移方向相反,第一LFSR用于在每个时钟周期产生k个比特的第一寄存器值,第二LFSR用于在每个时钟周期产生k个比特的第二寄存器值,按照第一LFSR的位移方向,将k个比特的第一寄存器值分别与按照第二LFSR的位移方向的反方向的k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。通过本发明提供的伪随机数生成装置和方法,去除了相邻时钟周期之间LFSR内部寄存器值的相关性,以非常简单的电路实现了独立均匀分布的随机数的产生。
Description
技术领域
本发明属于通信技术,尤其涉及一种伪随机数生成装置和方法。
背景技术
在通信领域,信号的调制解调、信号的传输、信号的加扰和解扰、信道模拟等都需要用到随机数,通常生成随机数的方法有物理方法、查表法和迭代法。
迭代法中利用线性反馈移位寄存器(Linear Feedback ShiftRegister,LFSR)产生随机数的方法最为常用,例如图1为现有技术中LFSR产生二进制伪随机序列的结构示意图,该LFSR有M阶,只能产生单个比特的二进制伪随机序列0和1,可以通过将M个互相独立的LFSR的输出即单个比特的二进制随机数拼接成一个向量,从而形成0~2M-1范围的随机数,但这样大大增加了硬件的复杂度,图2为现有技术中LFSR产生M比特伪随机数结构示意图,如图2所示,直接将LFSR中M个寄存器的值作为随机数矢量输出,但相邻时钟周期寄存器内部的数据有着很强的相关性,均匀分布的独立性较差,需要采用特定的方法去除这种相关性才可使用,例如采用复杂的图样对输出的数据进行交织来去除相关性,这也大大增加了硬件电路的复杂度,因此,需要一种简单的方法产生均匀分布的独立性较好的随机数。
发明内容
针对现有技术的上述缺陷,本发明实施例提供一种伪随机数生成装置和方法。
本发明实施例提供一种伪随机数生成装置,包括:
第一线性反馈移位寄存器和第二线性反馈移位寄存器,所述第一线性反馈移位寄存器和所述第二线性反馈移位寄存器的位移方向相反,所述第一线性反馈移位寄存器用于在每个时钟周期产生k个比特的第一寄存器值,所述第二线性反馈移位寄存器用于在所述每个时钟周期产生所述k个比特的第二寄存器值,按照所述第一线性反馈移位寄存器的位移方向,将所述k个比特的第一寄存器值分别与按照所述第二线性反馈移位寄存器的位移方向的反方向的所述k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
本发明实施例提供一种应用本发明提供的伪随机数生成装置产生伪随机数的方法,包括:
在所述每个时钟周期,按照所述第一线性反馈移位寄存器的位移方向,将所述第一线性反馈移位寄存器产生的k个比特的第一寄存器值分别与按照所述第二线性反馈移位寄存器的位移方向的反方向、所述第二线性反馈移位寄存器产生的所述k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
本发明实施例提供的伪随机数生成装置和方法,通过采用两个逆向移位的线性反馈移位寄存器的寄存器的值互相进行逻辑运算,去除了相邻时钟周期之间LFSR内部寄存器值的相关性,以非常简单的电路实现了独立均匀分布的随机数的产生。
附图说明
图1为现有技术中LFSR产生二进制伪随机序列的结构示意图;
图2为现有技术中LFSR产生M比特伪随机数结构示意图;
图3为本发明伪随机数生成装置实施例结构示意图;
图4为应用本发明提供的伪随机数生成装置产生的伪随机数的统计直方图;
图5为通过MATLAB模拟利用本发明提供的产生伪随机数方法获取的噪声自相关曲线。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对现有技术中直接将LFSR中寄存器的值作为随机数矢量输出,使得相邻时钟周期寄存器内部的数据有着很强的相关性,均匀分布的独立性较差等缺陷,提供一种解决方案即伪随机数生成装置和方法,通过采用两个逆向移位的线性反馈移位寄存器的寄存器的值互相进行逻辑运算,去除了相邻时钟周期之间LFSR内部寄存器值的相关性,以非常简单的电路实现了均匀分布的随机数的产生。
图3为本发明伪随机数生成装置实施例结构示意图,如图3所示,该装置包括:第一线性反馈移位寄存器和第二线性反馈移位寄存器,第一线性反馈移位寄存器和第二线性反馈移位寄存器的位移方向相反,第一线性反馈移位寄存器用于在每个时钟周期产生k个比特的第一寄存器值,第二线性反馈移位寄存器用于在每个时钟周期产生k个比特的第二寄存器值,按照第一线性反馈移位寄存器的位移方向,将k个比特的第一寄存器值分别与按照第二线性反馈移位寄存器的位移方向的反方向的k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
具体地,第一线性反馈移位寄存器是M阶移位寄存器,具体包括M个触发器以及AND门电路和XOR门电路,本实施例以M个DFF(D触发器)为例进行说明(DFF的时钟端未示出),第一线性反馈移位寄存器的生成多项式为其中,a0、a1、a2...aM-1分别位于第一线性反馈移位寄存器的各AND门电路中为第一线性反馈移位寄存器的抽头系数,根据移位寄存器本身的特点,为了使移位寄存器的输出不总为“0”,将第一线性反馈移位寄存器中的触发器的初始值至少一个设置为“1”,如图3所示,本实施例中第一线性反馈移位寄存器在每一个时钟周期,位移方向为从左向右移位,但并不限于此。
第二线性反馈移位寄存器是N阶移位寄存器,具体包括N个触发器以及AND门电路和XOR门电路,本实施例以N个DFF为例进行说明(DFF的时钟端未示出),第二线性反馈移位寄存器的生成多项式为其中,b0、b1、b2...bN-1分别位于第二线性反馈移位寄存器的各AND门电路中为第二线性反馈移位寄存器的抽头系数,为了使移位寄存器的输出不总为“0”,将第二线性反馈移位寄存器中的触发器的初始值至少一个设置为“1”,如图3所示,本实施例中第二线性反馈移位寄存器在每一个时钟周期,位移方向为从右向左移位,第一线性反馈移位寄存器与第二线性反馈移位寄存器构成两个独立的、逆向移位的线性反馈移位寄存器。
基于图3所示的伪随机数生成装置结构示意图,在每一个时钟周期,可以从第一线性反馈移位寄存器的触发器中获取k个比特的第一寄存器值的输出,并从第二线性反馈移位寄存器的触发器中获取k个比特的第二寄存器值的输出,然后,按照第一线性反馈移位寄存器从左向右的位移方向依次将k个比特的第一寄存器值的输出,分别与按照第二线性反馈移位寄存器从右向左的位移方向的反方向的k个比特的第二寄存器值的输出相连并进行逻辑运算,产生出k个比特的伪随机数,即构成了一个0~2k-1的服从均匀分布的且彼此独立的伪随机数。对第一线性反馈移位寄存器和第二线性反馈移位寄存器中触发器的输出进行上述连接所进行的逻辑运算比如同或、异或等逻辑运算,去除了现有技术所产生的伪随机数中相邻时钟周期之间线性反馈移位寄存器内部寄存器值的相关性。
为了更清楚的说明如何利用两个独立的、逆向移位的线性反馈移位寄存器产生没有相关性、均匀分布的伪随机数,进行举例说明,假如第一线性反馈移位寄存器具有5个D触发器,按照位移方向自左向右分别为DA1、DA2、DA3、DA4、DA5,第二线性反馈移位寄存器具有7个D触发器,按照位移方向自右向左分别为DB1、DB2、DB3、DB4、DB5、DB6、DB7,假设每个时钟周期要产生3个比特的伪随机数,那么在每一个时钟周期,从第一线性反馈移位寄存器的触发器中获取3个比特的第一寄存器值的输出,可以连续取,也可以间隔的取,假如分别获取DA1、DA2、DA4三个触发器中的值0、1、0,并从第二线性反馈移位寄存器的触发器中获取3个比特的第二寄存器值的输出,可以连续取,也可以间隔的取,假如分别获取DB2、DB3、DB6三个触发器中的值1、1、0,然后,按照第一线性反馈移位寄存器从左向右的位移方向依次将3个比特的第一寄存器值的输出,分别与按照第二线性反馈移位寄存器从右向左的位移方向的反方向的3个比特的第二寄存器值的输出相连,即将DA1与DB6相连、DA2与DB3相连、DA4与DB2相连,分别进行异或运算后产生3个比特的伪随机数,即所产生的伪随机数为“0、0、1”。
本实施例提供的伪随机数生成装置结构简单,只需要两组逆向移位的线性反馈移位寄存器和少量组合逻辑,生成伪随机数的位宽在一定范围内可灵活变化,而不导致资源的增加,利用本实施例提供的伪随机数生成装置产生的伪随机数的周期为两个移位寄存器的游程的最小公倍数,通常可以选择移位寄存器的游程达到最长即(2M-1)和(2N-1),在游程互质的情况下可以使得随机数发生器的周期达到(2M-1)*(2N-1)≈2M+N,并且产生的伪随机数的速度为驱动触发器位移的时钟的速度,在当今的器件水平下,能达到数百兆赫兹每秒。
本实施例提供的伪随机数生成装置,通过采用两个逆向移位的线性反馈移位寄存器的寄存器的值互相进行逻辑运算,去除了相邻时钟周期之间LFSR内部寄存器值的相关性,以非常简单的电路实现了均匀分布的随机数的产生。
应用上述伪随机数生成装置产生伪随机数的方法,包括:在每个时钟周期,按照第一线性反馈移位寄存器的位移方向,将第一线性反馈移位寄存器产生的k个比特的第一寄存器值分别与按照所述第二线性反馈移位寄存器的位移方向的反方向、第二线性反馈移位寄存器产生的k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
本方法实施例是基于上述实施例提供的伪随机数生成装置实现的,具体处理流程可以参见上述装置实施例,此处不再赘述。
利用本实施例提供的伪随机数生成装置产生的伪随机数满足了均匀分布的统计特征,图4为应用本发明提供的伪随机数生成装置产生的伪随机数的统计直方图,如图4所示,应用本发明提供的伪随机数生成装置产生100000个伪随机数,横坐标为100000个数据已被归一化到-0.5~0.5之间,纵坐标为每个伪随机数出现的次数,可以从该统计直方图看出,利用本发明提供的伪随机数生成装置产生的100000个伪随机数彼此独立,均匀分布。
利用本实施例提供的伪随机数生成装置产生的伪随机数,通过采用了两个互相逆向位移的LFSR为基础,去除了移位寄存器相邻时钟周期的数据的相关性,输出地噪声独立性极佳,图5为通过MATLAB模拟利用本发明提供的产生伪随机数方法获取的噪声自相关曲线,如图5所示,在横坐标为0的点所对应的纵坐标为1,其余横坐标上的点所对应的纵坐标都为0,说明噪声的独立性好(自相关函数为冲击函数),经检验利用本实施例提供的伪随机数生成装置产生的伪随机数的自相关性能很好,该装置产生的伪随机序列其自相关性能与MATLAB中rand函数产生的噪声的自相关性无明显差异。
本实施例提供的伪随机数生成装置,通过采用两个逆向移位的线性反馈移位寄存器的寄存器的值互相进行逻辑运算,去除了相邻时钟周期之间LFSR内部寄存器值的相关性,以非常简单的电路实现了独立均匀分布的随机数的产生。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种伪随机数生成装置,其特征在于,包括:
第一线性反馈移位寄存器和第二线性反馈移位寄存器,所述第一线性反馈移位寄存器和所述第二线性反馈移位寄存器的位移方向相反,所述第一线性反馈移位寄存器用于在每个时钟周期产生k个比特的第一寄存器值,所述第二线性反馈移位寄存器用于在所述每个时钟周期产生k个比特的第二寄存器值,按照所述第一线性反馈移位寄存器的位移方向,将所述k个比特的第一寄存器值分别与按照所述第二线性反馈移位寄存器的位移方向的反方向的所述k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
2.根据权利要求1所述的伪随机数生成装置,其特征在于,所述逻辑运算包括:异或运算或者同或运算。
3.根据权利要求1或2所述的伪随机数生成装置,其特征在于,所述第一线性反馈移位寄存器包括M阶移位寄存器,所述第二线性反馈移位寄存器包括N阶移位寄存器。
4.一种应用如权利要求1或2所述的伪随机数生成装置产生伪随机数的方法,其特征在于,包括:
在所述每个时钟周期,按照所述第一线性反馈移位寄存器的位移方向,将所述第一线性反馈移位寄存器产生的k个比特的第一寄存器值分别与按照所述第二线性反馈移位寄存器的位移方向的反方向、所述第二线性反馈移位寄存器产生的所述k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110211521.8A CN102314332B (zh) | 2011-07-27 | 2011-07-27 | 伪随机数生成装置和方法 |
PCT/CN2011/083697 WO2013013480A1 (zh) | 2011-07-27 | 2011-12-08 | 伪随机数生成装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110211521.8A CN102314332B (zh) | 2011-07-27 | 2011-07-27 | 伪随机数生成装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102314332A CN102314332A (zh) | 2012-01-11 |
CN102314332B true CN102314332B (zh) | 2014-04-09 |
Family
ID=45427534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110211521.8A Active CN102314332B (zh) | 2011-07-27 | 2011-07-27 | 伪随机数生成装置和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102314332B (zh) |
WO (1) | WO2013013480A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI474256B (zh) * | 2012-06-21 | 2015-02-21 | Etron Technology Inc | 產生雜亂值的系統和產生雜亂值的方法 |
CN103458316B (zh) * | 2013-07-22 | 2016-05-04 | 太原理工大学 | 一种图像加密方法 |
US20160285624A1 (en) * | 2015-03-26 | 2016-09-29 | Intel Corporation | Pseudorandom bit sequences in an interconnect |
CN105045561A (zh) * | 2015-08-12 | 2015-11-11 | 中国电子科技集团公司第四十一研究所 | 一种伪随机数产生方法 |
CN105354008A (zh) * | 2015-12-14 | 2016-02-24 | 武汉芯昌科技有限公司 | 一种随机数生成器的输出电路及输出方法 |
CN106357385A (zh) * | 2016-08-31 | 2017-01-25 | 北海市蕴芯电子科技有限公司 | 加密方法和加密装置 |
CN108109661B (zh) * | 2016-11-25 | 2021-01-26 | 翰顺联电子科技(南京)有限公司 | 快闪存储器及其操作方法 |
JP7251164B2 (ja) * | 2019-01-24 | 2023-04-04 | 富士通株式会社 | 乱数生成器、半導体装置、及びプログラム |
CN113589335B (zh) * | 2020-04-30 | 2024-06-04 | 华中科技大学 | 一种导航信号伪码的构造方法 |
CN114553325A (zh) * | 2022-01-12 | 2022-05-27 | 中国地质大学(武汉) | 一种高斯信道模拟电路及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1147086C (zh) * | 1997-11-10 | 2004-04-21 | 艾利森电话股份有限公司 | 用于生成一个伪随机数的设备及与之相关的方法 |
CN1858999A (zh) * | 2005-08-17 | 2006-11-08 | 华为技术有限公司 | 伪随机序列发生装置 |
CN1914590A (zh) * | 2004-01-30 | 2007-02-14 | 日本胜利株式会社 | 伪随机数生成装置以及伪随机数生成程序 |
US7502143B2 (en) * | 2004-03-24 | 2009-03-10 | Sharp Kabushiki Kaisha | Signal processing method, signal output apparatus, signal processing apparatus, image processing apparatus, and image forming apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003252595A1 (en) * | 2002-10-07 | 2004-04-23 | Kobayashi, Akira | Pseudo-random number generation method and pseudo-random number generator |
CN101620523B (zh) * | 2009-07-29 | 2011-04-13 | 深圳国微技术有限公司 | 一种随机数发生器电路 |
-
2011
- 2011-07-27 CN CN201110211521.8A patent/CN102314332B/zh active Active
- 2011-12-08 WO PCT/CN2011/083697 patent/WO2013013480A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1147086C (zh) * | 1997-11-10 | 2004-04-21 | 艾利森电话股份有限公司 | 用于生成一个伪随机数的设备及与之相关的方法 |
CN1914590A (zh) * | 2004-01-30 | 2007-02-14 | 日本胜利株式会社 | 伪随机数生成装置以及伪随机数生成程序 |
US7502143B2 (en) * | 2004-03-24 | 2009-03-10 | Sharp Kabushiki Kaisha | Signal processing method, signal output apparatus, signal processing apparatus, image processing apparatus, and image forming apparatus |
CN1858999A (zh) * | 2005-08-17 | 2006-11-08 | 华为技术有限公司 | 伪随机序列发生装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013013480A1 (zh) | 2013-01-31 |
CN102314332A (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102314332B (zh) | 伪随机数生成装置和方法 | |
CN109994139B (zh) | 一种基于单极性忆阻器的完备非易失逻辑实现方法及其应用 | |
US10007488B2 (en) | Secured pseudo-random number generator | |
CN103812596B (zh) | 伪随机序列的生成方法和装置 | |
CN107678729A (zh) | 一种基于m序列的Lorenz混沌伪随机序列发生器 | |
CN105045561A (zh) | 一种伪随机数产生方法 | |
WO2012123969A2 (en) | Methods for generating multi-level pseudo-random sequences | |
CN102176693A (zh) | 非线性循环移位寄存器 | |
CN102857238B (zh) | 基于求和阵列的深空通信中ldpc编码器和编码方法 | |
CN103197912A (zh) | 一种用于深空通信协议编码的均匀随机数生成方法 | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
CN105354008A (zh) | 一种随机数生成器的输出电路及输出方法 | |
JP2010531018A5 (zh) | ||
CN102707923A (zh) | 一种伪随机数生成电路及伪随机数产生方法 | |
CN106201435A (zh) | 基于细胞神经网络的伪随机数生成方法 | |
CN105553647A (zh) | 基于非线性循环移位寄存器的轻量级流密码技术lsnr2 | |
CN204856461U (zh) | 一种数据位数可选的伪随机信号发生器 | |
CN104199635B (zh) | 集成crc校验电路的伪随机数发生器 | |
CN204347817U (zh) | 集成crc校验电路的伪随机数发生器 | |
CN204883682U (zh) | 一种多通道伪随机信号发生器 | |
RU154062U1 (ru) | Устройство для перебора перестановок | |
CN113031917A (zh) | 一种高速概率计算乘法器和计算方法 | |
CN102405602B (zh) | 用于生成伪随机序列数据的数据序列的生成方法及设备 | |
RU2246129C2 (ru) | Способ генерации случайных чисел | |
CN110071927A (zh) | 一种信息加密方法、系统及相关组件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210207 Address after: 100190 room 506, building 2, courtyard 4, South 4th Street, Zhongguancun, Haidian District, Beijing Patentee after: CHINA INTERNET NETWORK INFORMATION CENTER Address before: 100190 No. four, four South Street, Haidian District, Beijing, Zhongguancun Patentee before: Computer Network Information Center, Chinese Academy of Sciences |
|
TR01 | Transfer of patent right |