CN115237377A - 真随机数发生电路 - Google Patents

真随机数发生电路 Download PDF

Info

Publication number
CN115237377A
CN115237377A CN202210837388.5A CN202210837388A CN115237377A CN 115237377 A CN115237377 A CN 115237377A CN 202210837388 A CN202210837388 A CN 202210837388A CN 115237377 A CN115237377 A CN 115237377A
Authority
CN
China
Prior art keywords
bit
shift register
sub
bits
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.)
Pending
Application number
CN202210837388.5A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xhorse Electronics Co Ltd
Original Assignee
Shenzhen Xhorse Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Xhorse Electronics Co Ltd filed Critical Shenzhen Xhorse Electronics Co Ltd
Priority to CN202210837388.5A priority Critical patent/CN115237377A/zh
Publication of CN115237377A publication Critical patent/CN115237377A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

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)
  • Logic Circuits (AREA)

Abstract

本申请提供一种真随机数发生电路,通过熵源模块持续产生并输出随机位元,然后采用采样模块根据外部时钟信号采集并输出随机位元,以提高随机位元输出的随机性,最后利用加密运算模块对随机位元进行移位和逻辑组合运算,保证随机位元的输出既满足数量要求,又达到随机性要求,从而得到高质量的随机数序列。

Description

真随机数发生电路
技术领域
本申请涉及集成电路技术领域,特别是涉及一种真随机数发生电路。
背景技术
随着通信技术的飞速发展,信息安全也越发受到广泛关注。实现信息安全的途径是进行数据加密,而随机数的生成是实现数据加密的基础。
随机数包括真随机数和伪随机数,其中伪随机数通常是通过某种算法来获取随机值,因此可能具备一定程度的周期性和可预测性,不具备真正意义上的随机性;相反,真随机数具备无周期性和不可预测性,具备真正意义上的随机性,因此急需一种能够得到高质量真随机数的方法。
发明内容
本申请提供一种能够得到高质量真随机数的真随机数发生电路。
一种真随机数发生电路,其特征在于,包括:
熵源模块,用于持续产生并输出随机位元;
采样模块,与所述熵源模块连接,用于根据外部时钟信号采集并输出所述随机位元;
加密运算模块,与所述采样模块连接,用于接收所述随机位元,并对所述随机位元进行移位和逻辑组合运算,得到随机数序列。
在一个实施例中,所述加密运算模块包括:
移位生成单元;
线性反馈移位寄存器,与所述采样模块连接,用于对所述随机位元进行移位,得到第一位元序列;
非线性反馈移位寄存器,用于生成第二位元序列;
逻辑运算单元,分别与所述采样模块、所述线性反馈移位寄存器和所述非线性反馈移位寄存器连接,用于获取所述第一位元序列、所述第二位元序列中的多位子位元和所述随机位元,并对所述随机位元和各所述子位元进行多逻辑组合运算,得到多位逻辑位元;
第一异或链单元,分别与所述线性反馈移位寄存器、所述移位生成单元和所述逻辑运算单元连接,用于将所述第一位元序列的至少一位子位元、各所述逻辑位元和所述移位生成单元中的多个子位元进行异或运算,并将运算结果返回至所述移位生成单元,以使所述移位生成单元对所述运算结果进行移位,并根据移位后产生的多位子位元生成所述随机数序列。
在一个实施例中,多位所述逻辑位元包括第一逻辑位元、第二逻辑位元和第三逻辑位元,所述逻辑运算单元包括:
第一组合逻辑单元,分别与所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述第一位元序列中的多位第一子位元,以及所述第二位元序列中的至少一位第二子位元,并对所述第一子位元和所述第二子位元进行逻辑与运算和逻辑或运算,得到所述第一逻辑位元;
第二组合逻辑单元,分别与所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述第一位元序列中的多位第三子位元,以及所述第二位元序列中的多位第四子位元,并对所述第三子位元和所述第四子位元进行逻辑与运算和逻辑或运算,得到所述第二逻辑位元;
第三组合逻辑单元,分别与所述采样模块、所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述随机位元、所述第一位元序列中的多位第五子位元,以及所述第二位元序列中的至少一位第六子位元,并对所述随机位元、所述第五子位元和所述第六子位元进行逻辑与运算、逻辑或运算和异或运算,得到所述第三逻辑位元。
在一个实施例中,所述移位生成单元包括数据生成单元以及分别与所述数据生成单元连接的第一移位寄存器、第二移位寄存器和第三移位寄存器;
所述第一异或链单元还分别与所述第一移位寄存器、所述第二移位寄存器和所述第三移位寄存器连接,用于:
将所述第一逻辑位元、所述第一位元序列的末端子位元和所述第三移位寄存器的多位子位元进行异或运算,得到第一数据位元,并将所述第一数据位元传输至所述第一移位寄存器,以进行移位;
将所述第二逻辑位元和所述第一移位寄存器的多位子位元进行异或运算,得到第二数据位元,并将所述第二数据位元传输至所述第二移位寄存器,以进行移位;
将所述第三逻辑位元和所述第二移位寄存器的多位子位元进行异或运算,得到第三数据位元,并将所述第三数据位元传输至所述第三移位寄存器,以进行移位;
所述数据生成单元还分别与所述第一异或链单元和所述线性反馈移位寄存器连接,用于分别获取所述第一移位寄存器、所述第二移位寄存器和所述第三移位寄存器的多位子位元,所述第一位元序列以及所述第一数据位元、所述第二数据位元和所述第三数据位元,以生成所述随机数序列。
在一个实施例中,所述真随机数发生电路还包括:
线性编码模块,与所述加密运算模块连接,用于:
将所述随机数序列中的每相邻两个位元编码为一个初始数据,并以各所述初始数据作为矩阵元素生成初始方阵;
将所述初始方阵与预设方阵进行乘积运算,得到第一方阵;
对所述第一方阵的同行元素进行错位处理,并将错位处理后的所述第一方阵进行转置,得到目标方阵;
将所述目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到目标随机序列。
在一个实施例中,所述线性编码模块还用于:
将所述目标方阵与所述预设方阵进行乘积运算,得到第二方阵;
对所述第二方阵的同行元素进行错位处理,并将错位处理后的所述第二方阵进行转置,得到第三矩阵,并以所述第三矩阵更新所述目标方阵;
重复上述将所述目标方阵与所述预设方阵进行乘积运算,得到第二方阵步骤,直至所述线性编码模块更新所述目标方阵的时长,大于当前时刻与所述加密运算模块输出下一所述随机数序列的时刻之间的时长,得到更新后的所述目标方阵;
将更新后的所述目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到所述目标随机序列。
在一个实施例中,所述熵源模块包括:
多路环形振荡器,各路所述环形振荡器用于持续产生并输出随机子位元,其中各路所述环形振荡器的振荡周期不同;
第二异或链单元,分别与所述采样模块和各所述环形振荡器连接,用于对各所述随机子位元进行异或处理,得到所述随机位元,并传输至所述采样模块。
在一个实施例中,所述采样模块包括:
至少两个触发器,各所述触发器级联连接,且首端触发器与所述熵源模块连接,末端触发器与所述加密运算模块连接;各所述触发器的时钟端共连接,并用于接收外部时钟信号。
在一个实施例中,所述采样模块还包括:
至少一个异或门电路,各所述异或门电路分别一一对应设置在至少一组相邻两个所述触发器之间,所述异或门电路的第一输入端与在前所述触发器的输出端连接,所述异或门电路的第二输入端与在后所述触发器的输出端连接,所述异或门电路的输出端与在后所述触发器的输入端连接。
在一个实施例中,所述采样模块还包括:
分频单元,所述分频单元的输入端与所述首端触发器的时钟端共连接,以共同接收所述外部时钟信号,所述分频单元的输出端分别与剩余的所述触发器的时钟端连接。
在一个实施例中,所述线性反馈移位寄存器的级数为23级,所述线性反馈移位寄存器的反馈函数被表达为:
G(g0…g22,i)=(g22^i)g0 g1 g2(g3^g22)(g4^i)(g5^g22)(g6^g22)g7…g12(g13^g22)g14g15(g16^g22)g17…g21
其中,“G”为所述线性反馈移位寄存器的反馈函数;“g0…g22”依次为所述第一位元序列第1位至第23位的子位元;“i”为所述采样模块在当前时刻输出的所述随机位元,“^”为异或运算符号。
在一个实施例中,所述非线性反馈移位寄存器的级数为13级;所述非线性反馈移位寄存器的反馈函数被表达为:
H(h0…h12)=((h2&h9)^(h7&h10)^(~h12))h0…h11
其中,“H”为所述非线性反馈移位寄存器的反馈函数;“h0…h12”依次为所述第二位元序列第1位至第13位的子位元;“&”为与运算符号;“^”为异或运算符号;“~”为非运算符号。
上述真随机数发生电路通过熵源模块持续产生并输出随机位元,然后采用采样模块根据外部时钟信号采集并输出随机位元,以提高随机位元输出的随机性,最后利用加密运算模块对随机位元进行移位和逻辑组合运算,保证随机位元的输出既满足数量要求,又达到随机性要求,从而得到高质量的随机数序列。
附图说明
图1为本申请一实施例的真随机数发生电路的结构示意图;
图2为本申请另一实施例的真随机数发生电路的结构示意图;
图3为本申请一实施例的线性反馈移位寄存器的结构示意图;
图4为本申请一实施例的非线性反馈移位寄存器的结构示意图;
图5为本申请另一实施例的真随机数发生电路的结构示意图;
图6为本申请一实施例第一组合逻辑单元的结构示意图;
图7为本申请一实施例第二组合逻辑单元的结构示意图;
图8为本申请一实施例第三组合逻辑单元的结构示意图;
图9为本申请另一实施例的真随机数发生电路的结构示意图;
图10为本申请另一实施例的真随机数发生电路的结构示意图;
图11为本申请另一实施例的真随机数发生电路的结构示意图;
图12为本申请另一实施例的真随机数发生电路的结构示意图;
图13为本申请一实施例的环形振荡器的结构示意图;
图14为本申请一实施例的采样模块的结构示意图;
图15为本申请另一实施例的采样模块的结构示意图;
图16为本申请另一实施例的真随机数发生电路的结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
另外,在本申请中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本发明实施例提供一种真随机数发生电路,包括熵源模块110、采样模块120和加密运算模块130;熵源模块110用于持续产生并输出随机位元;采样模块120与熵源模块110连接,用于根据外部时钟信号采集并输出随机位元;加密运算模块130与采样模块120连接,用于接收随机位元,并对随机位元进行移位和逻辑组合运算,得到随机数序列。
其中,熵源模块110可持续不断输出随机位元。熵源模块110可采用环形振荡器111持续产生随机位元,其中环形振荡器111的数量可为1个,从而每次仅输出一位随机位元;环形振荡器111的数量也可为多个,熵源模块110还可设置有多路选择器或逻辑门电路,从而使得每个时刻输出的随机位元的数量由多个变为1个。
外部时钟信号可由外部时钟源提供,其跳变沿可控制采样模块120产生响应,采样模块120为异步采样,可在外部时钟信号跳变沿的控制下对熵源模块110输出的随机位元进行采集和输出。可以理解,当采样模块120在外部时钟信号的跳变沿采集随机序列时,若随机序列也处于翻转状态,则会出现亚稳态现象,因此利用采样模块120对输出的随机位元进行采样,可增强随机位元输出的不确定性,更易得到真随机数。
加密运算模块130在接收到经采样模块120采集的随机位元后,通过对随机位元进行移位,可得到包括多个随机位元的随机位元序列,逻辑组合运算可采用多种逻辑门对随机位元进行运算,通过逻辑组合运算可打乱随机位元输出的可能性,降低输出必然性,从而提高输出随机性。
其中,加密运算模块130可先对随机位元进行移位,得到随机位元序列后,再对随机位元序列中的多个随机位元进行逻辑组合运算,从而提高输出随机性。因此,通过移位和逻辑组合运算的配合处理,可保证随机位元的输出既满足数量要求,又达到随机性要求。
加密运算模块130移位可根据需要产生一定数量的随机位元,由于经过逻辑组合运算后,输出的随机位元的数量会减少,故还可再次对运算得到的随机位元进行移位,以扩充随机位元数量。因此,在一个实施例中,加密运算单元也可对随机位元进行多轮移位和逻辑组合运算的交叉处理,如此进一步提高随机位元输出的随机性。
本发明实施例的真随机数发生电路通过熵源模块110持续产生并输出随机位元,然后采用采样模块120通过异步采样,根据外部时钟信号采集并输出随机位元,以提高随机位元输出的随机性,最后利用加密运算模块130对随机位元进行移位和逻辑组合运算,保证随机位元的输出既满足数量要求,又达到随机性要求,从而得到高质量的随机数序列。
在一个实施例中,如图2所示,加密运算模块130包括移位生成单元135、线性反馈移位寄存器131、非线性反馈移位寄存器132、逻辑运算单元133和第一异或链单元134;线性反馈移位寄存器131与采样模块120连接,用于对随机位元进行移位,得到第一位元序列;非线性反馈移位寄存器132用于生成第二位元序列;逻辑运算单元133分别与采样模块120、线性反馈移位寄存器131和非线性反馈移位寄存器132连接,用于获取第一位元序列、第二位元序列中的多位子位元和随机位元,并对随机位元和各子位元进行多逻辑组合运算,得到多位逻辑位元;第一异或链单元134分别与线性反馈移位寄存器131、移位生成单元135和逻辑运算单元133连接,用于将第一位元序列的至少一位子位元、各逻辑位元和移位生成单元135中的多个子位元进行异或运算,并将运算结果返回至移位生成单元135,以使移位生成单元135对运算结果进行移位,并根据移位后产生的多位子位元生成随机数序列。
可以理解,子位元和随机位元均为二进制数中的一位。线性反馈移位寄存器131可将串行输出的随机位元通过移位存储的方式转换为并联输出,得到由多个不同相位的位元组成的第一位元序列。其中,线性反馈移位寄存器131的级数可设置较高,以使得第一位元序列具有更多的子位元,从而提供给逻辑运算单元133的子位元的选择更多,提高逻辑运算单元133接收子位元的随机性;其中,线性反馈移位寄存器131由多个级联连接的触发器组成,其可设有反馈函数,以将最后一级触发器的输出通过反馈环路反馈至其他触发器的输入端,从而既可产生源源不断的随机输出,又可增加反馈环路上的位元的处理过程,提高输出位元的随机性。
在一个实施例中,线性反馈移位寄存器131的级数可为23级,线性反馈移位寄存器131的反馈函数可被表达为:
G(g0…g22,i)=(g22^i)g0 g1 g2(g3^g22)(g4^i)(g5^g22)(g6^g22)g7…g12(g13^g22)g14g15(g16^g22)g17…g21
其中,“G”为线性反馈移位寄存器131的反馈函数;“g0…g22”依次为第一位元序列第1位至第23位的位元;“i”为采样模块120在当前时刻输出的随机位元,“^”为异或运算符号。该情况下对应的线性反馈移位寄存器131的结构示意图可参考图3所示,其设置有7个异或门,其中图3中的数字0至22为线性反馈移位寄存器131中的子寄存器的序号,其输出分别对应为g0至g22
非线性反馈移位寄存器132可用于生成第二位元序列,其可设有反馈函数,从而既能够源源不断的提供第二位元序列,又可增加反馈环路上的位元的处理过程,从而提高第二位元序列的随机性。
在一个实施例中,非线性反馈移位寄存器132的级数为13级;非线性反馈移位寄存器132的反馈函数被表达为:
H(h0…h12)=((h2&h9)^(h7&h10)^(~h12))h0…h11
其中,“H”为非线性反馈移位寄存器132的反馈函数;“h0…h12”依次为第二位元序列第1位至第13位的子位元;“&”为与运算符号;“^”为异或运算符号;“~”为非运算符号。该情况下对应的非线性反馈移位寄存器132的结构示意图可参考图4所示,其设置有两个与门、两个异或门和一个反相器,其中图4中的数字0至12为非线性反馈移位寄存器132中的子寄存器的序号,其输出分别对应为h0至h12
逻辑运算单元133可获取随机位元,第一位元序列中的多位子位元,以及第二位元序列中的多位子位元,然后对随机位元和各位子位元进行多逻辑组合运算,得到多位逻辑位元。其中多逻辑组合运算可为包括非运算、与运算、或运算等逻辑运算的混合运算,通过进行多逻辑组合运算,可增强位元输出的偶然性,提高随机性。
第一异或链单元134可包括多个异或门,其可用于将第一位元序列的至少一位子位元、逻辑运算单元133输出的多位逻辑位元和移位生成单元135中的多个子位元进行异或运算,然后又将运算结果返回至移位生成单元135,使得移位生成单元135对运算结果进行移位,进而继续产生子位元,如此第一异或链单元134对逻辑位元与移位生成单元135中的多个子位元进行异或运算、运算结果返回至移位生成单元135以移位产生子位元构成循环,增强了位元处理过程的复杂度,从而可提高移位生成单元135生成随机数序列的随机性。
上述加密运算模块130通过采用线性反馈移位寄存器131对随机位元进行移位,得到第一位元序列,同时采用非线性反馈移位寄存器132生成第二位元序列,再利用逻辑运算单元133对第一位元序列和第二位元序列中的多位子位元进行多逻辑组合运算,得到多位逻辑位元,进而通过第一异或链单元134将各逻辑位元与移位生成单元135中的多个子位元进行异或运算,并将运算结果返回至移位生成单元135,以使移位生成单元135对运算结果进行移位,并根据移位后产生的多位子位元生成随机数序列,如此通过逻辑运算和移位的配合,复杂化输出位元处理过程的同时也保证位元的输出长度,增强了位元处理的灵活性,提高了位元输出的随机性。
在一个实施例中,多位逻辑位元包括第一逻辑位元、第二逻辑位元和第三逻辑位元,逻辑运算单元133包括第一组合逻辑单元1331、第二组合逻辑单元1332和第三组合逻辑单元1333,如图5所示。其中,第一组合逻辑单元1331分别与线性反馈移位寄存器131、非线性反馈移位寄存器132和第一异或链单元134连接,用于获取第一位元序列中的多位第一子位元,以及第二位元序列中的至少一位第二子位元,并对第一子位元和第二子位元进行逻辑与运算和逻辑或运算,得到第一逻辑位元;第二组合逻辑单元1332分别与线性反馈移位寄存器131、非线性反馈移位寄存器132和第一异或链单元134连接,用于获取第一位元序列中的多位第三子位元,以及第二位元序列中的多位第四子位元,并对第三子位元和第四子位元进行逻辑与运算和逻辑或运算,得到第二逻辑位元;第三组合逻辑单元1333分别与采样模块120、线性反馈移位寄存器131、非线性反馈移位寄存器132和第一异或链单元134连接,用于获取随机位元、第一位元序列中的多位第五子位元,以及第二位元序列中的至少一位第六子位元,并对随机位元、第五子位元和第六子位元进行逻辑与运算、逻辑或运算和异或运算,得到第三逻辑位元。
可以理解,第一组合逻辑单元1331选取的第一位元序列中的第一子位元、第二组合逻辑单元1332选取的第一位元序列中的第三子位元以及第三组合逻辑单元1333选取的第一位元序列中的第五子位元可分别为第一位元序列的任意子位元;其中各组合逻辑单元选取的子位元中可存在第一位元序列的同一子位元。类似的,第一组合逻辑单元1331选取的第二位元序列中的第二子位元、第二组合逻辑单元1332选取的第二位元序列中的第四子位元以及第三组合逻辑单元1333选取的第二位元序列中的第六子位元也可分别为第二位元序列的任意子位元。
在一个实施例中,多位第一子位元可包括g0、g2、g7、g13、g18;第二子位元可为h3,第一组合逻辑单元1331对第一子位元和第二子位元进行逻辑与运算和逻辑或运算,得到第一逻辑位元fl(g0 g2 g7 g13 g18 h3)具体可表达为:
fl(g0 g2 g7 g13 g18 h3)=(~h3&~g13&g7)|(g7&g2&~g0)|(g0&g18&~g7)|(h3&~g18&~g2)。
其中,“~”表示非运算;“&”表示与运算;“|”表示或运算。第一组合逻辑单元1331的电路结构图可参考图6所示,其包括反相器801、反相器802、反相器803、反相器804、反相器805、反相器806、与门807、与门808、与门809、与门810和或门811。其中反相器801的输入端用于接收h3,反相器802的输入端用于接收g13,与门807的第一输入端与反相器801的输出端连接,与门807的二输入端与反相器802的输出端连接,与门807的第三输入端用于接收g7;反相器803的输入端用于接收g0,与门808的第一输入端用于接收g7,与门808的第二输入端用于接收g2,与门808的第三输入端与反相器803的输出端连接;反相器804的输入端用于接收g7,与门809的第一输入端用于接收g0,与门809的第二输入端用于接收g18,与门809的第三输入端与反相器804的输出端连接;反相器805的输入端用于接收g18,反相器806的输入端用于接收g2,与门810的第一输入端用于接收h3,与门810的第二输入端与反相器805的输出端连接,与门810的第三输入端与反相器806的输出端连接;与门807、与门808、与门809、与门810的输出端分别连接至或门811的输入端,或门811的输出端作为第一组合逻辑单元1331的输出端与第一异或链单元134连接。
在一个实施例中,多位第三子位元可包括g1、g5、g11、g16;多位第四子位元可包括h0、h7,第二组合逻辑单元1332对第三子位元和第四子位元进行逻辑与运算和逻辑或运算,得到第二逻辑位元fm(g1 g5 g11 g16 h0h7)具体可表达为:
fm(g1 g5g11 g16 h0h7)=(~g5&h0&~g16)|(g1&~h0&g11)|(h7&g16&~g11)|(g5&~g1&~h7)。
第二组合逻辑单元1332的电路结构图可参考图7所示,其包括反相器901、反相器902、反相器903、反相器904、反相器905、反相器906、与门907、与门908、与门909、与门910和或门911。其中反相器901的输入端用于接收g5,反相器902的输入端用于接收g16,与门907的第一输入端与反相器901的输出端连接,与门907的第二输入端用于接收h0,与门907的第三输入端与反相器902的输出端连接;反相器903的输入端用于接收h0,与门908的第一输入端用于接收g1,与门908的第二输入端与反相器903的输出端连接,与门908的第三输入端用于接收g11,反相器904的输入端用于接收g11,与门909的第一输入端用于接收h7,与门909的第二输入端用于接收g16,与门909的第三输入端与反相器904的输出端连接;反相器905的输入端用于接收g1,反相器906的输入端用于接收h7,与门910的第一输入端用于接收g5,与门910的第二输入端与反相器905的输出端连接,与门910的第三输入端与反相器906的输出端连接。
在一个实施例中,多位第五子位元可包括g2、g3、g9、g14、g17;第六子位元可为h1,第三组合逻辑单元1333对随机位元、第五子位元和第六子位元进行逻辑与运算和逻辑或运算,得到第三逻辑位元fr(ig2g3 g9g14g17 h1)具体可表达为:
fr(ig2g3 g9g14g17h1)=(g2&~h1&~g14)|(g2&~g17&g9)|(h1&g14&~g9)|((g3^i)&~g2&~h1)。
其中,第三组合逻辑单元1333的电路结构图可参考图10所示,其包括异或门000、反相器010、反相器011、反相器012、反相器013、反相器014、反相器015、与门016、与门017、与门018、与门019和或门020。其中反相器010的输入端用于接收h1,反相器011的输入端用于接收g14,与门016的第一输入端用于接收g2,与门016的第二输入端与反相器010的输出端连接,与门016的第三输入端与反相器011的输出端连接;反相器012的输入端用于接收g17,与门017的第一输入端用于接收g2,与门017的第二输入端与反相器012的输出端连接,与门017的第三输入端用于接收g9;反相器013的输入端用于接收g9,与门018的第一输入端用于接收h1,与门018的第二输入端用于接收g14,与门018的第三输入端与反相器013的输出端连接;异或门000的第一输入端用于接收g3,异或门000的第二输入端用于接收i,反相器014的输入端用于接收g2、反相器015的输入端用于接收h1,与门019的第一输入端与异或门000的输出端连接,与门019的第二输入端与反相器014的输出端连接,与门019的第三输入端与反相器015的输出端连接;与门016、与门017、与门018和与门019的输出端分别连接至或门020的输入端,或门020的输出端作为第三组合逻辑单元1333的输出端,与第一异或链单元134连接。
在一个实施例中,如图9所示,移位生成单元135包括数据生成单元1354以及分别与数据生成单元1354连接的第一移位寄存器、第二移位寄存器和第三移位寄存器;第一异或链单元134还分别与第一移位寄存器1351、第二移位寄存器1352和第三移位寄存器1353连接,用于:将第一逻辑位元、第一位元序列的末端子位元和第三移位寄存器1353的多位子位元进行异或运算,得到第一数据位元,并将第一数据位元传输至第一移位寄存器1351,以进行移位;将第二逻辑位元和第一移位寄存器1351的多位子位元进行异或运算,得到第二数据位元,并将第二数据位元传输至第二移位寄存器1352,以进行移位;将第三逻辑位元和第二移位寄存器1352的多位子位元进行异或运算,得到第三数据位元,并将第三数据位元传输至第三移位寄存器1353,以进行移位;数据生成单元1354数据生成单元1354还分别与第一异或链单元134和线性反馈移位寄存器131连接,用于分别获取第一移位寄存器1351、第二移位寄存器1352和第三移位寄存器1353的多位子位元,第一位元序列以及第一数据位元、第二数据位元和第三数据位元,以生成随机数序列。
可以理解,图9仅示例性示出第一移位寄存器1351、第二移位寄存器1352和第三移位寄存器1353的级数为7级,即包括0至6的7位子位元的情况,其并不用于限制各移位寄存器的具体级数,实际上,各移位寄存器的级数可根据需要进行确定。在一个实施例中,线性反馈移位寄存器131的级数可为23级,即第一位元序列包括g0至g22总共23位子位元,在运算得到第一数据位元过程中,第一位元序列的末端子位元为g22,第三移位寄存器1353的级数可为7级,其包括r0、r1、r2、r3、r4、r5、r6总共7位子位元;第一异或链单元134将第一逻辑位元、第一位元序列的末端子位元和第三移位寄存器1353的多位子位元进行异或运算,得到第一数据位元a可表达为:
a=fl(g0 g2 g7 g13 g18 h3)^g22^r1^r5
其中,“^”为异或运算符号。
具体的,如图10所示,第一异或链单元134可包括异或门A1和A2,其中异或门A2的两个输入端分别用于接收第三移位寄存器1353的位元r1和r5,异或门A1的第一输入端用于接收g22,异或门A1的第二输入端用于接收第一逻辑位元,异或门A1的第三输入端连接或门A2的输出端,异或门A1的输出端连接至第一移位寄存器1351,以向第一移位寄存器1351传输第一数据位元。
第一移位寄存器1351的级数可为7级,其包括l0、l1、l2、l3、l4、l5、l6总共7位子位元,第一异或链单元134将第二逻辑位元和所述第一移位寄存器1351的多位子位元进行异或运算,得到第二数据位元b可表达为:
b=fm(g1 g5g11 g16 h0h7)^l1^l2^l5
第一异或链单元134还可包括异或门B1、异或门B2和异或门B3,其中异或门B1的两个输入端分别用于接收第一移位寄存器1351的子位元l1和l2和l5,异或门B1的输出端与异或门B2的第一输入端连接,异或门B2的第二输入端用于接收子位元l5,异或门B2的输出端与异或门B3的第一输入端连接,异或门B3的第二输入端用于接收第二逻辑位元,异或门B3的输出端连接至第二移位寄存器1352,以向第二移位寄存器1352传输第二数据位元。
第二移位寄存器1352的级数也可为7级,其包括m0、m1、m2、m3、m4、m5、m6总共7位子位元,第一异或链单元134将第三逻辑位元和第二移位寄存器1352的多位子位元进行异或运算,得到第三数据位元c可表达为:
c=fr(g2(g3^i)g9g14g17 h1)^m1^m2^m5
第一异或链单元134还可包括异或门C1、异或门C2和异或门C3,其中异或门C1的两个输入端分别用于接收位元m1和m2,异或门C1的输出端与异或门C2的第一输入端连接,异或门C2的第二输入端用于接收位元m5,异或门C2的输出端与异或门C3的第一输入端连接,异或门C3的第二输入端用于接收第三逻辑位元,异或门C3的输出端连接至第三移位寄存器1353,以向第三移位寄存器1353传输第三数据位元。
各移位寄存器接收到对应的数据位元后,不断对传输过来的数据位元进行移位,形成位元序列,数据生成单元1354分别选择各寄存器的位元序列中的多位子位元,同时结合第一位元序列以及第一数据位元、第二数据位元和第三数据位元形成随机数序列,从而可得到高随机性的随机数序列。
其中,数据生成单元1354可任意选择各寄存器的子位元。在一个实施例中,数据生成单元1354可选择特定的子位元,例如r3、r6、l3、l6、m3、m6,生成的随机数序列o可被表达为:
o=g0…g22 abc r3 r6 l3 l6 m3 m6
其中,g0…g22为第一位元序列;a为第一数据位元;b为第二数据位元;c为第三数据位元。由该式可知,最终的随机数序列o包括32位位数。
在一个实施例中,如图11所示,真随机数发生电路还包括线性编码模块140,线性编码模块140与加密运算模块130连接,用于将随机数序列中的每相邻两个位元编码为一个初始数据,并以各初始数据作为矩阵元素生成初始方阵;将初始方阵与预设方阵进行乘积运算,得到第一方阵;对第一方阵的同行元素进行错位处理,并将错位处理后的第一方阵进行转置,得到目标方阵;将目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到目标随机序列。
可以理解,随机数序列中的位元数量可被表征为n2(n为大于1的整数)。以随机数序列o包括32位位元o0、o1、……o31为例,线性编码模块140将每相邻两个位元编码为一个初始数据,然后以各初始数据作为矩阵元素生成初始方阵,其中各初始数据作为矩阵元素在初始方阵中的位置可随意设置,本实施例按照行和列方向顺序设置为例,初始方阵O如下所示:
Figure BDA0003749161870000151
其中可以以两个位元作为二进制数,该二进制数代表的数字即为初始数据,例如o0为1,o1为0,则该两个位元组成二进制数10,其代表的数字o0,1则为2。
预设方阵可表示为:
Figure BDA0003749161870000152
然后,将初始方阵与预设方阵进行乘积运算,得到第一方阵O’,O’被表示为:
Figure BDA0003749161870000153
之后对第一方阵O’的同行元素进行错位处理,例如为使得原第一方阵中各矩阵元素均改变,且其列方向上的临近矩阵元素也发生变化,可将第一行的矩阵元素由末端元素向前开始重排,第二行的矩阵元素由倒数第二个元素向前开始重排,以此类推;以第一方阵
Figure BDA0003749161870000154
为例,最终错位处理后的第一方阵
Figure BDA0003749161870000155
将错位处理后的第一方阵O”进行转置,得到目标方阵O”’=(O”)T;最终对目标方阵按照编码方式的逆操作进行解码,将每一矩阵元素还原成二级制数,然后以该二进制数分别作为两位位元。如此可依次获得各位元,得到目标随机序列。由于目标随机序列是基于随机数序列进行线性编码得到,因此相比于随机数序列随机性更高。
在一个实施例中,线性编码模块140还用于:将目标方阵与预设方阵进行乘积运算,得到第二方阵;对第二方阵的同行元素进行错位处理,并将错位处理后的第二方阵进行转置,得到第三矩阵,并以第三矩阵更新目标方阵;重复上述将目标方阵与预设方阵进行乘积运算,得到第二方阵步骤,直至线性编码模块140更新目标方阵的时长,大于当前时刻与加密运算模块130输出下一随机数序列的时刻之间的时长,得到更新后的目标方阵;将更新后的目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到目标随机序列。
可以理解,在对所述第一方阵的同行元素进行错位处理并进行转置,得到目标方阵后,可先将目标方阵与预设方阵进行乘积运算,得到第二方阵,然后继续将第二方阵的同行元素进行错位处理,并将错位处理后的第二方阵进行转置得到第三矩阵,并以第三矩阵作为新的目标方阵,对原目标方阵进行更新,完成一轮目标方阵的更新。之后重复目标方阵的更新,即将目标方阵与预设方阵进行乘积运算,得到第二方阵,进而对第二方阵的同行元素进行错位处理,并将错位处理后的第二方阵进行转置,得到第三矩阵,以第三矩阵更新目标方阵等一系列步骤,直到进行下一轮目标方阵更新所需的时长,会超出当前时刻与加密运算模块130输出下一随机数序列的时刻之间的时长,使得最终得到的目标方阵不是针对加密运算模块130当前周期输出的随机数序列,如此可能会使得目标方阵生成速度低于随机数序列输出速度,造成随机数序列产生的冗余,且会影响随机数产生的速率;通过限定线性编码模块140更新目标方阵的时长大于当前时刻与加密运算模块130输出下一随机数序列的时刻之间的时长,可最大限度提高目标方阵,亦即目标随机序列的随机性,且不影响目标随机序列的产生速率。
在一个实施例中,如图12所示,熵源模块110包括多路环形振荡器111和第二异或链单元112,各路环形振荡器111用于持续产生并输出随机子位元,其中各路环形振荡器的振荡周期不同;第二异或链单元112分别与采样模块120和各环形振荡器111连接,用于对各随机子位元进行异或处理,得到随机位元,并传输至采样模块120。
可以理解,每一路环形振荡器111都会持续产生并输出一位随机子位元,因此多路环形振荡器111可持续产生多位随机子位元,经第二异或链单元112进行异或处理后,会得到一位随机位元,从而传输至采样模块120,如此通过产生多位随机子位元,然后根据多位随机子位元得到一位随机位元输出,可提高随机位元输出的随机性。此外,由于各路环形振荡器的振荡周期不同,从而增强了第二异或链单元112接收的各组随机子位元的随机性,使得经异或处理得到的随机位元具备高随机性。
其中,环形振荡器111可为Galois环形振荡器111,其级数w为奇数,具体结构可参考图13所示,其包括w个首尾相连的反相器,末端反相器的输出信号通过反馈环路反馈至每个反相器的输入端,以与前一反相器的输出进行异或运算,作为下一反相器的输入,其中,由反馈开关和异或门组成的各路反馈环路根据反馈多项式fx(x为1到w-1)确定。第二异或链单元112可包括多个异或门,其中异或门的具体数量可根据多路环形振荡器111输出的随机子位元的数量确定。此外,环形振荡器111也可为斐波那契环形振荡器。
在一个实施例中,如图14所示,采样模块120包括至少两个触发器121,各触发器121级联连接,且首端触发器与熵源模块110连接,用于接收随机位元i,末端触发器与加密运算模块130连接;各触发器的时钟端共连接,并用于接收外部时钟信号Sclk。
其中,外部时钟信号Sclk可由外部时钟源提供,用于驱动各触发器输出由熵源模块110提供的随机位元。触发器类型可为D触发器,各触发器级联连接,前一触发器的输出端Q连接下一触发器的输入端D,各触发器的时钟端clk共连接以接收外部时钟信号Sclk,各触发器响应于外部时钟信号Sclk的上升沿,以通过输出端Q输出输入端D接收的随机位元。
各触发器还可包括使能端En,各使能端En共连接,以接收外部使能信号Sen,外部使能信号Sen用于控制各触发器进入工作状态,从而使得各触发器能够根据外部时钟信号Sclk产生响应。
可以理解,图14仅示例性示出采样模块120包括3个触发器的情况,其并不用于限制采样模块120中触发器的具体数量,事实上触发器的数量可为至少2个。
在一个实施例中,采样模块120还可包括至少一个异或门电路122,如图15所示,各异或门电路122分别一一对应设置在至少一组相邻两个触发器之间,异或门电路122的第一输入端与在前触发器的输出端连接,异或门电路122的第二输入端与在后触发器的输出端连接,异或门电路的输出端与在后触发器的输入端连接。
可以理解,由首端触发器采样过程产生的亚稳态使得输出的随机位元不稳定,从而实现随机位元输出的随机性。各异或门电路可与除首端触发器外的其他触发器的输入端连接,从而可提高输出位元的随机性,得到稳定的随机位元输出。其中,在前触发器可为相邻两个触发器之间先接收到随机位元的触发器,在后触发器可为输入端连接在前触发器输出端,以接收在前触发器输出的随机位元的触发器;各组相邻两个触发器之间可存在同一触发器。例如第一触发器、第二触发器和第三触发器依次相邻,第一触发器和第二触发器可作为一组相邻触发器,第二触发器和第三触发器可作为一组相邻触发器,因此可在第一触发器和第二触发器之间,以及第二触发器和第三触发器之间可各设置一个异或门电路。通过在相邻两个触发器之间设置一个异或门电路,从而将在前触发器的输出和在后触发器的输出进行异或运算后,将运算结果作为在后触发器的输入,如此增加输出至在后触发器输入端的随机位元的处理过程,可提高在后触发器输出位元的随机性,最终整体提高随机数序列产生的随机性。
其中,图15仅示例性示出在第一个触发器和第二个触发器之间设置一个异或门电路的情况,其并不用于限制异或门电路的设置数量及具体位置,实际上,第二个触发器和第三个触发器之间也可设置异或门电路。
在一个实施例中,采样模块120还可包括分频单元123,如图15所示,分频单元123的输入端与首端触发器的时钟端共连接,以共同接收外部时钟信号,分频单元123的输出端分别与剩余的触发器的时钟端连接。
可以理解,在通过首端触发器实现亚稳态后,可对后端的触发器的时钟信号进行分频,从而既不会影响后端触发器对随机位元输出的稳定性,还可以降低后端触发器的功耗,从而达到减小真随机发生电路整体功耗的目的。
本发明实施例还提供一种真随机数发生电路,如图16所示,包括依次连接的熵源模块110、采样模块120、加密运算模块130和线性编码模块140,其中,熵源模块110包括多路环形振荡器111和与各环形振荡器111连接的第二异或链单元112,采样模块120包括至少两个级联连接的触发器121、至少一个分别一一对应设置在至少一组相邻两个所述触发器之间的异或门电路122,以及分频单元123,首端触发器与第二异或链单元112连接,异或门电路122的第一输入端与在前触发器的输出端连接,异或门电路122的第二输入端与在后触发器的输出端连接,异或门电路122的输出端与在后触发器的输入端连接,分频单元123的输入端与首端触发器的时钟端共连接,分频单元123的输出端分别与剩余的触发器的时钟端连接;加密运算模块130包括线性反馈移位寄存器131、非线性反馈移位寄存器132、第一组合逻辑单元1331、第二组合逻辑单元1332、第三组合逻辑单元1333、第一异或链单元134、第一移位寄存器1351、第二移位寄存器1352和第三移位寄存器1353和数据生成单元1354,线性反馈移位寄存器131分别与采样模块的末端触发器、第一异或链单元134、第一组合逻辑单元1331、第二组合逻辑单元1332、第三组合逻辑单元1333连接,非线性反馈移位寄存器132分别与第一组合逻辑单元1331、第二组合逻辑单元1332、第三组合逻辑单元1333连接,第一组合逻辑单元1331、、第二组合逻辑单元1332、第三组合逻辑单元1333还分别与第一异或链单元134连接,第三组合逻辑单元1333还与采样模块的末端触发器连接;数据生成单元1354分别与第一异或链单元134、线性反馈移位寄存器131、第一移位寄存器1351、第二移位寄存器1352、第三移位寄存器1353和线性编码模块140连接。
本实施例的真随机数发生电路的工作原理及有益效果可参考上述实施例,此处不进行赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种真随机数发生电路,其特征在于,包括:
熵源模块,用于持续产生并输出随机位元;
采样模块,与所述熵源模块连接,用于根据外部时钟信号采集并输出所述随机位元;
加密运算模块,与所述采样模块连接,用于接收所述随机位元,并对所述随机位元进行移位和逻辑组合运算,得到随机数序列。
2.根据权利要求1所述的真随机数发生电路,其特征在于,所述加密运算模块包括:
移位生成单元;
线性反馈移位寄存器,与所述采样模块连接,用于对所述随机位元进行移位,得到第一位元序列;
非线性反馈移位寄存器,用于生成第二位元序列;
逻辑运算单元,分别与所述采样模块、所述线性反馈移位寄存器和所述非线性反馈移位寄存器连接,用于获取所述第一位元序列、所述第二位元序列中的多位子位元和所述随机位元,并对所述随机位元和各所述子位元进行多逻辑组合运算,得到多位逻辑位元;
第一异或链单元,分别与所述线性反馈移位寄存器、所述移位生成单元和所述逻辑运算单元连接,用于将所述第一位元序列的至少一位子位元、各所述逻辑位元和所述移位生成单元中的多个子位元进行异或运算,并将运算结果返回至所述移位生成单元,以使所述移位生成单元对所述运算结果进行移位,并根据移位后产生的多位子位元生成所述随机数序列。
3.根据权利要求2所述的真随机数发生电路,其特征在于,多位所述逻辑位元包括第一逻辑位元、第二逻辑位元和第三逻辑位元,所述逻辑运算单元包括:
第一组合逻辑单元,分别与所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述第一位元序列中的多位第一子位元,以及所述第二位元序列中的至少一位第二子位元,并对所述第一子位元和所述第二子位元进行逻辑与运算和逻辑或运算,得到所述第一逻辑位元;
第二组合逻辑单元,分别与所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述第一位元序列中的多位第三子位元,以及所述第二位元序列中的多位第四子位元,并对所述第三子位元和所述第四子位元进行逻辑与运算和逻辑或运算,得到所述第二逻辑位元;
第三组合逻辑单元,分别与所述采样模块、所述线性反馈移位寄存器、所述非线性反馈移位寄存器和所述第一异或链单元连接,用于获取所述随机位元、所述第一位元序列中的多位第五子位元,以及所述第二位元序列中的至少一位第六子位元,并对所述随机位元、所述第五子位元和所述第六子位元进行逻辑与运算、逻辑或运算和异或运算,得到所述第三逻辑位元。
4.根据权利要求3所述的真随机数发生电路,其特征在于,所述移位生成单元包括数据生成单元以及分别与所述数据生成单元连接的第一移位寄存器、第二移位寄存器和第三移位寄存器;
所述第一异或链单元还分别与所述第一移位寄存器、所述第二移位寄存器和所述第三移位寄存器连接,用于:
将所述第一逻辑位元、所述第一位元序列的末端子位元和所述第三移位寄存器的多位子位元进行异或运算,得到第一数据位元,并将所述第一数据位元传输至所述第一移位寄存器,以进行移位;
将所述第二逻辑位元和所述第一移位寄存器的多位子位元进行异或运算,得到第二数据位元,并将所述第二数据位元传输至所述第二移位寄存器,以进行移位;
将所述第三逻辑位元和所述第二移位寄存器的多位子位元进行异或运算,得到第三数据位元,并将所述第三数据位元传输至所述第三移位寄存器,以进行移位;
所述数据生成单元还分别与所述第一异或链单元和所述线性反馈移位寄存器连接,用于分别获取所述第一移位寄存器、所述第二移位寄存器和所述第三移位寄存器的多位子位元,所述第一位元序列以及所述第一数据位元、所述第二数据位元和所述第三数据位元,以生成所述随机数序列。
5.根据权利要求1所述的真随机数发生电路,其特征在于,所述真随机数发生电路还包括:
线性编码模块,与所述加密运算模块连接,用于:
将所述随机数序列中的每相邻两个位元编码为一个初始数据,并以各所述初始数据作为矩阵元素生成初始方阵;
将所述初始方阵与预设方阵进行乘积运算,得到第一方阵;
对所述第一方阵的同行元素进行错位处理,并将错位处理后的所述第一方阵进行转置,得到目标方阵;
将所述目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到目标随机序列。
6.根据权利要求5所述的真随机数发生电路,其特征在于,所述线性编码模块还用于:
将所述目标方阵与所述预设方阵进行乘积运算,得到第二方阵;
对所述第二方阵的同行元素进行错位处理,并将错位处理后的所述第二方阵进行转置,得到第三矩阵,并以所述第三矩阵更新所述目标方阵;
重复上述将所述目标方阵与所述预设方阵进行乘积运算,得到第二方阵步骤,直至所述线性编码模块更新所述目标方阵的时长,大于当前时刻与所述加密运算模块输出下一所述随机数序列的时刻之间的时长,得到更新后的所述目标方阵;
将更新后的所述目标方阵的各矩阵元素解码为两个位元,并依次获取各位元,得到所述目标随机序列。
7.根据权利要求1所述的真随机数发生电路,其特征在于,所述熵源模块包括:
多路环形振荡器,各路所述环形振荡器用于持续产生并输出所述随机子位元,其中各路所述环形振荡器的振荡周期不同;
第二异或链单元,分别与所述采样模块和各所述环形振荡器连接,用于对各所述随机子位元进行异或处理,得到所述随机位元,并传输至所述采样模块。
8.根据权利要求1所述的真随机数发生电路,其特征在于,所述采样模块包括:
至少两个触发器,各所述触发器级联连接,且首端触发器与所述熵源模块连接,末端触发器与所述加密运算模块连接;各所述触发器的时钟端共连接,并用于接收外部时钟信号。
9.根据权利要求8所述的真随机数发生电路,其特征在于,所述采样模块还包括:
至少一个异或门电路,各所述异或门电路分别一一对应设置在至少一组相邻两个所述触发器之间,所述异或门电路的第一输入端与在前所述触发器的输出端连接,所述异或门电路的第二输入端与在后所述触发器的输出端连接,所述异或门电路的输出端与在后所述触发器的输入端连接。
10.根据权利要求8所述的真随机数发生电路,其特征在于,所述采样模块还包括:
分频单元,所述分频单元的输入端与所述首端触发器的时钟端共连接,以共同接收所述外部时钟信号,所述分频单元的输出端分别与剩余的所述触发器的时钟端连接。
11.根据权利要求2所述的真随机数发生电路,其特征在于,所述线性反馈移位寄存器的级数为23级,所述线性反馈移位寄存器的反馈函数被表达为:
G(g0…g22,i)=(g22^i)g0 g1 g2(g3^g22)(g4^i)(g5^g22)(g6^g22)g7…g12(g13^g22)g14 g15(g16^g22)g17…g21
其中,“G”为所述线性反馈移位寄存器的反馈函数;“g0…g22”依次为所述第一位元序列第1位至第23位的子位元;“i”为所述采样模块在当前时刻输出的所述随机位元,“^”为异或运算符号。
12.根据权利要求2所述的真随机数发生电路,其特征在于,所述非线性反馈移位寄存器的级数为13级;所述非线性反馈移位寄存器的反馈函数被表达为:
H(h0…h12)=((h2&h9)^(h7&h10)^(~h12))h0…h11
其中,“H”为所述非线性反馈移位寄存器的反馈函数;“h0…h12”依次为所述第二位元序列第1位至第13位的子位元;“&”为与运算符号;“^”为异或运算符号;“~”为非运算符号。
CN202210837388.5A 2022-07-15 2022-07-15 真随机数发生电路 Pending CN115237377A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210837388.5A CN115237377A (zh) 2022-07-15 2022-07-15 真随机数发生电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210837388.5A CN115237377A (zh) 2022-07-15 2022-07-15 真随机数发生电路

