CN114201141A - 随机数产生电路 - Google Patents
随机数产生电路 Download PDFInfo
- Publication number
- CN114201141A CN114201141A CN202010910744.2A CN202010910744A CN114201141A CN 114201141 A CN114201141 A CN 114201141A CN 202010910744 A CN202010910744 A CN 202010910744A CN 114201141 A CN114201141 A CN 114201141A
- Authority
- CN
- China
- Prior art keywords
- random number
- output
- control signal
- random
- different
- 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.)
- Pending
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
- 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
-
- 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/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Manipulation Of Pulses (AREA)
- Pinball Game Machines (AREA)
Abstract
本发明实施例提供一种随机数产生电路,包括:随机数发生器,所述随机数发生器包括反馈模块以及多个依次连接的触发器,前一级的所述触发器的输出端连接后一级的所述触发器的输入端,且每一所述触发器的输出端作为所述随机数发生器的输出端,所述反馈模块的输出端连接一所述触发器的输入端;所述反馈模块被配置为,接收选择信号,并基于所述选择信号,选中两个所述触发器的输出端作为所述反馈模块的输入端;所述随机数发生器被配置为,在每一计满周期内输出与相应的所述选择信号对应的若干个第一随机数。本发明实施例提高随机数产生电路产生的随机数的随机性。
Description
技术领域
本发明实施例涉及数据加密领域,特别涉及一种随机数产生电路。
背景技术
处于信息时代的今天,关于信息的安全问题成为信息产品很关键的部分,加密模块是否具有良好的安全性能成为目前关注的重点之一。
对于加密模块而言,为了提高其安全性能需要提供具有良好随机性的随机数作为种子,从而形成伪随机数列。然而,目前的随机数产生电路产生的随机数的随机性仍然有待提高。
发明内容
本发明实施例解决的技术问题为提供一种随机数产生电路,提高输出的随机数的随机性。
为解决上述问题,本发明实施例提供一种随机数产生电路,包括:随机数发生器,所述随机数发生器包括反馈模块以及多个依次连接的触发器,前一级的所述触发器的输出端连接后一级的所述触发器的输入端,且每一所述触发器的输出端作为所述随机数发生器的输出端,所述反馈模块的输出端连接另一所述触发器的输入端;所述反馈模块被配置为,接收选择信号,并基于所述选择信号,选中两个所述触发器的输出端作为所述反馈模块的输入端;所述随机数发生器被配置为,在每一计满周期内输出与所述选择信号对应的若干个第一随机数。
另外,所述反馈模块包括:异或门,所述异或门具有第一输入端以及第二输入端,所述第一输入端与一所述触发器的输出端连接,所述第二输入端与至少两个所述触发器的输出端连接;至少两个开关单元,每一所述开关单元连接在所述第二输入端与相应的所述触发器的输出端之间,且所述开关单元接收所述选择信号,以使所述第二输入端与相应的所述触发器的输出端之间电连接或者断路。
另外,所述开关单元包括熔丝结构。
另外,还包括:控制信号生成模块,被配置为,接收触发信号,并基于所述触发信号输出与不同的所述第一随机数对应的控制信号;多选模块,被配置为,接收所述第一随机数以及与所述第一随机数对应的所述控制信号,基于所述控制信号对所述第一随机数的至少一个比特位置进行调整,获取第二随机数,并输出若干所述第二随机数。
另外,所述随机数发生器为n-bit随机数发生器,所述若干个第一随机数为2n-1个第一随机数;所述随机数发生器具有n个第一输出端,且每一所述第一输出端具有固定的比特位置,n为大于1的整数。
另外,所述多选模块包括:片选输入端,用于接收所述控制信号;数据输入端,与n个所述第一输出端连接,用于接收所述第一随机数;所述多选模块具有N种不同比特位置调整方式,且每一所述比特位置调整方式与一所述控制信号对应,其中,N为大于或等于1的整数;所述多选模块还被配置为,对所述n个第一输出端的数据的比特位置进行调整,以获取所述第二随机数。
另外,所述多选模块包括:N个调整单元,每一所述调整单元定义一所述比特位置调整方式;每一所述调整单元均具有所述数据输入端,且每一所述调整单元均具有所述片选输入端。
另外,所述n个第一输出端的数据的比特位置排列为第一比特位置排列,每一所述调整单元具有n个第二输出端,所述n个第二输出端的数据的比特位置排列为第二比特位置排列;每一所述第二比特位置排列各不相同,且所述第二比特位置排列与所述第一比特位置排列不同。
另外,N个所述调整单元被配置为,N个所述第二比特位置排列中,一个比特位的数据对应的所述第二输出端的位置不同,其余比特位的数据对应的所述第二输出端的位置排列不变。
另外,至少一个所述第二比特位置排列与所述第一比特位置排列相同。
另外,所述N大于或等于n。
另外,所述控制信号生成模块包括:m-bit计数器;其中,N与m的关系满足:N≤2m-1,m为任意自然数,N为大于等于2的任意自然数。
另外,所述控制信号生成模块还被配置为,所述不同的第一随机数为在不同的所述计满周期内的所述第一随机数;在同一所述计满周期内,所述控制信号不变;一所述计满周期对应的所述控制信号与相邻的所述计满周期对应的所述控制信号不同。
另外,所述随机数发生器还被配置为,完成每一所述计满周期则输出计满信号;所述控制信号生成模块接收所述计满信号作为所述触发信号。
另外,所述控制信号生成模块还被配置为,所述不同的第一随机数包括每一所述计满周期内的所述第一随机数,在同一所述计满周期内,不同的所述第一随机数对应的所述控制信号不同。
另外,所述随机数发生器还被配置为,接收驱动时钟信号产生所述第一随机数;所述控制信号生成模块还被配置为,接收所述驱动时钟信号作为所述触发信号。
另外,所述控制信号生成模块包括:M-bit伪随机数产生电路,且所述伪随机数产生电路与所述随机数发生器接收同一驱动时钟信号。
与现有技术相比,本发明实施例提供的技术方案具有以下优点:
本发明实施例提供一种结构性能优越的随机数产生电路,随机数发生器中包括反馈模块以及多个依次连接的触发器,反馈模块被配置为,接收选择信号,并基于选择信号选中两个触发器的输出端作为反馈模块的输入端,随机数发生器被配置为,在每一计满周期内输出与相应的选择信号对应的若干个第一随机数。当选择信号不同时,反馈模块选中的作为输入端的两个触发器不同,因此随机数发生器相应具有不同的反馈多项式(即反馈函数),从而使得随机数发生器能够产生具有不同随机序列的随机数,提高随机数产生电路产生随机数的随机性。
另外,随机数产生电路还包括控制信号生成模块以及多选模块,随机数发生器输出若干第一随机数,且控制信号生成模块向多选模块提供与不同第一随机数对应的控制信号,多选模块接收控制信号后对第一随机数的至少一个比特位置进行调整,获取第二随机数,第二随机数与第一随机数相比具有更好的随机性,从而进一步地提高随机数产生电路产生的随机数的随机性。
另外,多选模块具有N种不同比特位置调整方式,因此对于第一随机数的比特位置调整方式具有N种,基于具有一种随机序列的第一随机数而言,可以产生N种随机序列的第二随机数,从而进一步地增加了随机数的随机序列,进一步地提高了随机数的随机性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为7种不同的电路结构示意图;
图2为本发明一实施例提供的随机数产生电路的一种电路结构示意图;
图3为本发明一实施例提供的随机数产生电路的多种不同电路结构示意图;
图4为本发明又一实施例提供的随机数产生电路的功能框图;
图5为本发明另一实施例提供的随机数产生电路的功能框图;
图6为图5中的随机数发生器的电路结构示意图;
图7为图6中多选模块的结构示意图;
图8为图6中控制信号生成模块的一种结构示意图;
图9为图6中控制信号生成模块的另一种结构示意图;
图10为图6中控制信号生成模块的又一种结构示意图。
具体实施方式
由背景技术可知,现有技术的随机数产生电路的随机性仍有待提高。
分析发现,目前的随机数产生电路虽然对输出进行了乱序处理,但是前后数之间还是具有一定的前后关系,很难做到真正意义上的随机。具体地,以线性移位寄存器((Linear Feedback Shift Registers,LFSR)作为随机数产生电路,以产生7-bit的随机数作为示例。对于一个固定的随机数产生电路而言,其抽头(the output of affect on theinput,tap)位置是固定的,那么这个随机数产生电路只能产生一种随机序列,在一个计数周期内前后数的顺序是固定的,其中影响下一个状态的比特位置叫做抽头位置。
若需要产生多种随机序列,在需要设置多种随机数产生电路,且每一随机数产生电路的抽头位置不同,例如,对于7-bit的LFSR而言具有7种不同的抽头位置,则可设计7个具有不同抽头位置的LFSR,从而实现7种随机序列,每一种随机序列可产生27-1个随机数,以增加随机数的随机性。
具体地,图1为7种不同的电路结构示意图,如图1所示,标示1-7的7种不同的电路图各自对应的抽头位置不同,随机数产生电路包括:7个串联的触发器10,该触发器10为D触发器,且前一级触发器10的输出作为后一级触发器10的输入,且各触发器10接收驱动时钟信号clk;异或门11,异或门11的两个输入端分别与一触发器10的输入端与输出端连接,且异或门11的输出端作为另一触发器10的输入端;该异或门11的位置决定随机数产生电路的抽头位置;从左往右将触发器10称为第零级/第一级……第六级触发器10,且各触发器10的输出相应即为D[0]D[1]……D[6]。
对于标示为1的电路图,该随机数产生电路产生第一种随机序列的随机数:抽头位置为第零级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[0]D[6]D[5]D[4]D[3]D[2]D[1]。
对于标示为2的电路图,该随机数产生电路产生第二种随机序列的随机数:抽头位置为第一级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[1]D[0]D[6]D[5]D[4]D[3]D[2]。
对于标示为3的电路图,该随机数产生电路产生第三种随机序列的随机数:抽头位置为第二级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[2]D[1]D[0]D[6]D[5]D[4]D[3]。
对于标示为4的电路图,该随机数产生电路产生第四种随机序列的随机数:抽头位置为第三级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[3]D[2]D[1]D[0]D[6]D[5]D[4]。
对于标示为5的电路图,该随机数产生电路产生第五种随机序列的随机数:抽头位置为第四级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[4]D[3]D[2]D[1]D[0]D[6]D[5]。
对于标示为6的电路图,该随机数产生电路产生第六种随机序列的随机数:抽头位置为第五级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[5]D[4]D[3]D[2]D[1]D[0]D[6]。
对于标示为7的电路图,该随机数产生电路产生第七种随机序列的随机数:抽头位置为第六级触发器10,随机数产生电路的输出按照比特位的高低依次排布为D[6]D[5]D[4]D[3]D[2]D[1]D[0]。
由上述分析不难发现,为达到不同的随机序列,需要改过电路图的抽头位置,即需要提供7种电路,增加电路复杂性。此外,由上述分析可知,对于随机数的比特位固定的电路而言,且抽头位置可变化的量也是固定的,导致可变化的随机序列的数量也是固定的,如图1为产生7-bit的随机数,那么抽头位置变化的最大量也是7,能够产生的随机序列的最大种类也是7,因此采用这种方式来增加随机序列的能力也是有限的。
为解决上述问题,本发明实施例提供一种随机数产生电路,包括随机数发生器,随机数发生器包括反馈模块,反馈模块的输出端连接一触发器的输入端,且反馈模块被配置为,接收选择信号,并基于选择信号选中两个触发器的输出端作为反馈模块的输入端,随机数发生器被配置为,在每一计满周期内输出与相应的选择信号对应的若干个第一随机数。由于选择信号不同则反馈模块选中不同的两个触发器的输出端作为反馈模块的输入端,使得随机数发生器具有不同的反馈多项式,因而随机数发生器能够产生具有不同随机序列的若干第一随机数,从而增加随机数产生电路产生的随机数的随机序列,提高随机数的随机性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
图2为本发明一实施例提供的随机数产生电路的一种电路结构示意图。
参考图2,本实施例中,随机数产生电路包括:随机数发生器,随机数发生器包括反馈模块22以及多个依次连接的触发器23,前一级的触发器23的输出端连接后一级的触发器23的输入端,且每一触发器23的输出端作为随机数发生器的输出端,反馈模块22的输出端连接另一触发器23的输入端;反馈模块22被配置为,接收选择信号S,并基于选择信号S,选中两个触发器23的输出端作为反馈模块22的输入端,且反馈模块22的输出端的数据为对两个触发器23的输出端进行异或运算的数据;随机数发生器被配置为,在每一计满周期内输出与相应的选择信号S对应的若干个第一随机数。
以下将结合附图对本实施例提供的随机数产生电路进行详细说明。
随机数发生器为n-bit随机数发生器,相应的,若干个第一随机数为2n-1个第一随机数;随机数发生器接收驱动时钟信号clk产生第一随机数。其中,随机数发生器产生所有不同的第一随机数的周期为计满周期。
随机数发生器具有n个第一输出端,且每一所述第一输出端具有固定的比特位置,n为大于1的整数,例如为4、7、10等。随机数发生器可以为线性反馈移位寄存器,且包括n个串联的触发器,每一个触发器的输出端作为n个第一输出端中的一个,且每一触发器的输出端所处的比特位置不同。
触发器23的数量为n。本实施例中,如图2示,以n为7作为示例进行说明,以图2中以D[0]、D[1]、D[2]……D[6]依次标示各触发器23的输出端。
随机数发生器具有抽头位置,且随机数发生器在每一计满周期内,按照特定的反馈多项式生成第一随机数,该抽头位置不同则相应的反馈多项式不同,因而产生的若干第一随机数的随机序列不同,且抽头位置与反馈模块22的输入端连接的触发器23有关。可采用抽头序列来定义抽头位置,举例来说,D[5]和D[6]作为反馈模块22的输入端,则抽头序列为(6,5);D[6]和D[4]作为反馈模块22的输入端,则抽头序列为(6,4)。
抽头序列与随机数发生器具有的反馈多项式有关,反馈多项式也可称为反馈函数。具体地,对应不同的抽头序列,随机数发生器具有的反馈多项式也不同,反馈模块22基于选中的触发器23的输出端定义不同的反馈多项式,且随机数发生器基于该反馈多项式产生第一随机数;反馈多项式相同,则计满周期内产生的若干第一随机数的顺序相同;反馈多项式不同,则不同计满周期内产生的若干第一随机数的顺序不同。本实施例中,通过反馈模块22基于选择信号选择不同的触发器的输出端作为反馈模块的输入端,调整抽头序列,从而改变产生的第一随机数的随机序列,换句话说,在每一计满周期内产生2n-1个第一随机数,但是在不同的计满周期内,2n-1个第一随机数产生的顺序发生变化,从而增加了随机数发生器产生随机数的随机性。
反馈模块22的输出端与固定的触发器23的输入端连接,而反馈模块22的输入端可与不同的触发器23的输出端连接。需要说明的是,有关可作为反馈模块22的输入端的触发器23的选择原则为:在每一计满周期内,随机数发生器能够提供2n-1个第一随机数。因此,可以根据随机数发生器的电路结构的不同,合理设置反馈模块22,即合理选择可作为反馈模块22输入端的多个触发器23的输出端,以保证反馈模块22选中的两个触发器23的输出端作为反馈模块22的输入端时,随机数发生器能够产生2n-1个第一随机数。
还需要说明的是,还需要说明的是,在其他实施例中,即使反馈模块选中两个触发器的输出端作为反馈模块输入端,相应的随机数发生器在单个计满周期内产生的第一随机数的数量少于2n-1,也能够增加随机数产生电路产生的随机数的随机性;这是由于,虽然在单个计满周期产生的随机数的数量减少,但是同一随机数产生电路在不同的计满周期可产生的第一随机数的随机序列不同,整体上仍能提高随机数产生电路产生的随机数的随机性。
本实施例中,反馈模块22包括:异或门24,异或门24具有第一输入端以及第二输入端,第一输入端与一触发器23的输出端连接,第二输入端与至少两个触发器23的输出端连接;至少两个开关单元25,每一开关单元25连接在第二输入端与相应的触发器23的输出端之间,且开关单元25接收选择信号S,以使第二输入端与相应的触发器23的输出端之间电连接或者断路。
可以理解的是,在其他实施例中,还可以用同或门替代反馈模块中的异或门。
本实施例中,开关单元25为熔丝结构(fuse)。在其他实施例中,开关单元也可以为反熔丝结构。
本实施例中,第一输入端与固定的触发器23的输出端连接。在其他实施例,反馈模块还可以包括:第一输入端与至少两个触发器的输出端连接,开关单元连接在第一输入端与相应的触发器的输出端之间,通过不同的开关单元的导通和关断,以使不同的触发器的输出端与第一输入端连接。如此,有利于进一步地增加随机数产生电路产生的随机数的随机序列。
以下将结合图2对本实施例提供的随机数产生电路的工作原理进行说明:
在一计满周期内,开关单元25接收第一类选择信号S,以使D[5]作为异或门24的第二输入端;相应的,抽头序列由D[5]以及D[6]对应的两个触发器23决定,在该计满周期产生具有第一类随机序列的第一随机数。
在另一计满周期内,开关单元25接收第二类选择信号S,以使D[3]作为异或门24的第二输入端;相应的,抽头序列由D[4]和D[6]对应的两个触发器23决定,在该计满周期内产生第二类随机序列的第一随机数。
在又一计满周期内,开关单元25接收第三类选择信号S,以使D[2]作为异或门24的第二输入端;相应的,抽头序列由D[2]和D[6]决定,在该计满周期内产生具有第三类随机序列的第一随机数。
因此,同一随机数产生电路可产生多种随机序列的第一随机数,从而有利于增加随机数的随机性。
此外,对于具有相同数量的触发器23的随机数发生器而言,其具有的抽头位置可调整,具体可参考图3,图3为图2中的随机数发生器的多种电路结构示意图,具体示意出了与图2对应的具有其余6种不同抽头位置的随机数发生器的电路结构。
本实施例提供的随机数产生电路,反馈模块22定义随机数发生器的反馈多项式,由于反馈模块22基于不同的选择信号选择不同的触发器23的输出端作为反馈模块22的输入端,因此对于同一随机数产生器而言具有不同的反馈多项式,从而使得随机数发生器基于不同的反馈多项式可提供不同随机序列的第一随机数,从而增加随机数产生电路产生的随机数的随机性。
本发明又一实施例还提供一种随机数产生电路,该随机数产生电路与前述实施例大致相同,主要区别在于还包括控制信号生成模块以及多选模块。以下将结合附图对本发明又一实施例提供的随机数产生电路进行详细说明。
图4为本发明又一实施例提供的随机数产生电路的功能框图。
参考图4,本实施例中,随机数产生电路包括:随机数发生器101,被配置为,在每一计满周期内输出若干个第一随机数;控制信号生成模块102,被配置为,接收触发信号CLK2,并基于触发信号CLK2输出与不同的第一随机数对应的控制信号Sel;多选模块103,被配置为,接收第一随机数以及与第一随机数对应的控制信号Sel,基于控制信号Sel对第一随机数的至少一个比特位置进行调整,获取第二随机数,并输出若干所述第二随机数。
以下将结合附图对本实施例提供的随机数产生电路进行详细说明。
随机数发生器101为n-bit随机数发生器,相应的,若干个第一随机数为2n-1个第一随机数;随机数发生器101接收驱动时钟信号CLK1产生第一随机数。其中,随机数发生器101产生所有不同的第一随机数的周期为计满周期。
随机数发生器101具有n个第一输出端,且每一所述第一输出端具有固定的比特位置,n为大于1的整数,例如为4、7、10等。随机数发生器101可以为线性反馈移位寄存器,且包括n个串联的触发器,每一个触发器的输出端作为n个第一输出端中的一个,且每一触发器的输出端所处的比特位置不同。
具体地,在一个例子中,以D[0]、D[1]、D[2]……D[n-3]、D[n-2]、D[n-1]标示各第一输出端(即各触发器的输出端),且各第一输出端的比特位置从高到低的排布可以为以D[0]、D[n-1]、D[n-2]、D[n-3]……D[2]、D[1]的顺序,n大于3。本实施例中,随机数发生器101可产生多种随机序列的第一随机数,也就是说,随机数发生器101可以为抽头位置可变的线性移位寄存器。有关随机数发生器101的详细说明,可参考前述实施例,以下将不做赘述。
控制信号生成模块102具有用于接收触发信号CLK2的触发端,且还具有用于输出控制信号Sel的信号输出端。
为了提高控制信号Sel与第一输出端输出数据的同步性,本实施例中,触发信号CLK2与随机数发生器101相关联。如此,可以提高第一随机数发生变化时控制信号Sel变化的同步性。
在一个例子中,控制信号生成模块102可以被配置为,不同的第一随机数为在不同的计满周期内的第一随机数;在同一计满周期内,控制信号Sel不变;一计满周期对应的控制信号Sel与相邻的计满周期对应的控制信号Sel不同。如此,在同一计满周期内,多选模块103对同一计满周期内的若干第一随机数的比特位置调整的方式相同,即基于第一随机数获取第二随机数的方式相同,有利于降低电路的复杂程度。
具体地,触发信号CLK2可以为触发驱动时钟信号,且触发驱动时钟信号的时钟周期与计满周期相同。或者,触发信号CLK2也可以由随机数发生器101输出提供,即随机数发生器101完成一个计满周期则输出计满信号,控制信号生成模块102接收该计满信号作为触发信号。
在另一个例子中,控制信号生成模块102可以被配置为,不同的第一随机数包括每一计满周期内的第一随机数,在同一计满周期内,不同的第一随机数对应的控制信号Sel不同。如此,由于在单个计满周期内,控制信号Sel不同,因此多选模块103对同一计满周期内的每一第一随机数的比特位置调整方式也可以不同,从而有利于进一步地增加第二随机数的随机性。更具体地,由于同一计满周期内的控制信号Sel也不相同,能够在增加不同计满周期的第一随机数的随机性的同时,还增加同一计满周期的第一随机数的随机性。
具体地,随机数发生器101接收驱动时钟信号CLK1产生第一随机数,控制信号生成模块102接收该驱动时钟信号CLK1作为触发信号CLK2。
本实施例中,多选模块103包括:片选输入端113,用于接收控制信号Sel;数据输入端,与n个第一输出端连接,用于接收第一随机数;多选模块103具有N种不同比特位置调整方式,且每一比特位置调整方式与一控制信号对应,其中,N为大于1的整数;多选模块103还被配置为:对n个第一输出端的比特位置进行调整,以获取第二随机数。
多选模块103包括数据输出端OUT[n-1:0],输出n-bit的第二随机数。
相较于随机数产生电路101产生的第一随机性的随机序列而言,多选模块103输出的第二随机数的随机序列增加了N倍。
具体地,控制信号Sel的种类大于或等于N,保证会用到所有的不同比特位置调整方式来调整第一随机数的比特位置,从而增加第二随机数的随机序列。因此,可以根据N合理设置控制信号生成模块102,保证产生的控制信号Sel的种类符合需求。
本实施例中,N大于或等于n,有利于增加第二随机数的随机序列。具体地,n个第一输出端的数据的比特位置排列为第一比特位置排列,多选模块103的输出端输出的数据可以具有N个第二比特位置排列,每一第二比特位置排列为基于一种比特位置调整方式对第一比特位置进行调整后获取的。
需要说明的是,为了保留随机数发生器101产生的第一随机数的随机序列,至少一个第二比特位置排列与第一比特位置排列相同。还需要说明的是,在其他实施例中,N也可以为1。
此外,为了减小多选模块103的电路复杂度,多选模块103还可以被配置为:对于N个第二比特位置排列中,一个比特位的数据对应的多选模块103的输出端的位置不同,而其余比特位的数据对应的多选模块103的输出端的位置排列不变。举例来说,由最高位到最低位,第一比特位置排列为D[0]、D[n-1]、D[n-2]....D[3]、D[2]、D[1];由最高位到最低位,第二比特位置排列包括表一中的多种排列方式。
1 | D[0] | D[n-1] | D[n-2] | D[n-3] | … | D[3] | D[2] | D[1] |
2 | D[1] | D[0] | D[n-1] | D[n-2] | … | D[4] | D[3] | D[2] |
3 | D[2] | D[1] | D[0] | D[n-1] | … | D[5] | D[4] | D[3] |
… | … | … | … | … | … | … | … | … |
n-1 | D[n-2] | D[n-3] | D[n-4] | D[n-5] | … | D[1] | D[0] | D[n] |
n | D[n-1] | D[n-2] | D[n-3] | D[n-4] | … | D[2] | D[1] | D[0] |
表一
可以理解的是,在其他实施例中,也可以为至少两个比特位的数据对应的多选模块103的输出端的位置不同。对于n个第一输出端而言,各第一输出端对应的数据的比特位均可以发生变化,根据不同的排列组合一共具有Cn n-1种变化,也就是说,N与n满足:N≤Cn n-1,即,N≤n×(n-1)×(n-2)…2×1。
为了降低多选模块103的复杂度,N可以与n相同。
可以理解的是,在其他实施例中,N也可以小于n。
本实施例中,随机数发生器101输出二进制的第一随机数,相应的多选模块103输出二进制第二随机数。
本实施例提供的随机数产生电路,由于多选模块103能够对第一随机数的比特位进行重新排序,从而产生更多的随机序列,进一步地提高随机数产生电路的随机数的随机性。此外,相较于需要多种具有不同抽头位置的随机数发生器而言,本实施例的电路结构更为简单,且功耗更低。
本发明另一实施例还提供一种随机数产生电路,该随机数产生电路与前述的实施例的大致相同,主要区别包括对各模块做了更详细的说明。以下将结合附图对本发明另一实施例提供的随机数产生电路进行详细说明,与前述实施例相同或者相应的部分,可参考前述实施例,以下将不做详细赘述。
图5为本发明另一实施例提供的随机数产生电路的功能框图。
参考图5,本实施例中,随机数产生电路包括:nbit的随机数发生器201,具有n个第一输出端211;控制信号生成模块202;多选模块203,多选模块203具有片选输入端以及数据输入端,多选模块203具有数据输出端OUT[n-1:0]。
具体地,多选模块203包括:N个调整单元204,每一调整单元204定义一比特位置调整方式;且每一调整单元204均具有数据输入端,且每一调整单元204均具有片选输入端。每一调整单元204被配置为,接收控制信号Sel,且与控制信号Sel对应的调整单元204输出第二随机数。
也就是说,每一调整单元204的输出端均为多选模块203的数据输出端OUT[n-1:0],且控制信号Sel作为调整单元204的片选信号,基于控制信号Sel选中对应的调整单元204的输出端作为多选模块203的数据输出端OUT[n-1:0]。
按照各自输出的数据的比特位置,将n个第一输出端211中的每一第一输出端211标记为D[n-1]、D[n-2]....D[3]、D[2]、D[1]、D[0]。
具体地,n个第一输出端211的数据的比特位置排列为第一比特位置排列,例如为D[0]D[n-1]D[n-2]....D[3]D[2]D[1]。每一调整单元204具有n个第二输出端214,且n个第二输出端214的数据的比特位置排列为第二比特位置排列,第二比特位置排列各不相同,且第二比特位置排列与第一比特位置排列不同,例如第二比特位置排列可以为D[n-1]D[n-2]....D[3]D[2]D[1]D[0]等,有关第二比特位置排列以及第一比特位置排列的详细说明,可参考前述实施例。
本实施例中,以调整单元204的数量与随机数产生器201的第一随机数的比特位数量相同作为示例,即N与n相同。在其他实施例中,调整单元的数量可以大于或小于随机数发生器的比特位数量。
图6为本实施例提供的随机数发生器201的电路结构示意图。
参考图6,随机数发生器201为线性移位寄存器,包括:n个触发器211,异或门231,一触发器211的输入端以及输出端作为异或门231的两个输入端,且异或门231的输出端连接另一触发器211的输入端。异或门231的位置定义随机数发生器201的抽头位置,每一触发器211的输出端作为一第一输出端211(参考图5)。
此外,随机数发生器201还包括反馈模块301,反馈模块301被配置为接收选择信号S,并基于选择信号S选中两个触发器211的输出端作为反馈模块301的输入端。其中,反馈模块301包括该异或门231以及至少两个开关单元232。有关随机数发生器201的详细说明可参考前述实施例,以下将不做赘述。
根据串联的顺序,其余触发器211依次记为第零级触发器、第一级触发器、第二级触发器…第n-1级触发器。
本实施例中,以随机数发生器201为7-bit随机数发生器,且为二进制的7-bit随机数发生器作为示例进行详细说明,在一个计满周期内产生127个第一随机数。图6中,随机数发生器201具有7个触发器211,且异或门231的位置决定了n个第一输出端211的数据的比特位置排列,例如,图6中,当与D[54]连接的开关单元232导通其余开关单元232关断时,7个第一输出端211的数据的比特位置排列为D[0]D[6]D[5]D[4]D[3]D[2]D[1];此外,异或门231的两个输入端决定了产生的第一随机数的随机序列。
图7为本实施例提供的多选模块203的结构示意图,包括7个调整单元204(参考图5)。n个第一输出端211(参考图5)作为每一调整单元204的输入端,为了便于图示的简洁性,图7中每一调整单元204的输入端以0代替D[0]、以1代替D[1],依次类推,且第二输出端214以0代替D[0],依次类推。需要说明的是,标示为D[0]的标示为第零个第一输出端211的数据,标示为D[1]的为第一个第一输出端211的数据,依次类推。
图7中,为了便于说明,以20/21/22/23/24/25/26标示不同的调整单元204。每一调整单元204的第二输出端的排列方式不同,作为示例,按照从上往下的排列表示各数据的比特位由高到低的排序,标示为20的调整单元204的第二输出端输出的数据为D[0]D[6]D[5]D[4]D[3]D[2]D[1],标示为21的调整单元204的第二输出端输出的数据为D[1]D[0]D[6]D[5]D[4]D[3]D[2]。
本实施例中,随机数发生器201具有固定的抽头位置,多选模块203应用于模拟随机数发生器201的抽头位置调整产生的随机数。相应的,多选模块203具有n种不同的调整单元204。如图7所示,标示为20的调整单元204用于模拟图6中随机数发生器201的抽头位置在第零级触发器的LFSR,标示为21的调整单元204用于模拟图6中抽头位置在第一级触发器的LFSR,标示为22的调整单元204用于模拟图6中抽头位置在第二级触发器的LFSR,依次类推。
需要说的是,本实施例中以随机数发生器201为7-bit的随机数发生器作为示例。在其他实施例中,随机数发生器也可以为任意bit的随机数法发生器,如3-bit、4-bit、10-bit、20-bit等。
本实施例中,控制信号生成模块202包括:m-bit计数器212;其中,N与m的关系满足:N≤2m-1,m为任意自然数,N为大于等于2的任意自然数。具体地,m大于或等于lgN/lg2+1的结果向下取整。举例来说,N为7时,m大于或等于3。
如图8所示,m-bit计数器212包括m个触发器222;触发信号CLK2作为第一级的触发器222的时钟输入信号,前一级的触发器222的输出端作为后一即触发器222的时钟输入信号,m个触发器222的输出端共同输出控制信号Sel。
本实施例中,N为7,则计数器212包括三个触发器222,分别标示为DFF#0、DFF#1、DFF#2。
随机数发生器201还被配置为,完成每一计满周期则输出计满信号,控制信号生成模块202接收该计满信号作为触发信号。如此,在同一计满周期内,控制信号Sel不变;不同的计满周期对应的控制信号Sel不同。
本实施例中,控制信号生成模块202为3-bit计数器,具有三个输出端S0/S1/S2,控制信号Sel如表二所示:
S2(最高比特位) | S1 | S0(最低比特位) | Sel |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 2 |
0 | 1 | 1 | 3 |
1 | 0 | 0 | 4 |
1 | 0 | 1 | 5 |
1 | 1 | 0 | 6 |
表二
以下将结合附图对本实施例提供的随机数产生电路的工作原理进行说明:
在第一个计满周期内,随机数发生器201产生若干第一随机数,且控制信号Sel保持不变为0,相应的多选模块203中标示为20的调整单元204被选中,其第二输出端214输出若干第二随机数,各第二随机数的顺序与第一随机数的顺序相同。
第一计满周期完成,随机数发生器201输出计满信号,该计满信号作为计数器的触发信号,S2S1S0由000变为001,控制信号Sel由0变为1,相应的标示为21的调整单元204被选中,在第二个计满周期内,标示为21的调整单元203的第二输出端输入若干第二随机数,各第二随机数的顺序与第一随机数的顺序不同。
依次类推,每一次计满周期完成后,计数器输出端输出的控制信号Sel为上一个计满周期对应的数值+1,从而选中另一个调整单元204的第二输出端作为多选模块203的输出端。
如此,对于7个计满周期而言,每个计满周期内的第二随机数的顺序都发生了变化,第二随机数的随机序列为7种,从而进一步地增加了随机数产生电路产生的随机数的随机性。
在另一例子中,如图9所示,计数器的触发信号与随机数发生器201的驱动时钟信号相同。在每个计满周期内,不同的第一随机数对应不同的控制信号Sel,因此在每个计满周期内也能调用不同的调整单元204进行比特位置的重新排列,从而进一步地增加了随机数的随机性,有利于产生更多的随机序列。随机数产生电路的工作原理如下:
在每一个计满周期内,随机数发生器201产生第一个随机数,计数器输出的控制信号Sel为0,选中标号为20的调整单元204产生第二随机数;随机数发生器201产生第二个随机数;计数器输出的控制信号Sel为1,选中标号为21的调整单元204产生第二随机数;计数器输出的控制信号Sel为2,选中标号为22的调整单元204产生第二随机数;依次类推;当计数器输出的控制信号为7之后,计数器又重新从0开始计数。可以理解的是,多选模块203中的调整单元204的数量可以与每一计满周期产生的第一随机数的数量相同,且根据调整单元204的数量设置计数器。需要说明的是,前述的控制信号Sel与对应选中的调整单元204仅为示例,只有保证不同的控制信号Sel对应选中不同的调整单元204即可。
在又一个例子中,如图10所示,控制信号生成模块202可以为:M-bit伪随机数产生电路,且伪随机数产生电路与随机数发生器201接收同一驱动时钟信号CLK2。相较于计数器而言,伪随机数产生电路输出的控制信号更具有随机性,因此不同的第一随机数对应的调整单元204也相应更具有随机性,从而进一步地提高随机数产生电路产生的随机数的随机性。
具体地,伪随机数产生电路包括M个D触发器241以及第一异或门242,伪随机数产生电路具有输出端S0/S1/S2,该输出端的信号作为控制信号。
与前一实施例相比,本实施例提供的随机数产生电路,基于具有同一种结构的随机数发生器201,能够产生具有N种不同随机序列的随机数,进一步地提高了使用该随机数产生电路的安全性。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各自更动与修改,因此本发明的保护范围应当以权利要求限定的范围为准。
Claims (17)
1.一种随机数产生电路,其特征在于,包括:
随机数发生器,所述随机数发生器包括反馈模块以及多个依次连接的触发器,前一级的所述触发器的输出端连接后一级的所述触发器的输入端,且每一所述触发器的输出端作为所述随机数发生器的输出端,所述反馈模块的输出端连接一所述触发器的输入端;
所述反馈模块被配置为,接收选择信号,并基于所述选择信号,选中两个所述触发器的输出端作为所述反馈模块的输入端;
所述随机数发生器被配置为,在每一计满周期内输出与相应的所述选择信号对应的若干个第一随机数。
2.如权利要求1所述的随机数产生电路,其特征在于,所述反馈模块包括:
异或门,所述异或门具有第一输入端以及第二输入端,所述第一输入端与一所述触发器的输出端连接,所述第二输入端与至少两个所述触发器的输出端连接;
至少两个开关单元,每一所述开关单元连接在所述第二输入端与相应的所述触发器的输出端之间,且所述开关单元接收所述选择信号,以使所述第二输入端与相应的所述触发器的输出端之间电连接或者断路。
3.如权利要求2所述的随机数产生电路,其特征在于,所述开关单元包括熔丝结构。
4.如权利要求1所述的随机数产生电路,其特征在于,还包括:控制信号生成模块,被配置为,接收触发信号,并基于所述触发信号输出与不同的所述第一随机数对应的控制信号;
多选模块,被配置为,接收所述第一随机数以及与所述第一随机数对应的所述控制信号,基于所述控制信号对所述第一随机数的至少一个比特位置进行调整,获取第二随机数,并输出若干所述第二随机数。
5.如权利要求4所述的随机数产生电路,其特征在于,所述随机数发生器为n-bit随机数发生器,所述若干个第一随机数为2n-1个第一随机数;所述随机数发生器具有n个第一输出端,且每一所述第一输出端具有固定的比特位置,n为大于1的整数。
6.如权利要求5所述的随机数产生电路,其特征在于,所述多选模块包括:
片选输入端,用于接收所述控制信号;
数据输入端,与n个所述第一输出端连接,用于接收所述第一随机数;
所述多选模块具有N种不同比特位置调整方式,且每一所述比特位置调整方式与一所述控制信号对应,其中,N为大于或等于1的整数;所述多选模块还被配置为,对所述n个第一输出端的数据的比特位置进行调整,以获取所述第二随机数。
7.如权利要求6所述的随机数产生电路,其特征在于,所述多选模块包括:N个调整单元,每一所述调整单元定义一所述比特位置调整方式;每一所述调整单元均具有所述数据输入端,且每一所述调整单元均具有所述片选输入端。
8.如权利要求7所述的随机数产生电路,其特征在于,所述n个第一输出端的数据的比特位置排列为第一比特位置排列,每一所述调整单元具有n个第二输出端,所述n个第二输出端的数据的比特位置排列为第二比特位置排列;每一所述第二比特位置排列各不相同,且所述第二比特位置排列与所述第一比特位置排列不同。
9.如权利要求8所述的随机数产生电路,其特征在于,N个所述调整单元被配置为,N个所述第二比特位置排列中,一个比特位的数据对应的所述第二输出端的位置不同,其余比特位的数据对应的所述第二输出端的位置排列不变。
10.如权利要求8所述的随机数产生电路,其特征在于,至少一个所述第二比特位置排列与所述第一比特位置排列相同。
11.如权利要求7所述的随机数产生电路,其特征在于,所述N大于或等于n。
12.如权利要求6所述的随机数产生电路,其特征在于,所述控制信号生成模块包括:m-bit计数器;其中,N与m的关系满足:N≤2m-1,m为任意自然数,N为大于等于2的任意自然数。
13.如权利要求4所述的随机数产生电路,其特征在于,所述控制信号生成模块还被配置为,所述不同的第一随机数为在不同的所述计满周期内的所述第一随机数;在同一所述计满周期内,所述控制信号不变;一所述计满周期对应的所述控制信号与相邻的所述计满周期对应的所述控制信号不同。
14.如权利要求13所述的随机数产生电路,其特征在于,所述随机数发生器还被配置为,完成每一所述计满周期则输出计满信号;所述控制信号生成模块接收所述计满信号作为所述触发信号。
15.如权利要求4所述的随机数产生电路,其特征在于,所述控制信号生成模块还被配置为,所述不同的第一随机数包括每一所述计满周期内的所述第一随机数,在同一所述计满周期内,不同的所述第一随机数对应的所述控制信号不同。
16.如权利要求15所述的随机数产生电路,其特征在于,所述随机数发生器还被配置为,接收驱动时钟信号产生所述第一随机数;所述控制信号生成模块还被配置为,接收所述驱动时钟信号作为所述触发信号。
17.如权利要求4所述的随机数产生电路,其特征在于,所述控制信号生成模块包括:M-bit伪随机数产生电路,且所述伪随机数产生电路与所述随机数发生器接收同一驱动时钟信号。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910744.2A CN114201141A (zh) | 2020-09-02 | 2020-09-02 | 随机数产生电路 |
US17/441,801 US20230067363A1 (en) | 2020-09-02 | 2021-06-17 | Random number generation circuit |
PCT/CN2021/100741 WO2022048245A1 (zh) | 2020-09-02 | 2021-06-17 | 随机数产生电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910744.2A CN114201141A (zh) | 2020-09-02 | 2020-09-02 | 随机数产生电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201141A true CN114201141A (zh) | 2022-03-18 |
Family
ID=80492304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010910744.2A Pending CN114201141A (zh) | 2020-09-02 | 2020-09-02 | 随机数产生电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230067363A1 (zh) |
CN (1) | CN114201141A (zh) |
WO (1) | WO2022048245A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117978131A (zh) * | 2024-03-28 | 2024-05-03 | 苏州锴威特半导体股份有限公司 | 一种随机抖频环形振荡器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL188089A (en) * | 2007-12-12 | 2013-02-28 | Nds Ltd | Bit generator |
CN201654762U (zh) * | 2009-11-30 | 2010-11-24 | 上海第二工业大学 | 一种伪随机码序列发生器 |
-
2020
- 2020-09-02 CN CN202010910744.2A patent/CN114201141A/zh active Pending
-
2021
- 2021-06-17 WO PCT/CN2021/100741 patent/WO2022048245A1/zh active Application Filing
- 2021-06-17 US US17/441,801 patent/US20230067363A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117978131A (zh) * | 2024-03-28 | 2024-05-03 | 苏州锴威特半导体股份有限公司 | 一种随机抖频环形振荡器 |
CN117978131B (zh) * | 2024-03-28 | 2024-06-21 | 苏州锴威特半导体股份有限公司 | 一种随机抖频环形振荡器 |
Also Published As
Publication number | Publication date |
---|---|
US20230067363A1 (en) | 2023-03-02 |
WO2022048245A1 (zh) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694545B (zh) | 随机数产生器 | |
Abu-Issa et al. | Bit-swapping LFSR for low-power BIST | |
WO2010034326A1 (en) | State machine and generator for generating a description of a state machine feedback function | |
CN114201141A (zh) | 随机数产生电路 | |
CN109683852B (zh) | 一种真随机数发生器 | |
US20190361677A1 (en) | Random number generator and method for generating random numbers | |
US20060156187A1 (en) | Method and apparatus for multiple polynomial-based random number generation | |
CN109656514B (zh) | 随机数产生系统及其随机数产生方法 | |
WO2020014993A1 (zh) | 基于fpga的并行伪随机序列发生器设计方法 | |
CN114201142A (zh) | 随机数产生电路 | |
JP3626105B2 (ja) | 疑似ランダム信号発生回路 | |
JP5119417B2 (ja) | 擬似乱数生成装置 | |
CN115220694A (zh) | 随机数据生成电路及读写训练电路 | |
US10776079B2 (en) | True random number generation device and generation method thereof | |
KR100327856B1 (ko) | M계열을 임의로 쉬프트하는 회로 및 방법 | |
US11586418B2 (en) | Random number generator, random number generating circuit, and random number generating method | |
CN1720501A (zh) | 用于纯随机数发生器的系统和方法 | |
KR101870735B1 (ko) | Dc-dc 컨버터의 디지털 펄스폭 변조기 | |
JP2006318002A (ja) | クロック分周回路 | |
JP3936476B2 (ja) | 符号生成器 | |
GB2113879A (en) | Improvements in and relating to number generation | |
Sony et al. | Design and Analysis of Multi-Bit Linear Feedback Shift Register based PRNG with FPGA Implementation using different Primitive Polynomials | |
CN110609672B (zh) | 真实随机数产生装置及其产生方法 | |
JP4520103B2 (ja) | スキャンテストパタン入力方法および半導体集積回路 | |
CN117762376A (zh) | 用于生成伪随机数的电路和伪随机数生成器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |