一种真随机数产生方法及装置转让专利

申请号 : CN201110031771.3

文献号 : CN102176199B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 鄢秋荣赵宝升刘永安盛立志

申请人 : 中国科学院西安光学精密机械研究所

摘要 :

本发明涉及一种真随机数产生的装置及方法,包括单光子随机脉冲源、时钟单元、基于FPGA的随机位提取模块以及计算机,基于FPGA的随机位提取模块包括控制器、计数器、多位FIFO存储器、缓存单元、比较器、1位FIFO存储器以及通信接口控制模块,缓存单元包括第一寄存器和第二寄存器。本发明解决了现有的随机数产生的随机性大,速度慢以及随机数稳定性差的技术问题。本发明具有随机性好,本发明的随机位提取方法循环,连续,无限,高速的。

权利要求 :

1.一种真随机数产生方法,其特征在于:包括以下步骤:

1】产生单光子定时脉冲信号:

1.1】产生一系列离散的随机的光子序列:

组装单光子随机脉冲源,所述单光子随机脉冲源包括沿着光路依次放置的单光子源、单光子探测器、前置放大器以及恒比定时器,所述单光子源包括光源、多块衰减片以及可调光阑,光源发出的光经多块衰减片和可调光阑输出一系列离散的随机的光子序列的入射光;

1.2】 产生单光子随机脉冲序列:

入射光入射到到单光子探测器产生单光子随机脉冲序列;

1.3】产生单光子定时脉冲信号:

单光子脉冲序列依次经过前置放大器和恒比定时器后,产生单光子定时脉冲信号,依次标识为(1,2,3,…,N,…),N为自然数且大于等于1;

2】随机位的产生:

2.1】连续测量单光子定时脉冲间的时间间隔,并存储到多位FIFO:当控制器在收到第N个单光子定时脉冲信号的上升沿始时,触发计数器复位为零,同时开始对输入的高频时钟信号进行计数;

当控制器收到第N+1个单光子定时脉冲信号的上升沿时,控制器控制计数器中的计数值存入多位FIFO存储器中,即为第N个时间间隔;

然后控制器触发计数器复位为零,同时开始对输入的高频时钟信号进行计数;

当控制器收到第N+2个单光子定时脉冲信号的上升沿时,控制器控制计数器中的计数值存入多位FIFO存储器中,即为第N+1个时间间隔;

从N=1开始,重复上述过程,直至多位FIFO满;

2.2】从N=1开始,采用两个寄存器的切换的方法,连续比较相邻的两个时间间隔:如果多位FIFO存储器中存有数据,控制器控制第二寄存器读取第一寄存器的值,然后第一寄存器读取多位FIFO中的值;

控制器控制比较器比较第一寄存器和第二寄存器中所存储的时间间隔,如果第一寄存器中的时间间隔大于第二寄存器中时间间隔,则比较器输出:“1”,并输出有效输出信号;

如果第一寄存器中的时间间隔小于第二寄存器中的时间间隔,则比较器输出“0”,并输出有效输出信号;

如果第一寄存器中的时间间隔等于第二寄存器中的时间间隔,则比较器输出无效输出信号;

重复上述过程,直至多位FIFO空;

2.3】比较器输出的随机位“1”或“0” 存储到1位FIFO:若1位FIFO未满,且控制器收到比较器输出的输出有效信号,则在控制器的控制下,将比较器输出的“1”或“0”存储到1位FIFO,若控制器收到比较器输出的无效输出信号,则不进行存储操作;

3】 连续输出随机位:

将存储在1位FIFO存储器中的随机位存储到计算机中或直接输出,直到1位FIFO空。

2.根据权利要求1所述的真随机数产生方法,其特征在于:所述的单光子探测器为基于微通道板的单光子探测器,所述基于微通道板的单光子探测器包括管壳,设置在管壳入口的入射窗、设置在管壳出口的陶瓷基底以及设置在管壳腔内的级联微通道板,所述入射窗出口侧设置有光电阴极,所述陶瓷基底入射侧设置有半导体感应涂层,所述陶瓷基底出射侧依次设置有阳极和阳极基底。

