光學(xué)隨機(jī)數(shù)生成器及用于生成隨機(jī)數(shù)的方法
【技術(shù)領(lǐng)域】
[0001]本公開內(nèi)容一般涉及光學(xué)隨機(jī)數(shù)生成器以及用于生成隨機(jī)數(shù)的方法。
【背景技術(shù)】
[0002]隨機(jī)數(shù)在許多應(yīng)用中是必不可少的。例如,已知的是將隨機(jī)數(shù)用于密碼或加密密鑰的生成、用于博彩等。
[0003]通常情況下,由于偽隨機(jī)數(shù)易于通過(guò)執(zhí)行相應(yīng)的計(jì)算算法而生成,因此偽隨機(jī)數(shù)被用于許多應(yīng)用中。然而,特別是對(duì)于安全性相關(guān)的應(yīng)用,真隨機(jī)數(shù)被越來(lái)越多地使用,真隨機(jī)數(shù)是在預(yù)計(jì)將是隨機(jī)的物理現(xiàn)象的基礎(chǔ)上生成的。
[0004]真隨機(jī)數(shù)生成器是已知的。它們基于物理機(jī)制,諸如來(lái)自環(huán)形振蕩器的熱致抖動(dòng),塊RAM寫入沖撞,并且可以利用例如光學(xué)效應(yīng)。
[0005]雖然存在用于生成真隨機(jī)數(shù)的技術(shù),但通常希望提高真隨機(jī)數(shù)的產(chǎn)生。
【發(fā)明內(nèi)容】
[0006]根據(jù)第一方面,本公開內(nèi)容提供了一種光學(xué)隨機(jī)數(shù)生成器。光學(xué)隨機(jī)數(shù)生成器包括:光源,被配置為隨機(jī)地發(fā)射光子;單光子雪崩二極管陣列,被配置為檢測(cè)由光源提高的光子,其中,單光子雪崩二極管陣列被放置在距離光源的預(yù)定距離處;以及控制裝置,耦接至單光子雪崩二極管陣列??刂蒲b置被配置為確定由單光子雪崩二極管陣列中的每個(gè)單光子雪崩二極管所檢測(cè)出的光子的到達(dá)時(shí)間??刂蒲b置還被配置為基于到達(dá)時(shí)間生成隨機(jī)數(shù)。
[0007]根據(jù)第二方面,本公開內(nèi)容提供了一種用于生成隨機(jī)數(shù)的方法。該方法包括:控制光源隨機(jī)地發(fā)射光子;控制單光子雪崩二極管陣列以檢測(cè)由光源提供的光子,其中,單光子雪崩二極管陣列被放置在距離光源的預(yù)定距離處;確定由單光子雪崩二極管陣列中的每個(gè)單光子雪崩二極管所檢測(cè)出的光子的到達(dá)時(shí)間;以及基于到達(dá)時(shí)間生成隨機(jī)數(shù)。
[0008]其他方面在從屬權(quán)利要求、以下書面說(shuō)明以及附圖中進(jìn)行闡述。
【附圖說(shuō)明】
[0009]通過(guò)參照附圖的示例方式說(shuō)明了實(shí)施方式,在附圖中:
[0010]圖1a示例性地示出了基于到達(dá)時(shí)間生成隨機(jī)數(shù)的第一過(guò)程;
[0011]圖1b示例性地示出了基于到達(dá)時(shí)間生成隨機(jī)數(shù)的第二過(guò)程;
[0012]圖2示意性地示出了真隨機(jī)數(shù)生成器的實(shí)施方式;以及
[0013]圖3示出了用于生成真隨機(jī)數(shù)的方法的流程圖。
【具體實(shí)施方式】
[0014]在參照?qǐng)D1詳細(xì)描述實(shí)施方式之前,先進(jìn)行概要說(shuō)明。
[0015]如以上所討論的,在許多應(yīng)用中隨機(jī)數(shù)是必須的,例如,用于密碼或加密密鑰生成、用于博彩等。
[0016]如在開始所提到的,由于偽隨機(jī)數(shù)很容易使用可由處理器執(zhí)行的計(jì)算算法來(lái)生成,因此偽隨機(jī)數(shù)被用于許多應(yīng)用中。當(dāng)使用算法生成偽隨機(jī)數(shù)時(shí),如果所有的種子值是已知的,原則上它們是可被預(yù)測(cè)的。
[0017]與之相反,由于真隨機(jī)數(shù)是基于物理現(xiàn)象的,因此真隨機(jī)數(shù)是不可預(yù)測(cè)的。
[0018]在本實(shí)施方式中,光子發(fā)射的量子性質(zhì)被用于生成真隨機(jī)數(shù)。
[0019]光學(xué)(真)隨機(jī)數(shù)生成器包括:光源,被配置為隨機(jī)地發(fā)射光子;單光子雪崩二極管陣列,被配置為檢測(cè)由光源提高的光子,其中,單光子雪崩二極管陣列被放置成與光源成預(yù)定距離;以及控制裝置,耦接至單光子雪崩二極管陣列??刂蒲b置被配置為確定由單光子雪崩二極管陣列的每個(gè)單光子雪崩二極管所檢測(cè)出的光子的到達(dá)時(shí)間并且基于到達(dá)時(shí)間生成隨機(jī)數(shù)。
[0020]因?yàn)榘l(fā)射過(guò)程是量子過(guò)程,所以光源使用光子的量子性質(zhì),并因此預(yù)計(jì)是隨機(jī)的。光源可以包括例如輝光燈絲、發(fā)光二極管(在下文中還被稱為“LED”)、激光二極管、熒光燈或被配置為根據(jù)泊松分布(即,隨機(jī)地并且彼此獨(dú)立地發(fā)射單光子)發(fā)射光子的其他光單元。與輝光燈絲相反,發(fā)光二極管和激光二極管可以具有在其中發(fā)射光子的較小的波長(zhǎng)帶寬。在光源包括輝光燈絲的情況下,為了縮小發(fā)射光子的波長(zhǎng)帶寬,可以設(shè)置濾光器元件等。光源還可以包括多個(gè)輝光燈絲、LED、和/或激光二極管或其他合適的光子發(fā)射單元。
[0021]在一些實(shí)施方式中,光源被調(diào)諧,即,可以調(diào)諧光源的強(qiáng)度和/或波長(zhǎng)或者其他參數(shù),使得光源每時(shí)間間隔發(fā)射具有預(yù)定波長(zhǎng)或位于波長(zhǎng)的預(yù)定范圍內(nèi)的預(yù)定數(shù)量的光子。而且,光源被配置為發(fā)射彼此(基本)不相關(guān)的光子。例如,在激光二極管的情況下,已知的是,激光二極管的頻率噪聲可以用于真隨機(jī)數(shù)生成。
[0022]單光子雪崩二極管陣列包括多個(gè)單光子雪崩二極管(在下文中還被稱為“SPAD”)。SPAD可以是固態(tài)光探測(cè)器(基于半導(dǎo)體的),其中光生載流子由于碰撞電離機(jī)制而觸發(fā)雪崩電流。在一些實(shí)施方式中,因?yàn)镾PAD可以檢測(cè)單光子并且每個(gè)SPAD可以輸出所檢測(cè)的光子的到達(dá)時(shí)間,因此SPAD可以檢測(cè)低強(qiáng)度信號(hào)。通常,SPAD可輸出的所檢測(cè)的光子的到達(dá)時(shí)間具有幾十皮秒的抖動(dòng)。
[0023]SPAD與雪崩光電二極管類似地利用反向偏置p-n結(jié)的雪崩電流來(lái)檢測(cè)入射光子。與用于蓋革計(jì)數(shù)器的情況相似,SPAD可以被具體設(shè)計(jì)為利用高于擊穿電壓的反向偏置電壓進(jìn)行操作。該操作模式因此也稱與蓋革計(jì)數(shù)器類似的“蓋革模式”。因?yàn)楸绢I(lǐng)域的技術(shù)人員通常已知SPAD以及SPAD陣列,因此在下文中省略了它們更詳細(xì)的描述。
[0024]SPAD陣列(在下文中還被稱為SPAD陣列)可以包括至少兩個(gè)SPAD,但是還可以包括多于兩個(gè),例如2乘以2(即,4個(gè))、4乘以4(即,16個(gè))、2乘以4(即,8個(gè))或者其他數(shù)量的SPAD。SPAD在SPAD陣列中可以成行成列的排列,其中,可以水平地布置行并且可以垂直地布置列。
[0025]SPAD陣列定位成與光源成預(yù)定距離,其中,該距離可以是固定的,使得從光源發(fā)射的光子傳播恒定距離后到達(dá)SPAD陣列中的單個(gè)SPAD。SPAD陣列可以具有平面形狀并且可以布置使得其關(guān)于地面垂直,本公開內(nèi)容不限于垂直布置。光源具有可以比SPAD陣列的直徑大(很多)的直徑,使得從光源發(fā)射的所有光子基本以平行的方式到達(dá)SPAD陣列處,并且使得所有光子在光源和SPAD陣列之間傳播了基本相同的距離。
[0026]每個(gè)SPAD —旦檢測(cè)到光子,就輸出到達(dá)時(shí)間。到達(dá)時(shí)間可以包括時(shí)間值,但是它還可以僅包括指示通過(guò)各個(gè)SPAD檢測(cè)的光子的二進(jìn)制值。在一些實(shí)施方式中,SPAD陣列還可以包括表示檢測(cè)光子的特定的SPAD的數(shù)字或坐標(biāo)。
[0027]光學(xué)隨機(jī)數(shù)生成器包括耦接至單光子雪崩二極管陣列的控制裝置。在下文中,描述了控制裝置的功能性。然而,以下說(shuō)明完全適用于有關(guān)用于,例如使用本文中所描述的光學(xué)隨機(jī)數(shù)生成器生成(真)量子隨機(jī)數(shù)的方法的實(shí)施方式。
[0028]控制裝置可以包括處理器、微處理器、CPU等,并且它還可以包括以下參照附圖所說(shuō)明的其他單元。
[0029]控制裝置確定由單光子雪崩二極管陣列中的每個(gè)單光子雪崩二極管所檢測(cè)的光子的到達(dá)時(shí)間并且基于到達(dá)時(shí)間生成(真)隨機(jī)數(shù)。
[0030]因?yàn)樗傻碾S機(jī)數(shù)基于光源的光子的隨機(jī)發(fā)射,因此它有望成為真隨機(jī)數(shù)。
[0031 ] SPAD陣列可以通過(guò)單個(gè)數(shù)據(jù)線被耦接至控制裝置,通過(guò)該單個(gè)數(shù)據(jù)線可以將單個(gè)SPAD的所有到達(dá)時(shí)間信號(hào)傳輸至控制裝置。可替代地,SPAD陣列的所有SPAD可以使用自己的數(shù)據(jù)線耦接至控制裝置。在又一實(shí)施方式中,還實(shí)施數(shù)據(jù)線連接的混合線(mixture)。例如,SPAD陣列中的每行的SPAD經(jīng)由自己的線被耦接至控制裝置等。
[0032]通過(guò)SPAD陣列傳輸?shù)牡竭_(dá)時(shí)間信號(hào)可以是模擬的和/或數(shù)字的。
[0033]可以基于由SPAD陣列中的同一 SPAD所檢測(cè)的和/或由SPAD陣列中的兩個(gè)不同SPAD所檢測(cè)的兩個(gè)不同光子的兩個(gè)連續(xù)的到達(dá)時(shí)間的時(shí)序信息來(lái)生成隨機(jī)數(shù)。如以上所討論的,一旦檢測(cè)到光子,SPAD陣列中的各個(gè)SPAD將到達(dá)時(shí)間信號(hào)傳輸至控制裝置。根據(jù)兩個(gè)連續(xù)光子的兩個(gè)連續(xù)到達(dá)時(shí)間的時(shí)間差可以生成隨機(jī)數(shù)。如所