摘 要: 提出基于過(guò)飽和Hopfield神經(jīng)網(wǎng)絡(luò)(OHNN)和驅(qū)動(dòng)表的公鑰加密算法。算法以驅(qū)動(dòng)表作為系統(tǒng)的驅(qū)動(dòng),經(jīng)過(guò)函數(shù)組變換后產(chǎn)生隨機(jī)數(shù),數(shù)據(jù)選擇器根據(jù)OHNN生成的混沌吸引子對(duì)隨機(jī)數(shù)作非線性選擇輸出,從而實(shí)現(xiàn)加密。安全性分析與仿真驗(yàn)證表明,該算法構(gòu)造的偽隨機(jī)序列具有良好的隨機(jī)性和復(fù)雜度,滿足密碼學(xué)的要求。
關(guān)鍵詞: 過(guò)飽和Hopfield神經(jīng)網(wǎng)絡(luò);混沌吸引子;驅(qū)動(dòng)表
序列密碼實(shí)質(zhì)上是一個(gè)密鑰流發(fā)生器,它通過(guò)將密鑰流序列與明文進(jìn)行異或完成加密和解密。隨著密碼分析技術(shù)的發(fā)展和計(jì)算機(jī)計(jì)算能力的增強(qiáng),傳統(tǒng)算法受到了很大的沖擊。Hopfield神經(jīng)網(wǎng)絡(luò)具有非常豐富的非線性動(dòng)力特性和表現(xiàn)在混沌動(dòng)力學(xué)特性方面的復(fù)雜性,使其成為現(xiàn)代密碼學(xué)領(lǐng)域的一個(gè)熱點(diǎn)。本文結(jié)合OHNN和驅(qū)動(dòng)表的優(yōu)點(diǎn),提出了一種新的序列密碼加密算法。該算法不僅避免了同步混沌通信系統(tǒng)中必須要求收發(fā)兩端嚴(yán)格同步的諸多麻煩和不便,而且消除了密文數(shù)據(jù)膨脹[1],解決了LFSRs時(shí)間延遲和特征多項(xiàng)式難選取等問題[2],此外在速度上較二者有很大的提高。
1 過(guò)飽和Hopfield神經(jīng)網(wǎng)絡(luò)
在一個(gè)N階Hopfield神經(jīng)網(wǎng)絡(luò)中,如果需要儲(chǔ)存的樣本總量大于0.14 N,則網(wǎng)絡(luò)中原本存在的穩(wěn)定的吸引子將發(fā)生畸變,且每個(gè)狀態(tài)的收斂域都是混沌的,此時(shí)網(wǎng)絡(luò)擁有過(guò)飽和存貯的混沌吸引性質(zhì)。這樣的網(wǎng)絡(luò)稱為過(guò)飽和Hopfield神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱OHNN(Overstoraged Hopfield Neural Network)。在OHNN網(wǎng)絡(luò)中,聯(lián)結(jié)權(quán)值矩陣變化時(shí),混沌吸引子和吸引域也隨之改變。若OHNN的神經(jīng)元i的閾值用Qi表示,神經(jīng)元i和神經(jīng)元j之間的聯(lián)結(jié)權(quán)值用Tij表示。若神經(jīng)元的狀態(tài)取0或1,則網(wǎng)絡(luò)的傳遞函數(shù)σ(t)為:
如果當(dāng)前網(wǎng)絡(luò)狀態(tài)為Si(t),則其下一狀態(tài)Si(t+1)為:
3 基于OHNN和驅(qū)動(dòng)表的公鑰加密算法
本文提出的基于OHNN和驅(qū)動(dòng)表的加密算法由一個(gè)OHNN、一個(gè)函數(shù)組、一個(gè)數(shù)據(jù)選擇器和兩個(gè)驅(qū)動(dòng)表組成。每個(gè)驅(qū)動(dòng)表中都有1 024個(gè)不相同的32 bit十六進(jìn)制的隨機(jī)數(shù)。該算法的結(jié)構(gòu)如圖1所示。
4 仿真測(cè)試及安全性分析
4.1 隨機(jī)性測(cè)試
本文采用VC++6.0編程,在RedHat9.0測(cè)試平臺(tái)上依據(jù)美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)委員會(huì)(NIST)制定的SP800-22[5]對(duì)樣本進(jìn)行測(cè)試,測(cè)試樣本為100組,每組105個(gè)數(shù)據(jù)。顯著水平α=0.01,若計(jì)算出的P-Value值小于α,則認(rèn)為測(cè)試序列不為隨機(jī)序列;反之,則認(rèn)為序列是隨機(jī)序列[6]。測(cè)試結(jié)果如表1所示,可以看出,算法產(chǎn)生的密鑰序列具有較好的隨機(jī)性。
4.2 相關(guān)性測(cè)試
選取內(nèi)容重復(fù)大小合適的明文,加密后得到一份密鑰序列。隨機(jī)改變矩陣H其中的一位,加密后得到另一份密鑰序列。相關(guān)函數(shù)越小,序列的隨機(jī)性越好或越不相干[7]。測(cè)試結(jié)果如圖2和圖3所示。圖2說(shuō)明序列隨機(jī)性好,圖3說(shuō)明算法對(duì)初值參數(shù)敏感,一個(gè)微小的改變都可以引起雪崩效應(yīng)。
4.3 加解密測(cè)試
本文對(duì)《靜夜思》進(jìn)行加解密,如圖4和圖5所示。測(cè)試平臺(tái):聯(lián)想開天M5250,CPU Intel?誖Pentium?誖3.40 GHz 3.39 GHz,內(nèi)存0.99 GB,此時(shí)系統(tǒng)運(yùn)行速度是參考文獻(xiàn)[2]的17倍多。
假如分析者采用窮舉法,暴力攻擊系統(tǒng)。由于OHNN由N個(gè)神經(jīng)元所組成,每個(gè)隨機(jī)變換矩陣 H都存在N?鄞種可能,即系統(tǒng)的密鑰空間為N?鄞。要得到目標(biāo)隨機(jī)變換矩陣,分析者需要進(jìn)行N?鄞次運(yùn)算。假設(shè)采用每秒鐘能計(jì)算105個(gè)變換矩陣的專業(yè)計(jì)算機(jī),當(dāng)N=32時(shí),嘗試一次就需要1020 MIPS Years,遠(yuǎn)遠(yuǎn)超出了現(xiàn)在所能接受的安全水平1012 MIPS Years[1]。
參考文獻(xiàn)
[1] 劉年生,郭東輝.基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的公鑰密碼算法安全性分析及其實(shí)現(xiàn)[J].廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,46(2):187-193.
[2] 何崢,李國(guó)剛.基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的混合加密算法[J].通信技術(shù),2012,45(5):49-52.
[3] HOPFIELD J J.Neurons, dynamics and computation[J].Physics Today,1994(47):40-46.
[4] Wu Hongjun.A new stream cipher HC-256[EB/OL].[2004].http://eprint.iacr.org/2004/092.pdf.
[5] NIST.A statistical test suit for random and pseudo-random number generators for cryptographic applications[OL].[2010].http://csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf.
[6] 廖曉峰,肖迪,陳勇,等.混沌密碼學(xué)原理及其應(yīng)用[M]. 北京:北京科學(xué)出版社,2009.
[7] 張雪峰,范九倫.基于線性反饋移位寄存器和混沌系統(tǒng)的偽隨機(jī)序列生成方法[J].物理學(xué)報(bào),2010,59(4):2289-2297.