3.根据权利要求书2所述的真随机数产生方法,其特征在于:所述半导体感应涂层为锗层或硅层。

4.根据权利要求1所述的真随机数产生方法,其特征在于:所述的单光子探测器为光电倍增管PMT或雪崩光电二级管APD。

5.根据权利要求1或2或3或4所述的真随机数产生方法,其特征在于:所述光源为发光二级管、半导体激光器、汞灯或氘灯。

6.一种真随机数产生的装置,其特征在于:包括单光子随机脉冲源、时钟单元、基于FPGA的随机位提取模块以及计算机,所述单光子随机脉冲源用于产生单光子定时脉冲信号;

所述时钟单元用于产生高频时钟信号;

所述基于FPGA的随机位提取模块用于接收单光子定时脉冲信号和高频时钟信号并进行随机位的提取、将提取的随机位输出至计算机;

所述基于FPGA的随机位提取模块包括控制器、计数器、多位FIFO存储器、缓存单元、比较器、1位FIFO存储器以及通信接口控制模块;

所述缓存单元包括第一寄存器和第二寄存器;

所述计数器用于以高频时钟信号作为计数对象,测量单光子定时脉冲信号中相邻两个脉冲信号的时间间隔,并由控制器控制存入多位FIFO存储器;

所述多位FIFO用于连续存储相邻两个脉冲信号的时间间隔;

所述第一寄存器用于在控制器的控制下从多位FIFO存储器中读取1个时间间隔,所述第二寄存器用于在控制器的控制下从第一寄存器中读取1个时间间隔;

所述比较器用于将第一寄存器和第二寄存器中的时间间隔进行比较输出随机位;

所述1位FIFO用于在控制器的控制下,存储比较器输出的随机位;

所述控制器与单光子随机脉冲源和时钟单元分别相连,所述1位FIFO存储器与计算机相连。

7.根据权利要求6所述的真随机数产生的装置,其特征在于:所述的单光子随机脉冲源,包括沿着光路依次放置的单光子源、单光子探测器、前置放大器以及恒比定时器,所述单光子源包括光源、多块衰减片以及可调光阑。

8.根据权利要求7所述的真随机数产生的装置,其特征在于:所述的单光子探测器为基于微通道板的单光子探测器,所述基于微通道板的单光子探测器包括管壳,设置在管壳入口的入射窗、设置在管壳出口的陶瓷基底以及设置在管壳腔内的级联微通道板,所述入射窗出口侧设置有光电阴极,所述陶瓷基底入射侧设置有半导体感应涂层,所述陶瓷基底出射侧依次设置有阳极和阳极基底。

9.根据权利要求书8所述的真随机数产生的装置,其特征在于:所述半导体感应涂层为锗层或硅层。

10.根据权利要求7或8或9所述的真随机数产生的装置,其特征在于:所述的单光子探测器为光电倍增管PMT或雪崩光电二级管APD,所述光源为发光二级管、半导体激光器、汞灯或氘灯。

说明书 :

一种真随机数产生方法及装置

技术领域

[0001] 本发明属于随机信号源技术领域,尤其涉及一种真随机数产生的装置及方法。

背景技术

[0002] 随机数在雷达系统、保密通信系统,仿真模拟等领域有着广泛的应用。随机数的产生,目前文献报道主要有三种方法,一是通过确定的算法产生随机数,这种方法产生的随机数称为伪随机数,并不是真正的随计数,因为这种方式产生的随计数,完全由的数学算法和起始输入参数确定,是可以预测的。一旦这种确定的数学算法和输入参数被破解,就丧失了保密通信的安全,因此应用范围受到限制。二是利用物理噪声和它输出的不确定性产生随机信号。例如根据噪声电压大于或小于某一给定的数值,给出相应的数字量。因为这种噪声有高度的随机性,产生的信号为真随机信号。但这种方法产生的随机数的速率较慢且不可调,其次由于噪声容易受外界干扰,因此装置的稳定性较差。三是利用量子系统中内在的随机性产生随机数,特别是光的量子性的原理。如目前已有文献报道采用50/50的分速器,将光子序列分成两束,然后两个探测器分辨别接收。一个光子只能随机的走一条路径,将一条路径被定义为“1”,另一条路径被定义为“0”,从而产生随机数。这种虽然可以产生随机性非常好的随机数,但是光子经过两条不同的路径,采用两个探测器,这就存在两条路径的探测效率很难做到一致,随机数中“1”的可能性和“0”的可能性也很难做到相等;同时采用两个探测器,也提高了成本。

