亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

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

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

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


圖1是用于說明根據(jù)本發(fā)明實(shí)施例的偽隨機(jī)數(shù)生成器的視圖;圖2示出了根據(jù)本發(fā)明實(shí)施例的線性反饋移位寄存器的原多項(xiàng)式的一個(gè)例子;圖3是用于說明根據(jù)本發(fā)明實(shí)施例的偽隨機(jī)數(shù)生成器的處理過程的流程圖;圖4是示意性地說明根據(jù)本發(fā)明實(shí)施例的偽隨機(jī)數(shù)生成器的視圖;圖5是用于說明偽隨機(jī)數(shù)表構(gòu)造的示意圖;圖6是用于說明在隨機(jī)數(shù)比特串放大部分中構(gòu)造的元件的概念圖;圖7是根據(jù)本發(fā)明實(shí)施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖;圖8是示意性地示出根據(jù)本發(fā)明實(shí)施例的偽隨機(jī)數(shù)生成器的概念圖;圖9是示意性地示出隨機(jī)數(shù)表的概念圖;圖10是根據(jù)本發(fā)明實(shí)施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖;圖11示出了根據(jù)本發(fā)明實(shí)施例的線性反饋移位寄存器的原多項(xiàng)式的一個(gè)例子;圖12是用于說明線性反饋移位寄存器的重新構(gòu)建處理過程的流程圖;圖13是示出了通過測量吞吐量而獲得的結(jié)果的表格;圖14是示出了在驗(yàn)證中使用的NIST參數(shù)的表格;圖15是示出了NIST驗(yàn)證結(jié)果的視圖;圖16是用于說明常規(guī)的流密碼系統(tǒng)的圖形;圖17是用于說明加密設(shè)備的偽隨機(jī)數(shù)生成器的圖形;圖18是用于簡單地說明線性反饋移位寄存器的常規(guī)結(jié)構(gòu)的圖形。
具體實(shí)施例方式
(第一實(shí)施例)參考附圖來說明本發(fā)明的第一實(shí)施例。
圖1是說明根據(jù)本發(fā)明第一實(shí)施例的偽隨機(jī)數(shù)生成器1的視圖。在該實(shí)施例中,作為偽隨機(jī)數(shù)生成器的一個(gè)例子來說明非線性組合器型偽隨機(jī)數(shù)生成器1。
偽隨機(jī)數(shù)生成器1具有初態(tài)值設(shè)置部(未示出),基于用戶給出的密鑰來設(shè)置初態(tài)值;多個(gè)偽隨機(jī)數(shù)生成部10,基于從所述初態(tài)值設(shè)置部接收的初態(tài)值來生成偽隨機(jī)數(shù);以及非線性轉(zhuǎn)換部20,其連接到這些多個(gè)偽隨機(jī)數(shù)生成部10的各個(gè)輸出側(cè),并且非線性地轉(zhuǎn)換從各個(gè)偽隨機(jī)數(shù)生成部分10輸出的偽隨機(jī)數(shù)。
初態(tài)值設(shè)置部將用戶給出的密鑰轉(zhuǎn)換為比特串,將該比特串劃分為偽隨機(jī)數(shù)生成部10的數(shù)量,同時(shí)經(jīng)歷一個(gè)處理過程,以生成分別分配給偽隨機(jī)數(shù)生成部10的線性反饋移位寄存器11的初態(tài)值。
彼此成排地來布置L個(gè)偽隨機(jī)數(shù)生成器10,各個(gè)部10都具有線性反饋移位寄存器11和用于重新構(gòu)建所述線性反饋移位寄存器的裝置12。
線性反饋移位寄存器11具有n個(gè)能夠存儲(chǔ)一比特信息的移位寄存器和異或電路,類似于在“背景技術(shù)”中所描述的。在該實(shí)施例中,預(yù)先設(shè)置移位寄存器11的結(jié)構(gòu),以使得可以輸出每一個(gè)周期的比特?cái)?shù)m為(2^n)-1的比特串(稱為M序列)。
圖2示出了根據(jù)本發(fā)明實(shí)施例的線性反饋移位寄存器11的原多項(xiàng)式的一個(gè)例子。該原多項(xiàng)式是預(yù)先設(shè)置用于輸出M序列的特征多項(xiàng)式。多項(xiàng)式第一項(xiàng)的指數(shù)部分(其由圖2中的“^”來表示)表示移位寄存器的數(shù)量,而第二或者更多項(xiàng)的指數(shù)部分表示連接到異或電路的連接位置。例如,已經(jīng)示出了在表格第一行中示出的線性反饋移位寄存器11(LFSR1)具有131個(gè)移位寄存器,并且通過反饋分接頭將第八、第三和第二行中示出的移位寄存器連接到所述異或電路。在該實(shí)施例中,將移位寄存器的所有數(shù)量n都置為素?cái)?shù)。
用于重新構(gòu)建線性反饋移位寄存器的裝置12動(dòng)態(tài)地改變所述線性反饋移位寄存器的結(jié)構(gòu),以便對其進(jìn)行重新構(gòu)建。更加詳細(xì)地,當(dāng)M序列的每一個(gè)周期的比特?cái)?shù)(=(2^n)-1)與導(dǎo)出值(s)互為素?cái)?shù)(即所述比特?cái)?shù)和導(dǎo)出值除了1之外彼此之間沒有公約數(shù))時(shí),通過對各個(gè)數(shù)進(jìn)行抽樣而獲得的新比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個(gè)周期的比特的比特串來確定能夠輸出比特串且具有等價(jià)和小型結(jié)構(gòu)的線性反饋移位寄存器的特征多項(xiàng)式,從而可以重新構(gòu)建所述線性反饋移位寄存器。
在用于重新構(gòu)建線性反饋移位寄存器的裝置12中,根據(jù)初態(tài)值設(shè)置部給出的初態(tài)值來計(jì)算導(dǎo)出值s,所述導(dǎo)出值乘以一個(gè)值2m,該值2m是通過乘以相應(yīng)于所述線性反饋移位寄存器11的一個(gè)周期的比特?cái)?shù)m(=(2^n)-1)而獲得的,并且計(jì)算要從線性反饋移位寄存器11輸出的比特串的比特?cái)?shù)2ms。
接下來,基于初態(tài)值從線性反饋移位寄存器11輸出2ms個(gè)比特(數(shù)量為2ms),并且從每個(gè)導(dǎo)出值s的2ms個(gè)比特中取出一個(gè)比特串,從而生成新比特串,然后借助于Berlekamp-Massay算法、通過使用所述新比特串來重新構(gòu)建線性反饋移位寄存器11。
在本發(fā)明的實(shí)施例中,通過一個(gè)例子進(jìn)行說明,其中從線性反饋移位寄存器11輸出的比特串的比特?cái)?shù)為2ms,因?yàn)椴恍∮?ms的任何比特?cái)?shù)都能夠確定等價(jià)且小型的線性反饋移位寄存器,所以該比特?cái)?shù)對于不小于2ms的數(shù)量來說是足夠的。
在Berlekamp-Massay算法中,獲得了具有兩倍或多倍于線性反饋移位寄存器11的移位寄存器的數(shù)量n(線性復(fù)雜度)的比特?cái)?shù)的比特串,從而可以獲得能夠輸出所述比特串的等價(jià)且小型的線性反饋移位寄存器。例如,在“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ù)定的運(yùn)算處理、通過劃分用戶給出的密鑰來設(shè)置初態(tài)值。
例如,如果密鑰長度是由“ABCDEFGHIJKLMNOP”組成的16個(gè)比特,以及偽隨機(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”,即每組兩個(gè)字母,同時(shí)將這兩個(gè)字母輸入到移位寄存器,然后將“Padding”填充到移位寄存器的剩余部分來設(shè)置初態(tài)值。上述用于設(shè)置初態(tài)值的方法只是一個(gè)例子,還可以通過其它的方法來設(shè)置初態(tài)值。
當(dāng)通過初態(tài)值設(shè)置部中的密鑰來設(shè)置初態(tài)值時(shí),將各個(gè)初態(tài)值分別輸入到各個(gè)偽隨機(jī)數(shù)生成器10中,以便在線性反饋移位寄存器11的移位寄存器中進(jìn)行設(shè)置。
接下來,通過用于重新構(gòu)建線性反饋移位寄存器的裝置12來重新構(gòu)建線性反饋移位寄存器11(步驟S2到步驟S6)。
首先,根據(jù)初態(tài)值來計(jì)算導(dǎo)出值s,該導(dǎo)出值s與相應(yīng)于所述線性反饋移位寄存器11的一個(gè)周期的比特?cái)?shù)m互為素?cái)?shù)(步驟S2)。通過諸如消息摘要(message digest)5這樣的散列函數(shù)對所述初態(tài)值進(jìn)行處理,以找到其散列值同時(shí)采用最接近于該散列值的一個(gè)素?cái)?shù)來確定所述導(dǎo)出值s。所以,可能增加了估計(jì)所述導(dǎo)出值的難度,從而能夠進(jìn)一步增加信息的機(jī)密性。只要根據(jù)初態(tài)值和與比特?cái)?shù)m為素?cái)?shù)來確定導(dǎo)出值,就可以通過任何方法來確定導(dǎo)出值s。然而,為了保持信息的機(jī)密性,預(yù)定的運(yùn)算處理在某種程度(特性)上應(yīng)當(dāng)是令人滿意的。
在計(jì)算了導(dǎo)出值s之后,對要從線性反饋移位寄存器11輸出的比特串的比特?cái)?shù)2ms進(jìn)行計(jì)算(步驟S3)??梢酝ㄟ^將所述導(dǎo)出值乘以一個(gè)值來確定要從線性反饋移位寄存器11輸出的比特串的比特?cái)?shù)2ms,該值是通過兩倍或多倍于與所述線性反饋移位寄存器11的一個(gè)周期相對應(yīng)的比特?cái)?shù)(=(2^n)-1)而得到的。
接下來,基于初態(tài)值從線性反饋移位寄存器11輸出具有2ms比特的比特串(步驟S4),并且根據(jù)最終得到的(resultant)比特串來生成一個(gè)新比特串(步驟S5)。該新比特串由從具有2ms個(gè)比特的每個(gè)導(dǎo)出值的比特串取出的比特組成,并且具有2m個(gè)比特?cái)?shù)。
假定每一個(gè)周期的比特?cái)?shù)m與導(dǎo)出值s彼此互為素?cái)?shù),則從每個(gè)數(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)于兩個(gè)或多個(gè)周期的比特?cái)?shù)的比特串,則可以確定能夠輸出該比特串的等價(jià)且小型的線性反饋移位寄存器。因此,可以從具有比特?cái)?shù)2m的新比特串中導(dǎo)出新的線性反饋移位寄存器的特征多項(xiàng)式,從而實(shí)施重新構(gòu)建。
重新構(gòu)建的線性反饋移位寄存器11具有特征多項(xiàng)式,該特征多項(xiàng)式具有與重新構(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)對各個(gè)偽隨機(jī)數(shù)進(jìn)行非線性轉(zhuǎn)換(步驟S8)。從而可以給定偽隨機(jī)數(shù)非線性屬性,以進(jìn)一步增強(qiáng)加密強(qiáng)度。
根據(jù)具有上述結(jié)構(gòu)的偽隨機(jī)數(shù)生成器1,可以基于初態(tài)值容易且動(dòng)態(tài)地改變線性反饋移位寄存器11的結(jié)構(gòu),并且之后可以輸出改變的M序列。因此,密碼分析人員在重新構(gòu)建之前不能夠獲得線性反饋移位寄存器的結(jié)構(gòu)。所以,不會(huì)形成在假定線性反饋移位寄存器的結(jié)構(gòu)已知的情況下,所形成的一種已知的密碼分析法。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
在上述實(shí)施例中,盡管作為例子說明了非線性組合器型偽隨機(jī)數(shù)生成器1,但是本發(fā)明沒有必要限制到非線性組合器類型??梢允褂萌魏卫镁€性反饋移位寄存器的偽隨機(jī)數(shù)生成器,例如在分組(block)密碼系統(tǒng)中使用的偽隨機(jī)數(shù)生成器。
此外,在步驟S6中,代替基于新比特串對線性反饋移位寄存器的重新構(gòu)造,生成具有能夠輸出新比特串的結(jié)構(gòu)的第二線性反饋移位寄存器,然后在步驟S7中,可以基于初態(tài)值從第二線性反饋移位寄存器中生成偽隨機(jī)數(shù)。從而可以將線性反饋移位寄存器劃分為兩個(gè)以增強(qiáng)機(jī)密性。此外,可以通過軟件或者硬件來構(gòu)造第一實(shí)施例的的偽隨機(jī)數(shù)生成器1。
(第二實(shí)施例)接下來,將參考附圖來說明本發(fā)明的第二實(shí)施例。
圖4是示意性地說明根據(jù)本發(fā)明第二實(shí)施例的偽隨機(jī)數(shù)生成器1的功能的視圖。該實(shí)施例的偽隨機(jī)數(shù)生成器1是通過在計(jì)算機(jī)硬件上運(yùn)行偽隨機(jī)數(shù)程序而形成的(materiarized)非線性組合器型偽隨機(jī)數(shù)生成器1。在該實(shí)施例中,僅就在加密設(shè)備中使用而言來說明生成器(參見背景技術(shù)),而忽略就在解密設(shè)備中使用而言的說明,因?yàn)檫@種說明類似于在加密設(shè)備中的說明。
如圖4所示,偽隨機(jī)數(shù)生成器1具有隨機(jī)數(shù)比特串輸出部50、隨機(jī)數(shù)比特串放大部60和非線性轉(zhuǎn)換部70。隨機(jī)數(shù)比特串輸出部50具有α(數(shù)量)個(gè)用于選擇性地輸出所使用的隨機(jī)數(shù)比特串51的裝置。用于選擇性地輸出所使用的隨機(jī)數(shù)比特串511到51α的裝置基于具有Lk個(gè)比特的密鑰,來連續(xù)地輸出具有Ni個(gè)比特的選擇性使用的隨機(jī)數(shù)比特串,該Lk個(gè)比特由用戶給出,并且例如包括在線性反饋移位寄存器中。
通過被給出的Ni個(gè)比特的選擇性使用的隨機(jī)數(shù)比特串來構(gòu)造隨機(jī)數(shù)比特串放大部60,以輸出具有No個(gè)比特的被放大的隨機(jī)數(shù)比特串,該No個(gè)比特是比Ni個(gè)比特更大的比特?cái)?shù)量,該隨機(jī)數(shù)比特串放大部60進(jìn)一步具有隨機(jī)數(shù)表61和用于處理異或等價(jià)(par)操作的裝置63。
根據(jù)α×β(下文中僅描述“αβ”)個(gè)存儲(chǔ)了(2^Ni)個(gè)隨機(jī)比特串的隨機(jī)數(shù)表62來構(gòu)建隨機(jī)數(shù)表部61。如圖4所示,每個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51都提供β個(gè)隨機(jī)數(shù)表62。圖5是用于說明偽隨機(jī)數(shù)表構(gòu)造的示意圖。如圖5所示,每個(gè)隨機(jī)數(shù)表62具有給出了0到(2^Ni)-1索引號(hào)的(2^Ni)個(gè)索引部Ri,以及用于存儲(chǔ)比特串的部Ro,該部Ro能夠存儲(chǔ)上述被放大的隨機(jī)數(shù)比特串,而且相應(yīng)于各個(gè)索引號(hào)來提供比特串。
此外以下面的方式來構(gòu)造隨機(jī)數(shù)表。將相應(yīng)的索引部Ri的索引號(hào)選為選擇性使用的隨機(jī)數(shù)比特串的自變量,該選擇性使用的隨機(jī)數(shù)比特串是從用于輸出隨機(jī)數(shù)比特串輸出部50的選擇性使用的隨機(jī)數(shù)比特串的裝置51中選擇的,并且從用于存儲(chǔ)相應(yīng)于索引號(hào)的比特串的部Ro中選擇No個(gè)比特的放大隨機(jī)數(shù)比特串。
構(gòu)建用于處理異或等價(jià)操作的裝置63,以使得就每個(gè)用于選擇性地輸出所使用的隨機(jī)數(shù)比特串的裝置51來說,通過參考隨機(jī)比特?cái)?shù)表621到62αβ而從中提取的αβ個(gè)放大隨機(jī)數(shù)比特串都經(jīng)歷異或運(yùn)算處理,并且將最終得到的α個(gè)放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80。所以,本質(zhì)上不將從隨機(jī)數(shù)表621到62αβ讀取的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80,而本質(zhì)上阻止加密強(qiáng)度依賴于放大隨機(jī)數(shù)比特串,同時(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)于具有與自變量相同值的索引號(hào)的比特存儲(chǔ)部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)行劃分,并且將其存儲(chǔ)在隨機(jī)數(shù)表621到62αβ的所有隨機(jī)數(shù)比特串存儲(chǔ)部Ro中。在該實(shí)施例中,按順序來存儲(chǔ)隨機(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ù)比特串。在該實(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ù)表順序的處理時(shí),生成用于替換所使用的順序的隨機(jī)數(shù)。
用于替換隨機(jī)數(shù)表的裝置67給出由用于生成替換隨機(jī)數(shù)的裝置68生成的替換隨機(jī)數(shù),作為在生成順序中的隨機(jī)數(shù)表621到62αβ的表編號(hào),并且基于所給定的隨機(jī)數(shù)來替換所述隨機(jī)數(shù)表的順序,然后在每個(gè)表中改變在隨機(jī)數(shù)表61內(nèi)的放大隨機(jī)數(shù)比特串的順序。
以下面的方式來構(gòu)造用于生成替換隨機(jī)數(shù)的裝置68。用于生成替換隨機(jī)數(shù)的裝置68基于可選的密鑰K0來執(zhí)行生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的處理,并且每次從隨機(jī)數(shù)比特串輸出部50輸入α個(gè)具有Ni個(gè)比特的隨機(jī)數(shù)比特串,就生成αβ個(gè)用于替換的隨機(jī)數(shù)。在該實(shí)施例中,可選密鑰K0使用相應(yīng)于Lk個(gè)比特的值,該Lk個(gè)比特是從放大隨機(jī)數(shù)比特串中取出的,通過給用于生成放大隨機(jī)數(shù)比特串的裝置66一個(gè)密鑰來輸出放大隨機(jī)數(shù)比特串。然而,密鑰沒有被限制到上面的裝置,例如可以通過其它裝置來生成或由用戶輸入密鑰。
非線性轉(zhuǎn)換部80具有一階非相關(guān)非線性函數(shù)f(x),該函數(shù)的每一個(gè)輸出具有α個(gè)輸入。這樣來構(gòu)造非線性轉(zhuǎn)換部80,即非線性地轉(zhuǎn)換從隨機(jī)數(shù)比特串放大部60輸出的α個(gè)比特串,并且作為偽隨機(jī)數(shù)Z來輸出具有No比特的一個(gè)隨機(jī)數(shù)比特串。
從128比特、256比特、512比特和1024比特中選擇密鑰K,在對α個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51,β個(gè)相應(yīng)于各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的隨機(jī)數(shù)表,以及所述選擇性使用的隨機(jī)數(shù)比特串的Ni個(gè)比特彼此進(jìn)行相乘,并且最終得到的值等于密鑰K的比特?cái)?shù)Lk的條件下,對他們進(jìn)行選擇。
接下來,參考圖7來說明用于生成偽隨機(jī)數(shù)的方法。圖7是根據(jù)本發(fā)明實(shí)施例來說明用于生成偽隨機(jī)數(shù)的方法的流程圖。
首先,當(dāng)隨機(jī)數(shù)比特串輸出部50從用戶接收具有Li個(gè)比特的可選密鑰K的輸入時(shí)(步驟S11),該輸出部50使用密鑰K來建立用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的初態(tài)值(步驟S12)。例如,假設(shè)根據(jù)線性反饋移位寄存器來構(gòu)造用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51,就基于所述密鑰來建立在各個(gè)移位寄存器中存儲(chǔ)的初態(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ū)⑵浯鎯?chǔ)到所有Ro部中,該Ro部用于存儲(chǔ)各個(gè)隨機(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ù)”)時(shí),開始隨機(jī)數(shù)比特串的放大處理(步驟S14到S16)。首先,通過用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51來輸出分別具有Ni個(gè)比特的β個(gè)所述選擇性使用的隨機(jī)數(shù)比特串,以便存儲(chǔ)到隨機(jī)數(shù)比特串放大部分60中(步驟S14)。
接下來,借助于用于替換隨機(jī)數(shù)表的順序的裝置67來替換隨機(jī)數(shù)表621到62αβ的順序(步驟S15)。在這種情況下,通過用于替換隨機(jī)數(shù)的裝置68來生成用于替換的αβ個(gè)隨機(jī)數(shù),并且將這些隨機(jī)數(shù)提供給每個(gè)隨機(jī)數(shù)表621到62αβ,作為替換所述隨機(jī)數(shù)表順序的表編號(hào)。以生成順序?qū)⒈砭幪?hào)從隨機(jī)數(shù)表621提供到隨機(jī)數(shù)表62αβ。
因此,以亂序?qū)⒈砭幪?hào)1到αβ提供給隨機(jī)數(shù)表621到62αβ。各個(gè)隨機(jī)數(shù)表基于給定的表編號(hào)來替換在隨機(jī)數(shù)表61中的放大隨機(jī)數(shù)比特串的順序。從而,各個(gè)隨機(jī)數(shù)表根據(jù)諸如升序或降序這樣的預(yù)定規(guī)則,來替換在隨機(jī)數(shù)表61的用于存儲(chǔ)隨機(jī)數(shù)比特串的Ro部中放大隨機(jī)數(shù)比特串。
在完成對隨機(jī)數(shù)表621到62αβ的順序的替換處理之后,借助于用于選擇放大隨機(jī)數(shù)比特串的裝置64、從各個(gè)隨機(jī)數(shù)表621到62αβ中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,從而執(zhí)行用于選擇放大隨機(jī)數(shù)比特串的處理(步驟S16)。用于選擇放大隨機(jī)數(shù)比特串的裝置64,通過使用在隨機(jī)數(shù)比特串放大部60中存儲(chǔ)的各個(gè)隨機(jī)數(shù)比特串來參考相應(yīng)的隨機(jī)數(shù)表621到62αβ,并且從各個(gè)隨機(jī)數(shù)表621到62αβ中選擇相應(yīng)的放大隨機(jī)數(shù)比特串。
在完成選擇放大隨機(jī)數(shù)比特串的處理之后,借助于用于處理異或運(yùn)算的裝置63來執(zhí)行異或運(yùn)算處理(步驟S17)。對于各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51來說,用于處理異或運(yùn)算的裝置63使得從各個(gè)隨機(jī)數(shù)表621到62αβ中讀取的αβ(數(shù)量)個(gè)放大隨機(jī)數(shù)比特串經(jīng)歷異或運(yùn)算處理。因此,生成了具有No比特的α(數(shù)量)個(gè)新的放大隨機(jī)數(shù)比特串。
此外,將這些新的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80,以執(zhí)行非線性轉(zhuǎn)換(步驟S18)。非線性轉(zhuǎn)換部80對αβ個(gè)具有No比特的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換,以作為其中一個(gè)具有No比特的放大隨機(jī)數(shù)比特串的偽隨機(jī)數(shù)來輸出。
當(dāng)從非線性轉(zhuǎn)換部80輸出偽隨機(jī)數(shù)時(shí),再次重復(fù)步驟S14到步驟S18的過程。因此,根據(jù)從明文到密文進(jìn)行轉(zhuǎn)換的要求生成偽隨機(jī)數(shù)。
根據(jù)偽隨機(jī)數(shù)生成器1,通過參考隨機(jī)數(shù)表,基于從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸出的、具有No比特的選擇性使用的隨機(jī)數(shù)比特串,將具有比特?cái)?shù)大于Ni比特的No比特的放大隨機(jī)數(shù)比特串提供給非線性轉(zhuǎn)換部80。因此,可以增強(qiáng)與非線性轉(zhuǎn)換部80相比較的上游側(cè)的吞吐量(迄今為止其構(gòu)成了障礙),并且使其接近于非線性轉(zhuǎn)換部80的吞吐量,這會(huì)帶來整個(gè)偽隨機(jī)數(shù)生成器1的吞吐量的增加。
響應(yīng)從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸入的選擇性使用的隨機(jī)數(shù)比特串,執(zhí)行用于替換隨機(jī)數(shù)順序的處理。因此,可以增強(qiáng)隨機(jī)數(shù)的加密強(qiáng)度。尤其是,根據(jù)本發(fā)明的該實(shí)施例,可以將隨機(jī)數(shù)表621到62αβ的組合數(shù)轉(zhuǎn)換為αβ階乘(下文中由“!”來表示“階乘”)。因此,假定隨機(jī)數(shù)表61已知時(shí),有效的處理(attack)要求計(jì)算(2^(αβ×Ni))×(αβ)!。該計(jì)算量大于搜索整個(gè)Lk個(gè)比特密鑰的計(jì)算量,所以給定了有效增強(qiáng)的加密強(qiáng)度。
此外,在上面提到的隨機(jī)數(shù)生成器1中,通過參考多個(gè)(β)隨機(jī)數(shù)表,使用從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51輸出的隨機(jī)數(shù)比特串,從各個(gè)隨機(jī)數(shù)表中選擇的隨機(jī)數(shù)比特串經(jīng)歷異或處理。因此,在實(shí)際上要將從隨機(jī)數(shù)表部61讀取的放大隨機(jī)數(shù)比特串輸出到非線性轉(zhuǎn)換部80的情況下,本質(zhì)上要防止加密強(qiáng)度由用于生成放大隨機(jī)數(shù)比特串的裝置66來確定,從而進(jìn)一步增強(qiáng)加密強(qiáng)度。
接下來將說明根據(jù)本發(fā)明實(shí)施例的一個(gè)例子。圖8是示意性地示出可作為例子的偽隨機(jī)數(shù)生成器1的概念圖。圖9是示意性地示出了隨機(jī)數(shù)表61的概念圖。在該示例中,以下面的方式來設(shè)置各個(gè)設(shè)置值(參數(shù))。
用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置數(shù)量8(α=8)相應(yīng)于各個(gè)用于輸出選擇性使用的隨機(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在該實(shí)例中,用于輸出選擇性使用的隨機(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)部。在該實(shí)施例中,將RC4 Syppetric Streap密碼(可以從RSA數(shù)據(jù)安全公司(Data Security Inc.)得到)用作設(shè)置初態(tài)值的裝置12,其與用于生成放大隨機(jī)數(shù)比特串的裝置66共同使用。
線性反饋移位寄存器53具有n個(gè)存儲(chǔ)1比特信息的移位寄存器和一個(gè)異或運(yùn)算電路,類似于在“背景技術(shù)”中說明的。此外,在該實(shí)施例中,預(yù)先將寄存器53設(shè)置為能夠輸出每個(gè)周期具有(2^n)-1個(gè)比特?cái)?shù)m的比特串的結(jié)構(gòu),將其稱為M序列。
圖11示出了根據(jù)本發(fā)明實(shí)施例的線性反饋移位寄存器53的原多項(xiàng)式的例子。該原多項(xiàng)式是預(yù)先設(shè)置用于輸出M序列的特征多項(xiàng)式,在特征多項(xiàng)式第一項(xiàng)中的指數(shù)部分表示線性反饋移位寄存器的數(shù)量,而第二或者更多項(xiàng)中的指數(shù)部分表示與異或運(yùn)算電路的連接位置。例如,如圖11所示,第一行中的線性反饋移位寄存器(LFSR1)53具有129個(gè)移位寄存器,而且移位寄存器通過反饋分接頭將第八十,第八和第一行連接到所述異或運(yùn)算電路。在該實(shí)施例中,將移位寄存器的所有數(shù)量n都置為素?cái)?shù)。
用于重新構(gòu)建線性反饋移位寄存器的裝置14具有通過借助于密鑰K來動(dòng)態(tài)地改變所述線性反饋移位寄存器53的結(jié)構(gòu),來對其進(jìn)行重新構(gòu)建的功能。例如,當(dāng)M序列的每一個(gè)周期的比特?cái)?shù)(=(2^n)-1)與導(dǎo)出值互為素?cái)?shù)(即所述比特?cái)?shù)和導(dǎo)出值除了1之外沒有公約數(shù))時(shí),通過對各個(gè)數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以通過使用線性反饋移位寄存器的特征多項(xiàng)式來執(zhí)行所述線性反饋移位寄存器53的重新構(gòu)建,其中,可以借助于Berlekamp-Massay算法、根據(jù)具有至少兩個(gè)周期的比特?cái)?shù)的比特串來確定能夠輸出比特串且具有等價(jià)且小型結(jié)構(gòu)的線性反饋移位寄存器的特征多項(xiàng)式。
在用于重新構(gòu)建線性反饋移位寄存器的裝置14中,根據(jù)初態(tài)值設(shè)置部12給出的初態(tài)值來計(jì)算導(dǎo)出值s,所述導(dǎo)出值s乘以一個(gè)值2m,該值2m是通過乘以相應(yīng)于所述線性反饋移位寄存器53的一個(gè)周期的比特?cái)?shù)m(=(2^n)-1)而獲得的,并且計(jì)算要從線性反饋移位寄存器53輸出的比特串的比特?cái)?shù)2ms。
接下來,基于初態(tài)值從線性反饋移位寄存器53輸出2ms(數(shù)量)個(gè)比特串,并且從每個(gè)導(dǎo)出值s的2ms個(gè)比特串中取出一個(gè)比特串,從而生成新比特串,然后借助于Berlekamp-Massay算法、通過使用所述新比特串來改變線性反饋移位寄存器11的結(jié)構(gòu)。
從線性反饋移位寄存器53輸出的比特?cái)?shù)不小于2ms,因?yàn)椴恍∮?ms的任何比特?cái)?shù)都能夠確定等價(jià)且小型的線性反饋移位寄存器。
在Berlekamp-Massay算法中,獲得了具有兩倍或多倍于線性反饋移位寄存器53的移位寄存器的數(shù)量n(線性復(fù)雜度)的比特?cái)?shù)的比特串,從而可以獲得能夠輸出所述比特串的等價(jià)且小型的線性反饋移位寄存器。例如,在“Introduction to Encryption Logic”(第二版,KYORITSUSYUPPAN,E.Okamoto,2002年4月10日)中全面描述了Berlekamp-Massay算法。
圖12是用于說明線性反饋移位寄存器53的重新構(gòu)建處理過程的流程圖。首先,通過用于設(shè)置初態(tài)值的裝置12來設(shè)置初態(tài)值(步驟41)。基于由用戶給出的Lk比特密鑰K來設(shè)置初態(tài)值。當(dāng)通過用于設(shè)置初態(tài)值的裝置12中的密鑰來設(shè)置初態(tài)值時(shí),將初態(tài)值設(shè)置到線性反饋移位寄存器53的移位寄存器內(nèi)。
接下來,根據(jù)預(yù)定的運(yùn)算處理來計(jì)算導(dǎo)出值s,該導(dǎo)出值s與線性反饋移位寄存器53的每一個(gè)周期的比特?cái)?shù)m互為素?cái)?shù)(步驟S42)。通過借助于諸如消息摘要5這樣的散列函數(shù)處理所述初態(tài)值以確定其散列值,同時(shí)選擇最接近于該散列值的一個(gè)素?cái)?shù)來確定所述導(dǎo)出值s。只要可以根據(jù)初態(tài)值來確定導(dǎo)出值s,以及該導(dǎo)出值與比特?cái)?shù)m互為素?cái)?shù),就可以通過任何方法來確定導(dǎo)出值s。然而,為了保持信息的機(jī)密性,預(yù)定的運(yùn)算處理在某種程度(特性)上應(yīng)當(dāng)是令人滿意的。
在計(jì)算了導(dǎo)出值s之后,對要從線性反饋移位寄存器53輸出的比特串的比特?cái)?shù)2ms進(jìn)行計(jì)算(步驟S43)??梢酝ㄟ^將所述導(dǎo)出值乘以一個(gè)值來確定要從線性反饋移位寄存器53輸出的比特串的比特?cái)?shù)2ms,該值是通過兩倍或多倍于所述線性反饋移位寄存器53的一個(gè)周期的比特?cái)?shù)(=(2^n)-1)而得到的。
接下來,基于初態(tài)值從線性反饋移位寄存器53輸出具有2ms比特的比特串(步驟S44),并且根據(jù)最終得到的比特串來生成一個(gè)新比特串(步驟S45)。該新比特串由從具有2ms個(gè)比特的每個(gè)導(dǎo)出值的比特串取出的比特組成,并且具有2m個(gè)比特?cái)?shù)。
假定每一個(gè)周期的比特串m與導(dǎo)出值s互為素?cái)?shù),則從每個(gè)數(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)于兩個(gè)或多個(gè)周期的比特?cái)?shù)的比特串,則可以獲得能夠輸出該比特串的等價(jià)且小型的線性反饋移位寄存器53。因此,可以從具有比特?cái)?shù)2m的新比特串中導(dǎo)出新的線性反饋移位寄存器53的特征多項(xiàng)式,從而實(shí)施重新構(gòu)建。
重新構(gòu)建的線性反饋移位寄存器53′具有特征多項(xiàng)式,該特征多項(xiàng)式具有與重新構(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個(gè),這樣就可以增加信息的機(jī)密性。
在具有上述結(jié)構(gòu)的偽隨機(jī)數(shù)生成器51中,可以基于初態(tài)值容易且動(dòng)態(tài)地改變線性反饋移位寄存器53的結(jié)構(gòu),還可以根據(jù)改變的結(jié)構(gòu)來輸出M序列。因此,密碼分析人員在重新構(gòu)建之前不能夠獲得線性反饋移位寄存器的結(jié)構(gòu)。所以,不會(huì)形成在假定線性反饋移位寄存器的結(jié)構(gòu)已知的情況下,所形成的一種已知的密碼分析法。結(jié)果,可以獲得高的加密強(qiáng)度,并且可以保持信息的機(jī)密性。
接下來說明通過使用偽隨機(jī)數(shù)生成器1來生成偽隨機(jī)數(shù)的方法,該偽隨機(jī)數(shù)生成器1具有用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51。圖10是根據(jù)本發(fā)明實(shí)施例來說明生成偽隨機(jī)數(shù)的方法的流程圖。
首先,當(dāng)隨機(jī)數(shù)比特串輸出部50從用戶接收具有128比特(Lk=128比特)的可選密鑰K的輸入時(shí),基于所述密鑰K來設(shè)置重新構(gòu)建之前的線性反饋移位寄存器53的初態(tài)值(步驟S21)。
然后,基于所述初態(tài)值來重新構(gòu)建線性反饋移位寄存器53(步驟S22),同時(shí)建立重新構(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ī)比特串的處理。在該實(shí)例中,因?yàn)橛糜谏煞糯箅S機(jī)數(shù)比特串的裝置66、與用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置51的設(shè)置初態(tài)值的裝置12一同使用,所以如上所述,實(shí)際上將從線性反饋移位寄存器53輸出的隨機(jī)比特串用作初態(tài)值,而不需要單獨(dú)輸出比特串。
用于初始設(shè)置隨機(jī)數(shù)表的裝置65將所述隨機(jī)比特串每16個(gè)比特(No=16)進(jìn)行劃分,并且將所劃分的比特串按序存儲(chǔ)到每個(gè)隨機(jī)數(shù)表621到6216的所有隨機(jī)數(shù)比特串存儲(chǔ)部Ro中。
在上述初始建立步驟(步驟21到24)之后,處理處于等待狀態(tài)中。在完成將明文輸入到起觸發(fā)器作用的加密設(shè)備(參考“背景技術(shù)”)時(shí),變換(transfer)生成偽隨機(jī)數(shù)的處理(步驟S25到S27)。
這里,各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588輸出選擇性使用的隨機(jī)數(shù)比特串,并且將其存儲(chǔ)在隨機(jī)數(shù)比特串放大部60的緩沖器中。更加具體的是,從各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588輸出8比特的選擇性使用的隨機(jī)數(shù)比特串(步驟S27)。對于各個(gè)輸出選擇性使用的隨機(jī)數(shù)比特串的裝置1來說,所述選擇性使用的隨機(jī)數(shù)比特串的數(shù)量為2(β=2)(步驟S26中為Yes)。如果數(shù)量與各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到588相一致(步驟S25中為Yes),則鑒于已經(jīng)獲得了所需的選擇性使用的隨機(jī)數(shù),所以該處理進(jìn)入到隨后的隨機(jī)數(shù)比特串放大階段。因此,通過上述處理過程將16個(gè)具有8比特的選擇性使用的隨機(jī)數(shù)比特串存儲(chǔ)在所述緩沖器中。
接下來,基于密鑰K0、借助于生成用于替換的隨機(jī)數(shù)的裝置68來生成16個(gè)用于替換的隨機(jī)數(shù)(步驟S28),并且執(zhí)行用于替換隨機(jī)數(shù)表順序的處理(步驟S29)。在這種情況下,將16個(gè)隨機(jī)數(shù)作為表編號(hào)提供給隨機(jī)數(shù)表621到6216。因此,不按順序?yàn)殡S機(jī)數(shù)表621到6216提供表編號(hào)1到16。此外,基于給定的表編號(hào)來替換隨機(jī)數(shù)表621到6216的順序。這里,執(zhí)行升序替換,使得以1到16的順序?qū)⒈砭幪?hào)1到16安排給用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511到58n。從而每個(gè)隨機(jī)數(shù)表都可以隨機(jī)地替換在隨機(jī)數(shù)表61內(nèi)的放大隨機(jī)數(shù)比特串的順序。
接下來,執(zhí)行從各個(gè)隨機(jī)數(shù)表621到6216選擇相應(yīng)放大隨機(jī)數(shù)比特串的處理(步驟S30到S32)。例如,該處理參考通過使用第一選擇性使用的隨機(jī)數(shù)比特串的隨機(jī)數(shù)表621,所述第一選擇性使用的隨機(jī)數(shù)比特串從選擇性使用的隨機(jī)數(shù)比特串111中輸出并且作為自變量存儲(chǔ)在所述緩沖器中(步驟S32)。然后,選擇具有與所述自變量相同的值的索引號(hào),并且選擇在隨機(jī)數(shù)比特串存儲(chǔ)部Ro中存儲(chǔ)的、相應(yīng)于所述索引號(hào)的隨機(jī)數(shù)比特串。
例如,當(dāng)存儲(chǔ)在相應(yīng)于隨機(jī)數(shù)表621的隨機(jī)數(shù)比特串存儲(chǔ)部Ro中的、從用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置511輸出的隨機(jī)數(shù)比特串為“00000011”時(shí),將該“00000011”認(rèn)為是八位二進(jìn)制數(shù),并且將其轉(zhuǎn)換為十進(jìn)制數(shù)值以獲得自變量“3”。通過參考隨機(jī)數(shù)表621、使用該自變量“3”來選擇存儲(chǔ)在隨機(jī)數(shù)比特串存儲(chǔ)部Ro中的、具有索引號(hào)(索引部Ro的)3的放大隨機(jī)數(shù)比特串“010110101101110110”。
然后,當(dāng)分別從隨機(jī)數(shù)表621和隨機(jī)數(shù)表622中選擇放大隨機(jī)數(shù)比特串(步驟S31中的Yes)時(shí),這兩個(gè)放大隨機(jī)數(shù)比特串經(jīng)歷異或運(yùn)算處理(步驟S33),以生成具有16個(gè)比特的新的放大隨機(jī)數(shù)比特串。
接下來,在對隨機(jī)數(shù)表623到6216執(zhí)行如上所述的相同處理(步驟S30中的Yes)之后,生成總共8個(gè)新的放大隨機(jī)數(shù)比特串,將它們輸出到非線性轉(zhuǎn)換部80并且傳送到非線性轉(zhuǎn)換階段。
在非線性轉(zhuǎn)換部80中,從隨機(jī)數(shù)比特串放大部60輸入的具有No比特的8個(gè)新的放大隨機(jī)數(shù)比特串,通過非線性函數(shù)f(x)引起比特串的非線性轉(zhuǎn)換(步驟S34),以給出具有16個(gè)比特的一個(gè)隨機(jī)數(shù)比特串。然后,重復(fù)執(zhí)行步驟S25到S34的處理,從而獲得所需數(shù)量的偽隨機(jī)數(shù)。
在該實(shí)例中,執(zhí)行有關(guān)是否適當(dāng)?shù)乇3指咚偬匦院碗S機(jī)性的實(shí)驗(yàn)。結(jié)果,處理速度增加到傳統(tǒng)處理速度的180倍,同時(shí)獲得了適當(dāng)?shù)碾S機(jī)性。下面將描述該實(shí)驗(yàn)和結(jié)果。
在該實(shí)驗(yàn)中使用的計(jì)算機(jī)是具有1.7GHz CPU和256MB內(nèi)存的Pentium(注冊商標(biāo))4。各個(gè)設(shè)置值都與上述實(shí)例相同。在用于生成替換隨機(jī)數(shù)比特串的裝置28中使用的密鑰K0是由十六進(jìn)制數(shù)表示的(fle2d34b5a69788796a5b4c3d2e1f10)16,并且通過固定該值來進(jìn)行實(shí)驗(yàn)。
圖13是示出了測量吞吐量所獲結(jié)果的表格。表格中的常規(guī)類型是圖17中示出的非線性組合器型偽隨機(jī)數(shù)生成器,其由8個(gè)線性反饋移位寄存器(LFSR)53和一個(gè)非線性轉(zhuǎn)換部80組成。
根據(jù)實(shí)驗(yàn)結(jié)果,實(shí)際上從線性反饋移位寄存器53的平均吞吐量到非線性轉(zhuǎn)換部80的平均吞吐量來增加偽隨機(jī)數(shù)生成器1的平均吞吐量,以及所增加的吞吐量大約是常規(guī)類型吞吐量的170倍(即116.4Mbps/sec÷0.680Mbps/sec=171.16-----)。因此,吞吐量結(jié)果示出了使用隨機(jī)數(shù)表62來增加偽隨機(jī)數(shù)生成器1的處理速度是有效的。
在該實(shí)例中使用的偽隨機(jī)數(shù)生成器1的吞吐量由下面的公式來表示1T=NINo(nT1+1T2+1T3)+nmT4+1T5---(1)]]>在公式(1)中,T1表示一個(gè)線性反饋移位寄存器53的平均吞吐量,T2表示RC4(用于生成放大隨機(jī)數(shù)比特串的裝置66)的平均吞吐量,T3表示通過用于替換隨機(jī)數(shù)表的裝置67對替換隨機(jī)數(shù)表進(jìn)行處理的平均吞吐量,T4表示一個(gè)隨機(jī)數(shù)表的平均吞吐量,以及T5表示非線性轉(zhuǎn)換部80的平均吞吐量。假設(shè)可以從公式(1)中忽略隨機(jī)數(shù)表62的計(jì)算量,則就減少的比率(No比特/Ni比特)來說,偽隨機(jī)數(shù)生成器1的吞吐量可能接近于非線性轉(zhuǎn)換部80的吞吐量,從而可以進(jìn)一步增強(qiáng)所述處理。
與此相反,使用用于驗(yàn)證偽隨機(jī)數(shù)的NIST(通用名)工具對偽隨機(jī)數(shù)的加密強(qiáng)度進(jìn)行驗(yàn)證。該NIST是用于對來自偽隨機(jī)數(shù)生成器的實(shí)際隨機(jī)數(shù)和輸出數(shù)據(jù)執(zhí)行隨機(jī)性測試的一種工具,而且還是一種包括16種測試的統(tǒng)計(jì)軟件包。在“http//crsc.nist.gov/rug”中詳細(xì)地說明了NIST。圖14是示出了在驗(yàn)證中使用的NIST參數(shù)的表格。當(dāng)通過執(zhí)行所述各種測試而輸出的P值滿足條件0<p值<1時(shí),就認(rèn)為通過了相應(yīng)的測試。對根據(jù)該實(shí)例的偽隨機(jī)數(shù)生成器1的偽隨機(jī)數(shù)進(jìn)行驗(yàn)證,從而確認(rèn)所有的測試都已通過。圖15是示出了該實(shí)驗(yàn)中的NIST驗(yàn)證結(jié)果的圖形。
然而,對該實(shí)例中示出的建立(設(shè)置)值進(jìn)行設(shè)置,以確認(rèn)密碼的安全性,從而可以建立不同于所述建立值的任何值。此外,本發(fā)明不僅限于上述實(shí)施例,可以采用各種改變和組合,只要其不脫離本發(fā)明的范圍即可。
5.本發(fā)明的效果如上所述,當(dāng)M序列的每一個(gè)周期的比特?cái)?shù)(=(2^n)-1)與導(dǎo)出值互為素?cái)?shù)時(shí),通過對各個(gè)數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個(gè)周期的比特來確定線性反饋移位寄存器,從而可以基于初態(tài)值來動(dòng)態(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ā)明的另一個(gè)實(shí)施例,由于基于密鑰來輸出具有預(yù)定比特?cái)?shù)的選擇性使用的隨機(jī)數(shù)比特串,以及通過參考隨機(jī)數(shù)表、使用所述選擇性使用的隨機(jī)數(shù)比特串,從位于隨機(jī)數(shù)表中的多個(gè)放大隨機(jī)數(shù)比特串中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所以可以基于具有少量比特的選擇性使用的隨機(jī)數(shù)比特串來獲得具有較多比特?cái)?shù)的放大隨機(jī)數(shù)比特串。
因此,可以極大地增加輸入到非線性轉(zhuǎn)換裝置中的比特串的比特?cái)?shù)。所以,可以增加用于輸出隨機(jī)數(shù)比特串的裝置的吞吐量(迄今為止其構(gòu)成了障礙),該吞吐量在與非線性轉(zhuǎn)換裝置相比較的上游側(cè)提供,并且使其接近于非線性轉(zhuǎn)換裝置的吞吐量,這會(huì)帶來整個(gè)偽隨機(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用于處理異或等價(jià)運(yùn)算的裝置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個(gè)移位電阻器并且能夠輸出每一個(gè)周期都具有(2^n)-1個(gè)比特的比特串;第二步驟,借助于預(yù)定的運(yùn)算處理、基于所述初態(tài)值來找到與所述第一線性反饋移位寄存器的每一個(gè)周期的比特?cái)?shù)互為素?cái)?shù)的導(dǎo)出值;第三步驟,將所述導(dǎo)出值乘以一個(gè)值來計(jì)算要從所述線性反饋移位寄存器輸出的比特?cái)?shù),該值是通過兩倍或多倍于每個(gè)周期的比特?cái)?shù)而得到的;第四步驟,基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計(jì)算比特?cái)?shù)的比特串;第五步驟,從每個(gè)導(dǎo)出值的輸出比特串中取出一個(gè)比特,以生成新比特串;第六步驟,重新構(gòu)建所述線性反饋移位寄存器,以使得可以從所述電阻器輸出新比特串;以及第七步驟,基于所述初態(tài)值,從重新構(gòu)建的所述線性反饋移位寄存器中生成偽隨機(jī)數(shù)。
2.根據(jù)權(quán)利要求1所述的用于生成偽隨機(jī)數(shù)的方法,其中通過散列函數(shù)對所述初態(tài)值進(jìn)行處理,以確定其散列值,以便將最接近于該散列值的素?cái)?shù)用作所述導(dǎo)出數(shù)。
3.根據(jù)權(quán)利要求1或2所述的用于生成偽隨機(jī)數(shù)的方法,其中使用Berlekamp-Massay算法來執(zhí)行線性反饋移位寄存器的重新構(gòu)建。
4.根據(jù)權(quán)利要求1到3中任何一個(gè)所述的用于生成偽隨機(jī)數(shù)的方法,其中進(jìn)一步包括第八步驟,使在第七步驟中生成的偽隨機(jī)數(shù)經(jīng)歷非線性轉(zhuǎn)換。
5.一種隨機(jī)數(shù)生成器,包括具有n個(gè)移位電阻器并且能夠輸出每一個(gè)周期都具有(2^n)-1個(gè)比特的比特串的線性反饋移位寄存器;基于密鑰來建立所述線性反饋移位寄存器初態(tài)值的裝置;借助于預(yù)定運(yùn)算處理、基于所述初態(tài)值來確定導(dǎo)出值的裝置,所述導(dǎo)出值與每個(gè)線性反饋移位寄存器周期的比特?cái)?shù)互為素?cái)?shù);將所述導(dǎo)出值乘以一個(gè)值來計(jì)算要從第一線性反饋移位寄存器輸出的比特?cái)?shù)的裝置,該值是通過兩倍或多倍于對應(yīng)于一個(gè)周期的比特?cái)?shù)而得到的;基于所述初態(tài)值從所述線性反饋移位寄存器輸出相應(yīng)于所計(jì)算比特?cái)?shù)的比特串的裝置;從每個(gè)導(dǎo)出值的輸出比特串中取出一個(gè)比特以生成新比特串的裝置;重新構(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ù)定比特?cái)?shù)的選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中存儲(chǔ)有多個(gè)放大隨機(jī)比特串,這些隨機(jī)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特?cái)?shù)的比特?cái)?shù)。能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串,從所述隨機(jī)數(shù)表內(nèi)的多個(gè)放大隨機(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ù)比特串、將所述比特串存儲(chǔ)到隨機(jī)數(shù)表中、并且執(zhí)行所述隨機(jī)數(shù)表的初始設(shè)置的裝置。
9.根據(jù)權(quán)利要求7或8所述的偽隨機(jī)數(shù)生成器,其中提供多個(gè)用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,提供隨機(jī)數(shù)表以便與各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)比特串從所述隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表分別相應(yīng)于各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)比特串是從各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出的,以及用于非線性轉(zhuǎn)換的裝置通過借助于非線性函數(shù)、利用各個(gè)用于生成放大隨機(jī)比特串的裝置對從各個(gè)隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
10.根據(jù)權(quán)利要求9所述的偽隨機(jī)數(shù)生成器,其中相應(yīng)于各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置來提供多個(gè)隨機(jī)數(shù)表,以及所述偽隨機(jī)數(shù)生成器進(jìn)一步具有,用于使各個(gè)放大隨機(jī)數(shù)比特串在各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運(yùn)算的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個(gè)隨機(jī)數(shù)表中選擇的。
11.根據(jù)權(quán)利要求9或10所述的偽隨機(jī)數(shù)生成器,其進(jìn)一步具有以預(yù)定時(shí)間來彼此替換隨機(jī)數(shù)表的裝置。
12.根據(jù)權(quán)利要求11所述的偽隨機(jī)數(shù)生成器,其中,每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個(gè)隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時(shí),用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
13.根據(jù)權(quán)利要求11所述的偽隨機(jī)數(shù)生成器,其中用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個(gè)隨機(jī)數(shù)的編號(hào)相同的編號(hào),將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號(hào)提供給各個(gè)隨機(jī)數(shù)表,并且根據(jù)基于所述表編號(hào)預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
14.一種用于生成偽隨機(jī)數(shù)的計(jì)算機(jī)可執(zhí)行程序,包括基于密鑰來輸出具有預(yù)定比特?cái)?shù)的選擇性使用的隨機(jī)數(shù)比特串的裝置;隨機(jī)數(shù)表,其中存儲(chǔ)了多個(gè)放大隨機(jī)數(shù)比特串,所述多個(gè)放大隨機(jī)數(shù)比特串具有大于所述選擇性使用的隨機(jī)數(shù)比特串的比特?cái)?shù)的比特?cái)?shù);能夠通過參考所述隨機(jī)數(shù)表、利用所述選擇性使用的隨機(jī)數(shù)比特串,從所述隨機(jī)數(shù)表內(nèi)的多個(gè)放大隨機(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ì)算機(jī)可執(zhí)行程序,進(jìn)一步包括,用于通過給定密鑰來生成放大隨機(jī)數(shù)比特串、將所述比特串存儲(chǔ)到隨機(jī)數(shù)表中、并且執(zhí)行隨機(jī)數(shù)表的初始設(shè)置的裝置。
16.根據(jù)權(quán)利要求14或15所述的計(jì)算機(jī)可執(zhí)行程序,其中提供多個(gè)用于輸出選擇性使用的隨機(jī)數(shù)表的裝置,提供隨機(jī)數(shù)表以便與各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)表的裝置相一致,用于生成放大隨機(jī)數(shù)比特串的裝置通過參考所述隨機(jī)數(shù)表、利用選擇性使用的隨機(jī)數(shù)表、從所述各個(gè)隨機(jī)數(shù)表中選擇相應(yīng)的放大隨機(jī)數(shù)比特串,所述隨機(jī)數(shù)表相應(yīng)于各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置,所述選擇性使用的隨機(jī)數(shù)表是從各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置中輸出的,以及用于非線性轉(zhuǎn)換的裝置通過利用各個(gè)用于生成放大隨機(jī)數(shù)比特串的裝置,對從各個(gè)隨機(jī)數(shù)表選擇的放大隨機(jī)數(shù)比特串進(jìn)行非線性轉(zhuǎn)換來輸出偽隨機(jī)數(shù)。
17.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)可執(zhí)行程序,其中每個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置都提供多個(gè)隨機(jī)數(shù)表,以及所述程序進(jìn)一步具有,用于使各個(gè)放大隨機(jī)數(shù)比特串在各個(gè)用于輸出選擇性使用的隨機(jī)數(shù)比特串的、并將其輸出到非線性轉(zhuǎn)換裝置的裝置上都經(jīng)歷異或運(yùn)算的裝置,所述放大隨機(jī)數(shù)比特串是通過用于選擇放大隨機(jī)數(shù)比特串的裝置從各個(gè)隨機(jī)數(shù)表中選擇的。
18.根據(jù)權(quán)利要求16或17所述的計(jì)算機(jī)可執(zhí)行程序,其進(jìn)一步具有以預(yù)定時(shí)間來彼此替換隨機(jī)數(shù)表的裝置。
19.根據(jù)權(quán)利要求18所述的計(jì)算機(jī)可執(zhí)行程序,其中每當(dāng)用于輸出選擇性使用的隨機(jī)數(shù)比特串的裝置輸出參考各個(gè)隨機(jī)數(shù)表所需的、選擇性使用的隨機(jī)數(shù)比特串時(shí),用于替換隨機(jī)數(shù)表的裝置都具有彼此替換隨機(jī)數(shù)表的功能。
20.根據(jù)權(quán)利要求18或19所述的計(jì)算機(jī)可執(zhí)行程序,其中,用于替換隨機(jī)數(shù)表的裝置具有生成用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)的功能,所述隨機(jī)數(shù)表具有與各個(gè)隨機(jī)數(shù)的編號(hào)相同的編號(hào),將用于替換隨機(jī)數(shù)表的隨機(jī)數(shù)作為隨機(jī)數(shù)表的表編號(hào)提供給各個(gè)隨機(jī)數(shù)表,并且根據(jù)基于所述表編號(hào)預(yù)定的規(guī)則來替換所述隨機(jī)數(shù)表的順序。
全文摘要
一種用于生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)生成器。當(dāng)M序列的每一個(gè)周期的比特?cái)?shù)與導(dǎo)出值互為素?cái)?shù)時(shí),通過對各個(gè)數(shù)s進(jìn)行抽樣而獲得的比特串,即其輸出序列是M序列的比特串的比特構(gòu)成了具有其它結(jié)構(gòu)的線性反饋移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根據(jù)相應(yīng)于至少兩個(gè)周期的比特來確定線性反饋移位寄存器,從而可以容易并動(dòng)態(tài)地基于初態(tài)值來重新構(gòu)建線性反饋移位寄存器11。
文檔編號(hào)G06F7/58GK1714377SQ0382557
公開日2005年12月28日 申請日期2003年7月10日 優(yōu)先權(quán)日2002年10月7日
發(fā)明者森井昌克, 白石善明 申請人:小林朗, 森井昌克
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1