国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      產(chǎn)生隨機(jī)數(shù)據(jù)的制作方法

      文檔序號(hào):6353550閱讀:207來(lái)源:國(guó)知局
      專利名稱:產(chǎn)生隨機(jī)數(shù)據(jù)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及產(chǎn)生隨機(jī)數(shù)據(jù),例如,用在加密和驗(yàn)證系統(tǒng)中。
      背景技術(shù)
      多數(shù)加密和驗(yàn)證系統(tǒng)要求調(diào)用隨機(jī)數(shù),例如,用于產(chǎn)生驗(yàn)證期間的復(fù)雜問(wèn)題。這種例子是DES和RSA。在提供典型的安全等級(jí)系統(tǒng)中,要求的隨機(jī)數(shù)位長(zhǎng)度約在50至150的范圍內(nèi)。形成這類真隨機(jī)數(shù)的一種方法是數(shù)字化噪聲模擬值,例如,電壓電平,并利用數(shù)字化結(jié)果的最低有效位形成隨機(jī)數(shù)。然而,這種方法需要一些時(shí)間收集足夠多的位以形成典型加密系統(tǒng)所要求的這種長(zhǎng)度隨機(jī)數(shù)。所以,在大多數(shù)的情況下,取而代之的是利用產(chǎn)生偽隨機(jī)數(shù)的算法。這種算法產(chǎn)生的數(shù)據(jù)不是真隨機(jī)數(shù)據(jù),而是確定性數(shù)據(jù)。因此,這種方法有這樣一個(gè)缺點(diǎn),若算法及其籽值是已知的,則可以預(yù)測(cè)偽隨機(jī)數(shù),使第三方能夠解密或破譯驗(yàn)證方案。
      所以,需要一種能夠快速產(chǎn)生隨機(jī)數(shù)的方法,該隨機(jī)數(shù)有這樣的性質(zhì),不能根據(jù)以前的數(shù)據(jù)預(yù)測(cè)產(chǎn)生的下一個(gè)數(shù)據(jù)。

      發(fā)明內(nèi)容
      按照本發(fā)明的一個(gè)方面,提供一種產(chǎn)生隨機(jī)數(shù)據(jù)的方法,該方法包括重復(fù)地完成一系列操作,這一系列操作包括處理籽值以產(chǎn)生結(jié)果值,該結(jié)果值用作隨后一系列操作中的籽值,并產(chǎn)生輸出隨機(jī)數(shù)據(jù);其中這一系列操作還包括確定是否有預(yù)定數(shù)量新的真隨機(jī)數(shù)據(jù);若有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù)至少修改產(chǎn)生的結(jié)果值。
      按照本發(fā)明的第二方面,提供一種產(chǎn)生隨機(jī)數(shù)據(jù)的裝置,該裝置包括真隨機(jī)數(shù)據(jù)的數(shù)據(jù)源;存儲(chǔ)籽值的存儲(chǔ)器;和處理裝置,用于進(jìn)行一系列操作;這一系列操作包括處理籽值以產(chǎn)生存儲(chǔ)器中存儲(chǔ)的結(jié)果值,用作隨后進(jìn)行一系列操作中的籽值并產(chǎn)生輸出隨機(jī)數(shù)據(jù);其中這一系列操作還包括確定是否有預(yù)定數(shù)量新的真隨機(jī)數(shù)據(jù);若有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù)至少修改產(chǎn)生的結(jié)果值。
      最好是,所述修改步驟包括在產(chǎn)生結(jié)果值之前修改籽值。或者,修改步驟可以包括修改另一個(gè)籽值,或修改結(jié)果值。所述修改步驟最好包括對(duì)籽值中至少一些位與新的真隨機(jī)數(shù)據(jù)對(duì)應(yīng)位進(jìn)行異或運(yùn)算或加法運(yùn)算。籽值可以是單個(gè)變量的修改或者從一個(gè)變量到另一個(gè)變量的變換。
      輸出隨機(jī)數(shù)據(jù)最好是通過(guò)處理結(jié)果值產(chǎn)生的。
      通過(guò)至少部分是在隨機(jī)數(shù)發(fā)生器之外的隨機(jī)過(guò)程測(cè)量,合適地產(chǎn)生真隨機(jī)數(shù)據(jù),例如,通過(guò)比較兩個(gè)振蕩器的速率。
      最好是,僅僅一個(gè)振蕩器是晶控振蕩器。另一個(gè)振蕩器是可以安裝在集成電路上。最好是,與另一個(gè)振蕩器比較,一個(gè)振蕩器是更準(zhǔn)確和/或更穩(wěn)定和/或更不易受環(huán)境變化的影響。在另一個(gè)振蕩器的預(yù)定振蕩次數(shù)內(nèi),通過(guò)計(jì)數(shù)一個(gè)振蕩器的振蕩次數(shù),可以產(chǎn)生真隨機(jī)數(shù)據(jù)。最好是,所述另一個(gè)振蕩器是兩個(gè)振蕩器中較慢的振蕩器。
      真隨機(jī)數(shù)據(jù)可以是所述振蕩次數(shù)最低有效位中的1位或多位。


      參照附圖,借助于例子描述本發(fā)明,其中圖1是包括隨機(jī)數(shù)發(fā)生器的通信裝置方框圖;和圖2說(shuō)明用于產(chǎn)生隨機(jī)數(shù)的算法步驟。
      具體實(shí)施例方式
      圖1的裝置包括偽隨機(jī)數(shù)發(fā)生器1。圖示的隨機(jī)數(shù)發(fā)生器包含處理器2,該處理器包括通用處理硬件3;非易失性程序存儲(chǔ)器4,用于存儲(chǔ)處理硬件3的程序代碼;和易失性臨時(shí)存儲(chǔ)存儲(chǔ)器5,用于處理硬件進(jìn)行處理操作。然而,可以利用包括硬線處理設(shè)備和混合硬件/軟件實(shí)施例的任何合適數(shù)據(jù)處理裝置。偽隨機(jī)數(shù)發(fā)生器有輸入端6,借助于輸入端可以在輸出端7請(qǐng)求輸出隨機(jī)數(shù)據(jù)。隨機(jī)數(shù)發(fā)生器可以接入真隨機(jī)數(shù)據(jù)的數(shù)據(jù)源8。在該圖的實(shí)施例中,數(shù)據(jù)源8是在隨機(jī)數(shù)發(fā)生器之外,而且在通信裝置中有另一個(gè)功能。然而,數(shù)據(jù)源可以是在隨機(jī)數(shù)發(fā)生器之內(nèi)和/或可以具有形成隨機(jī)數(shù)據(jù)的專用功能。
      數(shù)據(jù)源8最好包括存儲(chǔ)真隨機(jī)位的存儲(chǔ)器10,隨機(jī)數(shù)發(fā)生器可以利用這些得到的真隨機(jī)位。隨機(jī)數(shù)發(fā)生器可以通過(guò)鏈路11接入該存儲(chǔ)器,用于確定有多少個(gè)真隨機(jī)位,讀出得到的真隨機(jī)位,和一旦利用其中的真隨機(jī)位之后,復(fù)位該存儲(chǔ)器。
      當(dāng)隨機(jī)數(shù)發(fā)生器1在輸入端6接收到隨機(jī)數(shù)據(jù)調(diào)用時(shí),處理裝置2進(jìn)行以下描述的一系列處理步驟以產(chǎn)生隨機(jī)數(shù)。然后,隨機(jī)數(shù)發(fā)生器在輸出端7輸出該隨機(jī)數(shù)。當(dāng)隨機(jī)數(shù)發(fā)生器被調(diào)用時(shí),處理裝置安排成接入臨時(shí)存儲(chǔ)器5中存儲(chǔ)的籽值,完成把籽值作為輸入的算法,并基于該籽值產(chǎn)生隨機(jī)數(shù)據(jù)和另一個(gè)籽值,存儲(chǔ)這個(gè)籽值用于該算法的下一次迭代。作為該算法的一部分,處理裝置確定是否能從數(shù)據(jù)源8得到新的真隨機(jī)數(shù)據(jù),這個(gè)新的真隨機(jī)數(shù)據(jù)在算法前一次迭代中還沒(méi)有使用過(guò)。若可以有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù),處理裝置修改本次迭代中原先采用的籽值,并利用修改的籽值作為本次迭代的基礎(chǔ);否則,利用原先采用的籽值作為本次迭代的基礎(chǔ)。按照這種方法,在得到真隨機(jī)數(shù)據(jù)時(shí),利用這個(gè)隨機(jī)數(shù)據(jù)使形成的隨機(jī)數(shù)據(jù)更隨機(jī)化,而不必等到真隨機(jī)數(shù)據(jù)可用時(shí)形成數(shù)據(jù)。這種方法有一個(gè)重要的優(yōu)點(diǎn),在輸出端7收集到足夠數(shù)據(jù)可以預(yù)測(cè)下一個(gè)輸出數(shù)據(jù)時(shí),籽值按照不可預(yù)測(cè)的方法發(fā)生了變化。
      現(xiàn)在描述可以利用的一個(gè)算法例子。
      在執(zhí)行該算法前,必須確定若干個(gè)常數(shù)值。在設(shè)計(jì)或構(gòu)造隨機(jī)數(shù)發(fā)生器時(shí),即,在系統(tǒng)建立時(shí),可以合適地確定這些常數(shù)值。這些常數(shù)值如以下所示N代表約為800的整數(shù)。
      L是可以從數(shù)據(jù)源8得到的若干個(gè)真隨機(jī)位。
      K1和K2是小的費(fèi)馬素?cái)?shù),例如,3,17,257和65537(K1和K2可以相等)。
      p1和p2是長(zhǎng)度為N/2的不同素?cái)?shù)。若“強(qiáng)-S-素?cái)?shù)”定義為素?cái)?shù)p,其中S是非負(fù)整數(shù),則p-1的強(qiáng)-(S-1)-素?cái)?shù)因子至少是p的位長(zhǎng)度的3/4,強(qiáng)-0-素?cái)?shù)就是素?cái)?shù);選取p1和p2為強(qiáng)-2-素?cái)?shù)。
      M是p1與p2的乘積。
      一旦計(jì)算了M,p1和p2最好被不可恢復(fù)地丟棄或高度保密地存儲(chǔ)。
      在進(jìn)行該算法時(shí)調(diào)用的這些常數(shù)值L,K1,K2和M最好存儲(chǔ)在非易失性存儲(chǔ)器4中。
      在算法的每次迭代中,籽值用作該算法的輸入。算法修改這個(gè)籽值,修改的籽值作為該算法下一次迭代的籽值。用作下一次迭代的籽值存儲(chǔ)在臨時(shí)存儲(chǔ)器5的特定位置9。算法需要的初始籽值是第一次迭代的輸入,調(diào)用初始籽值產(chǎn)生隨機(jī)數(shù)據(jù)。形成初始籽值的一種方法是,從數(shù)據(jù)源8中收集一系列隨機(jī)位,并把這些隨機(jī)位存儲(chǔ)在特定位置9中相繼位的位置。形成初始籽值的另一種方法是,在非易失性存儲(chǔ)器4中存儲(chǔ)另一個(gè)常數(shù)值;裝入該常數(shù)值到特定的位置9;然后,完成該算法的多次迭代,在調(diào)用相繼迭代時(shí),利用數(shù)據(jù)源8中的隨機(jī)數(shù)據(jù)修改籽值。當(dāng)啟動(dòng)通信裝置時(shí)(例如,在接通電源時(shí)),可以采用這些方法中任何一種方法,因此,隨機(jī)數(shù)發(fā)生器做好使用的準(zhǔn)備,它保持一個(gè)真隨機(jī)籽值。
      圖2表示該算法的流程圖。
      在調(diào)用該算法以產(chǎn)生隨機(jī)數(shù)時(shí),得到特定位置9中存儲(chǔ)的籽值(圖2中步驟30)。從特定位置得到的籽值作為變量x進(jìn)行存儲(chǔ)。然后,檢查存儲(chǔ)器10以發(fā)現(xiàn)數(shù)據(jù)源8中是否有L個(gè)真隨機(jī)位(步驟31)。
      若有L個(gè)真隨機(jī)位,則把這些隨機(jī)位裝入到變量z中并使存儲(chǔ)器11復(fù)位。然后,根據(jù)這些真隨機(jī)位,執(zhí)行該算法的步驟32以修改變量x。變量x的修改是設(shè)置它等于(xz)mod M其中符號(hào)代表x的L個(gè)預(yù)定位中每1位與z的對(duì)應(yīng)位進(jìn)行異或運(yùn)算。異或運(yùn)算的結(jié)果簡(jiǎn)約成模M,為了使它保持在該算法的算術(shù)界限內(nèi)。在系統(tǒng)建立時(shí)可以規(guī)定x中哪些位與z中哪些位進(jìn)行異或運(yùn)算。
      若沒(méi)有真隨機(jī)位,則不修改x。
      然后,產(chǎn)生從隨機(jī)數(shù)發(fā)生器輸出的隨機(jī)數(shù)據(jù),并作為變量v進(jìn)行存儲(chǔ)。變量v設(shè)置成等于xK1模M(步驟35)。v的值作為在輸出端7可以得到的隨機(jī)位。
      然后,在變量w中形成該算法下一次迭代的籽值,變量w設(shè)置成等于(x+1)K2模M(步驟33)。
      最后,w的值存儲(chǔ)到特定位置9用于代替以前的籽值,并允許它作為下一次迭代中x的初始值。
      取代籽值與真隨機(jī)位的的異或運(yùn)算,也可以利用其他的方法。例如,在適當(dāng)?shù)乃惴ㄖ?,可以根?jù)隨機(jī)數(shù)據(jù)修改輸入籽值之外的另一個(gè)籽值。具體地說(shuō),在以上的算法中,可以修改輸出籽值??梢岳卯惢蜻\(yùn)算以外的其他運(yùn)算,例如,算術(shù)位移或加法運(yùn)算。
      可以有多種產(chǎn)生真隨機(jī)數(shù)據(jù)的方法。這些例子包括使裝置中模擬傳感器的噪聲模擬值數(shù)字化,例如,溫度傳感器14中的電壓電平;或用戶在鍵盤16上各次按鍵之間的時(shí)間間隔。一種優(yōu)選的方法是利用一對(duì)振蕩器12,13,這兩個(gè)振蕩器有不同的短期準(zhǔn)確度水平,即,抖動(dòng)’,且最好有基本不同的速率。
      圖1的裝置是無(wú)線電通信裝置。振蕩器12是相對(duì)快速,相對(duì)準(zhǔn)確并有相對(duì)低抖動(dòng)的振蕩器。振蕩器12用于射頻調(diào)制傳輸信號(hào),它的合適頻率為幾十兆赫芝,例如,GSM基系統(tǒng)的13或26MHz。振蕩器13是較慢速,較不準(zhǔn)確并有較大抖動(dòng)的振蕩器,該振蕩器可用于快速振蕩器關(guān)斷時(shí)各個(gè)周期之間的間隔定時(shí)。振蕩器13的頻率可以是幾千赫芝。高準(zhǔn)確度振蕩器12適合于來(lái)自晶體的定時(shí),而低準(zhǔn)確度振蕩器13是基于簡(jiǎn)單的電阻和定容器電路,該電路可以是與處理器2相同的集成電路。因此,振蕩器12與振蕩器13的頻率之間很可能發(fā)生漂移,例如,由于溫度的變化和由于電阻器中熱噪聲的隨機(jī)起狀。
      為了產(chǎn)生隨機(jī)數(shù)據(jù),計(jì)數(shù)器16計(jì)數(shù)快速振蕩器在預(yù)定次數(shù)慢速振蕩器周期內(nèi)的翻轉(zhuǎn)次數(shù),這個(gè)預(yù)定次數(shù)最好是很小的數(shù)。所以,利用這些最低有效位中的1位或多位作為隨機(jī)數(shù)據(jù)。例如,在快速振蕩器的頻率為16MHz和慢速振蕩器的頻率為1kHz時(shí),在典型的條件下,可以利用這個(gè)計(jì)數(shù)的最低1位或2位作為隨機(jī)數(shù)據(jù)。這個(gè)計(jì)數(shù)是周期性進(jìn)行的,其結(jié)果位存儲(chǔ)在存儲(chǔ)器10中。因此,在完成計(jì)數(shù)之后,隨機(jī)數(shù)發(fā)生器可以有新的數(shù)據(jù)。在隨機(jī)數(shù)發(fā)生器上次調(diào)用之后還沒(méi)有完成計(jì)數(shù),則不能得到新的數(shù)據(jù),在此情況下,隨機(jī)數(shù)發(fā)生器仍然可以提供輸出數(shù)據(jù),因?yàn)樗梢源_定是否有新的真隨機(jī)數(shù)據(jù)。
      處理器可以是形成隨機(jī)數(shù)的專用裝置,或可以完成其他的功能。在后者的情況下,處理器產(chǎn)生的隨機(jī)數(shù)可以在該處理器隨后實(shí)施的其他操作中進(jìn)行處理。
      本發(fā)明可以包括此處暗示或明示公開(kāi)的任何特征或這些特征的組合,或任何的推廣,不管它是否與本申請(qǐng)的發(fā)明有關(guān)。鑒于以上的描述,顯而易見(jiàn),本領(lǐng)域?qū)I(yè)人員在本發(fā)明的范圍內(nèi)可以作各種改動(dòng)。
      權(quán)利要求
      1.一種產(chǎn)生隨機(jī)數(shù)據(jù)的方法,該方法包括重復(fù)地完成一系列操作;這一系列操作包括處理籽值以產(chǎn)生結(jié)果值,該結(jié)果值用作隨后一系列操作中的籽值,并產(chǎn)生輸出隨機(jī)數(shù)據(jù);其中這一系列操作還包括確定是否有預(yù)定數(shù)量新的真隨機(jī)數(shù)據(jù);和若有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù)至少修改產(chǎn)生的結(jié)果值。
      2.按照權(quán)利要求1的方法,其中所述修改步驟包括在產(chǎn)生結(jié)果值之前修改籽值。
      3.按照權(quán)利要求2的方法,其中所述修改步驟包括對(duì)籽值中至少一些位與新的真隨機(jī)數(shù)據(jù)對(duì)應(yīng)位進(jìn)行異或運(yùn)算。
      4.按照以上權(quán)利要求中任一個(gè)的方法,其中輸出隨機(jī)數(shù)據(jù)是通過(guò)處理結(jié)果值產(chǎn)生的。
      5.按照以上權(quán)利要求中任一個(gè)的方法,其中真隨機(jī)數(shù)據(jù)是通過(guò)比較兩個(gè)振蕩器的速率產(chǎn)生的。
      6.按照權(quán)利要求5的方法,其中僅僅一個(gè)振蕩器是晶控振蕩器。
      7.按照權(quán)利要求5或6的方法,其中在另一個(gè)振蕩器的預(yù)定振蕩次數(shù)內(nèi),通過(guò)計(jì)數(shù)一個(gè)振蕩器的振蕩次數(shù),產(chǎn)生真隨機(jī)數(shù)據(jù)。
      8.按照權(quán)利要求7的方法,其中真隨機(jī)數(shù)據(jù)是所述振蕩次數(shù)最低有效位中的1位或多位。
      9.按照權(quán)利要求7或8的方法,包括根據(jù)所述振蕩次數(shù)最高有效位中的至少1位,調(diào)整一個(gè)振蕩器的速率。
      10.按照權(quán)利要求5至9中任一個(gè)的方法,其中一個(gè)振蕩器的速率至少是另一個(gè)振蕩器速率的100倍。
      11.按照權(quán)利要求5至10中任一個(gè)的方法,其中一個(gè)振蕩器產(chǎn)生用于射頻調(diào)制或解調(diào)通信數(shù)據(jù)的信號(hào)。
      12.按照權(quán)利要求11的方法,其中另一個(gè)振蕩器產(chǎn)生用于空閑通信周期定時(shí)的信號(hào)。
      13.一種產(chǎn)生隨機(jī)數(shù)據(jù)的裝置,該裝置包括真隨機(jī)數(shù)據(jù)的數(shù)據(jù)源;存儲(chǔ)籽值的存儲(chǔ)器;和處理裝置,用于進(jìn)行一系列操作,這一系列操作包括處理籽值以產(chǎn)生存儲(chǔ)器中存儲(chǔ)的結(jié)果值,用作隨后一系列操作中的籽值,并產(chǎn)生輸出隨機(jī)數(shù)據(jù);其中這一系列操作還包括確定是否有預(yù)定數(shù)量新的真隨機(jī)數(shù)據(jù);和若有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù),至少修改產(chǎn)生的結(jié)果值。
      14.一種包括權(quán)利要求13所述的裝置的通信裝置。
      15.一種產(chǎn)生隨機(jī)數(shù)據(jù)的方法,該方法基本上是參照附圖所描述的方法。
      16.一種產(chǎn)生隨機(jī)數(shù)據(jù)的裝置,該裝置基本上是參照附圖所描述的裝置。
      全文摘要
      一種產(chǎn)生隨機(jī)數(shù)據(jù)的方法,該方法包括重復(fù)地完成一系列操作;這一系列操作包括處理籽值以產(chǎn)生結(jié)果值,該結(jié)果值用作隨后一系列操作中的籽值,并產(chǎn)生輸出隨機(jī)數(shù)據(jù);其中這一系列操作還包括確定是否有預(yù)定數(shù)量新的真隨機(jī)數(shù)據(jù),和若有這種數(shù)據(jù),則根據(jù)新的真隨機(jī)數(shù)據(jù)至少修改產(chǎn)生的結(jié)果值。
      文檔編號(hào)G06F7/58GK1488094SQ02803935
      公開(kāi)日2004年4月7日 申請(qǐng)日期2002年1月28日 優(yōu)先權(quán)日2001年2月5日
      發(fā)明者詹姆斯·迪格比·亞萊特·考理爾, 詹姆斯 迪格比 亞萊特 考理爾 申請(qǐng)人:劍橋硅無(wú)線有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1