发明内容

[0003] 本发明针对随机数的产生的问题,提出一种真随机数的产生装置与方法,其解决现有的随机数产生的随机性大,速度慢以及随机数稳定性差的技术问题。
[0004] 本发明的技术解决方案:
[0005] 一种真随机数产生方法,其特殊之处在于:包括以下步骤:
[0006] 1】产生单光子定时脉冲信号:
[0007] 1.1】产生一系列离散的随机的光子序列:
[0008] 组装单光子随机脉冲源,所述单光子随机脉冲源包括沿着光路依次放置的单光子源、单光子探测器、前置放大器以及恒比定时器,所述单光子源包括光源、多块衰减片以及可调光阑,光源发出的光经多块衰减片和可调光阑输出一系列离散的随机的光子序列的入射光;
[0009] 1.2】产生单光子随机脉冲序列:
[0010] 入射光入射到到单光子探测器产生单光子随机脉冲序列;
[0011] 1.3】产生单光子定时脉冲信号:
[0012] 单光子脉冲序列依次经过前置放大器和恒比鉴别器(CFD)后,产生单光子定时脉冲信号,依次标识为(1,2,3,…,N,…),N为自然数且大于等于1;
[0013] 2】随机位的产生:
[0014] 2.1】连续测量单光子定时脉冲间的时间间隔,并存储到多位FIFO:
[0015] 当控制器在收到第N个单光子定时脉冲信号的上升沿始时,触发计数器复位为零,同时开始对输入的高频时钟信号进行计数;
[0016] 当控制器收到第N+1个单光子定时脉冲信号的上升沿时,控制器控制计数器中的计数值存入多位FIFO存储器中,即为第N个时间间隔;
[0017] 当控制器在收到第N+1个单光子定时脉冲信号的上升沿始时,控制器触发计数器复位为零,同时开始对输入的高频时钟信号进行计数;
[0018] 当控制器收到第N+2个单光子定时脉冲信号的上升沿时,控制器控制计数器中的计数值存入多位FIFO存储器中,即为第N+1个时间间隔;
[0019] 从N=1开始,重复上述过程,直至多位FIFO满;
[0020] 2.2】从N=1开始,采用两个寄存器的切换的方法,连续比较相邻的两个时间间隔:
[0021] 如果多位FIFO存储器中存有数据,控制器控制第二寄存器读取第一寄存器的值,然后第一寄存器读取多位FIFO中的值;
[0022] 由于多位FIFO存储器为先进先出存储器,因此第一寄存器中的值为第N+1个时间间隔,第二寄存器中的值为第N个时间间隔;
[0023] 控制器控制比较器比较第一寄存器和第二寄存器中所存储的时间间隔,[0024] 如果第一寄存器中的时间间隔大于第二寄存器中时间间隔,则比较器输出:“1”,并输出有效输出信号;
[0025] 如果第一寄存器中的时间间隔小于第二寄存器中的时间间隔,则比较器输出“0”,并输出有效输出信号;
[0026] 如果第一寄存器中的时间间隔等于第二寄存器中的时间间隔,则比较器输出无效输出信号;
[0027] 重复上述过程,直至多位FIFO空;
[0028] 2.3】比较器输出的随机位“1”或“0”存储到1位FIFO:
[0029] 若1位FIFO未满,且控制器收到比较器输出的输出有效信号,则在控制器的控制下,将比较器输出的“1”或“0”存储到1位FIFO,若控制器收到比较器输出的无效输出信号,则不进行存储操作;
[0030] 3】连续输出随机位:
[0031] 将存储在1位FIFO存储器中的随机位存储到计算机中或直接输出,直到1位FIFO空。
[0032] 上述的单光子探测器为基于微通道板的单光子探测器、光电倍增管PMT或雪崩光电二级管APD。
[0033] 所述基于微通道板的单光子探测器包括管壳,设置在管壳入口的入射窗、设置在管壳出口的陶瓷基底以及设置在管壳腔内的级联微通道板,入射窗出口侧设置有光电阴极,陶瓷基底入射侧设置有半导体感应涂层,陶瓷基底出射侧依次设置有阳极和阳极基底。半导体感应涂层为锗层或硅层。
[0034] 上述光源为发光二激光、半导体激光器、汞灯或氘灯。
[0035] 一种真随机数产生的装置,包括单光子随机脉冲源、时钟单元、基于FPGA的随机位提取模块以及计算机组成,
[0036] 所述单光子随机脉冲源用于产生单光子定时脉冲信号;
[0037] 所述时钟单元用于产生高频时钟信号;
[0038] 所述基于FPGA的随机位提取模块用于接收单光子定时脉冲信号和高频时钟信号并进行随机位的提取、将提取的随机位输出至计算机;
[0039] 所述基于FPGA的随机位提取模块包括控制器、计数器、多位FIFO存储器、缓存单元、比较器、1位FIFO存储器以及通信接口控制模块。
[0040] 所述缓存单元包括第一寄存器和第二寄存器;
[0041] 所述计数器用于以高频时钟信号作为计数对象,测量单光子定时脉冲信号中相邻两个脉冲信号的时间间隔,并由控制器控制存入多位FIFO存储器;
[0042] 所述多位FIFO用于连续存储相邻两个脉冲信号的时间间隔;
[0043] 所述第一寄存器用于在控制器的控制下从多位FIFO存储器中读取1个时间间隔,所述第二寄存器用于在控制器的控制下从第一寄存器中读取1个时间间隔;
[0044] 所述比较器用于将第一寄存器和第二寄存器中的时间间隔进行比较输出随机位;
[0045] 所述1位FIFO用于在控制器的控制下,存储比较器输出的随机位;
[0046] 所述控制器与单光子随机脉冲源和时钟单元分别相连,所述1位FIFO存储器与计算机相连。
[0047] 上述的单光子随机脉冲源,包括沿着光路依次放置的单光子源、单光子探测器、前置放大器以及恒比定时器,所述单光子源包括光源、多块衰减片以及可调光阑。
[0048] 上述的单光子探测器为基于MCP的单光子探测器、光电倍增管PMT、雪崩光电二级管APD。
[0049] 上述光源为发光二激管、半导体激光器、汞灯或氘灯。
[0050] 本发明所具有的优点:
[0051] 1、随机性好。本发明产生随机数原理是基量子系统在内的随机性,采用单光子脉冲随机序列时间间隔大小的比较来产生随机数,因此保证了所产生随机数的绝对的随机性,是一种真随机数。
[0052] 2、产生的随机数“1”和“0”的概率相等。由光子序列中相邻两个光子的时间间隔是随机且相互独立,所以tn>tn+1和tn<tn+1概率相等,因此随机位的输出“1”和“0”的概率相等。
[0053] 3、循环,连续,无限,高速的随机位提取方法。采用多位FIFO存储器和1位FIFO存储器来分别缓冲计数值和比较器产生的随机位,从而实现了单光子脉冲时间间隔的测量,时间间隔的比较和随机位的输出工作在并行方式,因此随机位的提取可以循环,连续,无限的进行,而且具有非常高的处理速度。
[0054] 4、采用FPGA来实现随机位的提取,具有非常高的灵活性。一是由于FPGA的可编程性,很容易实现多通道随机位的提取和多路随机位的同步输出。二是由于FPGA输出的逻辑可以选择,电平可以选择,因此采用FPGA来实现随机位的提取,具有非常高的接口灵活性。
[0055] 5、成本低,本发明只采用一个单光子探测器,随机位的提取采用FPGA来实现,因此极大地减小了真随机源的成本。
[0056] 6、稳定好且速率可调,所述的单光子随机脉冲源,由光源,多块衰减片,可调光阑,和单光子探测器,前置放大器和恒比定时器组成,能产生稳定的单光子随机脉冲,因此随机数的产生有很高的稳定性。因此通过减光片的数量和可调光阑来调节入射光强,可以调节随机数的产生速率。

