本發(fā)明涉及真隨機數(shù)源技術領域,具體涉及一種基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)及方法。
背景技術:
傳統(tǒng)隨機數(shù)源產(chǎn)生的方法主要用算法產(chǎn)生和物理熱噪聲芯片兩種方法產(chǎn)生;通過算法產(chǎn)生隨機數(shù)的速率可以很快,但由于算法固定,只要知道了該算法,產(chǎn)生的隨機數(shù)原則上即可以預測,因此得到的隨機數(shù)是仍然不是真隨機數(shù);而使用熱噪聲芯片產(chǎn)生的隨機數(shù),目前市面上雖然已有標稱速率為20MHz的隨機數(shù)芯片,但實際測試其隨機性得到的結(jié)果并不理想,即使將其降頻運行,所得到的隨機數(shù)的隨機性依舊達不到理想的效果。這對當前很多需要真隨機數(shù)源作為輸入的應用場景中顯然無法滿足需求。因此如何設計一種能夠產(chǎn)生完全隨機性的真隨機數(shù)源的系統(tǒng)及方法成為本領域亟需解決的技術問題。
技術實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術的不足,提出了一種基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)及方法,相對于傳統(tǒng)隨機數(shù)產(chǎn)生方法,本發(fā)明所述的系統(tǒng)和方法得到的隨機數(shù)隨機性更好,符合國家密碼管理局《隨機性檢測規(guī)范》中所有規(guī)定檢測。
為了解決上述技術問題,本發(fā)明采取的技術方案為:本發(fā)明提出了一種基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng),根據(jù)本發(fā)明的實施例,包括:上位機、FPGA和單光子探測器(SPD),其中,所述上位機和所述FPGA相連,用于向所述FPGA發(fā)送控制信息,所述FPGA分別與所述上位機和所述SPD相連,所述FPGA包括:接口模塊、寄存器模塊、發(fā)送端模塊、接收端模塊和偽隨機數(shù)產(chǎn)生模塊,其中,所述接口模塊與所述寄存器模塊相連,所述寄存器模塊分別與所述接口模塊、發(fā)送端模塊和接收端模塊相連,用于對控制信息進行解析,所述發(fā)送端模塊分別與所述寄存器模塊和所述SPD相連,用于向所述SPD發(fā)送開門觸發(fā)信號以及SPD的雪崩閾值電壓,所述接收端模塊分別與所述寄存器模塊、偽隨機數(shù)產(chǎn)生模塊和所述SPD相連,用于采集所述SPD發(fā)出的探測信號和接收所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述接收端模塊包括:內(nèi)部工作時鐘,用于對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述偽隨機數(shù)產(chǎn)生模塊與所述接收端模塊相連,用于產(chǎn)生隨機數(shù)并將產(chǎn)生的隨機數(shù)發(fā)送至所述接收端模塊,所述偽隨機數(shù)產(chǎn)生模塊包括:43bit線性移位反饋寄存器(LFSR)和37bit元胞自動機移位寄存器(CASR),所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生隨機數(shù)的方式為:分別在所述43bit線性移位反饋寄存器(LFSR)產(chǎn)生的隨機數(shù)和37bit元胞自動機移位寄存器(CASR)產(chǎn)生的隨機數(shù)中,各選取16bit位寬的隨機數(shù)進行異或運算,將異或運算后的隨機數(shù)傳遞給所述接收端模塊,所述SPD分別與所述FPGA中的發(fā)送端模塊和接收端模塊相連,用于接收所述發(fā)送端模塊發(fā)送的開門觸發(fā)信號且完全隨機地向所述接收端模塊發(fā)送探測信號,所述探測信號為暗記數(shù)信號。
根據(jù)本發(fā)明的實施例,所述接口模塊為USB2.0接口模塊,所述上位機和FPGA通過USB2.0接口模塊進行通信,所述FPGA與所述SPD通過同軸電纜相連。
在本發(fā)明的另一方面,提供了一種利用前面所述的基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)進行產(chǎn)生真隨機數(shù)源的方法,根據(jù)本發(fā)明的實施例,包括以下步驟:第一步:所述上位機通過接口模塊向所述FPGA發(fā)送控制信息,所述FPGA中的程序進行加載,所述寄存器模塊對所述控制信息進行解析,同時所述偽隨機數(shù)產(chǎn)生模塊進入工作狀態(tài),不斷向所述接收端模塊發(fā)送所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù);第二步:通過所述寄存器模塊解析后的控制信息控制所述發(fā)送模塊向所述SPD發(fā)送對應頻率的開門觸發(fā)信號以及所述SPD的雪崩閾值電壓,調(diào)整所述SPD的暗記數(shù)信號水平;第三步:所述SPD接收到相應的開門觸發(fā)信號后,隨機地向所述接收端模塊發(fā)送探測信號,所述接收端模塊采集所述SPD發(fā)送的探測信號,所述接收端模塊的內(nèi)部工作時鐘對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù);第四步:所述上位機收取所有由所述FPGA回傳的隨機數(shù)數(shù)據(jù),并將收到的隨機數(shù)寫入文件;第五步:對寫入所述文件的隨機數(shù)做隨機性檢測。
本發(fā)明的有益效果為:相對于傳統(tǒng)隨機數(shù)產(chǎn)生方法,本發(fā)明所述的系統(tǒng)和方法得到的隨機數(shù)隨機性更好,同時本發(fā)明所述的單光子探測器(SPD)的暗記數(shù)是完全真隨機的,暗記數(shù)水平可調(diào),得到的隨機數(shù)全部通過了國家密碼管理局《隨機性檢測規(guī)范》規(guī)定的針對真隨機數(shù)所需的15種算法檢測。
附圖說明
圖1為本發(fā)明基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)結(jié)構示意框圖。
圖2為本發(fā)明FPGA結(jié)構示意框圖。
圖3為本發(fā)明偽隨機數(shù)產(chǎn)生模塊框圖。
具體實施方式
為了使本領域技術人員更好地理解本發(fā)明的技術方案,下面結(jié)合具體實施例對本發(fā)明作進一步的詳細說明。下面描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
本發(fā)明提出了一種基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng),圖1為本發(fā)明基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)結(jié)構示意框圖,參照圖1所示,根據(jù)本發(fā)明的實施例,包括:上位機、FPGA和單光子探測器(SPD),其中,所述上位機和所述FPGA通過USB2.0接口模塊進行通信,用于向所述FPGA發(fā)送控制信息,所述FPGA分別與所述上位機和所述SPD相連,其中,所述FPGA與所述SPD通過同軸電纜相連。根據(jù)本發(fā)明的一些實施例,本發(fā)明所述上位機的具體種類不受限制,只要是能夠發(fā)送和接收操控控制信息的裝置即可。
根據(jù)本發(fā)明的實施例,圖2為本發(fā)明FPGA結(jié)構示意框圖,參照圖1和圖2所示,所述FPGA包括:USB2.0接口模塊、寄存器模塊、發(fā)送端模塊、接收端模塊和偽隨機數(shù)產(chǎn)生模塊,其中,所述接口模塊與所述寄存器模塊相連,所述寄存器模塊分別與所述接口模塊、發(fā)送端模塊和接收端模塊相連,用于對控制信息進行解析,所述發(fā)送端模塊分別與所述寄存器模塊和所述SPD相連,用于向所述SPD發(fā)送開門觸發(fā)信號以及SPD的雪崩閾值電壓,所述接收端模塊分別與所述寄存器模塊、偽隨機數(shù)產(chǎn)生模塊和所述SPD相連,用于采集所述SPD發(fā)出的探測信號和接收所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述接收端模塊包括:內(nèi)部工作時鐘,用于對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述偽隨機數(shù)產(chǎn)生模塊與所述接收端模塊相連,用于產(chǎn)生隨機數(shù)并將產(chǎn)生的隨機數(shù)發(fā)送至所述接收端模塊,圖3為本發(fā)明偽隨機數(shù)產(chǎn)生模塊框圖,參照圖3所示,所述偽隨機數(shù)產(chǎn)生模塊包括:43bit線性移位反饋寄存器(LFSR)和37bit元胞自動機移位寄存器(CASR),所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生隨機數(shù)的方式為:分別在所述43bit線性移位反饋寄存器(LFSR)產(chǎn)生的隨機數(shù)和37bit元胞自動機移位寄存器(CASR)產(chǎn)生的隨機數(shù)中,各選取16bit位寬的隨機數(shù)進行異或運算,將異或運算后的隨機數(shù)傳遞給所述接收端模塊,具體算法表示為:
本發(fā)明所述LFSR 的隨機數(shù)生成式為:X43+X41+X20+X+1
本發(fā)明所述CASR的隨機數(shù)生成式為:
其中,所述接收端模塊的內(nèi)部工作時鐘對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)。
根據(jù)本發(fā)明的實施例,參照圖2所示,所述SPD分別與所述FPGA中的發(fā)送端模塊和接收端模塊相連,用于接收所述發(fā)送端模塊發(fā)送的開門觸發(fā)信號且完全隨機地向所述接收端模塊發(fā)送探測信號,所述探測信號為暗記數(shù)信號。
在本發(fā)明的另一方面,提供了一種利用前面所述的系統(tǒng)進行產(chǎn)生真隨機數(shù)源的方法,根據(jù)本發(fā)明的實施例,包括以下步驟:
第一步:所述上位機通過接口模塊向所述FPGA發(fā)送控制信息,所述FPGA中的程序進行加載,所述寄存器模塊對所述控制信息進行解析,同時所述偽隨機數(shù)產(chǎn)生模塊進入工作狀態(tài),不斷向所述接收端模塊發(fā)送所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)。
根據(jù)本發(fā)明的實施例,包括:上位機、FPGA和單光子探測器(SPD),其中,所述上位機和所述FPGA通過USB2.0接口模塊進行通信,用于向所述FPGA發(fā)送控制信息,所述FPGA分別與所述上位機和所述SPD相連,其中,所述FPGA與所述SPD通過同軸電纜相連。
第二步:通過所述寄存器模塊解析后的控制信息控制所述發(fā)送模塊向所述SPD發(fā)送對應頻率的開門觸發(fā)信號以及所述SPD的雪崩閾值電壓,調(diào)整所述SPD的暗記數(shù)信號水平。
第三步:所述SPD接收到相應的開門觸發(fā)信號后,隨機地向所述接收端模塊發(fā)送探測信號,所述接收端模塊采集所述SPD發(fā)送的探測信號,所述接收端模塊的內(nèi)部工作時鐘對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)。
根據(jù)本發(fā)明的實施例,圖2為本發(fā)明FPGA結(jié)構示意框圖,參照圖1和圖2所示,所述FPGA包括:USB2.0接口模塊、寄存器模塊、發(fā)送端模塊、接收端模塊和偽隨機數(shù)產(chǎn)生模塊,其中,所述接口模塊與所述寄存器模塊相連,所述寄存器模塊分別與所述接口模塊、發(fā)送端模塊和接收端模塊相連,用于對控制信息進行解析,所述發(fā)送端模塊分別與所述寄存器模塊和所述SPD相連,用于向所述SPD發(fā)送開門觸發(fā)信號以及SPD的雪崩閾值電壓,所述接收端模塊分別與所述寄存器模塊、偽隨機數(shù)產(chǎn)生模塊和所述SPD相連,用于采集所述SPD發(fā)出的探測信號和接收所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述接收端模塊包括:內(nèi)部工作時鐘,用于對所述探測信號進行采樣,當采集到的探測信號為高電平時,則所述接收端模塊將此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù)回傳給所述上位機,當采集到的探測信號為低電平時,則丟棄此時收到的來自所述偽隨機數(shù)產(chǎn)生模塊產(chǎn)生的隨機數(shù),所述偽隨機數(shù)產(chǎn)生模塊與所述接收端模塊相連,用于產(chǎn)生隨機數(shù)并將產(chǎn)生的隨機數(shù)發(fā)送至所述接收端模塊。
第四步:所述上位機收取所有由所述FPGA回傳的隨機數(shù)數(shù)據(jù),并將收到的隨機數(shù)寫入文件。
第五步:對寫入所述文件的隨機數(shù)做隨機性檢測。
發(fā)明人發(fā)現(xiàn),根據(jù)本發(fā)明所述的基于單光子探測器的真隨機數(shù)源產(chǎn)生系統(tǒng)及方法,相對于傳統(tǒng)隨機數(shù)產(chǎn)生方法,本發(fā)明所述的系統(tǒng)和方法得到的隨機數(shù)隨機性更好,同時本發(fā)明所述的單光子探測器(SPD)的暗記數(shù)是完全真隨機的,暗記數(shù)水平可調(diào),得到的隨機數(shù)全部通過了國家密碼管理局《隨機性檢測規(guī)范》規(guī)定的針對真隨機數(shù)所需的15種算法檢測。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示意性實施例”、“示例”、“具體示例”或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術語 “相連”和“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是點連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領域的普通技術人員而言,可以具體情況理解上述術語在本發(fā)明中的具體含義。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型,同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處。