Publications (1)

Publication Number Publication Date
CN115237377A true CN115237377A (zh) 2022-10-25

Family

ID=83672679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210837388.5A Pending CN115237377A (zh) 2022-07-15 2022-07-15 真随机数发生电路

Country Status (1)

Country Link
CN (1) CN115237377A (zh)

Similar Documents

Publication Publication Date Title
Ding et al. On the linear complexity of Legendre sequences
JP4978625B2 (ja) 誤り訂正符号化方法及び装置
Morales-Sandoval et al. Bit-serial and digit-serial GF (2m) Montgomery multipliers using linear feedback shift registers
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
US20140055290A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US20110064214A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
JP3556461B2 (ja) M系列の位相シフト係数算出方式
Cardell et al. Discrete linear models for the generalized self-shrunken sequences
US20160112069A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US4890252A (en) Long period pseudo random number sequence generator
Panda et al. FPGA prototype of low latency BBS PRNG
Deepthi et al. Design, implementation and analysis of hardware efficient stream ciphers using LFSR based hash functions
Shi et al. The connections among Hamming metric, b-symbol metric, and r-th generalized Hamming metric
Debnath et al. Cryptographic models of nanocommunicaton network using quantum dot cellular automata: A survey
Dubrova et al. A BDD-based approach to constructing LFSRs for parallel CRC encoding
Mandal et al. Probabilistic generation of good span n sequences from nonlinear feedback shift registers
CN115237377A (zh) 真随机数发生电路
CN111078191A (zh) 一种基于fpga硬件实现的伪随机数的生成方法
Butler et al. Index to constant weight codeword converter
Deepthi et al. Hardware stream cipher based on LFSR and modular division circuit
Kumari et al. 2-Adic and linear complexities of a class of Whiteman’s generalized cyclotomic sequences of order four
Klapper On the existence of secure feedback registers
Jansen et al. Cascade jump controlled sequence generator and Pomaranch stream cipher
JPH11224183A (ja) 擬似乱数発生装置
JPH10308720A (ja) M系列を任意にシフトする回路

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