附图说明

[0057] 图1为本发明一种随机数的产生装置图;
[0058] 图2产生单光子随机脉冲源的装置图;
[0059] 图3基于的MCP单光子探测器;
[0060] 图4基于FPGA随机位的提取原理功能图;
[0061] 图5为本发明随机数产生的时序图;
[0062] 其中附图标记为:1-入射窗,2-光电阴极,3-级联微通道板,4-锗层,5-陶瓷基底,6-阳极,7-阳极基底。

具体实施方式

[0063] 本发明提出一种随机数的产生装置,如图1所示,包括单光子随机脉冲源,时钟,基于FPGA的随机位提取模块,计算机通信接口和计算机组成。
[0064] 所述的单光子随机脉冲源,如图2所示,由光源,多块衰减片,光阑,和单光子探测器,前置放大器和恒比定时器(CFD)组成。
[0065] 所述的单光子探测器为基于MCP的单光子探测器,如图3所示,由入射窗,光电阴极,级联MCP,锗层,陶瓷基底,阳极和阳极基底组成,由于基于MCP的单光子探测器具有面阵结构,因此通过可调光阑可调节入射光入射在探测器上的面积,从而调节随机位的产生速率。
[0066] 通过搭建单光子随机脉冲源,产生单光子随机脉冲序列。
[0067] 所述的基于FPGA的随机位提取模块,如图4所是由控制器,计数器,多位FIFO存储器,缓存1,缓存2,比较器和1位FIFO存储器,通信接口控制模块组成。
[0068] FPGA是现场可编程逻辑器件,利用硬件描述语言(如VHDL,Verilog)来设计的逻辑功能。通过相应的综合软件生成设计文件,设计文件下载配置到FPGA芯片来实现各功能模块和连线。
[0069] 采用对高频时钟计数的方法,连续测量出单光子随机脉冲序列中相邻两个脉冲的时间间隔(t1,t2,t3,...,tn,tn+1,...)并存入多位FIFO存储器,寄存器1和寄存器2分别读取tn和tn+1到比较器进行比较,如果tn>tn+1,对应的随机位输出“1”,如果tn<tn+1则对应的随机位输出“0”,并将随机位存入1位FIFO。最后将1位FIFO中的随机数直接输出或输出的计算机通信接口。
[0070] 相邻的两个时间间隔(tn,tn+1),n=1,2,3,...可以被看成一系列随机事件,由于单光子序列中相邻两个光子的时间间隔(t1,t2,t3,...,tn,tn+1,...)服从泊松分布,即光子序列中相邻两个光子的时间间隔是随机且相互独立,因此随机位的输出“1”还是“0”是随机的,且由于tn>tn+1和tn<tn+1概率相等,因此随机位的输出“1”和“0”的概率相等。
[0071] 本发明提供一种产生随机数的方法,具体步骤如下:
[0072] 1、产生单光子随机脉冲源
[0073] 1.1组装可调简易单光子源。单光子源由光源,多块衰减片和光阑组成。光源发出光经过多块衰减片和光阑进行衰减至非常微弱,呈单光子状态,保证单光子探测器工作在光子计数模式下。光源可以采用发光二激光,半导体激光器,汞灯和氘灯等。
[0074] 1.2产生单光子脉冲序列。在入射光非常微弱时,入射光可以看作一系列离散的随机的光子序列,入射单光子透过探测器入射窗,经光电阴极光电转换,以一定的量子效率产生光电子,光电子经过级联微通道板(MCP)倍增后形成电子云团。电子云团被锗层接收后,阳极表面将产生感应电荷。阳极输出所感应电荷为单光子脉冲。当探测到的一个光子时,单光子探测器输出一个单光子脉冲,每个脉冲代表探测到一个光子。因此探测器输出一系列单光子脉冲,入射光越强,单位时间内输出的脉冲数就多,因此通过减光片的数量和可调光阑来调节入射光强,可以调节随机数的产生速率。
[0075] 探测器除了用基于微通道板的单光子探测器外,还可以采用如光电倍增管(PMT)、雪崩光电二级管(APD)等单光子探测器。
[0076] 1.3产生单光子定时脉冲信号。由于探测器直接输出的电子脉冲幅度非常小,因此采用前置放大器将探测器输出信号放大,然后进入恒比鉴别器CFD,恒比鉴别器CFD的作用是选择在电子脉冲上的某处作为定时点,产生数字方波脉冲。该方波脉冲作为单光子定时脉冲信号,其上升沿代表光子到达的时间。由于单光子脉冲的随机性,所以产生光子定时脉冲信号也是随机的,脉冲的电平与FPGA的电平匹配。恒比鉴别器CFD在脉冲幅度比值恒定时触发,避免了探测器直接输出电子脉冲幅度抖动引起的时间测量误差。
[0077] 2、基于FPGA的随机位的提取
[0078] 2.1连续测量单光子脉冲的时间间隔(t1,t2,t3,...,tn,tn+1,...)[0079] 步骤一产生的单光子定时脉冲信号和外部时钟信号,输入FPGA随机位提取模块。控制器在收到第一个单光子定时脉冲的上升沿始时,触发计数器复位为零,并开始对输入的时钟信号进行计数,当收到第二个单光子定时脉冲上升沿时,控制器把计数器中的计数值存入多位先进先出(FIFO)存储器中,并同时对计数器进行复位为零,重新开始计数。当收到第三个单光子定时脉冲上升沿时,控制器又把计数器中的计数值存入多位先进先出(FIFO)存储器中,并同时对计数器进行复位为零,重新开始计数。
[0080] 在后续单光子定时脉冲到达时,不断地重复上述过程,存储器以先进先出的方式,连续存储多个计数值,直到多位先进先出(FIFO)存储器满,这些计数值是单光子定时脉冲间隔内时钟信号周期数,因此存入先进先出FIFO存储器的计数值代表了相邻两个单光子脉冲的时间间隔。
[0081] 2.2比较相邻的两个时间间隔(tn,tn+1)并产生随机位。
[0082] 如果多位FIFO中存有数据,即多位FIFO非空,控制器把寄存器1的值存到寄存器2,同时把FIFO存储器中的一个计数值存到寄存器1,比较器比较寄存器1和寄存器2中的值,若寄存器1中的值大于寄存器2的值,则比较器输出1,并给出输出有效信号。若寄存器
1中的值小于寄存器2的值,比较器输出0,并给出输出有效信号;若寄存器1中的值等于寄存器2中的值,则不输出。并给出输出无效信号。重复上述过程,直到多位FIFO为空。
[0083] 2.3缓存随机位到1位先进先出(FIFO)存储器
[0084] 在每收到比较器输出有效信号,控制器把比较器输出的值按顺序存入1位FIFO存储器,直至1位FIFO满。
[0085] 3、输出随机位
[0086] 为了使用方便和功能扩张,采用两种输出方式:
[0087] 一是若1位FIFO非空,在时钟的驱动下,从1位FIFO存储器直接输出随机脉冲序列,直至1位FIFO空。
[0088] 二是若1位FIFO非空,通过计算机通信接口,将随机数存储到计算机,直至1位FIFO空。
[0089] 由于了采用多位FIFO存储器和1位FIFO存储器来分别缓冲计数值和比较器产生的随机位,因此单光子脉冲时间间隔的测量,时间间隔的比较和随机位的输出工作在并行方式,因此上述随机位的提取可以循环,连续,无限的进行,而且具有非常高的处理速度。
[0090] 由于本发明采用FPGA来实现随机位的提取,具有非常高的灵活性。一是由于FPGA的可编程性,很容易实现多通道随机位的提取和多路随机位的同步输出。二是由于FPGA输出的逻辑可以选择,电平可以选择,具有非常高的接口灵活性。