本發(fā)明屬于信息安全領(lǐng)域,尤其涉及一種偽隨機(jī)數(shù)生成方法,可用于網(wǎng)絡(luò)信息加密。
背景技術(shù):
:隨機(jī)數(shù)在密碼學(xué)的應(yīng)用中隨處可見,如密鑰、數(shù)字簽名和身份認(rèn)證。常見的隨機(jī)數(shù)生成方法主要有兩大類:真隨機(jī)數(shù)生成器TRNG和偽隨機(jī)數(shù)生成器PRNG。真隨機(jī)數(shù)生成器TRNG具有很好的不可預(yù)測(cè)性,已有很多研究利用噪聲作為外部隨機(jī)源來構(gòu)造發(fā)生器,如吳曉勇、王新亞的專利(專利公開號(hào):CN103049243A)真隨機(jī)數(shù)產(chǎn)生方法及裝置,通過將模數(shù)轉(zhuǎn)換和數(shù)模轉(zhuǎn)換過程中的量化誤差的放大過程,再與引入的熱噪聲求和放大來產(chǎn)生隨機(jī)數(shù);周昕杰、于宗光、羅靜、王棟、田海燕的專利(專利公開號(hào):CN203909778U)多源輸入真隨機(jī)數(shù)發(fā)生器電路架構(gòu),公開了一種通過中間變量對(duì)不同類型噪聲產(chǎn)生電路進(jìn)行選擇作為噪聲源,再用采樣校正電路和隨機(jī)數(shù)計(jì)數(shù)器對(duì)其處理得到真隨機(jī)數(shù)的方法。但噪聲具有不穩(wěn)定性,易受到攻擊者對(duì)外部噪聲源的攻擊,且真隨機(jī)數(shù)生成器TRNG的生成方法大多數(shù)需要基于硬件來實(shí)現(xiàn),生成速率相對(duì)較慢。偽隨機(jī)數(shù)生成器PRNG生成隨機(jī)數(shù)的速率快,易于在軟硬件中實(shí)現(xiàn),雖然不是真正的隨機(jī),但若周期足夠大,其特性也足以在很多科學(xué)領(lǐng)域得到應(yīng)用,如隨機(jī)過程的仿真和電腦算法中的統(tǒng)計(jì)采樣與性能評(píng)估。孫云剛、孫才、陳曦的專利(專利公開號(hào):CN102314332B)偽隨機(jī)數(shù)生成裝置和方法,利用位移方向相反的兩個(gè)線性反饋移位寄存器產(chǎn)生隨機(jī)比特?cái)?shù);周旭、張飛的專利(專利公開號(hào):CN103034473B)一種偽隨機(jī)數(shù)生成器,通過m序列在數(shù)字邏輯電路中生成數(shù)字信號(hào),再用數(shù)模轉(zhuǎn)換將其轉(zhuǎn)化為模擬信號(hào)來作為隨機(jī)數(shù)源;金銀軍、李曉龍、寧振虎、周端陽、王博、喻賢成的專利(專利公開號(hào):CN102520908B)一種偽隨機(jī)數(shù)生成器及偽隨機(jī)數(shù)生成方法,利用高曲平方算法高效的生成高質(zhì)量的偽隨機(jī)數(shù)。但這些方法生成的偽隨機(jī)數(shù)序列的統(tǒng)計(jì)性能并不十分好,不能很好的應(yīng)用到信息加密中。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于針對(duì)上述已有技術(shù)的不足,提出一種基于細(xì)胞神經(jīng)網(wǎng)絡(luò)的偽隨機(jī)數(shù)生成方法,以避免隨機(jī)數(shù)生成器的生成效率低和統(tǒng)計(jì)性能不夠好的缺陷,提高信息加密的安全性。為實(shí)現(xiàn)上述目的,本發(fā)明包括:(1)用六維細(xì)胞神經(jīng)網(wǎng)絡(luò)生成隨機(jī)序列P,并將序列P中的數(shù)據(jù)按照從左到右、從上到下的順序依次存入大小為6×6的第一矩陣p[i][j],其中i和j的取值范圍均為[0,5];(2)用邏輯斯蒂映射生成隨機(jī)序列X,并將序列X中的數(shù)據(jù)按照從上到下、從左到右的順序依次存入大小為6×6的第二矩陣x[i][j];(3)對(duì)第一矩陣p[i][j]和第二矩陣x[i][j]中的數(shù)據(jù)進(jìn)行整數(shù)化處理;(4)用處理后的第一矩陣p[i][j]和第二矩陣x[i][j]生成大小為6×6的二維數(shù)組r[i][j];(5)用二維數(shù)組r[i][j]生成64bits的偽隨機(jī)數(shù);(6)重復(fù)步驟(1)到(5),每次循環(huán)生成64bits的偽隨機(jī)數(shù),直到生成所需大小的偽隨機(jī)數(shù)。本發(fā)明的優(yōu)點(diǎn)在于:1.本發(fā)明通過用六維細(xì)胞神經(jīng)網(wǎng)絡(luò)和邏輯斯蒂映射生成偽隨機(jī)數(shù),提高了偽隨機(jī)序列的統(tǒng)計(jì)性能;2.本發(fā)明通過每次循環(huán)可生成64bits的偽隨機(jī)數(shù),提高了偽隨機(jī)數(shù)的生成效率;3.本發(fā)明通過提高偽隨機(jī)數(shù)的統(tǒng)計(jì)性能和生成效率,增強(qiáng)了信息加密的安全性。附圖說明圖1為本發(fā)明的實(shí)現(xiàn)流程圖。具體實(shí)施方式以下參照附圖,對(duì)本發(fā)明的技術(shù)方案和效果作進(jìn)一步詳細(xì)說明。參照?qǐng)D1,本發(fā)明的實(shí)現(xiàn)步驟如下:步驟1:用六維細(xì)胞神經(jīng)網(wǎng)絡(luò)生成隨機(jī)序列P。六維細(xì)胞神經(jīng)網(wǎng)絡(luò)屬于連續(xù)混沌系統(tǒng),具有復(fù)雜的動(dòng)力學(xué)特性和快速并行處理能力,當(dāng)時(shí)間t趨于無窮時(shí),該系統(tǒng)有兩個(gè)大于零的李雅普諾夫指數(shù),是一種超混沌系統(tǒng),基于該系統(tǒng)生成的序列具有更好的隨機(jī)性和安全性,可以很好地應(yīng)用于隨機(jī)數(shù)的生成方法中。本實(shí)例用六維細(xì)胞神經(jīng)網(wǎng)絡(luò)生成隨機(jī)序列P的步驟如下:(1a)迭代六維細(xì)胞神經(jīng)網(wǎng)絡(luò)1000次消除瞬時(shí)效應(yīng),使其進(jìn)入混沌狀態(tài),得到新的六個(gè)六維細(xì)胞神經(jīng)網(wǎng)絡(luò)的初始值:x1′=-x3-x4x2′=2x2+x3x3′=14x1-x2x4′=100x1-100x4+100(|x4+1|-|x4-1|)x5′=18x2+x1-x5x6′=4x5-4x6+100x2]]>該公式中狀態(tài)值x1、x2、x3、x4、x5、x6表示當(dāng)前時(shí)刻六個(gè)不同狀態(tài)的取值,即狀態(tài)值x1表示當(dāng)前時(shí)刻狀態(tài)x1的取值、狀態(tài)值x2表示當(dāng)前時(shí)刻狀態(tài)x2的取值、狀態(tài)值x3表示當(dāng)前時(shí)刻狀態(tài)x3的取值、狀態(tài)值x4表示當(dāng)前時(shí)刻狀態(tài)x4的取值、狀態(tài)值x5表示當(dāng)前時(shí)刻狀態(tài)x5的取值、狀態(tài)值x6表示當(dāng)前時(shí)刻狀態(tài)x6的取值,其狀態(tài)初始值均由密鑰設(shè)置;狀態(tài)值x1'、x2'、x3'、x4'、x5'、x6'表示下一時(shí)刻六個(gè)不同狀態(tài)的取值,即狀態(tài)值x1'是狀態(tài)值x1下一時(shí)刻的取值、狀態(tài)值x2'是狀態(tài)值x2下一時(shí)刻的取值、狀態(tài)值x3'是狀態(tài)值x3下一時(shí)刻的取值、狀態(tài)值x4'是狀態(tài)值x4下一時(shí)刻的取值、狀態(tài)值x5'是狀態(tài)值x5下一時(shí)刻的取值、狀態(tài)值x6'是狀態(tài)值x6下一時(shí)刻的取值;(1b)用新的六個(gè)初始值繼續(xù)迭代六維細(xì)胞神經(jīng)網(wǎng)絡(luò),每次迭代生成六個(gè)數(shù)據(jù),將迭代多次生成的數(shù)據(jù)設(shè)為隨機(jī)序列P,每次迭代前對(duì)上次迭代得到的六個(gè)數(shù)據(jù)作如下處理:將第一個(gè)數(shù)據(jù)更新為其與第二個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值,將第二個(gè)數(shù)據(jù)更新為其與第三個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值,將第三個(gè)數(shù)據(jù)更新為其與第四個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值,將第四個(gè)數(shù)據(jù)更新為其與第五個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值,將第五個(gè)數(shù)據(jù)更新為其與第六個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值,將第六個(gè)數(shù)據(jù)更新為其與第一個(gè)數(shù)據(jù)的小數(shù)部位求和的平均值。步驟2:用邏輯斯蒂映射生成隨機(jī)序列X。邏輯斯蒂映射是一種離散混沌系統(tǒng),該系統(tǒng)對(duì)初始值的選取非常敏感,即當(dāng)初始值的選取有微小差異時(shí),該系統(tǒng)經(jīng)過一段時(shí)間的演化后會(huì)發(fā)生非常大的改變;調(diào)整該映射的控制參數(shù)λ,系統(tǒng)可出現(xiàn)周期分叉的現(xiàn)象,進(jìn)入混沌狀態(tài)。由于邏輯斯蒂映射具有的初值敏感性、隨機(jī)不確定性和遍歷性,使其在隨機(jī)數(shù)生成方法中得到了廣泛的應(yīng)用。本實(shí)例用邏輯斯蒂映射生成隨機(jī)序列X的步驟如下:(2a)迭代邏輯斯蒂映射1000次,消除瞬時(shí)效應(yīng),使其進(jìn)入混沌狀態(tài):邏輯斯蒂映射的公式如下:xn+1=λxn(1-xn),λ∈(0,4),xn∈(0,1)其中xn表示當(dāng)前狀態(tài),其初始值由密鑰設(shè)置,xn+1是xn迭代得到的下一狀態(tài);λ是控制參數(shù),其取值為3.9999;(2b)繼續(xù)迭代邏輯斯蒂映射,每次迭代生成一個(gè)數(shù)據(jù),將迭代多次生成的數(shù)據(jù)設(shè)為隨機(jī)序列X。步驟3:對(duì)數(shù)據(jù)進(jìn)行整數(shù)化處理。由于六維細(xì)胞神經(jīng)網(wǎng)絡(luò)生成的隨機(jī)序列P和邏輯斯蒂映射生成的隨機(jī)序列X中的數(shù)據(jù)均是小數(shù)形式,需對(duì)其進(jìn)行整數(shù)化處理,以提取其小數(shù)部位的隨機(jī)性,進(jìn)一步得到隨機(jī)性能更好的序列。本實(shí)例對(duì)數(shù)據(jù)進(jìn)行整數(shù)化處理的步驟如下:(3a)將(1b)隨機(jī)序列P中的數(shù)據(jù)按照從左到右、從上到下的順序依次存入大小為6×6的第一矩陣p[i][j],將p[i][j]中的數(shù)據(jù)更新為:p'[i][j]=|p[i][j]|×215modN;(3b)將(2b)隨機(jī)序列X中的數(shù)據(jù)按照從上到下、從左到右的順序依次存入大小為6×6的第二矩陣x[i][j],將x[i][j]中的數(shù)據(jù)更新為:x'[i][j]=x[i][j]×215modN,其中i和j的取值范圍均為[0,5];N是一個(gè)正整數(shù);|P[i][j]|代表對(duì)P[i][j]取絕對(duì)值。步驟4:用處理后的數(shù)據(jù)生成二維數(shù)組r[i][j]。對(duì)更新后的第一矩陣p[i][j]和更新后的第二矩陣x[i][j]進(jìn)行簡單數(shù)學(xué)運(yùn)算,以進(jìn)一步優(yōu)化其數(shù)據(jù)的隨機(jī)性能,其步驟如下:(4a)設(shè)置大小為6×6的二維數(shù)組r[i][j]中的初始值均為0;(4b)對(duì)二維數(shù)組r[i][j]中的數(shù)據(jù)進(jìn)行更新,得到更新后的二維數(shù)組r'[i][j]:r′[i][j]=p[i][j]⊕x[i][j]⊕K⊕r[i][j],]]>其中代表異或運(yùn)算;K是可變參數(shù),其更新公式為:K'=(αK2+β)modN,α為第一更新參數(shù),β為第二更新參數(shù),這兩個(gè)更新參數(shù)的初始值均由密鑰設(shè)置;(4c)重復(fù)(4b)共L次,即對(duì)二維數(shù)組r[i][j]進(jìn)行L次更新,得到生成的二維數(shù)組r[i][j],1≤L≤4;每次更新前,用步驟1、步驟2、步驟3重新生成第一矩陣p[i][j]和第二矩陣x[i][j]中的數(shù)據(jù)。步驟5:用二維數(shù)組r[i][j]生成64bits的偽隨機(jī)數(shù)。(5a)用(4b)二維數(shù)組r[i][j]生成八個(gè)8bits的數(shù)據(jù),每個(gè)數(shù)據(jù)均為二維數(shù)組r[i][j]中若干數(shù)據(jù)的異或和,即:第一個(gè)8bits數(shù)據(jù)為:第二個(gè)8bits數(shù)據(jù)為:第三個(gè)8bits數(shù)據(jù)為:第四個(gè)8bits數(shù)據(jù)為:第五個(gè)8bits數(shù)據(jù)為:第六個(gè)8bits數(shù)據(jù)為:第七個(gè)8bits數(shù)據(jù)為:第八個(gè)8bits數(shù)據(jù)為:(5b)將生成的八個(gè)8bits數(shù)據(jù)依次輸出,得到64bits的偽隨機(jī)數(shù)。步驟6:重復(fù)步驟(1)到(5),每次循環(huán)生成64bits的偽隨機(jī)數(shù),直到生成所需大小的偽隨機(jī)數(shù);每次循環(huán)后,將(4b)第一更新參數(shù)α更新為與二維數(shù)組r[i][j]中所有值的異或和,將(4b)第二更新參數(shù)β更新為與二維數(shù)組r[i][j]中所有值的異或和。本發(fā)明的效果可通過以下檢測(cè)結(jié)果進(jìn)一步說明:1.檢測(cè)方法:采用美國國家標(biāo)準(zhǔn)與技術(shù)研究所NIST提供的隨機(jī)性測(cè)試SP800-22對(duì)上述生成的隨機(jī)序列的隨機(jī)性進(jìn)行檢測(cè),該測(cè)試包含15個(gè)測(cè)試項(xiàng),其中每一項(xiàng)的測(cè)試結(jié)果均包含P值P-value和通過率Propotion。2.檢測(cè)結(jié)果:用美國國家標(biāo)準(zhǔn)與技術(shù)研究所NIST提供的隨機(jī)性測(cè)試SP800-22對(duì)用本發(fā)明生成的1000組1M的隨機(jī)序列進(jìn)行檢測(cè),檢測(cè)結(jié)果如表1:表1檢測(cè)結(jié)果StatisticalTestP-valuePropotionResultFrequence0.6935810.9907PassBlockFrequence0.8322730.9842PassCumulativeSums0.2510360.9870PassRuns0.5093530.9870PassLongestRun0.5099060.9814PassRank0.5823790.9860PassFFT0.2513490.9860PassOverlappingTemplate0.1491710.9851PassUniversal0.7038260.9879PassLinearComplexity0.1229870.9888PassApproximateEntropy0.1509730.9870PassSerial0.3763660.9842PassNonOverlappingTemplate0.2141200.9832PassRandomExcursions0.3015710.9852PassRandomExcursionsVariant0.8116440.9867Pass由表1可知,每一項(xiàng)測(cè)試結(jié)果中的P值P-value不低于0.001且通過率Propotion不低于0.9806,即15個(gè)測(cè)試項(xiàng)全部通過,被測(cè)序列是隨機(jī)的。當(dāng)前第1頁1 2 3