国产精品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>

      用于生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)生成器的制作方法

      文檔序號:6419580閱讀:424來源:國知局
      專利名稱:用于生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)生成器的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于生成在密碼通信和數(shù)字簽名中使用的偽隨機(jī)數(shù)的方法,用于生成偽隨機(jī)數(shù)的偽隨機(jī)數(shù)生成器和程序。
      背景技術(shù)
      通常情況下,倘若通過導(dǎo)線或者無線電來完成信息通信,則要在信息加密之后對其進(jìn)行發(fā)送,以便不將其內(nèi)容泄漏給第三方。加密系統(tǒng)包括流密碼系統(tǒng)。在流密碼系統(tǒng)中,發(fā)送和接收側(cè)產(chǎn)生彼此相同的偽隨機(jī)數(shù),以及發(fā)送側(cè)通過使用偽隨機(jī)數(shù)的比特串和明文比特串準(zhǔn)備密碼比特串,以將比特串作為密碼發(fā)送到接收側(cè),同時接收側(cè)接收所述比特串的密碼,并且通過使用密碼比特串和偽隨機(jī)數(shù)比特串來找到明文比特串,以將所述比特串解密為明文。
      圖16是用于說明常規(guī)的流密碼系統(tǒng)的圖形。發(fā)送側(cè)的加密設(shè)備100具有偽隨機(jī)數(shù)生成器101和邏輯運算處理部102,接收側(cè)的解密設(shè)備110具有偽隨機(jī)數(shù)生成器111和邏輯運算處理部112。
      加密設(shè)備100的偽隨機(jī)數(shù)生成器101和解碼設(shè)備110的偽隨機(jī)數(shù)生成器111具有一種邏輯結(jié)構(gòu),其中一個給定的密鑰生成了彼此相同的偽隨機(jī)數(shù)。加密設(shè)備100的邏輯運算處理部102和解碼設(shè)備110的邏輯運算處理部112以比特為單位來執(zhí)行異或運算處理。
      圖17是用于說明加密設(shè)備100的偽隨機(jī)數(shù)生成器101的圖形。然而,解密設(shè)備110的偽隨機(jī)數(shù)生成器111具有與加密設(shè)備100的偽隨機(jī)數(shù)生成器101相同的結(jié)構(gòu),所以將省略對其詳細(xì)的說明。
      如圖17所示,偽隨機(jī)數(shù)生成器101是非線性組合型偽隨機(jī)數(shù)生成器(非線性組合器生成器),并且具有彼此成排布置的多個線性反饋移位寄存器(LFSR)103和非線性轉(zhuǎn)換部104,其非線性地轉(zhuǎn)換從各個線性反饋移位寄存器103輸出的比特串,以生成偽隨機(jī)數(shù)。在這種常規(guī)的例子中,各個線性反饋移位寄存器103通過一次移位運算輸出一個比特(X1、X2、……XL),同時非線性轉(zhuǎn)換部104基于從各個線性反饋移位寄存器103輸入的比特串輸出一個比特的偽隨機(jī)數(shù)。
      圖18是用于簡單地說明線性反饋移位寄存器103的常規(guī)結(jié)構(gòu)的圖形。該線性反饋移位寄存器103具有能夠存儲一個比特信息的多個移位寄存器105和多個異或運算電路106,以及在各個移位寄存器105的輸出端和其中一個異或運算電路106的輸入端之間連有反饋分接頭(tap)107。在反饋分接頭107(cn-1、cn-2、……cn)中,如果各個反饋分接頭為“1”,則其表示連接;而如果為“0”,則表示斷開,同時要提前確定各個分接頭是“1”還是“0”。
      如果移位寄存器105的數(shù)量為“n”(n為多數(shù)(plurality)),則大家都知道其中一個移位寄存器105具有(2^n)-1的輸出序列的最大周期。該輸出序列稱為M序列。“(2^n)”項表示2n(按2的n次冪增加)。下面將描述在指數(shù)部分之前的符號“^”。
      例如,就圖17中示出的線性反饋寄存器103來說,生成M序列的特征多項式表示如下C(x)=(X^n)+cn-1(X^(n-1))+……+c1X+1在特征多項式第一項中的指數(shù)n表示線性反饋寄存器103的階數(shù),即移位寄存器的數(shù)量。在第二或更多項中的指數(shù)表示反饋分接頭107的連接位置。如果將特征多項式設(shè)置為原多項式,則該線性反饋移位寄存器103輸出M序列。
      可以通過基于以比特為單位的邏輯運算的簡單邏輯來構(gòu)造這種非線性組合器型偽隨機(jī)數(shù)生成器(非線性組合器生成器)。所以考慮適合于將該生成器安裝到硬件中。
      已經(jīng)建議了基于諸如異或這樣的運算處理來改變線性反饋移位寄存器的輸出,例如在JA06-342257中進(jìn)行了描述。

      發(fā)明內(nèi)容
      要解決的第一個問題然而,可以通過對線性反饋移位寄存器的輸出進(jìn)行超過移位數(shù)兩倍的觀測來指定線性反饋移位寄存器103的構(gòu)造(即移位寄存器的數(shù)量和連接的位置),以及初態(tài)值。所以,如果實際上將結(jié)構(gòu)固定的線性反饋移位寄存器103用作偽隨機(jī)數(shù)生成器101,則存在諸如弱加密強(qiáng)度(encryptionstrength)(密碼強(qiáng)度)和差的安全性(poor security)這樣的問題。
      此外,在線性反饋移位寄存器103中,當(dāng)根據(jù)特征多項式的變化來改變所述寄存器的位置和連接數(shù)時,容易將該線性反饋移位寄存器的輸出從M序列(M-序列)改變?yōu)楸萂序列更短的短周期(short-period),從而引起強(qiáng)度的減少。所以,應(yīng)當(dāng)將特征多項式固定為輸出M序列的值,為此要考慮不可以輕易地改變線性反饋移位寄存器的構(gòu)造。
      要解決的第二個問題在常規(guī)的非線性組合器型偽隨機(jī)數(shù)生成器中,要求線性反饋移位寄存器103重復(fù)并連續(xù)地僅以單一的比特來執(zhí)行運算。這種處理適合于硬件來運行,硬件可以以相對高的速度來執(zhí)行處理。但是,該處理對于相比較硬件來說以極低的速度進(jìn)行處理的軟件而言存在弱點。
      在非線性轉(zhuǎn)換部104中,執(zhí)行諸如邏輯相乘和異或這樣的簡單運算。因此,線性反饋移位寄存器103的吞吐量小于非線性轉(zhuǎn)換部104的吞吐量,所以在整個生成器(即線性反饋移位寄存器103)中的輸出隨機(jī)數(shù)比特串的部分構(gòu)成了一個障礙。因此,當(dāng)以軟件來配置常規(guī)的非線性組合器型偽隨機(jī)數(shù)生成器時,與以硬件來配置的生成器相比較減少了整個吞吐量。以軟件形式來使用該生成器非常困難。
      此外,為了獲得偽隨機(jī)數(shù)的充分的加密強(qiáng)度,要求多個線性反饋移位寄存器103的數(shù)量和該線性反饋移位寄存器103的移位寄存器105的數(shù)量超過特定水平。但是,吞吐量會隨著線性反饋移位寄存器103的數(shù)量或該線性反饋移位寄存器103的移位寄存器105的數(shù)量的增加而降低。所以,很難在保持高加密強(qiáng)度的同時獲得高吞吐量。
      本發(fā)明用來解決上面提到的要解決的第一和第二個問題的至少其中一個。本發(fā)明的目的是提供一種用于生成偽隨機(jī)數(shù)的方法和程序以及一種偽隨機(jī)數(shù)生成器,在所述偽隨機(jī)數(shù)生成器中,在保持高加密強(qiáng)度的同時可以容易并動態(tài)地改變線性反饋移位寄存器的構(gòu)造,并且在充分地保持高加密強(qiáng)度的同時可以獲得較高的吞吐量。
      權(quán)利要求1中所述的用于生成偽隨機(jī)數(shù)的方法包括第一步驟,建立線性反饋移位寄存器的初態(tài)值,所述線性反饋移位寄存器包括n個移位電阻器(shift resistor)并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串;第二步驟,借助于預(yù)定的運算處理、基于所述初態(tài)值來找到與每個線性反饋移位寄存器周期的比特數(shù)互為素數(shù)的導(dǎo)出值;第三步驟,將所述導(dǎo)出值乘以一個值來計算要從第一線性反饋移位寄存器輸出的比特數(shù)(比特串的),該值是通過兩倍或多倍于每個周期的比特數(shù)而得到的;第四步驟,基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串;第五步驟,從每個導(dǎo)出值的輸出比特串中取出一個比特,以生成新比特串;第六步驟,改變所述線性反饋移位寄存器的結(jié)構(gòu),以便可以從所述電阻器輸出新比特串;以及第七步驟,基于所述初態(tài)值,從結(jié)構(gòu)已改變的所述線性反饋移位寄存器中生成偽隨機(jī)數(shù)。
      在本發(fā)明中,當(dāng)M序列的每一個周期的比特數(shù)(=(2^n)-1)與導(dǎo)出值(s)互為素數(shù)時,通過對各個數(shù)s(every the number s)進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,本發(fā)明用于一種情況,即可以根據(jù)具有至少兩個周期的比特數(shù)的比特串來獲得線性反饋移位寄存器。
      根據(jù)本發(fā)明,建立線性反饋移位寄存器的初態(tài)值,所述線性反饋移位寄存器具有n個移位電阻器,并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串,以及借助于預(yù)定運算處理來確定基于初態(tài)值的一個導(dǎo)出值,該導(dǎo)出值與線性反饋移位寄存器的每個周期的比特數(shù)互為素數(shù)。
      接下來,將所述導(dǎo)出值乘以一個值來計算要從第一線性反饋移位寄存器輸出的比特數(shù),該值是通過兩倍或多倍于每個周期的比特數(shù)而得到的,基于初態(tài)值從線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串,同時針對每個導(dǎo)出值從輸出比特串中取出一個比特,以生成一個新的比特串。
      然后,重新構(gòu)建線性反饋移位寄存器,使得可以從電阻器輸出所述新的比特串,并且基于初態(tài)值從重新構(gòu)建的線性反饋移位寄存器來生成偽隨機(jī)數(shù)。
      根據(jù)該方法,可以基于初態(tài)值動態(tài)地改變線性反饋移位寄存器的結(jié)構(gòu),同時可以從被改變的線性反饋移位寄存器輸出M序列比特串。因此,密碼分析人員在基于從偽隨機(jī)數(shù)生成器輸出的偽隨機(jī)數(shù)進(jìn)行重新構(gòu)建之前,不能夠獲得所述線性反饋移位寄存器的結(jié)構(gòu),并且也不能對初態(tài)值和密鑰進(jìn)行密碼分析。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
      權(quán)利要求2中所述發(fā)明的特征在于在權(quán)利要求1的用于生成偽隨機(jī)數(shù)的方法中,通過散列函數(shù)對所述初態(tài)值進(jìn)行處理,以找到其散列值,以便將最接近于該散列值的一個素數(shù)用作所述導(dǎo)出數(shù)。
      根據(jù)本發(fā)明,由于通過散列函數(shù)對所述初態(tài)值進(jìn)行處理來找到其散列值,以將最接近于該散列值的一個素數(shù)用作所述導(dǎo)出數(shù),所以可能增加了估計所述導(dǎo)出值的難度,從而可以進(jìn)一步增加信息的機(jī)密性。
      權(quán)利要求3中所述發(fā)明的特征在于在權(quán)利要求1或2的用于生成偽隨機(jī)數(shù)的方法中,使用Berlekamp-Massay算法來執(zhí)行線性反饋移位寄存器的重新構(gòu)建。
      本發(fā)明使用可以從具有至少兩個周期的比特數(shù)的比特串中獲得線性反饋移位寄存器的Berlekamp-Massay算法。
      權(quán)利要求4中所述發(fā)明的特征在于在權(quán)利要求1到3的用于生成偽隨機(jī)數(shù)的方法中,所述方法包括第八步驟,使第七步驟中生成的偽隨機(jī)數(shù)經(jīng)歷非線性轉(zhuǎn)換。
      根據(jù)本發(fā)明,對所生成的偽隨機(jī)數(shù)進(jìn)行非線性轉(zhuǎn)換,從而可以將非線性特性提供給所述偽隨機(jī)數(shù),這增強(qiáng)了加密強(qiáng)度。
      權(quán)利要求5中所述的本發(fā)明的偽隨機(jī)數(shù)生成器包括具有n個移位電阻器并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串的線性反饋移位寄存器;基于密鑰來建立線性反饋移位寄存器初態(tài)值的裝置;借助于預(yù)定運算處理、基于初態(tài)值來找到導(dǎo)出值的裝置,所述導(dǎo)出值與每個線性反饋移位寄存器周期的比特數(shù)互為素數(shù);將所述導(dǎo)出值乘以一個值來計算要從第一線性反饋移位寄存器輸出的比特數(shù)(比特串的)的裝置,該值是通過兩倍或多倍于每個周期的比特數(shù)而得到的;基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串的裝置;從每個導(dǎo)出值的輸出比特串中取出一個比特以生成新比特串的裝置;重新構(gòu)建所述線性反饋移位寄存器,使得可以從所述電阻器輸出新比特串的裝置;以及基于所述初態(tài)值,從重新構(gòu)建的所述線性反饋移位寄存器中生成偽隨機(jī)數(shù)的裝置。
      在本發(fā)明中,當(dāng)M序列的每一個周期的比特數(shù)(=(2^n)-1)與導(dǎo)出值(s)互為素數(shù)時,通過對各個數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,本發(fā)明用于一種情況,即可以根據(jù)具有至少兩個周期的比特數(shù)的比特串來確定線性反饋移位寄存器。
      根據(jù)本發(fā)明,建立線性反饋移位寄存器的初態(tài)值,所述線性反饋移位寄存器具有n個移位電阻器,并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串,以及借助于預(yù)定運算處理來確定基于初態(tài)值的一個導(dǎo)出值,該導(dǎo)出值與線性反饋移位寄存器的每個周期的比特數(shù)互為素數(shù)。
      接下來,將所述導(dǎo)出值乘以一個值來計算要從第一線性反饋移位寄存器輸出的比特數(shù),該值是通過兩倍或多倍于相應(yīng)于每個周期的比特數(shù)而得到的,基于初態(tài)值從線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串,同時針對每個導(dǎo)出值都從輸出比特串中取出一個比特,以生成一個新的比特串。
      然后,重新構(gòu)建線性反饋移位寄存器的結(jié)構(gòu),使得可以從電阻器輸出所述新的比特串,并且基于初態(tài)值從重新構(gòu)建的線性反饋移位寄存器生成偽隨機(jī)數(shù)。
      根據(jù)該方法,可以基于初態(tài)值動態(tài)地改變線性反饋移位寄存器的結(jié)構(gòu),同時可以從被改變的線性反饋移位寄存器輸出M序列比特串。因此,密碼分析人員在基于從偽隨機(jī)數(shù)生成器輸出的偽隨機(jī)數(shù)進(jìn)行改變之前,不能夠獲得所述線性反饋移位寄存器的結(jié)構(gòu),并且也不能對初態(tài)值和密鑰進(jìn)行密碼分析。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
      在權(quán)利要求5的偽隨機(jī)數(shù)生成器中,權(quán)利要求6所述的本發(fā)明的特征在于所述生成器進(jìn)一步具有用于生成第二線性反饋移位寄存器的裝置,來代替用于改變線性反饋移位寄存器結(jié)構(gòu)的裝置,所述第二線性反饋移位寄存器的裝置具有能夠輸出新比特串的結(jié)構(gòu);以及所述用于生成偽隨機(jī)數(shù)的裝置基于初態(tài)值從第二線性反饋移位寄存器生成偽隨機(jī)數(shù)。
      根據(jù)本發(fā)明,可以將所述線性反饋移位寄存器劃分為兩個電阻器,即第一線性反饋移位電阻器和第二線性反饋移位電阻器,這會帶來機(jī)密性的增強(qiáng)。
      權(quán)利要求7中所述本發(fā)明的偽隨機(jī)數(shù)生成器,包括基于密鑰來輸出一個具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中(預(yù)先)記錄有多個放大隨機(jī)比特串,這些隨機(jī)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特數(shù)。
      能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串(即用于選擇的隨機(jī)數(shù)比特串),從所述隨機(jī)數(shù)表內(nèi)的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)放大的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的;以及借助非線性函數(shù)對所述放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換以輸出偽隨機(jī)數(shù)的裝置(非線性轉(zhuǎn)換裝置),所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置來選擇的。
      根據(jù)本發(fā)明,由于基于密鑰對具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串進(jìn)行輸出,以及通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串、從位于所述多個隨機(jī)數(shù)表內(nèi)的放大隨機(jī)數(shù)比特串中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所以可以基于具有少量比特數(shù)的所述選擇性使用的隨機(jī)數(shù)比特串來獲得具有較多比特數(shù)的所述放大隨機(jī)數(shù)比特串。
      因此,可以極大地增加輸入到非線性轉(zhuǎn)換裝置中的比特串的比特數(shù)。所以,可以增加用于輸出隨機(jī)數(shù)比特串的裝置的吞吐量(迄今為止其構(gòu)成了障礙),該吞吐量在與非線性轉(zhuǎn)換裝置相比較的上游側(cè)提供,并且使其增強(qiáng)并接近于非線性轉(zhuǎn)換裝置的吞吐量,這會帶來整個偽隨機(jī)數(shù)生成器的吞吐量的增加。
      在權(quán)利要求7的偽隨機(jī)數(shù)生成器中,權(quán)利要求8所述的本發(fā)明的特征在于所述生成器進(jìn)一步具有通過給定密鑰來生成放大隨機(jī)數(shù)比特串、將所述比特串存儲到隨機(jī)數(shù)表中、并且執(zhí)行隨機(jī)數(shù)的初始設(shè)置的裝置。
      根據(jù)本發(fā)明,通過給定密鑰來生成放大隨機(jī)數(shù)比特串,將所述比特串存儲到隨機(jī)數(shù)表中,并且執(zhí)行隨機(jī)數(shù)表的初始設(shè)置,所以可以根據(jù)密鑰的改變來改變隨機(jī)數(shù)表中的初態(tài)值。因此可以增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求7或8的偽隨機(jī)數(shù)生成器中,權(quán)利要求9所述的本發(fā)明的特征在于提供多個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,提供隨機(jī)數(shù)表以便與各個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串、從所述隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表分別相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出的,以及用于非線性轉(zhuǎn)換的裝置通過借助于非線性函數(shù)、利用各個用于生成放大隨機(jī)比特串的裝置對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
      根據(jù)本發(fā)明,通過參考使用各個選擇性使用的隨機(jī)數(shù)比特串的隨機(jī)數(shù)表,從用于輸出選擇性使用的隨機(jī)數(shù)比特串的各個裝置輸出所述選擇性使用的隨機(jī)數(shù)比特串,并且通過參考非線性函數(shù),對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出隨機(jī)數(shù)。因此,可以增強(qiáng)輸出隨機(jī)數(shù)比特串部分的吞吐量(迄今為止其構(gòu)成了障礙),這會帶來整個偽隨機(jī)數(shù)生成器的吞吐量的增加。
      在權(quán)利要求9的偽隨機(jī)數(shù)生成器中,權(quán)利要求10所述的本發(fā)明的特征在于相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置來提供多個隨機(jī)數(shù)表,以及所述生成器進(jìn)一步具有,用于使各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算的裝置,該放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個隨機(jī)數(shù)表中選擇的。
      根據(jù)本發(fā)明,使從各個隨機(jī)數(shù)表選擇的各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算。因此,與使用實際上從生成放大隨機(jī)數(shù)比特串的裝置輸出的隨機(jī)數(shù)比特串的情形相比較,經(jīng)歷了異或運算的所述比特串可以增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求9或10的偽隨機(jī)數(shù)生成器中,權(quán)利要求11所述的本發(fā)明的特征在于所述生成器進(jìn)一步具有以預(yù)定時間來彼此替換隨機(jī)數(shù)表的裝置。
      根據(jù)本發(fā)明,由于可以以預(yù)定時間來彼此替換隨機(jī)數(shù)表,所以可以改變用于參考的隨機(jī)數(shù)表,與固定隨機(jī)數(shù)表的使用相比較,這可能增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求11的偽隨機(jī)數(shù)生成器中,權(quán)利要求12所述的本發(fā)明的特征在于每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
      本發(fā)明示出了在權(quán)利要求12的偽隨機(jī)數(shù)生成器中的預(yù)定時間的一個例子。根據(jù)本發(fā)明,由于每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,都要彼此替換隨機(jī)數(shù)表,所以可以以短的時間間隔來改變用于參考的隨機(jī)數(shù)表,這可以進(jìn)一步增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求11或12的偽隨機(jī)數(shù)生成器中,權(quán)利要求13所述的本發(fā)明的特征在于用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個隨機(jī)數(shù)的編號相同的編號,將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
      本發(fā)明示出了在權(quán)利要求13的偽隨機(jī)數(shù)生成器中的用于替換隨機(jī)數(shù)表的裝置。根據(jù)本發(fā)明來生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù),將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。因此,可以容易且快速地替換隨機(jī)數(shù)表的順序,所以可以將與非線性轉(zhuǎn)換裝置相比較的上游側(cè)的吞吐量增加到接近于非線性轉(zhuǎn)換裝置的吞吐量,這會引起整個偽隨機(jī)數(shù)生成器吞吐量的增加(增加的速度)。
      權(quán)利要求14所述發(fā)明的用于生成偽隨機(jī)數(shù)的計算機(jī)可執(zhí)行程序包括基于密鑰輸出具有預(yù)定比特數(shù)的、選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中存儲了多個放大隨機(jī)數(shù)比特串,所述多個放大隨機(jī)數(shù)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特數(shù);能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串,從所述隨機(jī)數(shù)表內(nèi)的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)放大的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的;以及借助非線性函數(shù)對所述放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換以輸出偽隨機(jī)數(shù)的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置來選擇的。
      根據(jù)本發(fā)明,由于基于密鑰對具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串進(jìn)行輸出,以及通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串、從位于所述隨機(jī)數(shù)表內(nèi)的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,以及通過非線性函數(shù)對所述放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換以輸出偽隨機(jī)數(shù),所以可以基于具有少量比特的所述選擇性使用的隨機(jī)數(shù)比特串,來獲得具有較多比特數(shù)的所述放大隨機(jī)數(shù)比特串。
      因此,可以極大地增加輸入到非線性轉(zhuǎn)換裝置中的比特串的比特數(shù)。所以,可以增加用于輸出隨機(jī)數(shù)比特串的裝置的吞吐量(迄今為止其構(gòu)成了障礙),該吞吐量在相對于非線性轉(zhuǎn)換裝置的上游側(cè)提供,并且使其接近于非線性轉(zhuǎn)換裝置的吞吐量,這會帶來整個偽隨機(jī)數(shù)生成器的吞吐量的增加。
      在權(quán)利要求14中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求15所述發(fā)明的特征在于所述程序進(jìn)一步具有,用于運行所述程序的裝置,用于通過給定密鑰來生成放大隨機(jī)數(shù)比特串、將所述比特串存儲到隨機(jī)數(shù)表中、并且執(zhí)行隨機(jī)數(shù)表的初始設(shè)置的裝置。
      根據(jù)本發(fā)明,通過給定密鑰來生成放大隨機(jī)數(shù)比特串,將所述比特串存儲到隨機(jī)數(shù)表中,并且執(zhí)行隨機(jī)數(shù)表的初始設(shè)置,所以可以根據(jù)密鑰的改變來改變隨機(jī)數(shù)表中的初態(tài)值。因此可以增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求14或15中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求16所述發(fā)明的特征在于作為用于運行所述程序的裝置提供多個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,以及提供隨機(jī)數(shù)表以便與各個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,以及用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串、從所述各個隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)表是從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的,以及用于非線性轉(zhuǎn)換的裝置通過利用各個用于生成放大隨機(jī)比特串的裝置,對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
      根據(jù)本發(fā)明,從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出所述選擇性使用的隨機(jī)數(shù)比特串,使用各個選擇性使用的隨機(jī)數(shù)比特串來參考各個隨機(jī)數(shù)表,并且通過參考非線性函數(shù),對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出隨機(jī)數(shù)。因此,可以增強(qiáng)輸出隨機(jī)數(shù)比特串部分的吞吐量(迄今為止其構(gòu)成了障礙),這會帶來整個偽隨機(jī)數(shù)生成器的吞吐量的增加(增加的速度)。
      在權(quán)利要求16中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求17所述發(fā)明的特征在于作為運行所述程序的裝置,每個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置都提供多個隨機(jī)數(shù)表,以及作為運行所述程序的裝置,所述程序具有,用于使各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算的裝置,該放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個隨機(jī)數(shù)表中選擇的。
      根據(jù)本發(fā)明,使從各個隨機(jī)數(shù)表選擇的各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算。因此,與使用實際上從生成放大隨機(jī)數(shù)比特串的裝置輸出的隨機(jī)數(shù)比特串的情形相比較,經(jīng)歷了異或運算的所述比特串可以增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求16或17中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求18所述發(fā)明的特征在于作為運行所述程序的裝置,所述程序進(jìn)一步具有以預(yù)定時間來彼此替換隨機(jī)數(shù)表的裝置。
      根據(jù)本發(fā)明,由于可以以預(yù)定時間來彼此替換隨機(jī)數(shù)表,所以可以改變用作參考的隨機(jī)數(shù)表,與固定隨機(jī)數(shù)表的使用相比較,這可能增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求18中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求19所述發(fā)明的特征在于每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
      本發(fā)明示出了在權(quán)利要求19的程序中的預(yù)定時間的一個例子。根據(jù)本發(fā)明,由于每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,都要彼此替換隨機(jī)數(shù)表,所以可以以短的時間間隔來改變用作參考的隨機(jī)數(shù)表,這可以進(jìn)一步增強(qiáng)加密強(qiáng)度。
      在權(quán)利要求18或19中所述的用于生成本發(fā)明的偽隨機(jī)數(shù)的程序中,權(quán)利要求20所述發(fā)明的特征在于用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個隨機(jī)數(shù)的編號相同的編號,將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
      本發(fā)明示出了在權(quán)利要求20的程序中的、用于彼此替換隨機(jī)數(shù)表的裝置的一個例子。根據(jù)本發(fā)明來生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù),將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。因此,可以容易且快速地替換隨機(jī)數(shù)表的順序,所以可以增加與非線性轉(zhuǎn)換裝置相比較的上游側(cè)的吞吐量,并且使其接近于非線性轉(zhuǎn)換裝置的吞吐量,這會引起整個偽隨機(jī)數(shù)生成器吞吐量的增加(增加的速度)。


      圖1是用于說明根據(jù)本發(fā)明實施例的偽隨機(jī)數(shù)生成器的視圖;圖2示出了根據(jù)本發(fā)明實施例的線性反饋移位寄存器的原多項式的一個例子;圖3是用于說明根據(jù)本發(fā)明實施例的偽隨機(jī)數(shù)生成器的處理過程的流程圖;圖4是示意性地說明根據(jù)本發(fā)明實施例的偽隨機(jī)數(shù)生成器的視圖;圖5是用于說明偽隨機(jī)數(shù)表構(gòu)造的示意圖;圖6是用于說明在隨機(jī)數(shù)比特串放大部分中構(gòu)造的元件的概念圖;圖7是根據(jù)本發(fā)明實施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖;圖8是示意性地示出根據(jù)本發(fā)明實施例的偽隨機(jī)數(shù)生成器的概念圖;圖9是示意性地示出隨機(jī)數(shù)表的概念圖;圖10是根據(jù)本發(fā)明實施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖;圖11示出了根據(jù)本發(fā)明實施例的線性反饋移位寄存器的原多項式的一個例子;圖12是用于說明線性反饋移位寄存器的重新構(gòu)建處理過程的流程圖;圖13是示出了通過測量吞吐量而獲得的結(jié)果的表格;圖14是示出了在驗證中使用的NIST參數(shù)的表格;圖15是示出了NIST驗證結(jié)果的視圖;圖16是用于說明常規(guī)的流密碼系統(tǒng)的圖形;圖17是用于說明加密設(shè)備的偽隨機(jī)數(shù)生成器的圖形;圖18是用于簡單地說明線性反饋移位寄存器的常規(guī)結(jié)構(gòu)的圖形。
      具體實施例方式
      (第一實施例)參考附圖來說明本發(fā)明的第一實施例。
      圖1是說明根據(jù)本發(fā)明第一實施例的偽隨機(jī)數(shù)生成器1的視圖。在該實施例中,作為偽隨機(jī)數(shù)生成器的一個例子來說明非線性組合器型偽隨機(jī)數(shù)生成器1。
      偽隨機(jī)數(shù)生成器1具有初態(tài)值設(shè)置部(未示出),基于用戶給出的密鑰來設(shè)置初態(tài)值;多個偽隨機(jī)數(shù)生成部10,基于從所述初態(tài)值設(shè)置部接收的初態(tài)值來生成偽隨機(jī)數(shù);以及非線性轉(zhuǎn)換部20,其連接到這些多個偽隨機(jī)數(shù)生成部10的各個輸出側(cè),并且非線性地轉(zhuǎn)換從各個偽隨機(jī)數(shù)生成部分10輸出的偽隨機(jī)數(shù)。
      初態(tài)值設(shè)置部將用戶給出的密鑰轉(zhuǎn)換為比特串,將該比特串劃分為偽隨機(jī)數(shù)生成部10的數(shù)量,同時經(jīng)歷一個處理過程,以生成分別分配給偽隨機(jī)數(shù)生成部10的線性反饋移位寄存器11的初態(tài)值。
      彼此成排地來布置L個偽隨機(jī)數(shù)生成器10,各個部10都具有線性反饋移位寄存器11和用于重新構(gòu)建所述線性反饋移位寄存器的裝置12。
      線性反饋移位寄存器11具有n個能夠存儲一比特信息的移位寄存器和異或電路,類似于在“背景技術(shù)”中所描述的。在該實施例中,預(yù)先設(shè)置移位寄存器11的結(jié)構(gòu),以使得可以輸出每一個周期的比特數(shù)m為(2^n)-1的比特串(稱為M序列)。
      圖2示出了根據(jù)本發(fā)明實施例的線性反饋移位寄存器11的原多項式的一個例子。該原多項式是預(yù)先設(shè)置用于輸出M序列的特征多項式。多項式第一項的指數(shù)部分(其由圖2中的“^”來表示)表示移位寄存器的數(shù)量,而第二或者更多項的指數(shù)部分表示連接到異或電路的連接位置。例如,已經(jīng)示出了在表格第一行中示出的線性反饋移位寄存器11(LFSR1)具有131個移位寄存器,并且通過反饋分接頭將第八、第三和第二行中示出的移位寄存器連接到所述異或電路。在該實施例中,將移位寄存器的所有數(shù)量n都置為素數(shù)。
      用于重新構(gòu)建線性反饋移位寄存器的裝置12動態(tài)地改變所述線性反饋移位寄存器的結(jié)構(gòu),以便對其進(jìn)行重新構(gòu)建。更加詳細(xì)地,當(dāng)M序列的每一個周期的比特數(shù)(=(2^n)-1)與導(dǎo)出值(s)互為素數(shù)(即所述比特數(shù)和導(dǎo)出值除了1之外彼此之間沒有公約數(shù))時,通過對各個數(shù)進(jìn)行抽樣而獲得的新比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個周期的比特的比特串來確定能夠輸出比特串且具有等價和小型結(jié)構(gòu)的線性反饋移位寄存器的特征多項式,從而可以重新構(gòu)建所述線性反饋移位寄存器。
      在用于重新構(gòu)建線性反饋移位寄存器的裝置12中,根據(jù)初態(tài)值設(shè)置部給出的初態(tài)值來計算導(dǎo)出值s,所述導(dǎo)出值乘以一個值2m,該值2m是通過乘以相應(yīng)于所述線性反饋移位寄存器11的一個周期的比特數(shù)m(=(2^n)-1)而獲得的,并且計算要從線性反饋移位寄存器11輸出的比特串的比特數(shù)2ms。
      接下來,基于初態(tài)值從線性反饋移位寄存器11輸出2ms個比特(數(shù)量為2ms),并且從每個導(dǎo)出值s的2ms個比特中取出一個比特串,從而生成新比特串,然后借助于Berlekamp-Massay算法、通過使用所述新比特串來重新構(gòu)建線性反饋移位寄存器11。
      在本發(fā)明的實施例中,通過一個例子進(jìn)行說明,其中從線性反饋移位寄存器11輸出的比特串的比特數(shù)為2ms,因為不小于2ms的任何比特數(shù)都能夠確定等價且小型的線性反饋移位寄存器,所以該比特數(shù)對于不小于2ms的數(shù)量來說是足夠的。
      在Berlekamp-Massay算法中,獲得了具有兩倍或多倍于線性反饋移位寄存器11的移位寄存器的數(shù)量n(線性復(fù)雜度)的比特數(shù)的比特串,從而可以獲得能夠輸出所述比特串的等價且小型的線性反饋移位寄存器。例如,在“Introduction to Encryption Logic”(第二版,KYORITSUSYUPPAN,E.Okamoto,2002年4月10日)中全面描述了Berlekamp-Massay算法。
      接下來,將參考圖3的流程圖來說明具有上述結(jié)構(gòu)的偽隨機(jī)數(shù)生成器1的處理(操作)。
      首先,通過初態(tài)值設(shè)置部來設(shè)置初態(tài)值(步驟1)。借助于預(yù)定的運算處理、通過劃分用戶給出的密鑰來設(shè)置初態(tài)值。
      例如,如果密鑰長度是由“ABCDEFGHIJKLMNOP”組成的16個比特,以及偽隨機(jī)數(shù)生成部10有8行,則以如下的形式來設(shè)置初態(tài)值。
      LFSR AB+X′FF′Padding(即填充字母)LFSR CD+X′FF′PaddingLFSR EF+X′FF′PaddingLFSR GH+X′FF′PaddingLFSR IJ+X′FF′PaddingLFSR KL+X′FF′PaddingLFSR MN+X′FF′PaddingLFSR OP+X′FF′Padding在上述行中,通過將密鑰的“ABCDEFGHIJKLMNOP”劃分為“AB”、“CD”、……“OP”,即每組兩個字母,同時將這兩個字母輸入到移位寄存器,然后將“Padding”填充到移位寄存器的剩余部分來設(shè)置初態(tài)值。上述用于設(shè)置初態(tài)值的方法只是一個例子,還可以通過其它的方法來設(shè)置初態(tài)值。
      當(dāng)通過初態(tài)值設(shè)置部中的密鑰來設(shè)置初態(tài)值時,將各個初態(tài)值分別輸入到各個偽隨機(jī)數(shù)生成器10中,以便在線性反饋移位寄存器11的移位寄存器中進(jìn)行設(shè)置。
      接下來,通過用于重新構(gòu)建線性反饋移位寄存器的裝置12來重新構(gòu)建線性反饋移位寄存器11(步驟S2到步驟S6)。
      首先,根據(jù)初態(tài)值來計算導(dǎo)出值s,該導(dǎo)出值s與相應(yīng)于所述線性反饋移位寄存器11的一個周期的比特數(shù)m互為素數(shù)(步驟S2)。通過諸如消息摘要(message digest)5這樣的散列函數(shù)對所述初態(tài)值進(jìn)行處理,以找到其散列值同時采用最接近于該散列值的一個素數(shù)來確定所述導(dǎo)出值s。所以,可能增加了估計所述導(dǎo)出值的難度,從而能夠進(jìn)一步增加信息的機(jī)密性。只要根據(jù)初態(tài)值和與比特數(shù)m為素數(shù)來確定導(dǎo)出值,就可以通過任何方法來確定導(dǎo)出值s。然而,為了保持信息的機(jī)密性,預(yù)定的運算處理在某種程度(特性)上應(yīng)當(dāng)是令人滿意的。
      在計算了導(dǎo)出值s之后,對要從線性反饋移位寄存器11輸出的比特串的比特數(shù)2ms進(jìn)行計算(步驟S3)??梢酝ㄟ^將所述導(dǎo)出值乘以一個值來確定要從線性反饋移位寄存器11輸出的比特串的比特數(shù)2ms,該值是通過兩倍或多倍于與所述線性反饋移位寄存器11的一個周期相對應(yīng)的比特數(shù)(=(2^n)-1)而得到的。
      接下來,基于初態(tài)值從線性反饋移位寄存器11輸出具有2ms比特的比特串(步驟S4),并且根據(jù)最終得到的(resultant)比特串來生成一個新比特串(步驟S5)。該新比特串由從具有2ms個比特的每個導(dǎo)出值的比特串取出的比特組成,并且具有2m個比特數(shù)。
      假定每一個周期的比特數(shù)m與導(dǎo)出值s彼此互為素數(shù),則從每個數(shù)量s(導(dǎo)出值)的M序列的比特中取出的比特串是具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。所以新比特串也是M序列。
      此后,基于該新比特串來改變(重新構(gòu)建)線性反饋移位寄存器11的結(jié)構(gòu)(步驟S6)。使用Berlekamp-Massay算法來執(zhí)行線性反饋移位寄存器11的重新構(gòu)建。根據(jù)Berlekamp-Massay算法,如果給定具有相應(yīng)于兩個或多個周期的比特數(shù)的比特串,則可以確定能夠輸出該比特串的等價且小型的線性反饋移位寄存器。因此,可以從具有比特數(shù)2m的新比特串中導(dǎo)出新的線性反饋移位寄存器的特征多項式,從而實施重新構(gòu)建。
      重新構(gòu)建的線性反饋移位寄存器11具有特征多項式,該特征多項式具有與重新構(gòu)建之前的寄存器相同的階數(shù),并且具有與重新構(gòu)建之前的寄存器不同的連接。所以,如果為重新構(gòu)建的線性反饋移位寄存器給出與重新構(gòu)建之前的寄存器相同的初態(tài)值,則該重新構(gòu)建的線性反饋移位寄存器具有能夠輸出不同于在重新構(gòu)建之前的寄存器的M序列的結(jié)構(gòu)。
      在借助于重新構(gòu)建線性反饋移位寄存器的裝置12完成線性反饋移位寄存器11的重新構(gòu)建之后,基于初態(tài)值從重新構(gòu)建的線性反饋移位寄存器11中生成偽隨機(jī)數(shù)(步驟S7)。從而,根據(jù)偽隨機(jī)數(shù)生成部10來生成不同于重新構(gòu)建之前的寄存器的M序列的偽隨機(jī)數(shù)。
      分別將從偽隨機(jī)數(shù)生成部10輸出的偽隨機(jī)數(shù)輸入到非線性轉(zhuǎn)換部20,其中基于預(yù)定的非線性函數(shù)f(x)對各個偽隨機(jī)數(shù)進(jìn)行非線性轉(zhuǎn)換(步驟S8)。從而可以給定偽隨機(jī)數(shù)非線性屬性,以進(jìn)一步增強(qiáng)加密強(qiáng)度。
      根據(jù)具有上述結(jié)構(gòu)的偽隨機(jī)數(shù)生成器1,可以基于初態(tài)值容易且動態(tài)地改變線性反饋移位寄存器11的結(jié)構(gòu),并且之后可以輸出改變的M序列。因此,密碼分析人員在重新構(gòu)建之前不能夠獲得線性反饋移位寄存器的結(jié)構(gòu)。所以,不會形成在假定線性反饋移位寄存器的結(jié)構(gòu)已知的情況下,所形成的一種已知的密碼分析法。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
      在上述實施例中,盡管作為例子說明了非線性組合器型偽隨機(jī)數(shù)生成器1,但是本發(fā)明沒有必要限制到非線性組合器類型??梢允褂萌魏卫镁€性反饋移位寄存器的偽隨機(jī)數(shù)生成器,例如在分組(block)密碼系統(tǒng)中使用的偽隨機(jī)數(shù)生成器。
      此外,在步驟S6中,代替基于新比特串對線性反饋移位寄存器的重新構(gòu)造,生成具有能夠輸出新比特串的結(jié)構(gòu)的第二線性反饋移位寄存器,然后在步驟S7中,可以基于初態(tài)值從第二線性反饋移位寄存器中生成偽隨機(jī)數(shù)。從而可以將線性反饋移位寄存器劃分為兩個以增強(qiáng)機(jī)密性。此外,可以通過軟件或者硬件來構(gòu)造第一實施例的的偽隨機(jī)數(shù)生成器1。
      (第二實施例)接下來,將參考附圖來說明本發(fā)明的第二實施例。
      圖4是示意性地說明根據(jù)本發(fā)明第二實施例的偽隨機(jī)數(shù)生成器1的功能的視圖。該實施例的偽隨機(jī)數(shù)生成器1是通過在計算機(jī)硬件上運行偽隨機(jī)數(shù)程序而形成的(materiarized)非線性組合器型偽隨機(jī)數(shù)生成器1。在該實施例中,僅就在加密設(shè)備中使用而言來說明生成器(參見背景技術(shù)),而忽略就在解密設(shè)備中使用而言的說明,因為這種說明類似于在加密設(shè)備中的說明。
      如圖4所示,偽隨機(jī)數(shù)生成器1具有隨機(jī)數(shù)比特串輸出部50、隨機(jī)數(shù)比特串放大部60和非線性轉(zhuǎn)換部70。隨機(jī)數(shù)比特串輸出部50具有α(數(shù)量)個用于選擇性地輸出所使用的隨機(jī)數(shù)比特串51的裝置。用于選擇性地輸出所使用的隨機(jī)數(shù)比特串511到51α的裝置基于具有Lk個比特的密鑰,來連續(xù)地輸出具有Ni個比特的選擇性使用的隨機(jī)數(shù)比特串,該Lk個比特由用戶給出,并且例如包括在線性反饋移位寄存器中。
      通過被給出的Ni個比特的選擇性使用的隨機(jī)數(shù)比特串來構(gòu)造隨機(jī)數(shù)比特串放大部60,以輸出具有No個比特的被放大的隨機(jī)數(shù)比特串,該No個比特是比Ni個比特更大的比特數(shù)量,該隨機(jī)數(shù)比特串放大部60進(jìn)一步具有隨機(jī)數(shù)表61和用于處理異或等價(par)操作的裝置63。
      根據(jù)α×β(下文中僅描述“αβ”)個存儲了(2^Ni)個隨機(jī)比特串的隨機(jī)數(shù)表62來構(gòu)建隨機(jī)數(shù)表部61。如圖4所示,每個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51都提供β個隨機(jī)數(shù)表62。圖5是用于說明偽隨機(jī)數(shù)表構(gòu)造的示意圖。如圖5所示,每個隨機(jī)數(shù)表62具有給出了0到(2^Ni)-1索引號的(2^Ni)個索引部Ri,以及用于存儲比特串的部Ro,該部Ro能夠存儲上述被放大的隨機(jī)數(shù)比特串,而且相應(yīng)于各個索引號來提供比特串。
      此外以下面的方式來構(gòu)造隨機(jī)數(shù)表。將相應(yīng)的索引部Ri的索引號選為選擇性使用的隨機(jī)數(shù)比特串的自變量,該選擇性使用的隨機(jī)數(shù)比特串是從用于輸出隨機(jī)數(shù)比特串輸出部50的選擇性使用的隨機(jī)數(shù)比特串的裝置51中選擇的,并且從用于存儲相應(yīng)于索引號的比特串的部Ro中選擇No個比特的放大隨機(jī)數(shù)比特串。
      構(gòu)建用于處理異或等價操作的裝置63,以使得就每個用于選擇性地輸出所使用的隨機(jī)數(shù)比特串的裝置51來說,通過參考隨機(jī)比特數(shù)表621到62αβ而從中提取的αβ個放大隨機(jī)數(shù)比特串都經(jīng)歷異或運算處理,并且將最終得到的α個放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80。所以,本質(zhì)上不將從隨機(jī)數(shù)表621到62αβ讀取的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80,而本質(zhì)上阻止加密強(qiáng)度依賴于放大隨機(jī)數(shù)比特串,同時進(jìn)一步增加強(qiáng)度。
      圖6是說明用于構(gòu)建隨機(jī)數(shù)比特串放大部60內(nèi)部的元件的概念圖。如圖6所示,隨機(jī)數(shù)比特串放大部60具有用于將放大隨機(jī)數(shù)比特串選為其內(nèi)部機(jī)構(gòu)(mechanism)的裝置64。這樣來構(gòu)建用于選擇放大隨機(jī)數(shù)比特串的裝置64,即通過參考隨機(jī)數(shù)表621到62αβ,從相應(yīng)于具有與自變量相同值的索引號的比特存儲部Ro中選擇放大隨機(jī)數(shù)比特串,其中將從用于選擇性輸出所使用的隨機(jī)數(shù)比特串的裝置511到51α輸出的、選擇性使用的隨機(jī)數(shù)比特串用作自變量。
      此外,隨機(jī)數(shù)比特串放大部60具有用于初始設(shè)置隨機(jī)數(shù)表、以執(zhí)行隨機(jī)數(shù)表61的初始設(shè)置的裝置65;以及用于生成放大隨機(jī)數(shù)比特串的裝置66,以便借助于用于初始設(shè)置隨機(jī)數(shù)表的裝置65來生成在隨機(jī)數(shù)表部61中設(shè)置的放大隨機(jī)數(shù)比特串。
      在用于初始設(shè)置隨機(jī)數(shù)表的裝置65中,每No比特對通過用于生成放大隨機(jī)數(shù)比特串的裝置66生成的隨機(jī)數(shù)比特串進(jìn)行劃分,并且將其存儲在隨機(jī)數(shù)表621到62αβ的所有隨機(jī)數(shù)比特串存儲部Ro中。在該實施例中,按順序來存儲隨機(jī)數(shù)表621到隨機(jī)數(shù)表62αβ,該隨機(jī)數(shù)表621相應(yīng)于選擇性地輸出所使用的隨機(jī)數(shù)比特串的裝置511,而隨機(jī)數(shù)表62αβ相應(yīng)于選擇性地輸出所使用的隨機(jī)數(shù)比特串的裝置51α。
      用于生成放大隨機(jī)數(shù)比特串的裝置66基于密鑰K來輸出隨機(jī)數(shù)比特串。在該實施例中,使用RC4Syppetric Streap密碼(可以從RSA數(shù)據(jù)安全公司(Data Security Inc.)得到)。然而,可以使用任何能夠以高速輸出偽隨機(jī)數(shù)比特串的諸如線性反饋移位寄存器這樣的裝置(主要是流密碼)。
      如圖6所示,隨機(jī)數(shù)比特串放大部60具有用于替換隨機(jī)數(shù)表的裝置67,這些隨機(jī)數(shù)表67彼此具有替換所述隨機(jī)數(shù)表621到62αβ的順序的功能;以及用于生成替換隨機(jī)數(shù)的裝置68,其中當(dāng)用于替換隨機(jī)數(shù)表的裝置67執(zhí)行替換隨機(jī)數(shù)表順序的處理時,生成用于替換所使用的順序的隨機(jī)數(shù)。
      用于替換隨機(jī)數(shù)表的裝置67給出由用于生成替換隨機(jī)數(shù)的裝置68生成的替換隨機(jī)數(shù),作為在生成順序中的隨機(jī)數(shù)表621到62αβ的表編號,并且基于所給定的隨機(jī)數(shù)來替換所述隨機(jī)數(shù)表的順序,然后在每個表中改變在隨機(jī)數(shù)表61內(nèi)的放大隨機(jī)數(shù)比特串的順序。
      以下面的方式來構(gòu)造用于生成替換隨機(jī)數(shù)的裝置68。用于生成替換隨機(jī)數(shù)的裝置68基于可選的密鑰K0來執(zhí)行生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的處理,并且每次從隨機(jī)數(shù)比特串輸出部50輸入α個具有Ni個比特的隨機(jī)數(shù)比特串,就生成αβ個用于替換的隨機(jī)數(shù)。在該實施例中,可選密鑰K0使用相應(yīng)于Lk個比特的值,該Lk個比特是從放大隨機(jī)數(shù)比特串中取出的,通過給用于生成放大隨機(jī)數(shù)比特串的裝置66一個密鑰來輸出放大隨機(jī)數(shù)比特串。然而,密鑰沒有被限制到上面的裝置,例如可以通過其它裝置來生成或由用戶輸入密鑰。
      非線性轉(zhuǎn)換部80具有一階非相關(guān)非線性函數(shù)f(x),該函數(shù)的每一個輸出具有α個輸入。這樣來構(gòu)造非線性轉(zhuǎn)換部80,即非線性地轉(zhuǎn)換從隨機(jī)數(shù)比特串放大部60輸出的α個比特串,并且作為偽隨機(jī)數(shù)Z來輸出具有No比特的一個隨機(jī)數(shù)比特串。
      從128比特、256比特、512比特和1024比特中選擇密鑰K,在對α個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51,β個相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的隨機(jī)數(shù)表,以及所述選擇性使用的隨機(jī)數(shù)比特串的Ni個比特彼此進(jìn)行相乘,并且最終得到的值等于密鑰K的比特數(shù)Lk的條件下,對他們進(jìn)行選擇。
      接下來,參考圖7來說明用于生成偽隨機(jī)數(shù)的方法。圖7是根據(jù)本發(fā)明實施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖。
      首先,當(dāng)隨機(jī)數(shù)比特串輸出部50從用戶接收具有Li個比特的可選密鑰K的輸入時(步驟S11),該輸出部50使用密鑰K來建立用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的初態(tài)值(步驟S12)。例如,假設(shè)根據(jù)線性反饋移位寄存器來構(gòu)造用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51,就基于所述密鑰來建立在各個移位寄存器中存儲的初態(tài)值。
      在建立了用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的初態(tài)值后,借助于用于初始設(shè)置隨機(jī)數(shù)表的裝置65來執(zhí)行隨機(jī)數(shù)表61的初始設(shè)置(步驟S13)。在這種情況下,首先為用于生成放大隨機(jī)數(shù)比特串的裝置66提供所述密鑰,以便以高速生成隨機(jī)比特串。借助于用于初始設(shè)置隨機(jī)數(shù)表的裝置65,以每No比特對從用于生成放大隨機(jī)數(shù)比特串的裝置66生成的比特串進(jìn)行劃分,并且按照順序?qū)⑵浯鎯Φ剿蠷o部中,該Ro部用于存儲各個隨機(jī)數(shù)表621到62αβ的隨機(jī)數(shù)比特串。因此,給定密鑰,借此密鑰來預(yù)先執(zhí)行隨機(jī)數(shù)表61的初始建立。
      通過上述步驟S11到S13來執(zhí)行用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51和隨機(jī)數(shù)表61的初態(tài)值的建立,下文中它們處于等待狀態(tài)中。在將明文輸入到起觸發(fā)器作用的加密設(shè)備(參考“背景技術(shù)”)時,開始隨機(jī)數(shù)比特串的放大處理(步驟S14到S16)。首先,通過用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51來輸出分別具有Ni個比特的β個所述選擇性使用的隨機(jī)數(shù)比特串,以便存儲到隨機(jī)數(shù)比特串放大部分60中(步驟S14)。
      接下來,借助于用于替換隨機(jī)數(shù)表的順序的裝置67來替換隨機(jī)數(shù)表621到62αβ的順序(步驟S15)。在這種情況下,通過用于替換隨機(jī)數(shù)的裝置68來生成用于替換的αβ個隨機(jī)數(shù),并且將這些隨機(jī)數(shù)提供給每個隨機(jī)數(shù)表621到62αβ,作為替換所述隨機(jī)數(shù)表順序的表編號。以生成順序?qū)⒈砭幪枏碾S機(jī)數(shù)表621提供到隨機(jī)數(shù)表62αβ。
      因此,以亂序?qū)⒈砭幪?到αβ提供給隨機(jī)數(shù)表621到62αβ。各個隨機(jī)數(shù)表基于給定的表編號來替換在隨機(jī)數(shù)表61中的放大隨機(jī)數(shù)比特串的順序。從而,各個隨機(jī)數(shù)表根據(jù)諸如升序或降序這樣的預(yù)定規(guī)則,來替換在隨機(jī)數(shù)表61的用于存儲隨機(jī)數(shù)比特串的Ro部中放大隨機(jī)數(shù)比特串。
      在完成對隨機(jī)數(shù)表621到62αβ的順序的替換處理之后,借助于用于選擇放大隨機(jī)數(shù)比特串的裝置64、從各個隨機(jī)數(shù)表621到62αβ中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,從而執(zhí)行用于選擇放大隨機(jī)數(shù)比特串的處理(步驟S16)。用于選擇放大隨機(jī)數(shù)比特串的裝置64,通過使用在隨機(jī)數(shù)比特串放大部60中存儲的各個隨機(jī)數(shù)比特串來參考相應(yīng)的隨機(jī)數(shù)表621到62αβ,并且從各個隨機(jī)數(shù)表621到62αβ中選擇相應(yīng)的放大隨機(jī)數(shù)比特串。
      在完成選擇放大隨機(jī)數(shù)比特串的處理之后,借助于用于處理異或運算的裝置63來執(zhí)行異或運算處理(步驟S17)。對于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51來說,用于處理異或運算的裝置63使得從各個隨機(jī)數(shù)表621到62αβ中讀取的αβ(數(shù)量)個放大隨機(jī)數(shù)比特串經(jīng)歷異或運算處理。因此,生成了具有No比特的α(數(shù)量)個新的放大隨機(jī)數(shù)比特串。
      此外,將這些新的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80,以執(zhí)行非線性轉(zhuǎn)換(步驟S18)。非線性轉(zhuǎn)換部80對αβ個具有No比特的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換,以作為其中一個具有No比特的放大隨機(jī)數(shù)比特串的偽隨機(jī)數(shù)來輸出。
      當(dāng)從非線性轉(zhuǎn)換部80輸出偽隨機(jī)數(shù)時,再次重復(fù)步驟S14到步驟S18的過程。因此,根據(jù)從明文到密文進(jìn)行轉(zhuǎn)換的要求生成偽隨機(jī)數(shù)。
      根據(jù)偽隨機(jī)數(shù)生成器1,通過參考隨機(jī)數(shù)表,基于從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸出的、具有No比特的選擇性使用的隨機(jī)數(shù)比特串,將具有比特數(shù)大于Ni比特的No比特的放大隨機(jī)數(shù)比特串提供給非線性轉(zhuǎn)換部80。因此,可以增強(qiáng)與非線性轉(zhuǎn)換部80相比較的上游側(cè)的吞吐量(迄今為止其構(gòu)成了障礙),并且使其接近于非線性轉(zhuǎn)換部80的吞吐量,這會帶來整個偽隨機(jī)數(shù)生成器1的吞吐量的增加。
      響應(yīng)從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸入的選擇性使用的隨機(jī)數(shù)比特串,執(zhí)行用于替換隨機(jī)數(shù)順序的處理。因此,可以增強(qiáng)隨機(jī)數(shù)的加密強(qiáng)度。尤其是,根據(jù)本發(fā)明的該實施例,可以將隨機(jī)數(shù)表621到62αβ的組合數(shù)轉(zhuǎn)換為αβ階乘(下文中由“!”來表示“階乘”)。因此,假定隨機(jī)數(shù)表61已知時,有效的處理(attack)要求計算(2^(αβ×Ni))×(αβ)!。該計算量大于搜索整個Lk個比特密鑰的計算量,所以給定了有效增強(qiáng)的加密強(qiáng)度。
      此外,在上面提到的隨機(jī)數(shù)生成器1中,通過參考多個(β)隨機(jī)數(shù)表,使用從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸出的隨機(jī)數(shù)比特串,從各個隨機(jī)數(shù)表中選擇的隨機(jī)數(shù)比特串經(jīng)歷異或處理。因此,在實際上要將從隨機(jī)數(shù)表部61讀取的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80的情況下,本質(zhì)上要防止加密強(qiáng)度由用于生成放大隨機(jī)數(shù)比特串的裝置66來確定,從而進(jìn)一步增強(qiáng)加密強(qiáng)度。
      接下來將說明根據(jù)本發(fā)明實施例的一個例子。圖8是示意性地示出可作為例子的偽隨機(jī)數(shù)生成器1的概念圖。圖9是示意性地示出了隨機(jī)數(shù)表61的概念圖。在該示例中,以下面的方式來設(shè)置各個設(shè)置值(參數(shù))。
      用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置數(shù)量8(α=8)相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置的隨機(jī)數(shù)表的數(shù)量2(β=2)隨機(jī)數(shù)表索引部的長度2^8(Ni=8)隨機(jī)數(shù)表的隨機(jī)數(shù)比特串部的長度2^16(No=16)密鑰長度128比特(Lk=128)非線性轉(zhuǎn)換部80的非線性函數(shù)f(x)f(x)=x1+x5+x1x2+x1x3+x2x3+x2x5+x2x6+x3x6+x1x7+x2x7+x4x8+x5x8+x1x2x3+x1x2x4+x1x3x4+x2x3x4+x1x2x5+x2x4x5+x3x4x5+x1x2x6+x2x3x6+x1x4x6+x4x5x6+x1x2x7+x2x3x7+x1x4x7+x1x5x7+x2x5x7+x4x5x7+x1x6x7+x4x6x7+x5x6x7+x1x2x8+x1x3x8+x2x3x8+x3x4x8+x1x5x8+x3x5x8+x4x5x8+x3x6x8+x4x6x8+x5x6x8+x1x7x8+x2x7x8+x1x2x4x5+x1x3x4x5+x2x3x4x5+x1x2x4x6+x1x3x4x6+x2x3x4x6+x1x4x5x6+x2x4x5x6+x3x4x5x6+x1x2x3x7+x1x2x4x7+x2x3x4x7+x1x2x5x7+x1x4x5x7+x2x4x5x7+x1x2x6x7+x1x3x6x7+x2x3x6x7+x1x4x6x7+x2x4x6x7+x3x4x6x7+x1x5x6x7+x2x5x6x7+x3x5x6x7+x1x2x4x8+x1x2x5x8+x1x3x5x8+x1x4x5x8+x1x2x6x8+x2x3x6x8+x1x4x6x8+x2x5x6x8
      +x3x5x6x8+x1x3x7x8+x1x4x7x8+x2x4x7x8+x3x4x7x8+x2x5x7x8+x1x2x3x4x5+x1x2x3x4x6+x1x3x4x5x6+x2x3x4x5x6+x1x2x4x5x7+x2x3x4x5x7+x1x2x4x6x7+x1x3x4x6x7+x1x4x5x6x7+x2x4x5x6x7+x1x2x3x4x8+x1x2x3x5x8+x1x2x4x5x8+x1x2x3x6x8+x1x2x4x6x8+x1x3x4x6x8+x2x3x5x6x8+x1x4x5x6x8+x2x4x5x6x8+x1x2x3x7x8+x1x3x4x7x8+x1x3x5x7x8+x2x3x5x7x8+x3x4x5x7x8+x1x3x6x7x8+x3x4x6x7x8+x1x2x3x4x5x8+x1x2x3x4x6x8+x1x3x4x5x6x8+x2x3x4x5x6x8+x1x2x3x4x7x8+x1x2x3x5x7x8+x1x2x4x5x7x8+x1x3x4x5x7x8+x1x3x4x6x7x8+x2x3x4x6x7x8+x1x2x5x6x7x8+x1x3x5x6x7x8在該實例中,用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51基于用戶給出的密鑰來重新構(gòu)建線性反饋移位寄存器53,并且使用重新構(gòu)建的線性反饋移位寄存器53′來輸出隨機(jī)數(shù)比特串。
      首先來說明用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的結(jié)構(gòu)和操作。如圖8所示,用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51具有用于設(shè)置初態(tài)值的裝置12,線性反饋移位寄存器53和用于重新構(gòu)建線性反饋移位寄存器的裝置14。
      用于設(shè)置初態(tài)值的裝置12基于用戶給出的密鑰來建立初態(tài)值,將密鑰K轉(zhuǎn)換為比特串,并且將其作為初態(tài)值分配給線性反饋移位寄存器53的移位寄存器的內(nèi)部。在該實施例中,將RC4 Syppetric Streap密碼(可以從RSA數(shù)據(jù)安全公司(Data Security Inc.)得到)用作設(shè)置初態(tài)值的裝置12,其與用于生成放大隨機(jī)數(shù)比特串的裝置66共同使用。
      線性反饋移位寄存器53具有n個存儲1比特信息的移位寄存器和一個異或運算電路,類似于在“背景技術(shù)”中說明的。此外,在該實施例中,預(yù)先將寄存器53設(shè)置為能夠輸出每個周期具有(2^n)-1個比特數(shù)m的比特串的結(jié)構(gòu),將其稱為M序列。
      圖11示出了根據(jù)本發(fā)明實施例的線性反饋移位寄存器53的原多項式的例子。該原多項式是預(yù)先設(shè)置用于輸出M序列的特征多項式,在特征多項式第一項中的指數(shù)部分表示線性反饋移位寄存器的數(shù)量,而第二或者更多項中的指數(shù)部分表示與異或運算電路的連接位置。例如,如圖11所示,第一行中的線性反饋移位寄存器(LFSR1)53具有129個移位寄存器,而且移位寄存器通過反饋分接頭將第八十,第八和第一行連接到所述異或運算電路。在該實施例中,將移位寄存器的所有數(shù)量n都置為素數(shù)。
      用于重新構(gòu)建線性反饋移位寄存器的裝置14具有通過借助于密鑰K來動態(tài)地改變所述線性反饋移位寄存器53的結(jié)構(gòu),來對其進(jìn)行重新構(gòu)建的功能。例如,當(dāng)M序列的每一個周期的比特數(shù)(=(2^n)-1)與導(dǎo)出值互為素數(shù)(即所述比特數(shù)和導(dǎo)出值除了1之外沒有公約數(shù))時,通過對各個數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以通過使用線性反饋移位寄存器的特征多項式來執(zhí)行所述線性反饋移位寄存器53的重新構(gòu)建,其中,可以借助于Berlekamp-Massay算法、根據(jù)具有至少兩個周期的比特數(shù)的比特串來確定能夠輸出比特串且具有等價且小型結(jié)構(gòu)的線性反饋移位寄存器的特征多項式。
      在用于重新構(gòu)建線性反饋移位寄存器的裝置14中,根據(jù)初態(tài)值設(shè)置部12給出的初態(tài)值來計算導(dǎo)出值s,所述導(dǎo)出值s乘以一個值2m,該值2m是通過乘以相應(yīng)于所述線性反饋移位寄存器53的一個周期的比特數(shù)m(=(2^n)-1)而獲得的,并且計算要從線性反饋移位寄存器53輸出的比特串的比特數(shù)2ms。
      接下來,基于初態(tài)值從線性反饋移位寄存器53輸出2ms(數(shù)量)個比特串,并且從每個導(dǎo)出值s的2ms個比特串中取出一個比特串,從而生成新比特串,然后借助于Berlekamp-Massay算法、通過使用所述新比特串來改變線性反饋移位寄存器11的結(jié)構(gòu)。
      從線性反饋移位寄存器53輸出的比特數(shù)不小于2ms,因為不小于2ms的任何比特數(shù)都能夠確定等價且小型的線性反饋移位寄存器。
      在Berlekamp-Massay算法中,獲得了具有兩倍或多倍于線性反饋移位寄存器53的移位寄存器的數(shù)量n(線性復(fù)雜度)的比特數(shù)的比特串,從而可以獲得能夠輸出所述比特串的等價且小型的線性反饋移位寄存器。例如,在“Introduction to Encryption Logic”(第二版,KYORITSUSYUPPAN,E.Okamoto,2002年4月10日)中全面描述了Berlekamp-Massay算法。
      圖12是用于說明線性反饋移位寄存器53的重新構(gòu)建處理過程的流程圖。首先,通過用于設(shè)置初態(tài)值的裝置12來設(shè)置初態(tài)值(步驟41)?;谟捎脩艚o出的Lk比特密鑰K來設(shè)置初態(tài)值。當(dāng)通過用于設(shè)置初態(tài)值的裝置12中的密鑰來設(shè)置初態(tài)值時,將初態(tài)值設(shè)置到線性反饋移位寄存器53的移位寄存器內(nèi)。
      接下來,根據(jù)預(yù)定的運算處理來計算導(dǎo)出值s,該導(dǎo)出值s與線性反饋移位寄存器53的每一個周期的比特數(shù)m互為素數(shù)(步驟S42)。通過借助于諸如消息摘要5這樣的散列函數(shù)處理所述初態(tài)值以確定其散列值,同時選擇最接近于該散列值的一個素數(shù)來確定所述導(dǎo)出值s。只要可以根據(jù)初態(tài)值來確定導(dǎo)出值s,以及該導(dǎo)出值與比特數(shù)m互為素數(shù),就可以通過任何方法來確定導(dǎo)出值s。然而,為了保持信息的機(jī)密性,預(yù)定的運算處理在某種程度(特性)上應(yīng)當(dāng)是令人滿意的。
      在計算了導(dǎo)出值s之后,對要從線性反饋移位寄存器53輸出的比特串的比特數(shù)2ms進(jìn)行計算(步驟S43)??梢酝ㄟ^將所述導(dǎo)出值乘以一個值來確定要從線性反饋移位寄存器53輸出的比特串的比特數(shù)2ms,該值是通過兩倍或多倍于所述線性反饋移位寄存器53的一個周期的比特數(shù)(=(2^n)-1)而得到的。
      接下來,基于初態(tài)值從線性反饋移位寄存器53輸出具有2ms比特的比特串(步驟S44),并且根據(jù)最終得到的比特串來生成一個新比特串(步驟S45)。該新比特串由從具有2ms個比特的每個導(dǎo)出值的比特串取出的比特組成,并且具有2m個比特數(shù)。
      假定每一個周期的比特串m與導(dǎo)出值s互為素數(shù),則從每個數(shù)量s(導(dǎo)出值)的M序列的比特串中取出的比特串是具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。所以新比特串也是M序列。
      此后,基于該新比特串來改變(重新構(gòu)建)線性反饋移位寄存器53的結(jié)構(gòu)(步驟S46)。使用Berlekamp-Massay算法來執(zhí)行線性反饋移位寄存器53的重新構(gòu)建。根據(jù)Berlekamp-Massay算法,如果給定具有相應(yīng)于兩個或多個周期的比特數(shù)的比特串,則可以獲得能夠輸出該比特串的等價且小型的線性反饋移位寄存器53。因此,可以從具有比特數(shù)2m的新比特串中導(dǎo)出新的線性反饋移位寄存器53的特征多項式,從而實施重新構(gòu)建。
      重新構(gòu)建的線性反饋移位寄存器53′具有特征多項式,該特征多項式具有與重新構(gòu)建之前的寄存器相同的階數(shù),并且具有與重新構(gòu)建之前的寄存器不同的連接。所以,如果為重新構(gòu)建的線性反饋移位寄存器給出與重新構(gòu)建之前的寄存器相同的初態(tài)值,則該重新構(gòu)建的線性反饋移位寄存器具有能夠輸出不同于在重新構(gòu)建之前的寄存器的M序列的結(jié)構(gòu)。
      在借助于重新構(gòu)建線性反饋移位寄存器的裝置14完成線性反饋移位寄存器53的重新構(gòu)建之后,基于初態(tài)值從重新構(gòu)建的線性反饋移位寄存器53′中生成用于選擇的隨機(jī)數(shù)比特串(步驟S47)。從而,根據(jù)隨機(jī)數(shù)生成部50來生成不同于重新構(gòu)建之前的寄存器的、用于選擇M序列的隨機(jī)數(shù)比特串。
      在上面提到的步驟S46中,代替基于新比特串對線性反饋移位寄存器53進(jìn)行的重新構(gòu)建,而是生成具有能夠輸出新比特串的結(jié)構(gòu)的第二線性反饋移位寄存器,而且在步驟S47中,可以基于初態(tài)值通過所述第二線性反饋移位寄存器來生成隨機(jī)數(shù)比特串。從而可以將所述線性反饋移位寄存器劃分為2個,這樣就可以增加信息的機(jī)密性。
      在具有上述結(jié)構(gòu)的偽隨機(jī)數(shù)生成器51中,可以基于初態(tài)值容易且動態(tài)地改變線性反饋移位寄存器53的結(jié)構(gòu),還可以根據(jù)改變的結(jié)構(gòu)來輸出M序列。因此,密碼分析人員在重新構(gòu)建之前不能夠獲得線性反饋移位寄存器的結(jié)構(gòu)。所以,不會形成在假定線性反饋移位寄存器的結(jié)構(gòu)已知的情況下,所形成的一種已知的密碼分析法。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
      接下來說明通過使用偽隨機(jī)數(shù)生成器1來生成偽隨機(jī)數(shù)的方法,該偽隨機(jī)數(shù)生成器1具有用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51。圖10是根據(jù)本發(fā)明實施例來說明生成偽隨機(jī)數(shù)的方法的流程圖。
      首先,當(dāng)隨機(jī)數(shù)比特串輸出部50從用戶接收具有128比特(Lk=128比特)的可選密鑰K的輸入時,基于所述密鑰K來設(shè)置重新構(gòu)建之前的線性反饋移位寄存器53的初態(tài)值(步驟S21)。
      然后,基于所述初態(tài)值來重新構(gòu)建線性反饋移位寄存器53(步驟S22),同時建立重新構(gòu)建的線性反饋移位寄存器53′的初態(tài)值(步驟S23)。對所有用于輸出隨機(jī)數(shù)比特串111到118的裝置來說都要執(zhí)行初態(tài)值的建立。
      接下來,隨機(jī)數(shù)比特串輸出部60執(zhí)行隨機(jī)數(shù)表61的初始建立(步驟S24)。在這種情況下,首先為用于生成放大隨機(jī)數(shù)比特串的裝置66提供密鑰K,而后以高速來執(zhí)行生成隨機(jī)比特串的處理。在該實例中,因為用于生成放大隨機(jī)數(shù)比特串的裝置66、與用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的設(shè)置初態(tài)值的裝置12一同使用,所以如上所述,實際上將從線性反饋移位寄存器53輸出的隨機(jī)比特串用作初態(tài)值,而不需要單獨輸出比特串。
      用于初始設(shè)置隨機(jī)數(shù)表的裝置65將所述隨機(jī)比特串每16個比特(No=16)進(jìn)行劃分,并且將所劃分的比特串按序存儲到每個隨機(jī)數(shù)表621到6216的所有隨機(jī)數(shù)比特串存儲部Ro中。
      在上述初始建立步驟(步驟21到24)之后,處理處于等待狀態(tài)中。在完成將明文輸入到起觸發(fā)器作用的加密設(shè)備(參考“背景技術(shù)”)時,變換(transfer)生成偽隨機(jī)數(shù)的處理(步驟S25到S27)。
      這里,各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588輸出選擇性使用的隨機(jī)數(shù)比特串,并且將其存儲在隨機(jī)數(shù)比特串放大部60的緩沖器中。更加具體的是,從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588輸出8比特的選擇性使用的隨機(jī)數(shù)比特串(步驟S27)。對于各個輸出選擇性使用的隨機(jī)數(shù)比特串的裝置1來說,所述選擇性使用的隨機(jī)數(shù)比特串的數(shù)量為2(β=2)(步驟S26中為Yes)。如果數(shù)量與各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588相一致(步驟S25中為Yes),則鑒于已經(jīng)獲得了所需的選擇性使用的隨機(jī)數(shù),所以該處理進(jìn)入到隨后的隨機(jī)數(shù)比特串放大階段。因此,通過上述處理過程將16個具有8比特的選擇性使用的隨機(jī)數(shù)比特串存儲在所述緩沖器中。
      接下來,基于密鑰K0、借助于生成用于替換的隨機(jī)數(shù)的裝置68來生成16個用于替換的隨機(jī)數(shù)(步驟S28),并且執(zhí)行用于替換隨機(jī)數(shù)表順序的處理(步驟S29)。在這種情況下,將16個隨機(jī)數(shù)作為表編號提供給隨機(jī)數(shù)表621到6216。因此,不按順序為隨機(jī)數(shù)表621到6216提供表編號1到16。此外,基于給定的表編號來替換隨機(jī)數(shù)表621到6216的順序。這里,執(zhí)行升序替換,使得以1到16的順序?qū)⒈砭幪?到16安排給用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到58n。從而每個隨機(jī)數(shù)表都可以隨機(jī)地替換在隨機(jī)數(shù)表61內(nèi)的放大隨機(jī)數(shù)比特串的順序。
      接下來,執(zhí)行從各個隨機(jī)數(shù)表621到6216選擇相應(yīng)放大隨機(jī)數(shù)比特串的處理(步驟S30到S32)。例如,該處理參考通過使用第一選擇性使用的隨機(jī)數(shù)比特串的隨機(jī)數(shù)表621,所述第一選擇性使用的隨機(jī)數(shù)比特串從選擇性使用的隨機(jī)數(shù)比特串111中輸出并且作為自變量存儲在所述緩沖器中(步驟S32)。然后,選擇具有與所述自變量相同的值的索引號,并且選擇在隨機(jī)數(shù)比特串存儲部Ro中存儲的、相應(yīng)于所述索引號的隨機(jī)數(shù)比特串。
      例如,當(dāng)存儲在相應(yīng)于隨機(jī)數(shù)表621的隨機(jī)數(shù)比特串存儲部Ro中的、從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511輸出的隨機(jī)數(shù)比特串為“00000011”時,將該“00000011”認(rèn)為是八位二進(jìn)制數(shù),并且將其轉(zhuǎn)換為十進(jìn)制數(shù)值以獲得自變量“3”。通過參考隨機(jī)數(shù)表621、使用該自變量“3”來選擇存儲在隨機(jī)數(shù)比特串存儲部Ro中的、具有索引號(索引部Ro的)3的放大隨機(jī)數(shù)比特串“010110101101110110”。
      然后,當(dāng)分別從隨機(jī)數(shù)表621和隨機(jī)數(shù)表622中選擇放大隨機(jī)數(shù)比特串(步驟S31中的Yes)時,這兩個放大隨機(jī)數(shù)比特串經(jīng)歷異或運算處理(步驟S33),以生成具有16個比特的新的放大隨機(jī)數(shù)比特串。
      接下來,在對隨機(jī)數(shù)表623到6216執(zhí)行如上所述的相同處理(步驟S30中的Yes)之后,生成總共8個新的放大隨機(jī)數(shù)比特串,將它們輸出到非線性轉(zhuǎn)換部80并且傳送到非線性轉(zhuǎn)換階段。
      在非線性轉(zhuǎn)換部80中,從隨機(jī)數(shù)比特串放大部60輸入的具有No比特的8個新的放大隨機(jī)數(shù)比特串,通過非線性函數(shù)f(x)引起比特串的非線性轉(zhuǎn)換(步驟S34),以給出具有16個比特的一個隨機(jī)數(shù)比特串。然后,重復(fù)執(zhí)行步驟S25到S34的處理,從而獲得所需數(shù)量的偽隨機(jī)數(shù)。
      在該實例中,執(zhí)行有關(guān)是否適當(dāng)?shù)乇3指咚偬匦院碗S機(jī)性的實驗。結(jié)果,處理速度增加到傳統(tǒng)處理速度的180倍,同時獲得了適當(dāng)?shù)碾S機(jī)性。下面將描述該實驗和結(jié)果。
      在該實驗中使用的計算機(jī)是具有1.7GHz CPU和256MB內(nèi)存的Pentium(注冊商標(biāo))4。各個設(shè)置值都與上述實例相同。在用于生成替換隨機(jī)數(shù)比特串的裝置28中使用的密鑰K0是由十六進(jìn)制數(shù)表示的(fle2d34b5a69788796a5b4c3d2e1f10)16,并且通過固定該值來進(jìn)行實驗。
      圖13是示出了測量吞吐量所獲結(jié)果的表格。表格中的常規(guī)類型是圖17中示出的非線性組合器型偽隨機(jī)數(shù)生成器,其由8個線性反饋移位寄存器(LFSR)53和一個非線性轉(zhuǎn)換部80組成。
      根據(jù)實驗結(jié)果,實際上從線性反饋移位寄存器53的平均吞吐量到非線性轉(zhuǎn)換部80的平均吞吐量來增加偽隨機(jī)數(shù)生成器1的平均吞吐量,以及所增加的吞吐量大約是常規(guī)類型吞吐量的170倍(即116.4Mbps/sec÷0.680Mbps/sec=171.16-----)。因此,吞吐量結(jié)果示出了使用隨機(jī)數(shù)表62來增加偽隨機(jī)數(shù)生成器1的處理速度是有效的。
      在該實例中使用的偽隨機(jī)數(shù)生成器1的吞吐量由下面的公式來表示1T=NINo(nT1+1T2+1T3)+nmT4+1T5---(1)]]>在公式(1)中,T1表示一個線性反饋移位寄存器53的平均吞吐量,T2表示RC4(用于生成放大隨機(jī)數(shù)比特串的裝置66)的平均吞吐量,T3表示通過用于替換隨機(jī)數(shù)表的裝置67對替換隨機(jī)數(shù)表進(jìn)行處理的平均吞吐量,T4表示一個隨機(jī)數(shù)表的平均吞吐量,以及T5表示非線性轉(zhuǎn)換部80的平均吞吐量。假設(shè)可以從公式(1)中忽略隨機(jī)數(shù)表62的計算量,則就減少的比率(No比特/Ni比特)來說,偽隨機(jī)數(shù)生成器1的吞吐量可能接近于非線性轉(zhuǎn)換部80的吞吐量,從而可以進(jìn)一步增強(qiáng)所述處理。
      與此相反,使用用于驗證偽隨機(jī)數(shù)的NIST(通用名)工具對偽隨機(jī)數(shù)的加密強(qiáng)度進(jìn)行驗證。該NIST是用于對來自偽隨機(jī)數(shù)生成器的實際隨機(jī)數(shù)和輸出數(shù)據(jù)執(zhí)行隨機(jī)性測試的一種工具,而且還是一種包括16種測試的統(tǒng)計軟件包。在“http//crsc.nist.gov/rug”中詳細(xì)地說明了NIST。圖14是示出了在驗證中使用的NIST參數(shù)的表格。當(dāng)通過執(zhí)行所述各種測試而輸出的P值滿足條件0<p值<1時,就認(rèn)為通過了相應(yīng)的測試。對根據(jù)該實例的偽隨機(jī)數(shù)生成器1的偽隨機(jī)數(shù)進(jìn)行驗證,從而確認(rèn)所有的測試都已通過。圖15是示出了該實驗中的NIST驗證結(jié)果的圖形。
      然而,對該實例中示出的建立(設(shè)置)值進(jìn)行設(shè)置,以確認(rèn)密碼的安全性,從而可以建立不同于所述建立值的任何值。此外,本發(fā)明不僅限于上述實施例,可以采用各種改變和組合,只要其不脫離本發(fā)明的范圍即可。
      5.本發(fā)明的效果如上所述,當(dāng)M序列的每一個周期的比特數(shù)(=(2^n)-1)與導(dǎo)出值互為素數(shù)時,通過對各個數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個周期的比特來確定線性反饋移位寄存器,從而可以基于初態(tài)值來動態(tài)地重新構(gòu)建所述線性反饋移位寄存器,并且可以從該重新構(gòu)建的線性反饋移位寄存器輸出M序列的比特串。
      因此,密碼分析人員在重新構(gòu)建之前不能夠基于從隨機(jī)數(shù)生成器輸出的偽隨機(jī)數(shù)來獲得線性反饋移位寄存器的結(jié)構(gòu)。所以,已知的密碼分析不能對初態(tài)值和密鑰進(jìn)行密碼分析。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
      此外,根據(jù)本發(fā)明的另一個實施例,由于基于密鑰來輸出具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串,以及通過參考隨機(jī)數(shù)表、使用所述選擇性使用的隨機(jī)數(shù)比特串,從位于隨機(jī)數(shù)表中的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所以可以基于具有少量比特的選擇性使用的隨機(jī)數(shù)比特串來獲得具有較多比特數(shù)的放大隨機(jī)數(shù)比特串。
      因此,可以極大地增加輸入到非線性轉(zhuǎn)換裝置中的比特串的比特數(shù)。所以,可以增加用于輸出隨機(jī)數(shù)比特串的裝置的吞吐量(迄今為止其構(gòu)成了障礙),該吞吐量在與非線性轉(zhuǎn)換裝置相比較的上游側(cè)提供,并且使其接近于非線性轉(zhuǎn)換裝置的吞吐量,這會帶來整個偽隨機(jī)數(shù)生成器的吞吐量的增加。
      (參考標(biāo)記的說明)1偽隨機(jī)數(shù)生成器10偽隨機(jī)數(shù)生成部11線性反饋移位寄存器12用于重新構(gòu)建線性反饋移位寄存器的裝置20非線性轉(zhuǎn)換部50隨機(jī)數(shù)比特串輸出部51用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置52用于設(shè)置初態(tài)值的裝置53線性反饋移位寄存器54用于重新構(gòu)建線性反饋移位寄存器的裝置60隨機(jī)數(shù)比特串放大部61隨機(jī)數(shù)表部621到62αβ隨機(jī)數(shù)表63用于處理異或等價運算的裝置64用于選擇放大隨機(jī)數(shù)比特串的裝置65用于初始設(shè)置隨機(jī)數(shù)表的裝置66用于生成放大隨機(jī)數(shù)比特串的裝置67用于替換隨機(jī)數(shù)表的順序的裝置68用于生成替換隨機(jī)數(shù)的裝置70非線性轉(zhuǎn)換部
      權(quán)利要求
      1.一種用于生成偽隨機(jī)數(shù)的方法,包括第一步驟,建立線性反饋移位寄存器的初態(tài)值,所述線性反饋移位寄存器包括n個移位電阻器并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串;第二步驟,借助于預(yù)定的運算處理、基于所述初態(tài)值來找到與所述第一線性反饋移位寄存器的每一個周期的比特數(shù)互為素數(shù)的導(dǎo)出值;第三步驟,將所述導(dǎo)出值乘以一個值來計算要從所述線性反饋移位寄存器輸出的比特數(shù),該值是通過兩倍或多倍于每個周期的比特數(shù)而得到的;第四步驟,基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串;第五步驟,從每個導(dǎo)出值的輸出比特串中取出一個比特,以生成新比特串;第六步驟,重新構(gòu)建所述線性反饋移位寄存器,以使得可以從所述電阻器輸出新比特串;以及第七步驟,基于所述初態(tài)值,從重新構(gòu)建的所述線性反饋移位寄存器中生成偽隨機(jī)數(shù)。
      2.根據(jù)權(quán)利要求1所述的用于生成偽隨機(jī)數(shù)的方法,其中通過散列函數(shù)對所述初態(tài)值進(jìn)行處理,以確定其散列值,以便將最接近于該散列值的素數(shù)用作所述導(dǎo)出數(shù)。
      3.根據(jù)權(quán)利要求1或2所述的用于生成偽隨機(jī)數(shù)的方法,其中使用Berlekamp-Massay算法來執(zhí)行線性反饋移位寄存器的重新構(gòu)建。
      4.根據(jù)權(quán)利要求1到3中任何一個所述的用于生成偽隨機(jī)數(shù)的方法,其中進(jìn)一步包括第八步驟,使在第七步驟中生成的偽隨機(jī)數(shù)經(jīng)歷非線性轉(zhuǎn)換。
      5.一種隨機(jī)數(shù)生成器,包括具有n個移位電阻器并且能夠輸出每一個周期都具有(2^n)-1個比特的比特串的線性反饋移位寄存器;基于密鑰來建立所述線性反饋移位寄存器初態(tài)值的裝置;借助于預(yù)定運算處理、基于所述初態(tài)值來確定導(dǎo)出值的裝置,所述導(dǎo)出值與每個線性反饋移位寄存器周期的比特數(shù)互為素數(shù);將所述導(dǎo)出值乘以一個值來計算要從第一線性反饋移位寄存器輸出的比特數(shù)的裝置,該值是通過兩倍或多倍于對應(yīng)于一個周期的比特數(shù)而得到的;基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計算比特數(shù)的比特串的裝置;從每個導(dǎo)出值的輸出比特串中取出一個比特以生成新比特串的裝置;重新構(gòu)建所述線性反饋移位寄存器,使得可以從所述電阻器輸出所述新比特串的裝置;以及基于所述初態(tài)值,從重新構(gòu)建的所述線性反饋移位寄存器中生成偽隨機(jī)數(shù)的裝置。
      6.根據(jù)權(quán)利要求5所述的偽隨機(jī)數(shù)生成器,其進(jìn)一步具有,用于生成第二線性反饋移位電阻器的裝置,來代替用于重新構(gòu)建所述線性反饋移位電阻器的裝置,所述第二線性反饋移位電阻器具有能夠輸出新比特串的結(jié)構(gòu);以及,其中用于生成偽隨機(jī)數(shù)的裝置基于所述初態(tài)值從所述第二線性反饋移位電阻器生成偽隨機(jī)數(shù)。
      7.一種偽隨機(jī)數(shù)生成器,包括基于密鑰來輸出具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中存儲有多個放大隨機(jī)比特串,這些隨機(jī)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特數(shù)的比特數(shù)。能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串,從所述隨機(jī)數(shù)表內(nèi)的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)放大的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的;以及借助非線性函數(shù)對所述放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換以輸出偽隨機(jī)數(shù)的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置來選擇的。
      8.根據(jù)權(quán)利要求7所述的偽隨機(jī)數(shù)生成器,進(jìn)一步具有通過給定密鑰來生成放大隨機(jī)數(shù)比特串、將所述比特串存儲到隨機(jī)數(shù)表中、并且執(zhí)行所述隨機(jī)數(shù)表的初始設(shè)置的裝置。
      9.根據(jù)權(quán)利要求7或8所述的偽隨機(jī)數(shù)生成器,其中提供多個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,提供隨機(jī)數(shù)表以便與各個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串從所述隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表分別相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出的,以及用于非線性轉(zhuǎn)換的裝置通過借助于非線性函數(shù)、利用各個用于生成放大隨機(jī)比特串的裝置對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
      10.根據(jù)權(quán)利要求9所述的偽隨機(jī)數(shù)生成器,其中相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置來提供多個隨機(jī)數(shù)表,以及所述偽隨機(jī)數(shù)生成器進(jìn)一步具有,用于使各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個隨機(jī)數(shù)表中選擇的。
      11.根據(jù)權(quán)利要求9或10所述的偽隨機(jī)數(shù)生成器,其進(jìn)一步具有以預(yù)定時間來彼此替換隨機(jī)數(shù)表的裝置。
      12.根據(jù)權(quán)利要求11所述的偽隨機(jī)數(shù)生成器,其中,每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
      13.根據(jù)權(quán)利要求11所述的偽隨機(jī)數(shù)生成器,其中用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個隨機(jī)數(shù)的編號相同的編號,將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
      14.一種用于生成偽隨機(jī)數(shù)的計算機(jī)可執(zhí)行程序,包括基于密鑰來輸出具有預(yù)定比特數(shù)的選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中存儲了多個放大隨機(jī)數(shù)比特串,所述多個放大隨機(jī)數(shù)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特數(shù)的比特數(shù);能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串,從所述隨機(jī)數(shù)表內(nèi)的多個放大隨機(jī)數(shù)比特串中選擇相應(yīng)放大的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的;以及借助非線性函數(shù)對所述放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換以輸出偽隨機(jī)數(shù)的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置來選擇的。
      15.根據(jù)權(quán)利要求14所述的計算機(jī)可執(zhí)行程序,進(jìn)一步包括,用于通過給定密鑰來生成放大隨機(jī)數(shù)比特串、將所述比特串存儲到隨機(jī)數(shù)表中、并且執(zhí)行隨機(jī)數(shù)表的初始設(shè)置的裝置。
      16.根據(jù)權(quán)利要求14或15所述的計算機(jī)可執(zhí)行程序,其中提供多個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,提供隨機(jī)數(shù)表以便與各個用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)表、從所述各個隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表相應(yīng)于各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)表是從各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的,以及用于非線性轉(zhuǎn)換的裝置通過利用各個用于生成放大隨機(jī)數(shù)比特串的裝置,對從各個隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
      17.根據(jù)權(quán)利要求16所述的計算機(jī)可執(zhí)行程序,其中每個用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置都提供多個隨機(jī)數(shù)表,以及所述程序進(jìn)一步具有,用于使各個放大隨機(jī)數(shù)比特串在各個用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運算的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個隨機(jī)數(shù)表中選擇的。
      18.根據(jù)權(quán)利要求16或17所述的計算機(jī)可執(zhí)行程序,其進(jìn)一步具有以預(yù)定時間來彼此替換隨機(jī)數(shù)表的裝置。
      19.根據(jù)權(quán)利要求18所述的計算機(jī)可執(zhí)行程序,其中每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時,用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
      20.根據(jù)權(quán)利要求18或19所述的計算機(jī)可執(zhí)行程序,其中,用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個隨機(jī)數(shù)的編號相同的編號,將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號提供給各個隨機(jī)數(shù)表,并且根據(jù)基于所述表編號預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
      全文摘要
      一種用于生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)生成器。當(dāng)M序列的每一個周期的比特數(shù)與導(dǎo)出值互為素數(shù)時,通過對各個數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個周期的比特來確定線性反饋移位寄存器,從而可以容易并動態(tài)地基于初態(tài)值來重新構(gòu)建線性反饋移位寄存器11。
      文檔編號G06F7/58GK1714377SQ0382557
      公開日2005年12月28日 申請日期2003年7月10日 優(yōu)先權(quán)日2002年10月7日
      發(fā)明者森井昌克, 白石善明 申請人:小林朗, 森井昌克
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1