CN117762376A - 用于生成伪随机数的电路和伪随机数生成器 - Google Patents
用于生成伪随机数的电路和伪随机数生成器 Download PDFInfo
- Publication number
- CN117762376A CN117762376A CN202311809245.4A CN202311809245A CN117762376A CN 117762376 A CN117762376 A CN 117762376A CN 202311809245 A CN202311809245 A CN 202311809245A CN 117762376 A CN117762376 A CN 117762376A
- Authority
- CN
- China
- Prior art keywords
- feedback shift
- circuit
- shift register
- multiplexer
- feedback
- 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
- 238000000034 method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本申请涉及伪随机数生成技术领域,公开一种用于生成伪随机数的电路。该用于生成伪随机数的电路包括:反馈移位寄存电路,包括依序串联的多个反馈移位寄存器,被配置为移位生成伪随机数序列;多路选择电路,与反馈移位寄存电路连接,被配置为选择反馈移位寄存电路中的部分或全部反馈移位寄存器形成反馈回路,以输出目标伪随机数序列。该电路能够调节伪随机数的生成速率,以实现在短时间内提高伪随机序列的生成速度。本申请还公开一种伪随机数生成器。
Description
技术领域
本申请涉及伪随机数生成技术领域,例如涉及一种用于生成伪随机数的电路和伪随机数生成器。
背景技术
集成电路中广泛需要随机数生成器,其中伪随机数生成器(或称确定性随机序列发生器)的作用非常重要,无论是根据特定种子生成伪随机序列还是为真随机数发生器的熵源提供后处理,都需要生成伪随机数。
相关技术通常采用线性反馈移位寄存器(LFSR)生成伪随机数,其电路结构简单,面积开销小,适合低成本IC电路使用。但是,传统的线性反馈移位寄存器的更新速度较慢,难以在短时间内提高伪随机序列的生成速度。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于生成伪随机数的电路和伪随机数生成器,能够调节伪随机数的生成速率,以实现在短时间内提高伪随机序列的生成速度。
在一些实施例中,用于生成伪随机数的电路包括:反馈移位寄存电路,包括依序串联的多个反馈移位寄存器,被配置为移位生成伪随机数序列;多路选择电路,与反馈移位寄存电路连接,被配置为选择反馈移位寄存电路中的部分或全部反馈移位寄存器形成反馈回路,以输出目标伪随机数序列。
可选地,多路选择电路包括一个多路选择器,其中:多路选择器的输出端与反馈移位寄存电路中的首个反馈移位寄存器连接;多路选择器的第一输入端与反馈移位寄存电路中的一个或多个反馈移位寄存器的上路连接,形成异或上回路;多路选择器的第二输入端与反馈移位寄存电路中的一个或多个反馈移位寄存器的下路连接,形成异或下回路;多路选择电路被配置为选择异或上回路或异或下回路作为反馈回路。
可选地,多路选择电路包括多个多路选择器,多个多路选择器至少包括首部多路选择器和中间多路选择器,其中:在反馈移位寄存电路中的首个反馈移位寄存器前插入一个首部多路选择器,并分别在反馈移位寄存电路中的一个或多个预设位置的相邻两个反馈移位寄存器之间插入中间多路选择器,以形成反馈回路。
可选地,首部多路选择器的输出端与反馈移位寄存电路中位于首位的反馈移位寄存器连接,中间多路选择器的输出端与反馈移位寄存电路中位于中间的反馈移位寄存器连接;首部多路选择器的第一输入端与反馈移位寄存电路中位于串联前路的一个或多个反馈移位寄存器的上路连接,形成第一异或上回路;中间多路选择器的第一输入端与反馈移位寄存电路中位于串联后路的一个或多个反馈移位寄存器的上路连接,形成第二异或上回路;首部多路选择器的第二输入端和中间多路选择器的第二输入端分别与反馈移位寄存电路中的一个或多个反馈移位寄存器的下路连接,形成总异或下回路;多路选择电路被配置为选择第一异或上回路和第二异或上回路作为反馈回路,或者,选择总异或下回路作为反馈回路。
可选地,首部多路选择器的第一输入端的输入值为反馈移位寄存电路中第一预设数量的反馈移位寄存器的上路的异或输出;和/或,首部多路选择器的第二输入端的输入值为反馈移位寄存电路中第二预设数量的反馈移位寄存器的下路的异或输出;其中,第一预设数量的反馈移位寄存器位于反馈移位寄存电路的串联前路。
可选地,中间多路选择器包括第一中间多路选择器,其中:第一中间多路选择器的第一输入端的输入值为反馈移位寄存电路中第三预设数量的反馈移位寄存器的上路的异或输出;和/或,第一中间多路选择器的第二输入端的输入值为反馈移位寄存电路中第四预设数量的反馈移位寄存器的下路的异或输出;其中,第三预设数量的反馈移位寄存器位于反馈移位寄存电路的串联后路。
可选地,中间多路选择器包括多个第二中间多路选择器,其中:第二中间多路选择器的第一输入端的输入值为反馈移位寄存电路中第五预设数量的反馈移位寄存器的上路的异或输出;和/或,第二中间多路选择器的第二输入端的输入值为反馈移位寄存电路中第六预设数量的反馈移位寄存器的下路的异或输出;其中,反馈移位寄存电路的串联后路包括依次连接的多个串联支路,每一第二中间多路选择器的第一输入端与一个串联支路相对应。
可选地,在预设位置为一个的情况下,将多个反馈移位寄存器分为两段串联支路,预设位置位于两段串联支路之间;在预设位置为多个的情况下,将多个反馈移位寄存器分为(i+1)段串联支路,预设位置设置于每两段串联支路之间;其中,i为预设位置的数量。
在一些实施例中,用于生成伪随机数的电路还包括:控制电路,与多路选择电路连接,被配置为输出控制信号以使多路选择电路选择反馈移位寄存电路中的部分或全部反馈移位寄存器形成反馈回路。
在一些实施例中,伪随机数生成器包括:生成器本体;如上述的用于生成伪随机数的电路,安装于生成器本体。
本公开实施例提供的用于生成伪随机数的电路和伪随机数生成器,可以实现以下技术效果:
通过多路选择电路选择反馈移位寄存电路中的部分或全部反馈移位寄存器所形成的反馈回路,能够在部分或全部反馈移位寄存器所形成的反馈回路之间进行灵活的切换,从而在反馈移位寄存电路的输出端得到不同长度、周期或特性的目标伪随机数序列。这样,能够通过选择不同的反馈回路,调节伪随机数的生成速率,以实现在短时间内提高伪随机序列的生成速度。
以上的总体描述和下文中的描述仅是示例性和解释性的,不被配置为限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于生成伪随机数的电路的结构示意图;
图2是本公开实施例提供的另一个用于生成伪随机数的电路的结构示意图;
图3是本公开实施例提供的另一个用于生成伪随机数的电路的结构示意图;
图4是本公开实施例提供的另一个用于生成伪随机数的电路的结构示意图;
图5是本公开实施例提供的另一个用于生成伪随机数的电路的结构示意图;
图6是本公开实施例提供的一个伪随机数生成器的结构框图。
附图标记:
100、伪随机数生成器;300、生成器本体;
200、用于生成伪随机数的电路;
10、反馈移位寄存电路;101、反馈移位寄存器;
20、多路选择电路;201、首部多路选择器;202、中间多路选择器;2021、第一中间多路选择器;2022、第二中间多路选择器;
30、控制电路。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是被配置为区别类似的对象,而不必被配置为描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
需要说明的是,在不冲突的情况下,本公开实施例中的实施例及实施例中的特征可以相互组合。
结合图1所示,本公开实施例提供一种用于生成伪随机数的电路200。该电路200包括反馈移位寄存电路10和多路选择电路20。反馈移位寄存电路10包括依序串联的多个反馈移位寄存器101,被配置为移位生成伪随机数序列。多路选择电路20与反馈移位寄存电路10连接,被配置为选择反馈移位寄存电路10中的部分或全部反馈移位寄存器101形成反馈回路,以输出目标伪随机数序列。
在该公开实施例中,通过多路选择电路20选择反馈移位寄存电路10中的部分或全部反馈移位寄存器101所形成的反馈回路,能够在部分或全部反馈移位寄存器101所形成的反馈回路之间进行灵活的切换,从而在反馈移位寄存电路10的输出端得到不同长度、周期或特性的目标伪随机数序列。这样,通过选择不同的反馈回路,能够调节伪随机数的生成速率,以实现在短时间内提高伪随机序列的生成速度。同时,不需要准备多套长度不同的寄存器组,就能特定时段内的伪随机数生成速率,避免面积浪费和过多的功耗开销。
此外,由于功耗水平与寄存器组的长度相关,因此,通过选择部分反馈移位寄存器101能够降低功耗。
需要说明的是,通过选择不同的反馈回路,还能够调节伪随机数的生成质量。因此,能够在需求伪随机数生成质量的情况下提高伪随机序列的生成质量。
示例性地,反馈移位寄存器101为线性反馈移位寄存器(Linear FeedbackShiftRegister,LFSR)。线性反馈移位寄存器是指:给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。
可选地,多路选择电路20包括一个多路选择器,其中:多路选择器的输出端与反馈移位寄存电路10中的首个反馈移位寄存器101连接。多路选择器的第一输入端与反馈移位寄存电路10中的一个或多个反馈移位寄存器101的上路连接,形成异或上回路。多路选择器的第二输入端与反馈移位寄存电路10中的一个或多个反馈移位寄存器101的下路连接,形成异或下回路。多路选择电路20被配置为选择异或上回路或异或下回路作为反馈回路。
示例性地,异或上回路的长度和异或下回路的长度不同。这样,使得异或上回路和异或下回路形成的反馈回路对应的周期不同,从而使得所生成的伪随机数序列的速率不同。可以理解的是,一个较短的反馈回路生成伪随机数的速率较快,因为它需要较少的计算步骤来更新内部状态。较长的反馈回路能生成更高质量的伪随机数序列,因为它具有更大的周期性和更低的潜在模式。
在该公开实施例中,多路选择器的输出端与反馈移位寄存电路10中的首个反馈移位寄存器101连接,以使多路选择器的输出作为首个反馈移位寄存器101的输入。通过多路选择电路20选择异或上回路或异或下回路,使得反馈移位寄存电路10输出异或上回路对应的目标伪随机数序列,或异或下回路对应的伪随机数序列。这样,通过实现动态选择反馈回路,能够调节生成伪随机数序列的质量和速率,提供了生成伪随机数序列的高度灵活性和可配置性。
示例性地,将多个反馈移位寄存器101分为两段,一段为串联前路,另一段为串联后路。在多路选择电路20包括一个多路选择器的情况下,多路选择器的输出端与串联前路中的首个反馈移位寄存器101连接。多路选择器的第一输入端与串联前路的上路连接,形成异或上回路。多路选择器的第二输入端与串联前路和串联后路的下路连接,形成异或下回路。多路选择电路20被配置为选择异或上回路或异或下回路作为反馈回路。
这样,通过多路选择电路20选择输出串联前路形成的反馈回路对应的目标伪随机数序列,或选择输出串联前路和串联后路形成的反馈回路对应的目标伪随机数序列,实现调节反馈移位寄存电路10生成伪随机数序列的速率和质量,从而在保障所生成的伪随机数质量的同时,提高在特定时段内的伪随机数生成速率。
示例性地,将多个反馈移位寄存器101分为两段,一段为串联前路,另一段为串联后路。在多路选择电路20包括一个多路选择器的情况下,多路选择器的输出端与串联前路中的首个反馈移位寄存器101连接;多路选择器的第一输入端与串联前路和串联后路的上路连接,形成异或上回路。多路选择器的第二输入端与串联前路的下路连接,形成异或下回路。多路选择电路20被配置为选择异或上回路或异或下回路作为反馈回路。这样,能够使得多路选择电路20的连接方式更加灵活多样。
具体地,串联前路与串联后路的长度可以相同。
可选地,如图2所示,多路选择电路20包括多个多路选择器,多个多路选择器至少包括首部多路选择器201和中间多路选择器202,其中:在反馈移位寄存电路10中的首个反馈移位寄存器101前插入一个首部多路选择器201,并分别在反馈移位寄存电路10中的一个或多个预设位置的相邻两个反馈移位寄存器101之间插入中间多路选择器202,以形成反馈回路。
需要说明的是,多个反馈移位寄存器101的数量为n,多个多路选择器的数量为m,多个预设位置的数量为i。其中,m≤n,i<m。
在该公开实施例中,通过多个多路选择器的插入实现对依序串联的多个反馈移位寄存器101进行分段。通过在首个反馈移位寄存器101前插入首部多路选择器201,能够控制首个反馈移位寄存器101输入数据的选择。通过在预设位置设置中间多路选择器202,能够通过中间多路选择器202的选择改变反馈回路的结构,以生成具有不同特性的伪随机数序列。
可选地,如图2所示,首部多路选择器201的输出端与反馈移位寄存电路10中位于首位的反馈移位寄存器101连接,中间多路选择器202的输出端与反馈移位寄存电路10中位于中间的反馈移位寄存器101连接。首部多路选择器201的第一输入端与反馈移位寄存电路10中位于串联前路的一个或多个反馈移位寄存器101的上路连接,形成第一异或上回路。中间多路选择器202的第一输入端与反馈移位寄存电路10中位于串联后路的一个或多个反馈移位寄存器101的上路连接,形成第二异或上回路。首部多路选择器201的第二输入端和中间多路选择器202的第二输入端分别与反馈移位寄存电路10中的一个或多个反馈移位寄存器101的下路连接,形成总异或下回路。多路选择电路20被配置为选择第一异或上回路和第二异或上回路作为反馈回路,或者,选择总异或下回路作为反馈回路。
在该公开实施例中,通过在位于中间的反馈移位寄存器101的位置插入中间多路选择器202,使得多个反馈移位寄存器101被分成串联前路和串联后路。这样,通过选择串联前路和串联后路独立进行反馈循环的第一异或上回路和第二异或上回路或者选择总异或下回路作为反馈,以使反馈移位寄存电路10输出对应的目标伪随机数序列。
可选地,如图2所示,首部多路选择器201的第一输入端的输入值为反馈移位寄存电路10中第一预设数量的反馈移位寄存器101的上路的异或输出。和/或,首部多路选择器201的第二输入端的输入值为反馈移位寄存电路10中第二预设数量的反馈移位寄存器101的下路的异或输出。
其中,第一预设数量的反馈移位寄存器101位于反馈移位寄存电路10的串联前路。示例性地,第一预设数量为多个反馈移位寄存器101数量的1/2。这样,使得串联前路和串联后路的反馈移位寄存器101数量相同,即串联前路和串联后路的长度相等,从而使得在首部多路选择器201选择上路的异或输出的情况下,将串联前路作为独立的反馈回路进行循环,提高目标伪随机数序列的速率。
示例性地,第二预设数量与第一预设数量不相等。具体地,第二预设数量为多个反馈移位寄存器101的数量。这样,将全部反馈移位寄存器101形成反馈回路,使得首部多路选择器201在选择下路的异或输出的情况下,将全部反馈移位寄存器101作为总反馈回路进行循环,提高目标伪随机数序列的质量。
在该公开实施例中,通过首部多路选择器201选择第一输入端的输入值或第二端的输入值,能够动态调节生成伪随机数序列的速率和质量。这样,能够按照使用需求生成对应的伪随机数序列。
可选地,如图3所示,中间多路选择器202包括第一中间多路选择器2021,其中:第一中间多路选择器2021的第一输入端的输入值为反馈移位寄存电路10中第三预设数量的反馈移位寄存器101的上路的异或输出。和/或,第一中间多路选择器2021的第二输入端的输入值为反馈移位寄存电路10中第四预设数量的反馈移位寄存器101的下路的异或输出。
其中,第三预设数量的反馈移位寄存器101位于反馈移位寄存电路10的串联后路。示例性地,第三预设数量的设置可以按照使用需求设置。其中,第三预设数量小于多个反馈移位寄存器101数量。
示例性地,第四预设数量与第三预设数量不相等。具体地,第四预设数量为多个反馈移位寄存器101数量。
在该公开实施例中,在第一中间多路选择器2021选择第三预设数量的反馈移位寄存器101作为独立的反馈回路进行循环的情况下,由于第三预设数量的反馈移位寄存器101少于多个反馈移位寄存器101数量,因此,能够进一步提高生成伪随机数序列的速率。在第一中间多路选择器2021选择第四预设数量的反馈移位寄存器101作为总反馈回路进行循环的情况下,进一步能够提高生成伪随机数序列的质量。
可选地,如图3所示,中间多路选择器202包括多个第二中间多路选择器2022,其中:第二中间多路选择器2022的第一输入端的输入值为反馈移位寄存电路10中第五预设数量的反馈移位寄存器101的上路的异或输出。和/或,第二中间多路选择器2022的第二输入端的输入值为反馈移位寄存电路10中第六预设数量的反馈移位寄存器101的下路的异或输出。
其中,反馈移位寄存电路10的串联后路包括依次连接的多个串联支路,每一第二中间多路选择器2022的第一输入端与一个串联支路相对应。
示例性地,第六预设数量与第五预设数量不相等。具体地,第六预设数量为多个反馈移位寄存器101的数量。
在该公开实施例中,中间多路选择器202的数量设置为多个,且与串联后路的多个串联支路相对应。这样,通过多个第二中间多路选择器2022选择第一输入端的输入,以使反馈移位寄存电路10输出多个串联支路形成的独立反馈回路对应的目标伪随机数序列;通过多个第二中间多路选择器2022选择第二输入端的输入,以使反馈移位寄存电路10输出总反馈回路对应的目标伪随机数序列。这样,通过多路选择器的数量以平衡反馈移位寄存电路10所生成的伪随机数序列的速率和质量,实现在保证伪随机数序列生成的质量的同时,提升伪随机数生成的速率。
可选地,在预设位置为一个的情况下,将多个反馈移位寄存器101分为两段串联支路,预设位置位于两段串联支路之间。在预设位置为多个的情况下,将多个反馈移位寄存器101分为(i+1)段串联支路,预设位置设置于每两段串联支路之间;其中,i为预设位置的数量。
可以理解的是,设置预设位置表示将多个反馈移位寄存器101进行分段,并将多个反馈移位寄存器101分为(i+1)段串联支路。例如,预设位置的数量为1,则将多个反馈移位寄存器101分为两段串联支路。在预设位置的数量为3,则将多个反馈移位寄存器101分为4段串联支路。
示例性地,多段串联支路的长度相等。
示例性地,每段串联支路的长度大于16bit。由于LFSR的伪随机数质量与其长度直接相关,因此将每段串联支路的长度设置为大于16bit,以在实现高速生成伪随机序列的同时保证伪随机序列的生成质量。
示例性地,以多个反馈移位寄存器101的总长度为128bit(表示为:LFSR0[0:128])进行举例说明。在预设位置为一个的情况下,将多个反馈移位寄存器101平均分为两段串联支路,预设位置设置于两段串联支路之间。
示例性地,在预设位置为多个的情况下,预设位置可以设置为3。这样,可以将多个反馈移位寄存器101分为4段串联支路。
示例性地,以多个反馈移位寄存器101的总长度为128bit进行举例说明。在预设位置为3个的情况下,将多个反馈移位寄存器101平均分为4段串联支路,预设位置位于每两段串联支路之间。
示例性地,每段串联支路所使用的本原多项式可以相同,也可以不同。如果每段串联支路所使用的本原多项式不同,则能够提升混淆度。
在该公开实施例中,通过在预设位置设置中间多路选择器202,将多个反馈移位寄存器101进行分段,以使每段串联支路都能够形成独立的反馈回路。这样,通过多路选择电路20实现切换,即该电路既可以按多个反馈移位寄存器101的完整循环进行移位反馈,也可以按多段串联支路各自独立循环进行移位反馈。
可选地,如图4和图5所示,用于生成伪随机数的电路200还包括:控制电路30。控制电路30与多路选择电路20连接,被配置为输出控制信号以使多路选择电路20选择反馈移位寄存电路10中的部分或全部反馈移位寄存器101形成反馈回路。
在该公开实施例中,通过控制电路30能够动态地选择多路选择电路20以选择不同的反馈移位寄存器101形成反馈回路,从而实时地调整反馈移位寄存电路10生成的伪随机数序列。这样,通过控制电路30增加了用于生成伪随机数的电路200的灵活性、易于控制和动态调整的能力。
具体地,如图2所示,以多个反馈移位寄存器101的总长度为128bit为例,对用于生成伪随机数的电路200进行进一步的说明:将多个反馈移位寄存器LFSR0[0:128]按照需求进行分段。本公开实施例将多个反馈移位寄存器101分为2个串联支路,分别为串联前路LFSR1[0:63]和串联后路LFSR2[0:63],表示为:
LFSR0[0:128]分段为LFSR1[0:63]+LFSR2[0:63]
在串联前路中首个反馈移位寄存器101前插入一个首部多路选择器201。首部多路选择器201的第一输入端与串联前路中全部反馈移位寄存器101的上路连接,形成第一异或上回路;首部多路选择器201的第二输入端与多个反馈移位寄存器101的下路连接,形成总异或下回路。同时,首部多路选择器201的输出端与串联前路中首个反馈移位寄存器101连接。
在串联后路中首个反馈移位寄存器101前插入一个中间多路选择器202。中间多路选择器202的第一输入端与串联后路中全部反馈移位寄存器101的上路连接,形成第二异或上回路;中间多路选择器202的第二输入端与串联前路中末个反馈移位寄存器101串联。同时,中间多路选择器202的输出端与串联后路中首个反馈移位寄存器101连接。
在该公开实施例中,通过首部多路选择器201和中间多路选择器202实现切换异或上回路或总异或下回路,即该反馈移位寄存电路10既可以按128bit的多个反馈移位寄存器101的完整循环进行移位反馈,也可以按2个64bit的串联支路各自循环进行移位反馈。详细来说,在首部多路选择器201和中间多路选择器202选择第一异或上回路和第二异或上回路的情况下,反馈移位寄存电路10按2个64bit的串联支路各自循环进行移位反馈,由图2中所示的Out1和Out0分别输出对应的目标伪随机数序列,由于该串联支路的长度较短,则能够大大提升生成伪随机数的速率。在首部多路选择器201和中间多路选择器202选择总异或下回路的情况下,反馈移位寄存电路10按128bit的多个反馈移位寄存器101的完整循环进行移位反馈,由图2中所示的Out0输出对应的目标伪随机数序列,提高生成伪随机数的质量。
具体地,如图3所示,以多个反馈移位寄存器101的总长度为128bit为例,对用于生成伪随机数的电路200进行进一步的说明:将多个反馈移位寄存器LFSR0[0:128]按照需求进行分段。本公开实施例将多个反馈移位寄存器101分为4个串联支路,分别为串联前路LFSR1[0:31]和串联后路中的3个串联支路,串联后路中的3个串联支路分别标记为第一串联支路LFSR2[0:31]、第二串联支路LFSR3[0:31]和第三串联支路LFSR4[0:31],表示为:
LFSR0[0:128]分段为LFSR1[0:63]+LFSR2[0:31]+LFSR3[0:31]+LFSR4[0:31]
在串联前路中首个反馈移位寄存器101前插入一个首部多路选择器201。首部多路选择器201的第一输入端与串联前路中的全部反馈移位寄存器101的上路连接,形成第三异或上回路;首部多路选择器201的第二输入端与多个反馈移位寄存器101的下路连接,形成总异或下回路。同时,首部多路选择器201的输出端与串联前路中首个反馈移位寄存器101连接。
在第一串联支路中首个反馈移位寄存器101前插入第一中间多路选择器2021。第一中间多路选择器2021的第一输入端与第一串联支路中全部反馈移位寄存器101的上路连接,形成第四异或上回路;第一中间多路选择器2021的第二输入端与串联前路中末个反馈移位寄存器101串联。同时,第一中间多路选择器2021的输出端与第一串联支路中首个反馈移位寄存器101连接。
在第二串联支路中首个反馈移位寄存器101前插入一个第二中间多路选择器2022。该第二中间多路选择器2022的第一输入端与第二串联支路中全部反馈移位寄存器101的上路连接,形成第五异或上回路;该第二中间多路选择器2022的第二输入端与第一串联支路中末个反馈移位寄存器101串联。同时,该第二中间多路选择器2022的输出端与第二串联支路中首个反馈移位寄存器101连接。
在第三串联支路中首个反馈移位寄存器101前插入另一个第二中间多路选择器2022。该第二中间多路选择器2022的第一输入端与第三串联支路中全部反馈移位寄存器101的上路连接,形成第六异或上回路;该第二中间多路选择器2022的第二输入端与第二串联支路中末个反馈移位寄存器101串联。同时,该第二中间多路选择器2022的输出端与第三串联支路中首个反馈移位寄存器101连接。
在该公开实施例中,通过首部多路选择器201、第一中间多路选择器2021、一个第二中间多路选择器2022和另一个第二中间多路选择器2022实现切换异或上回路或总异或下回路,即该反馈移位寄存电路10既可以按128bit的多个反馈移位寄存器101的完整循环进行移位反馈,也可以按4个32bit的串联支路各自循环进行移位反馈。详细来说,在首部多路选择器201和中间多路选择器202选择第三异或上回路、第四异或上回路、第五异或上回路和第六异或上回路的情况下,反馈移位寄存电路10按4个32bit的串联支路各自循环进行移位反馈,由图3中所示的R31、R63、R95和R127分别输出对应的目标伪随机数序列,进一步提升了生成伪随机数的速率。在首部多路选择器201和中间多路选择器202选择总异或下回路的情况下,反馈移位寄存电路10按128bit的多个反馈移位寄存器101的完整循环进行移位反馈,由图3中所示的R127输出对应的目标伪随机数序列,提高生成伪随机数的质量。
可以理解的是,该电路在常规情况下选择长度较长的反馈回路生成伪随机数序列,例如,选择全长度128bit的多个反馈移位寄存器101所形成反馈回路,按照标准的每周期1bit进行更新迭代。而在特定时段(在短时间内需要生成大量伪随机数序列的时段)切换成较短的反馈回路,例如,将全长度128bit的多个反馈移位寄存器101分段为多个串联支路,以每串联之路的长度形成反馈回路,以每周期4bit的高速实现快速更新迭代。这样,能够实现保证伪随机数的生成质量的同时,在短时间内提高伪随机序列的生成速度。此外,本公开实施例只需要增加多个多路选择器就能实现,减少额外功耗。
需要说明的是,多个反馈移位寄存器101的长度,以及多路选择器的数量可根据实际使用需求进行设置或选择,本发明的公开实施例不做限定。
结合图6所示,本公开实施例提供了一种伪随机数生成器100,包括:生成器本体300,以及上述的用于生成伪随机数的电路200。用于生成伪随机数的电路200安装于生成器本体300。这里所表述的安装关系,并不仅限于在生成器本体300的内部放置,还包括了与生成器100的其他元器件的安装连接,包括但不限于物理连接、电性连接或者信号传输连接等。本领域技术人员可以理解的是,用于生成伪随机数的电路200可以适配于可行的生成器主体,进而实现其他可行的实施例。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅被配置为描述实施例并且不被配置为限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当被配置为本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个被配置为实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于生成伪随机数的电路,其特征在于,包括:
反馈移位寄存电路,包括依序串联的多个反馈移位寄存器,被配置为移位生成伪随机数序列;
多路选择电路,与反馈移位寄存电路连接,被配置为选择反馈移位寄存电路中的部分或全部反馈移位寄存器形成反馈回路,以输出目标伪随机数序列。
2.根据权利要求1所述的电路,其特征在于,多路选择电路包括一个多路选择器,其中:
多路选择器的输出端与反馈移位寄存电路中的首个反馈移位寄存器连接;
多路选择器的第一输入端与反馈移位寄存电路中的一个或多个反馈移位寄存器的上路连接,形成异或上回路;
多路选择器的第二输入端与反馈移位寄存电路中的一个或多个反馈移位寄存器的下路连接,形成异或下回路;
多路选择电路被配置为选择异或上回路或异或下回路作为反馈回路。
3.根据权利要求1所述的电路,其特征在于,多路选择电路包括多个多路选择器,多个多路选择器至少包括首部多路选择器和中间多路选择器,其中:
在反馈移位寄存电路中的首个反馈移位寄存器前插入一个首部多路选择器,并分别在反馈移位寄存电路中的一个或多个预设位置的相邻两个反馈移位寄存器之间插入中间多路选择器,以形成反馈回路。
4.根据权利要求3所述的电路,其特征在于,
首部多路选择器的输出端与反馈移位寄存电路中位于首位的反馈移位寄存器连接,中间多路选择器的输出端与反馈移位寄存电路中位于中间的反馈移位寄存器连接;
首部多路选择器的第一输入端与反馈移位寄存电路中位于串联前路的一个或多个反馈移位寄存器的上路连接,形成第一异或上回路;
中间多路选择器的第一输入端与反馈移位寄存电路中位于串联后路的一个或多个反馈移位寄存器的上路连接,形成第二异或上回路;
首部多路选择器的第二输入端和中间多路选择器的第二输入端分别与反馈移位寄存电路中的一个或多个反馈移位寄存器的下路连接,形成总异或下回路;
多路选择电路被配置为选择第一异或上回路和第二异或上回路作为反馈回路,或者,选择总异或下回路作为反馈回路。
5.根据权利要求3所述的电路,其特征在于,
首部多路选择器的第一输入端的输入值为反馈移位寄存电路中第一预设数量的反馈移位寄存器的上路的异或输出;和/或,
首部多路选择器的第二输入端的输入值为反馈移位寄存电路中第二预设数量的反馈移位寄存器的下路的异或输出;
其中,第一预设数量的反馈移位寄存器位于反馈移位寄存电路的串联前路。
6.根据权利要求3所述的电路,其特征在于,中间多路选择器包括第一中间多路选择器,其中:
第一中间多路选择器的第一输入端的输入值为反馈移位寄存电路中第三预设数量的反馈移位寄存器的上路的异或输出;和/或,
第一中间多路选择器的第二输入端的输入值为反馈移位寄存电路中第四预设数量的反馈移位寄存器的下路的异或输出;
其中,第三预设数量的反馈移位寄存器位于反馈移位寄存电路的串联后路。
7.根据权利要求3所述的电路,其特征在于,中间多路选择器包括多个第二中间多路选择器,其中:
第二中间多路选择器的第一输入端的输入值为反馈移位寄存电路中第五预设数量的反馈移位寄存器的上路的异或输出;和/或,
第二中间多路选择器的第二输入端的输入值为反馈移位寄存电路中第六预设数量的反馈移位寄存器的下路的异或输出;
其中,反馈移位寄存电路的串联后路包括依次连接的多个串联支路,每一第二中间多路选择器的第一输入端与一个串联支路相对应。
8.根据权利要求3所述的电路,其特征在于,
在预设位置为一个的情况下,将多个反馈移位寄存器分为两段串联支路,预设位置位于两段串联支路之间;
在预设位置为多个的情况下,将多个反馈移位寄存器分为(i+1)段串联支路,预设位置设置于每两段串联支路之间;其中,i为预设位置的数量。
9.根据权利要求1至8任一项所述的电路,其特征在于,还包括:
控制电路,与多路选择电路连接,被配置为输出控制信号以使多路选择电路选择反馈移位寄存电路中的部分或全部反馈移位寄存器形成反馈回路。
10.一种伪随机数生成器,其特征在于,包括:
生成器本体;
如权利要求1至9任一项所述的用于生成伪随机数的电路,安装于生成器本体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311809245.4A CN117762376A (zh) | 2023-12-26 | 2023-12-26 | 用于生成伪随机数的电路和伪随机数生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311809245.4A CN117762376A (zh) | 2023-12-26 | 2023-12-26 | 用于生成伪随机数的电路和伪随机数生成器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762376A true CN117762376A (zh) | 2024-03-26 |
Family
ID=90317848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311809245.4A Pending CN117762376A (zh) | 2023-12-26 | 2023-12-26 | 用于生成伪随机数的电路和伪随机数生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762376A (zh) |
-
2023
- 2023-12-26 CN CN202311809245.4A patent/CN117762376A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5258936A (en) | Method and apparatus for generating pseudo-random numbers | |
EP2144134B1 (en) | Method for synthesizing linear finite state machines | |
US6667708B2 (en) | Method and system for a programmable code generator | |
US7512645B2 (en) | System and method for generating pseudorandom numbers | |
CN103098018B (zh) | 比特序列生成器 | |
KR101332232B1 (ko) | 유한체 연산을 이용한 암호화된 무작위 숫자 생성기 | |
WO2010034326A1 (en) | State machine and generator for generating a description of a state machine feedback function | |
US9166795B2 (en) | Device and method for forming a signature | |
US9619206B2 (en) | Pseudo-random bit sequence generator | |
CN117762376A (zh) | 用于生成伪随机数的电路和伪随机数生成器 | |
CN103636159A (zh) | 用于产生随机的输出位序列的方法 | |
IL147359A (en) | High speed PRBS creation technique | |
US20090254333A1 (en) | LFSR Emulation | |
Mrugalski et al. | High speed ring generators and compactors of test data [logic IC test] | |
EP1701497A1 (en) | Method and system for data scrambling and descrambling | |
CN101262296A (zh) | 一种用于wcdma系统的扰码发生器及其实现方法 | |
US7502814B2 (en) | Device and method for generating a pseudorandom sequence of numbers | |
KR100274489B1 (ko) | 의사-난수 발생 장치 및 방법 | |
Ge et al. | A power analysis attack countermeasure based on random data path execution for cgra | |
JPH1146132A (ja) | 符号生成回路 | |
Mihaljevic et al. | A fast and secure stream cipher based on cellular automata over GF (q) | |
WO2010047575A2 (en) | Autocorrelation circuit for random number generator | |
US6910056B1 (en) | Method and apparatus for implementing a multi-step pseudo random sequence generator | |
KR100421852B1 (ko) | 다중 피엔 칩 발생 장치 | |
MADHUPAVANI et al. | Design of Random Number Generation Using 256 Bit LFSR in FPGA |
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 |