一种随机数发生装置及发生方法
文献发布时间:2024-01-17 01:24:51
技术领域
本发明实施例涉及随机数技术领域,尤其涉及一种随机数发生装置及发生方法。
背景技术
随机数是一串混乱无序的、不可预测的序列。随着电子技术和通信科技的飞速发展,人们对信息安全的需求与日俱增,随机数被广泛应用于统计分析、计算机仿真、加密技术等领域,用来提升信息的安全性。
产生随机数的方法主要有两类,一是通过计算机由确定算法产生伪随机数,虽然该方法可以获得很高的随机数产生速率,但由于算法的内在决定性使得伪随机数不适用于某些应用,例如量子密钥分配中,量子态的准备和量子态的探测都需要真随机数;二是从非决定性的物理过程中提取随机位,一般认为这些利用非决定性物理过程产生的随机数为真随机数,但真随机数发生系统中不同程度存在系统复杂、产生速率低或偏差大需要复杂的后处理等缺点。
发明内容
本发明提供一种随机数发生装置及发生方法,提升了随机数输出的比特率,并且简化了后处理过程。
第一方面,本发明实施例提供一种随机数发生装置,包括:光源模块、光衰减调节模块、光子检测模块、时间数字转换模块、控制模块和处理模块;
所述光源模块的输出端与所述光衰减调节模块连接,所述光衰减调节模块的输出端与所述光子检测模块连接;所述光子检测模块的输出端与所述时间数字转换模块连接;所述时间数字转换模块的输出端与所述处理模块连接;所述控制模块分别与所述光源模块、所述时间数字转换模块和所述处理模块连接;
所述控制模块用于同时控制所述光源模块输出预设周期的脉冲激光和所述时间数字转换模块启动计时;所述控制模块还用于在所述预设周期内划定n个相等的时间片;
所述光衰减调节模块用于对所述脉冲激光的光强进行衰减调节,使得所述光子检测模块对每个所述时间片内的光子的响应概率与目标概率之间的差值在预设范围内;其中,n为大于1的正整数;所述目标概率为1/2;
所述光子检测模块用于在检测到光子响应时,输出响应信号;所述时间数字转换模块用于根据启动计时的时间与接收所述响应信号的时间,生成对应时间片的时间信息并输出至所述处理模块;
所述处理模块用于根据n个所述时间片及其对应的所述时间信息进行处理,每个时间片的时间信息对应得到1比特的随机数字,在所述预设周期内n个时间片信息得到对应n比特的量子随机数序列段;
所述控制模块还用于将每个所述预设周期对应的所述量子随机数序列段组合或拼接形成随机数序列并连续输出。
可选的,所述的随机数发生装置还包括统计模块,所述光衰减调节模块为可调光衰减器;所述统计模块与所述处理模块连接;所述统计模块用于接收所述处理模块输出的所述量子随机数序列段,并在采集周期内统计每一种所述量子随机数序列段出现的概率;
所述可调光衰减器的输入端与所述光源模块的输出端连接,所述可调光衰减器的输出端与所述光子检测模块连接;所述可调光衰减器用于在所述采集周期内,若每一种所述量子随机数序列段出现的概率与所述目标概率n次方的差值超出预设范围,则对所述脉冲激光的光强进行调节。
可选的,所述的随机数发生装置,还包括光分束模块和光强探测模块;
所述光衰减调节模块的输出端与所述光分束模块的输入端连接,所述光分束模块的一输出端与所述光子检测模块连接,所述光分束模块的另一输出端与所述光强探测模块连接;所述光分束模块用于将所述脉冲激光进行分光传输;所述光强探测模块用于检测所述光分束模块的分束光强。
可选的,所述处理模块包括比较单元;所述时间信息为对应于时间片接收的所述响应信号时所述时间数字转换模块所记录的时间参数;
所述比较单元的第一输入端接入预设基数,所述比较单元的第二输入端接入所述时间信息;其中,所述预设基数根据每个所述时间片的对应起始时间参数确定;所述比较单元用于根据所述时间片的时间顺序比较所述预设基数和所述时间参数,若所述时间参数大于所述预设基数则记为第一随机数,若所述时间参数小于所述预设基数则记为第二随机数,得到对应n比特的量子随机数序列段。
可选的,所述处理模块包括处理子单元;所述时间信息为对应于时间片接收到所述响应信号时的数字信号;当接收所述响应信号时,对应的所述时间片内所述时间数字转换模块输出第一数字信号,当未接收所述响应信号时,对应的所述时间片内所述时间数字转换模块输出第二数字信号;
所述处理子单元用于根据所述时间片的时间顺序,当接收到所述第一数字信号时则记为第一随机数,当接收到所述第二数字信号时则记为第二随机数,得到对应n比特的量子随机数序列段。
可选的,所述光源模块包括直流激光器和斩波器;
所述直流激光器的输出端与所述斩波器连接,所述斩波器与所述控制模块连接,所述斩波器的输出端为所述光源模块的输出端;所述直流激光器用于输出连续激光,所述斩波器用于将所述连续激光转变为所述脉冲激光;
或,所述光源模块为脉冲激光器,所述脉冲激光器与所述控制模块连接,所述脉冲激光器用于输出所述预设周期的脉冲激光。
第二方面,本发明实施例提供一种随机数发生方法,由随机数发生装置执行,所述随机数发生装置包括:光源模块、光衰减调节模块、光子检测模块、时间数字转换模块、控制模块和处理模块;
所述方法包括:
所述控制模块同时控制所述光源模块输出预设周期的脉冲激光和所述时间数字转换模块启动计时,并在所述预设周期内划定n个相等的时间片;
所述光衰减调节模块对所述脉冲激光的光强进行衰减调节,使得所述光子检测模块对每个所述时间片内的光子的响应概率与目标概率之间的差值在预设范围内;其中,n为大于1的正整数;所述目标概率为1/2;
所述光子检测模块在检测到光子响应时,输出响应信号;所述时间数字转换模块根据启动计时的时间与接收所述响应信号时的时间,生成对应时间片的时间信息输出至所述处理模块;
所述处理模块根据n个所述时间片及其对应的所述时间信息进行处理,每个时间片的时间信息对应得到1比特的随机数字,在所述预设周期内n个时间片信息得到对应n比特的量子随机数序列段;
所述控制模块将每个所述预设周期对应的所述量子随机数序列段组合或拼接形成随机数序列并连续输出。
可选的,所述的随机数发生装置还包括统计模块,所述光衰减调节模块为可调光衰减器;
所述方法包括:
所述统计模块接收所述处理模块输出的所述量子随机数序列段,并在采集周期内统计每一种所述量子随机数序列段出现的概率;
所述可调光衰减器在所述采集周期内,若每一种所述量子随机数序列段出现的概率与所述目标概率n次方的差值超出预设范围,则对所述脉冲激光的光强进行调节。
可选的,所述处理模块包括比较单元;所述时间信息为对应于时间片接收的所述响应信号时的时间参数;所述比较单元的第一输入端接入预设基数,所述比较单元的第二输入端接入所述时间信息;其中,所述预设基数根据每个所述时间片的对应起始时间参数确定;
所述方法包括:
所述比较单元根据所述时间片的时间顺序比较所述预设基数和所述时间参数,若所述时间参数大于所述预设基数则记为第一随机数,若所述时间参数小于所述预设基数则记为第二随机数,得到对应n比特的量子随机数序列段。
可选的,所述处理模块包括处理子单元;所述时间信息为对应于时间片接收到所述响应信号时的数字信号;当接收所述响应信号时,对应的所述时间片内所述时间数字转换模块输出第一数字信号,当未接收所述响应信号时,对应的所述时间片内所述时间数字转换模块输出第二数字信号;
所述方法包括:
所述处理子单元根据所述时间片的时间顺序,当接收到所述第一数字信号时则记为第一随机数,当接收到所述第二数字信号时则记为第二随机数,得到对应n比特的量子随机数序列段。
本发明实施例提供的技术方案,通过光衰减调节模块对脉冲激光的光强进行衰减调节,使得光子检测模块对每个时间片内的光子的响应概率与目标概率(1/2)之间的差值在预设范围内,从而在一个预设周期内n个时间片的光子响应的每一种组合情况出现的概率均为目标概率n次方,通过时间数字转换模块与光源模块同步驱动,在光子检测模块在检测到光子响应时时间数字转换模块记录一次时间参数,从而将光子在路径空间上的信息转化成光子到达的时间参数,并根据记录的时间参数生成时间信息。处理模块将n个时间片与其对应的时间信息进行数据处理,每个时间片的时间信息对应得到1比特的随机数字,从而在一个预设周期内可以得到对应n比特的量子随机数序列段,控制模块再将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列实现连续输出,相比于现有技术,相同的时间内大大提升了随机数的比特率,通过调整每个时间片光子响应的概率,可以使得初始随机数即为均匀随机数序列,简化后处理的设计和后处理过程。
附图说明
图1为相关技术的随机数产生原理示意图;
图2为本发明实施例提供一种随机数发生装置的结构示意图;
图3为本发明实施例提供又一种随机数发生装置的结构示意图;
图4为本发明实施例提供又一种随机数发生装置的结构示意图;
图5为本发明实施例提供一种数据处理的原理示意图;
图6为本发明实施例提供又一种随机数发生装置的结构示意图;
图7为本发明实施例提供又一种随机数发生装置的结构示意图;
图8为本发明实施例提供一种处理模块的结构示意图;
图9为本发明实施例提供又一种处理模块的结构示意图;
图10为本发明实施例提供一种随机数发生方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
真随机数序列通常具备不可预测性,序列中的下一个随机数完全不依赖于序列的历史,其值也不可能被精确地预测出来;不可重现性,随机数序列不具有周期性,所以一个足够长的真随机数序列是不可能重复出现的;无偏性,即在一个足够长的真随机数序列中,“0”和“1”的比例应该是无限趋向于50:50。
也就是说,真随机数序列是不能通过数学公式或者算法获得的,只能是从物理系统的随机过程中产生,比如电子学噪声、放射性衰变、宇宙射线、量子物理系统等等。其中,为了便于测量,通常采用光源作为随机变量产生源。由于光源的相干光子在相干时间范围内是不确定的,因此探测到光子事件的时间点本身为随机变量,图1为相关技术的随机数产生原理示意图,参见图1,将一束相干光单光子源110持续的向单光子探测器120发射光子。每当单光子探测器120探测到一个光子,就输出一个脉冲信号。然后,通过后续设备测量该脉冲间的时间间隔t。由于相干光光子间的时间间隔满足Poissonian统计分布,所以单光子探测器120的输出脉冲间的时间间隔也满足Poissonian统计分布。将测量获取的时间间隔相连的组成一对(t
有鉴于此,图2为本发明实施例提供一种随机数发生装置的结构示意图,参见图2,包括:光源模块210、光衰减调节模块220、光子检测模块230、时间数字转换模块240、控制模块250和处理模块260;
光源模块210的输出端与光衰减调节模块220连接,光衰减调节模块220的输出端与光子检测模块230连接;光子检测模块230的输出端与时间数字转换模块240连接;时间数字转换模块240的输出端与处理模块260连接;控制模块250分别与光源模块210、时间数字转换模块240和处理模块260连接;
控制模块250用于同时控制光源模块210输出预设周期的脉冲激光和时间数字转换模块240启动计时;控制模块250还用于在预设周期内划定n个相等的时间片;
光衰减调节模块220用于对脉冲激光的光强进行衰减调节,使得光子检测模块230对每个时间片内的光子的响应概率与目标概率之间的差值在预设范围内;其中,n为大于1的正整数;目标概率为1/2;
光子检测模块230用于在检测到光子响应时,输出响应信号;时间数字转换模块240用于根据启动计时的时间与接收响应信号时的时间参数,生成时间信息输出至处理模块260;
处理模块260用于根据n个时间片及其对应的时间信息进行处理,每个时间片的时间信息对应得到1比特的随机数字,在预设周期内n个时间片信息得到对应n比特的量子随机数序列段;
控制模块250还用于将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列并连续输出。
具体的,光源模块210为脉冲相干光源的输出单元,光源模块210根据控制模块250的控制信号驱动输出预设周期的脉冲激光,示例性的,图3为本发明实施例提供又一种随机数发生装置的结构示意图,参见图3,光源模块210可以包括直流激光二极管211和斩波器212,直流激光二极管211在直流信号驱动下产生连续激光,并输出给斩波器212,在控制信号的驱动下,将连续激光转变为脉冲激光,一般斩波器212可以是强度调制器、马赫增德尔干涉仪等元器件。图4为本发明实施例提供又一种随机数发生装置的结构示意图,参见图4,光源模块210还可以仅由脉冲激光器213输出预设周期的脉冲激光。
光衰减调节模块220将脉冲激光进行强度的衰减,激光进行衰减之后可以近似为单光子态,使得光脉冲中的光强变为单光子量级。光子检测模块230为单光子探测器,例如选用工作在盖革模式(Geiger mode)的单光子雪崩二极管(Single Photon AvalancheDiode,SPAD),或超导纳米线单光子探测器(Superconducting Nanowire Single PhotonDetector, SNSPD),单光子探测器采用自由运行模式,自由运行模式更便于应用于光子到达时间未知的情况。单光子探测器能够区分有光子到达和没有光子到达的情况,因此在整个预设周期内单光子探测器持续保持工作状态,可以对周期内的各个时间片进行探测,判断是否有光子到达。
通过光衰减调节模块220调节脉冲激光的强度,使得光子检测模块230对每个时间片内的光子的响应概率与目标概率之间的差值在预设范围内,则可认为光子检测模块230对每个时间片内的光子的响应概率即为目标概率。根据随机数的无偏性,光子检测模块230对每个时间片内的光子的响应的目标概率应该为二分之一。也就是说,光子检测模块230在一个时间片检测有光子和没有光子的情况概率各为0.5。其中,时间片是指在一个预设周期内划定的时间区间,一个预设周期内可以划定n个时间片,每个时间片的间隔相等,n为≥2的正整数。
由于光子检测模块230有光子响应的概率为p=η*w/hν,其中η表示单光子探测器探测效率,w为光强,hν为单光子能量,因此,可知光子检测模块230的光子响应概率与光强是具有相关性的,所以通过光衰减调节模块220对脉冲激光的光强进行调整,可以使光子检测模块230对每个时间片内的光子的响应概率与1/2之间的差值在预设范围内。因为响应概率与目标概率之间允许存在合理误差,两者的差值在预设范围内即可以认为满足使用要求,即可认为光子检测模块230对每个时间片内的光子的响应概率即为1/2。例如,预设范围设为±0.01%,则两者的差值在±0.01%的内即可以认为满足使用要求。在实际应用中,光衰减调节模块220的设置参数可以作为数据库预存储在控制模块250中,根据光源模块210的具体型号、光强等参数进行匹配,实现光衰减调节模块220快速配置,使光子检测模块230有光子响应的概率满足使用要求。
当光子检测模块230的光子响应概率p为1/2时,则一个预设周期内n个时间片的光子响应的每一种组合情况出现的概率也是相同的,此时每个预设周期输出的序列段是均衡且随机的,也是具有无偏性。示例性的,以预设周期内划定n=4个时间片为例,此时会有:
C
其中,C
按照此规则,C
由于控制模块250同步驱动时间数字转换模块240与光源模块210,因此,可以避免时间数字转换模块240开启计时的时间与光源模块210开启的时间产生偏移,当光子检测模块230在检测到光子响应时,则向时间数字转换模块240输出一个响应信号,时间数字转换模块240则根据响应信号记录一次时间参数,从而将光子在路径空间上的信息转化成光子到达的时间参数,并根据记录的时间参数生成时间信息。
处理模块260将n个时间片与其对应的时间信息进行数据处理,每个时间片的时间信息对应得到1比特的随机数字,示例性的,以预设周期T内划定n=4个时间片为例,示例性的规定,第一个时间片无光子响应,则认为第一个比特为0;第一个时间片有光子响应,则认为第一个比特为1。第二个时间片无光子响应,则认为第二个比特为0;第二个时间片有光子响应,则认为第二个比特为1。第三个时间片无光子响应,则认为第三个比特为0;第三个时间片有光子响应,则认为第三个比特为1。第四个时间片无光子响应,则认为第四个比特为0;第四个时间片有光子响应,则认为第四个比特为1。因此在一个预设周期内可以的得到4比特的数据的情形为:0000/0001/0010/0011/0100/0101/0110/0111/……/1111。
基于上述,图5为本发明实施例提供一种数据处理的原理示意图,参见图5,光子检测模块230接收到第一个预设周期T1和第二个预设周期T2的脉冲激光,以预设周期T内划定n=4个时间片为例,第一个预设周期T1内τ1时间片有光子响应,则认为第一个比特为1,τ2时间片有光子响应,则认为第二个比特为1,τ3时间片没有光子响应,则认为第三个比特为0,τ4时间片有光子响应,则认为第四个比特为1。因此在第一个预设周期T1得到1101四比特的数据。相应的,第二个预设周期T2内τ1时间片没有光子响应,则认为第一个比特为0,τ2时间片有光子响应,则认为第二个比特为1,τ3时间片没有光子响应,则认为第三个比特为0,τ4时间片有光子响应,则认为第四个比特为1。因此在第二个预设周期T1得到0101四比特的数据。
所以在预设周期内划定n个时间片时,则可以在一个预设周期内一个光脉冲可以得到对应n比特的量子随机数序列段。控制模块250再将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列,由输出端OUT连续输出。在现有技术中,对初始随机数的后处理操作比较复杂,一般需要先对初始随机数序列做随机性比例估算,然后进入随机数提取模块,一般为FPGA芯片或者ACIS芯片进行特定处理,例如运行最低有效位算法或Toeplitz哈希算法等算法,再将初始随机数序列转化为均匀随机数序列,并剔除温度、电路噪声等环境因素导致的不稳定,最终输出符合要求的随机数序列。但本发明实施例中每由于每个预设周期内每种随机数序列段的概率相同,因此无需将初始随机数序列转化为均匀随机数序列处理过程,从而可以简化后处理程序,提高随机数序列输出效率。
本发明实施例提供的技术方案,通过光衰减调节模块对脉冲激光的光强进行衰减调节,使得光子检测模块对每个时间片内的光子的响应概率与目标概率(1/2)之间的差值在预设范围内,从而在一个预设周期内n个时间片的光子响应的每一种组合情况出现的概率均为目标概率n次方,通过时间数字转换模块与光源模块同步驱动,在光子检测模块在检测到光子响应时时间数字转换模块记录一次时间参数,从而将光子在路径空间上的信息转化成光子到达的时间参数,并根据记录的时间参数生成时间信息。处理模块将n个时间片与其对应的时间信息进行数据处理,每个时间片的时间信息对应得到1比特的随机数字,从而在一个预设周期内可以得到对应n比特的量子随机数序列段,控制模块再将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列实现连续输出,相比于现有技术,相同的时间内大大提升了随机数的比特率,通过调整每个时间片光子响应的概率,可以使得初始随机数即为均匀随机数序列,简化后处理的设计和后处理过程。
基于上述实施例,图6为本发明实施例提供又一种随机数发生装置的结构示意图,参见图6,随机数发生装置还包括统计模块222,光衰减调节模块220为可调光衰减器223;
统计模块222与处理模块260连接;统计模块222用于接收处理模块260输出的量子随机数序列段,并在采集周期内统计每一种量子随机数序列段出现的概率;
可调光衰减器223的输入端与光源模块210的输出端连接,可调光衰减器223的输出端与光子检测模块230连接;可调光衰减器223用于在采集周期内,若每一种量子随机数序列段出现的概率与目标概率n次方的差值超出预设范围,则对脉冲激光的光强进行调节。
具体的,统计模块222具有存储、计算数据的能力,可以为一CPU处理芯片、FPGA芯片或上位机。统计模块222接收量子随机数序列段,在采集周期内统计每一种量子随机数序列段出现的概率。其中,采集周期内可以包含M个预设周期,因此对应的在一个采集周期内可以得到M个量子随机数序列段,其中,M可以取较大的数值,来保证数据的丰富性,例如M可以为10
正常情况下,每一种组合情况出现的概率是相同的,当更换光源模块210或统计的概率出现偏移,则可以利用可调光衰减器223进行光强调节。控制模块250与可调光衰减器223连接,可调光衰减器223基于控制模块250的控制,对脉冲激光的光强进行动态调节,从而调节光子检测模块230光子响应的概率,统计模块222统计M个量子随机数序列段,当各种情况的概率不相等时,则继续调节可调光衰减器223,并由统计模块222进行统计,直至当各种随机数序列段出现的概率均相等,则认为符合条件。需要说明的是,这里的概率相等为理想状态,也就是说,每一种量子随机数序列段出现的概率p
基于上述实施例,图7为本发明实施例提供又一种随机数发生装置的结构示意图,参见图7,随机数发生装置,还包括光分束模块610和光强探测模块620;
光衰减调节模块220的输出端与光分束模块610的输入端连接,光分束模块610的一输出端与光子检测模块230连接,光分束模块610的另一输出端与光强探测模块620连接;光分束模块610用于将脉冲激光进行分光传输;光强探测模块620用于检测光分束模块610的分束光强。
具体的,光分束模块610设置在光衰减调节模块220和光子检测模块230之间,光分束模块610分束比可设置为如99:1,即输出至光强探测模块620的强度为99%,输出至光子检测模块230的强度为1%,或者其他的分束比,例如90:10等。示例性的,光分束模块610可以为波导分束器或光纤分束器。光强探测模块620通过测量分束输出的光强,反馈给控制模块250。光强探测模块620检测的光强起到参考作用,便于根据探测到的光强来调节光源模块210的输出光强度。可选的,光分束模块610还可以设置在光源模块210与光衰减调节模块220之间,通过光强探测模块620测量分束输出的光强,起到参考作用。
图8为本发明实施例提供一种处理模块的结构示意图,结合图5,参见图8,处理模块260包括比较单元261;时间信息为对应于时间片接收的响应信号时时间数字转换模块240所记录的时间参数;
比较单元261的第一输入端接入预设基数,比较单元261的第二输入端接入时间信息;其中,预设基数根据每个时间片的对应起始时间参数确定;比较单元261用于根据时间片的时间顺序比较预设基数和时间参数,若时间参数大于预设基数则记为第一随机数,若时间参数小于预设基数则记为第二随机数,得到对应n比特的量子随机数序列段。
具体的,时间数字转换模块240将启动计时的时间作为基准,在接收到响应信号时记录当前的时间参数,因此将记录的时间参数与时间片进行对应得到时间信息。示例性的,时间数字转换模块240在一个预设周期内接收到响应信号时记录当前的时间参数分别为11ns、17ns和28ns。此时的时间片时间范围分别为τ1时间片为10~15 ns、τ2时间片为15~20ns、τ3时间片为20~25 ns,τ4时间片为25~30 ns。因此将记录的时间参数与时间片进行对应后,可以得到τ1时间片的时间信息为11ns,τ2时间片的时间信息为17ns、τ3时间片的时间信息0ns、τ4时间片的时间信息为28ns。
将时间信息输入比较单元261的第二输入端,第一输入端输入预设基数,预设基数根据每个时间片的对应起始时间参数确定,也就是说,当处理τ1时间片时则预设基数为10ns,当处理τ2时间片时则预设基数为15ns,当处理τ3时间片时则预设基数为20ns,当处理τ4时间片时则预设基数为25ns,示例性的规定,当时间信息数值大于预设基数时,则输出随机数“1”,当时间信息数值小于预设基数时,则输出随机数“0”,因此根据n个时间片的时间顺序,得到对应n比特的量子随机数序列段。示例性的,比较单元可以包括数模转换器和比较器电路等实现时间信息和预设基数的比较功能。
图9为本发明实施例提供又一种处理模块的结构示意图,结合图5,参见图9,处理模块260包括处理子单元262;时间信息为对应于时间片接收到响应信号时的数字信号;当接收响应信号时,对应的时间片内时间数字转换模块240输出第一数字信号,当未接收响应信号时,对应的时间片内时间数字转换模块240输出第二数字信号,其中,第一数字信号和第二数字信号为不同电平。如第一数字信号为高电平,可以记为1,时间数字转换模块输出高电平。第二数字信号为低电平,可以记为0,时间数字转换模块输出低电平。
处理子单元262用于根据时间片的时间顺序,当接收到第一数字信号时则记为第一随机数,当接收到第二数字信号时则记为第二随机数,得到对应n比特的量子随机数序列段。
具体的,以第一数字信号为高电平(1),第二数字信号为低电平(0)为例,时间数字转换模块240将启动计时的时间作为基准,在接收到响应信号时记录当前的时间参数,因此将记录的时间参数与时间片进行对应得到时间信息。示例性的,在τ1时间片内接收到响应信号,则时间数字转换模块240对应τ1时间片输出高电平的第一数字信号,可知在τ2时间片内接收到响应信号,则时间数字转换模块240对应τ2时间片输出高电平的第一数字信号,可知在τ3时间片内未接收到响应信号,则时间数字转换模块240对应τ3时间片输出低电平的第二数字信号,可知在τ4时间片内接收到响应信号,则时间数字转换模块240对应τ4时间片输出高电平的第一数字信号。处理子单元262可以为数字信号处理单元,根据时间数字转换模块240输出的数字信号得到量子随机数序列段。示例性的,处理子单元262可以采用逻辑与门263。处理子单元262一端接入固定高电平 “1”,另一端接入时间数字转换模块240输出的数字信号,因此,当时间片内接收到响应信号时,则输出随机数“1”,当时间片内未接收到响应信号时,则输出随机数“0”。因此根据n个时间片的时间顺序,得到对应n比特的量子随机数序列段。
图10为本发明实施例提供一种随机数发生方法的流程示意图,本实施例可适用于生成随机数的情况,该方法可以由随机数发生装置来执行,该装置可采用硬件和/或软件的方式来实现。结合图2,随机数发生装置包括:光源模块210、光衰减调节模块220、光子检测模块230、时间数字转换模块240、控制模块250和处理模块260;
该方法具体包括如下步骤:
S110、控制模块同时控制光源模块输出预设周期的脉冲激光和时间数字转换模块启动计时,并在预设周期内划定n个相等的时间片;
其中,光源模块210为脉冲相干光源的输出单元,光源模块210根据控制模块250的控制信号驱动输出预设周期的脉冲激光,示例性的,光源模块210可以包括直流激光二极管和斩波器,直流激光二极管在直流信号驱动下产生连续激光,并输出给斩波器,在控制信号的驱动下,将连续激光转变为脉冲激光,一般斩波器可以是强度调制器、马赫增德尔干涉仪等元器件。光源模块210还可以仅由脉冲激光器输出预设周期的脉冲激光。时间片是指在一个预设周期内划定的时间区间,一个预设周期内可以划定n个时间片,每个时间片的间隔相等,n为≥2的正整数。
S120、光衰减调节模块对脉冲激光的光强进行衰减调节,使得光子检测模块对每个时间片内的光子的响应概率与目标概率之间的差值在预设范围内;其中,n为大于1的正整数;目标概率为1/2;
具体的,光衰减调节模块220将脉冲激光进行强度的衰减,激光进行衰减之后可以近似为单光子态,使得光脉冲中的光强变为单光子量级。光子检测模块230为单光子探测器,例如选用工作在盖革模式(Geiger mode)的单光子雪崩二极管(Single PhotonAvalanche Diode,SPAD),或超导纳米线单光子探测器(Superconducting NanowireSingle Photon Detector, SNSPD),单光子探测器采用自由运行模式,自由运行模式更便于应用于光子到达时间未知的情况。单光子探测器能够区分有光子到达和没有光子到达的情况,因此在整个预设周期内单光子探测器持续保持工作状态,可以对周期内的各个时间片进行探测,判断是否有光子到达。
通过光衰减调节模块220调节脉冲激光的强度,使得光子检测模块230对每个时间片内的光子的响应概率与1/2之间的差值在预设范围内,则可认为光子检测模块230对每个时间片内的光子的响应概率即为目标概率。根据随机数的无偏性,光子检测模块230对每个时间片内的光子的响应的目标概率应该为二分之一。由于光子检测模块230有光子响应的概率为p=η*w/hν,其中η表示单光子探测器探测效率,w为光强,hν为单光子能量,因此,可以得到光子检测模块230的光子响应概率与光强是具有相关性的,所以通过光衰减调节模块220对脉冲激光的光强进行调整,可以使光子检测模块230对每个时间片内的光子的响应概率与1/2之间的差值在预设范围内。因为响应概率与目标概率之间允许存在合理误差,两者的差值在预设范围内即可以认为满足使用要求,即可认为光子检测模块230对每个时间片内的光子的响应概率即为1/2。例如,预设范围设为±0.01%,则两者的差值在±0.01%的内即可以认为满足使用要求。
当光子检测模块230的光子响应概率p为1/2时,则一个预设周期内n个时间片的光子响应的每一种组合情况出现的概率也是相同的,此时每个预设周期输出的序列段是均衡且随机的,也是具有无偏性。
S130、光子检测模块在检测到光子响应时,输出响应信号;时间数字转换模块根据启动计时的时间与接收响应信号时的时间,生成对应时间片的时间信息并输出至处理模块;
由于控制模块250同步驱动时间数字转换模块240与光源模块210,因此,可以避免时间数字转换模块240开启计时的时间与光源模块210开启的时间产生偏移,当光子检测模块230在检测到光子响应时,则向时间数字转换模块240输出一个响应信号,时间数字转换模块240则根据响应信号记录一次时间参数,从而将光子在路径空间上的信息转化成光子到达的时间参数,并根据记录的时间参数生成时间信息。
S140、处理模块根据n个时间片及其对应的时间信息进行处理,每个时间片的时间信息对应得到1比特的随机数字,在预设周期内n个时间片信息得到对应n比特的量子随机数序列段;
具体的,处理模块260将n个时间片与其对应的时间信息进行数据处理,每个时间片的时间信息对应得到1比特的随机数字,示例性的,参见图2,以预设周期内划定n=4个时间片为例,示例性的规定,第一个时间片无光子响应,则认为第一个比特为0;第一个时间片有光子响应,则认为第一个比特为1。第二个时间片无光子响应,则认为第二个比特为0;第二个时间片有光子响应,则认为第二个比特为1。第三个时间片无光子响应,则认为第三个比特为0;第三个时间片有光子响应,则认为第三个比特为1。第四个时间片无光子响应,则认为第四个比特为0;第四个时间片有光子响应,则认为第四个比特为1。
因此在一个预设周期内可以的得到4比特的数据的情形为:0000/0001/0010/0011/0100/0101/0110/0111/……/1111。从而在一个预设周期内可以得到对应n比特的量子随机数序列段。
S150、控制模块将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列并连续输出。
具体的,控制模块250再将每个预设周期对应的量子随机数序列段组合或拼接形成随机数序列实现连续输出。在现有技术中,对初始随机数的后处理操作比较复杂,一般需要先对初始随机数序列做随机性比例估算,然后进入随机数提取模块,一般为FPGA芯片或者ACIS芯片进行特定处理,例如运行最低有效位算法或Toeplitz哈希算法等算法,再将初始随机数序列转化为均匀随机数序列,并剔除温度、电路噪声等环境因素导致的不稳定,最终输出符合要求的随机数序列。但本发明实施例中每由于每个预设周期内每种随机数序列段的概率相同,因此无需将初始随机数序列转化为均匀随机数序列处理过程,从而可以简化后处理程序,提高随机数序列输出效率。
可选的,随机数发生装置还包括统计模块222,光衰减调节模块220为可调光衰减器223;
方法包括:
统计模块222接收处理模块260输出的量子随机数序列段,并在采集周期内统计每一种量子随机数序列段出现的概率;
可调光衰减器223在采集周期内,若每一种量子随机数序列段出现的概率与目标概率n次方的差值超出预设范围,则对脉冲激光的光强进行调节。
具体的,统计模块222具有存储、计算数据的能力,可以为一CPU处理芯片、FPGA芯片或上位机。统计模块222接收量子随机数序列段,在采集周期内统计每一种量子随机数序列段出现的概率。其中,采集周期内可以包含M个预设周期,因此对应的在一个采集周期内可以得到M个量子随机数序列段,其中,M可以取较大的数量,来保证数据的丰富性,例如M可以为10
正常情况下,每一种组合情况出现的概率是相同的,当更换光源模块210或统计的概率出现偏移,则可以利用可调光衰减器223进行光强调节。示例性的,可调光衰减器223可以为可调光衰减器223,控制模块250与可调光衰减器223连接,可调光衰减器223基于控制模块250的控制,对脉冲激光的光强进行动态调节,从而调节光子检测模块230光子响应的概率,统计模块222统计M个量子随机数序列段,当各种情况的概率不相等时,则继续调节可调光衰减器223,并由统计模块222进行统计,直至当各种随机数序列段出现的概率均相等,则认为符合条件。需要说明的是,这里的概率相等为理想状态,也就是说,每一种量子随机数序列段出现的概率p
可选的,处理模块260包括比较单元261;时间信息为对应于时间片接收的响应信号时时间数字转换模块240所记录的时间参数;比较单元261的第一输入端接入预设基数,比较单元261的第二输入端接入时间信息;其中,预设基数根据每个时间片的对应起始时间参数确定;
方法包括:
比较单元261根据时间片的时间顺序比较预设基数和时间参数,若时间参数大于预设基数则记为第一随机数,若时间参数小于预设基数则记为第二随机数,得到对应n比特的量子随机数序列段。
具体的,时间数字转换模块240将启动计时的时间作为基准,在接收到响应信号时记录当前的时间参数,因此将记录的时间参数与时间片进行对应得到时间信息。示例性的,时间数字转换模块240在一个预设周期内接收到响应信号时记录当前的时间参数分别为11ns、17ns和28ns。此时的时间片时间范围分别为τ1时间片为10~15 ns、τ2时间片为15~20ns、τ3时间片为20~25 ns,τ4时间片为25~30 ns。因此将记录的时间参数与时间片进行对应后,可以得到τ1时间片的时间信息为11ns,τ2时间片的时间信息为17ns、τ3时间片的时间信息0ns、τ4时间片的时间信息为28ns。
将时间信息输入比较单元261的第二输入端,第一输入端输入预设基数,预设基数根据每个时间片的对应起始时间参数确定,也就是说,当处理τ1时间片时则预设基数为10ns,当处理τ2时间片时则预设基数为15ns,当处理τ3时间片时则预设基数为20ns,当处理τ4时间片时则预设基数为25ns,示例性的规定,当时间信息数值大于预设基数时,则输出随机数“1”,当时间信息数值小于预设基数时,则输出随机数“0”,因此根据n个时间片的时间顺序,得到对应n比特的量子随机数序列段。示例性的,比较单元可以包括数模转换器和比较器电路等实现时间信息和预设基数的比较功能。
可选的,处理模块260包括处理子单元262;时间信息为对应于时间片接收到响应信号时的数字信号;当接收响应信号时,对应的时间片内时间数字转换模块240输出第一数字信号,当未接收响应信号时,对应的时间片内时间数字转换模块240输出第二数字信号,其中,第一数字信号和第二数字信号为不同电平;如第一数字信号为高电平,可以记为1,时间数字转换模块输出高电平。第二数字信号为低电平,可以记为0,时间数字转换模块输出低电平。
方法包括:
处理子单元262根据时间片的时间顺序,当接收到第一数字信号时则记为第一随机数,当接收到第二数字信号时则记为第二随机数,得到对应n比特的量子随机数序列段。
具体的,以第一数字信号为高电平,第二数字信号为低电平为例,时间数字转换模块240将启动计时的时间作为基准,在接收到响应信号时记录当前的时间参数,因此将记录的时间参数与时间片进行对应得到时间信息。示例性的,在τ1时间片内接收到响应信号,则时间数字转换模块240对应τ1时间片输出高电平的数字信号,可知在τ2时间片内接收到响应信号,则时间数字转换模块240对应τ2时间片输出高电平的数字信号,可知在τ3时间片内未接收到响应信号,则时间数字转换模块240对应τ3时间片输出低电平的数字信号,可知在τ4时间片内接收到响应信号,则时间数字转换模块240对应τ4时间片输出高电平的数字信号。处理子单元262可以为数字信号处理单元,根据时间数字转换模块240输出的数字信号得到量子随机数序列段,当接收到高电平的数字信号时则记为第一随机数“1”,当接收到低电平的数字信号时则记为第二随机数“0”,得到对应n比特的量子随机数序列段。示例性的,处理子单元262可以采用逻辑与门。处理子单元262一端接入固定高电平,另一端接入时间数字转换模块240输出的数字信号,因此,当时间片内接收到响应信号时,则输出随机数“1”,当时间片内未接收到响应信号时,则输出随机数“0”。因此根据n个时间片的时间顺序,得到对应n比特的量子随机数序列段。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种小型化纠缠源及其制备方法、以及设备无关量子随机数发生器
- 随机数发生器的建模方法、装置、介质及随机数发生器
- 一种随机数发生装置、真随机数发生器及系统级芯片