林 敏 龍 飛
(貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院 貴州 貴陽 550025)
?
基于分段線性混沌網(wǎng)絡(luò)的序列密碼算法
林敏龍飛
(貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院貴州 貴陽 550025)
針對Logistic混沌序列容易被重構(gòu)的問題,引入一種外部密鑰對Logistic方程的初始值和參數(shù)進(jìn)行加密;然后給出一種分段線性混沌網(wǎng)絡(luò)模型。利用Logistic序列對初值的敏感性對混沌網(wǎng)絡(luò)進(jìn)行敏感和擴(kuò)散處理,通過更新控制參數(shù)使混沌網(wǎng)絡(luò)迭代運算產(chǎn)生隨機性良好的序列密碼。最后的算法分析和仿真實驗表明,該算法的密鑰具有良好的敏感性,生成的隨機序列具有良好的隨機性,滿足密碼學(xué)要求。
混沌序列外部密鑰分段線性混沌網(wǎng)絡(luò)序列密碼
信息安全一直是與我們生活息息相關(guān)的重要問題,而保護(hù)信息安全最常用的手段就是數(shù)據(jù)加密了。自K.Aihara等人提出混沌神經(jīng)網(wǎng)絡(luò)模型以來,混沌與神經(jīng)網(wǎng)絡(luò)相結(jié)合應(yīng)用于數(shù)據(jù)加密就得到了不斷發(fā)展。目前主要的研究方法有:(1) 采用已知的混沌序列來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,使得神經(jīng)網(wǎng)絡(luò)能夠近似生成相同的混沌序列,然后將已知的混沌序列作為公鑰,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)權(quán)重和閾值參數(shù)作為私鑰,實現(xiàn)數(shù)據(jù)加密。(2) 利用離散Hopfield網(wǎng)絡(luò)的混沌吸引性和初始狀態(tài)與吸引子的單向映射性,可以將離散Hopfield網(wǎng)絡(luò)的穩(wěn)定吸引子作為密鑰實現(xiàn)加密。文獻(xiàn)[1]將神經(jīng)網(wǎng)絡(luò)互學(xué)習(xí)模型與混沌系統(tǒng)融合互擾,提出了一種新型復(fù)合流密碼。文獻(xiàn)[2]把Diffe-Hellman密鑰交換協(xié)議和流密碼算法相結(jié)合,設(shè)計了一種基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的混合加密算法。文獻(xiàn)[3]將Hermite正交多項式引入到神經(jīng)網(wǎng)絡(luò)激勵層,實現(xiàn)了“一次一密”異步加密算法。文獻(xiàn)[4]利用Hopfield網(wǎng)絡(luò)的混沌吸引性與線性反饋移位寄存器相結(jié)合,提出了一種流密碼加密方案。將混沌與神經(jīng)網(wǎng)絡(luò)相結(jié)合應(yīng)用于數(shù)據(jù)加密最主要的就是利用混沌序列的混沌特性了,但是文獻(xiàn)[5]也指出了混沌序列在數(shù)據(jù)加密中存在序列被重構(gòu)缺陷,而且文獻(xiàn)[6]對Logistic方程的四點和十六點序列片段完全實現(xiàn)了重構(gòu)。因此,簡單的混沌序列加密方法是存在被破解的風(fēng)險的。針對這個問題,本文引入一種外部密鑰對Logistic方程進(jìn)行加密,同時提出一種分段線性混沌神經(jīng)網(wǎng)絡(luò)模型,通過一種敏感和擴(kuò)散處理,使得混沌網(wǎng)絡(luò)模型也具有良好的敏感性,生成良好的隨機序列。
Logistic映射是經(jīng)典的混沌序列映射,由于其實現(xiàn)方法簡單,容易被竊密者利用相空間進(jìn)行重構(gòu),從而構(gòu)造出混沌方程的形式[7]。因此,本文為了增強Logistic映射的保密性,引入一個外部密鑰對Logistic映射的初始值和參數(shù)進(jìn)行加密。
采用24位的二進(jìn)制數(shù)字K1作為一個外部密鑰來初始化Logistic映射的初始值和參數(shù)。設(shè)K1的16進(jìn)制表示為K1=k1k2k3k4k5k6,″k1k2k3k4k5k6″為外部密鑰。其中″k1k2k3″用于生成Logistic映射的輸入控制參數(shù)r,″k4k5k6″用于生成Logistic映射的初始值X0。
在本文中,使用的Logistic映射如下:
Xn+1=r×Xn(1-Xn)Xn∈(0,1)
其中:r為輸入控制參數(shù),X0為Logistic映射的初始值。它們由外部密鑰經(jīng)過運算產(chǎn)生,運算過程中″k1k2k3k4k5k6″分別轉(zhuǎn)化為相應(yīng)的十進(jìn)制數(shù)進(jìn)行運算。因此:
本文采用的混沌神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)的輸入層對數(shù)據(jù)進(jìn)行預(yù)處理,每一層的傳輸函數(shù)由函數(shù)f(·)和g(·)組合構(gòu)成,實現(xiàn)對輸入的數(shù)據(jù)進(jìn)行混沌處理。

圖1 混沌神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
設(shè)二進(jìn)制密鑰K2長度為16 bit,將其按行二維化分組,每一行為一組,形成4×4的二進(jìn)制數(shù)據(jù)矩陣D1:
每一行數(shù)據(jù)為一組,共有4組,分別為D11、D12、D13、D14。在本文中,為了提高密鑰K2的敏感性,分別對D11、D12、D13、D14作如下處理:
設(shè)D11、D12、D13、D14的十進(jìn)制表示分別為h1、h2、h3、h4,則:
其中:X為Logistic方程生成的值,n0為區(qū)間[50,100]上的整數(shù)。
將變換后的數(shù)據(jù)輸入到混沌神經(jīng)網(wǎng)絡(luò),則:
其中α為函數(shù)g(·)的參數(shù)。
函數(shù)g(x)將區(qū)間(-∞,∞)上的數(shù)映射到區(qū)間(0,1)上。混沌網(wǎng)絡(luò)的傳輸函數(shù)f(·)為一個分段線性混沌映射函數(shù),其輸入值要求在區(qū)間(0,1)上,這與函數(shù)g(·)的映射區(qū)間剛好吻合。n1表示函數(shù)f(·)的迭代次數(shù),Q1為函數(shù)f(·)的控制參數(shù)矩陣,傳輸函數(shù)f(·)的數(shù)學(xué)模型描述如下:
其中:x(k)是混沌映射的狀態(tài),q是控制參數(shù),并且0 D3=fn2(g(W2D2+B2),Q2) 其中,D2是網(wǎng)絡(luò)第二層的輸入,W2和B2分別是第二層神經(jīng)元的權(quán)值和閾值;n2表示函數(shù)f(·)的迭代次數(shù),Q2為函數(shù)f(·)的控制參數(shù)。 由于網(wǎng)絡(luò)的每一個神經(jīng)元輸出值都在區(qū)間(0,1)上,因此可以采用如下方法來更新控制參數(shù)Q1、Q2的值,通過網(wǎng)絡(luò)運算得到不同的隨機值D3。 Q1=(0.2×D2)+0.4 Q2=(0.2×D3)+0.4 每運行一次混沌網(wǎng)絡(luò),都會生成一個隨機值D3,并更新Q1和Q2的值。利用更新后的Q1和Q2重復(fù)運行混沌網(wǎng)絡(luò)就可以得到由隨機值D3組成的隨機序列。 為了將混沌網(wǎng)絡(luò)生成的隨機序列應(yīng)用于數(shù)據(jù)加密,本文引入轉(zhuǎn)換函數(shù)T(x),使生成的隨機序列轉(zhuǎn)換為0-1隨機序列,T(x)定義如下: 由于網(wǎng)絡(luò)生成的隨機值在區(qū)間(0,1)上,因此本文將區(qū)間(0,1)分成N等份,N值越大,(0,1)區(qū)間劃分越精細(xì),數(shù)據(jù)精度越高。 (1) 輸入密鑰K1來初始化Logistic映射,并迭代運算Logistic映射200次,設(shè)X=[x101x102x103…x199x200]用于存儲后面100次的混沌值。 (2) 利用X來初始化擴(kuò)散矩陣W和混沌網(wǎng)絡(luò)的權(quán)值與閾值。W是4×4的矩陣,W1是2×4的矩陣,B1是2×1的矩陣,W2是1×2的矩陣,B2是1×1的矩陣,從X中提取元素來分別初始化W、W1、B1、W2、B2。 (5) 通過量化函數(shù)T(x)將生成的隨機序列轉(zhuǎn)換成相應(yīng)的二進(jìn)制隨機序列。 本文通過理論分析和實驗仿真的方法來對算法的密鑰空間大小、0/1的個數(shù)統(tǒng)計、隨機序列的相關(guān)性和密鑰的敏感性進(jìn)行分析,并得出相應(yīng)結(jié)論。仿真實驗數(shù)據(jù)如下: K1=[1,1,1,0;1,0,1,0;0,0,1,1;1,1,0,0;0,1,1,1;0,1,1,1] K2=[0,0,0,1;0,0,1,0;0,1,1,0;1,0,0,0] n0=60,n1=4,n2=5,α=2,N=64,Q1=[0.5,0.5]T,Q2=0.5。 5.1密鑰空間分析 本文的加密密鑰由K1和K2組成,密鑰空間由K1和K2的長度決定。設(shè)它們的長度分別為L1和L2,則密鑰空間為2(L1+L2)。L1+L2越大,密鑰空間越大。在本文中L1=24、L2=16,密鑰空間大小為240。顯然,L2的長度大小是可變的,增加L2的長度可以增加密鑰空間大小。但是,增加密鑰L2的長度時,混沌網(wǎng)絡(luò)的輸入個數(shù)也會增多,相應(yīng)的混沌網(wǎng)絡(luò)層數(shù)也會增多,網(wǎng)絡(luò)迭代運行一次的時間開銷將會增大。當(dāng)生成的隨機序列長度非常大時,整個網(wǎng)絡(luò)運行的時間開銷將會是非常大的。 5.2統(tǒng)計分析 一個有效的二進(jìn)制隨機序列必須滿足0/1比例近似相等[9]。因此,本檢驗的目的是確定序列中0/1的比例是否與真正的隨機序列中的0/1的比例近似相等。同時,本文參考文獻(xiàn)[12]的方法對生成的隨機序列進(jìn)行頻數(shù)檢驗、序列檢驗和游程檢驗。 為此,隨機選取兩個長度為256的隨機序列進(jìn)行統(tǒng)計分析,分析結(jié)果如表1所示。 表1 統(tǒng)計分析結(jié)果 由表1可以看出,序列1和序列2中“0”與“1”的個數(shù)接近相等,滿足隨機序列要求。同時,頻數(shù)檢驗值y1均小于3.84,能通過頻數(shù)檢驗;序列檢驗值y2均小于5.99,能通過序列檢驗;游程檢驗值y3遠(yuǎn)小于1.96,能通過游程檢驗。因此,生成的隨機序列具有很好的隨機性。 為了進(jìn)一步驗證生成序列的隨機性,本文將上述隨機選取的兩組隨機序列與文獻(xiàn)[11,12]中的統(tǒng)計分析結(jié)果進(jìn)行比較。文獻(xiàn)[11,12]的統(tǒng)計分析結(jié)果如表2所示。 表2 文獻(xiàn)[11,12] 統(tǒng)計分析結(jié)果 由表1和表2可以看出,本文生成的隨機序列中“0”與“1”的相差個數(shù)要比文獻(xiàn)[12]中“0”與“1”的相差個數(shù)更小。因此,本文生成的0/1序列隨機性更好。同時,本文的頻數(shù)檢驗值y1、序列檢驗值y2和游程檢驗值y3均小于文獻(xiàn)[12]中對應(yīng)的值。因此,本文生成的0/1序列能夠更好地通過頻數(shù)檢驗、序列檢驗和游程檢驗。與文獻(xiàn)[11]相比,本文生成的隨機序列中“0”與“1”的相差個數(shù)接近文獻(xiàn)[11]中“0”與“1”的相差個數(shù)。同時,本文的頻數(shù)檢驗值y1和游程檢驗值y3在有些情況下小于文獻(xiàn)[11]中對應(yīng)的值,說明本文生成的0/1序列在有些情況下能夠更好地通過頻數(shù)檢驗和游程檢驗。但是,本文的序列檢驗值y2均大于文獻(xiàn)[11]中對應(yīng)的值,說明文獻(xiàn)[11]中生成的0/1序列能夠更好地通過序列檢驗。總體上來說,本文算法在頻數(shù)檢驗、序列檢驗和游程檢驗中優(yōu)于文獻(xiàn)[12],在有些情況下優(yōu)于文獻(xiàn)[11]。 5.3相關(guān)性分析 序列的自相關(guān)函數(shù)變化越小,說明序列的隨機性越好。序列的互相關(guān)函數(shù)越接近零,說明兩個序列越互不相關(guān)[10]。圖2是初始密鑰為K1和K2時生成的0/1序列的自相關(guān)函數(shù)圖。圖3是密鑰K1或K2隨機改變一位時生成的0/1序列對比圖,實線代表原序列,虛線代表新序列。圖4是兩個序列的互相關(guān)函數(shù)圖。 圖2 生成0-1序列的自相關(guān)函數(shù)圖 圖3 密鑰改變一位時生成的0/1序列對比圖 圖4 序列的互相關(guān)函數(shù)圖 由圖2可以看出,自相關(guān)函數(shù)變化很小,生成的序列隨機性良好。由圖3可以看出,只要改變密鑰K1或K2中的一位,生成的0/1序列將會有很大的不同;由圖4可以看出,改變密鑰K1或K2中的一位時,生成的新序列與原序列的互相關(guān)函數(shù)值接近0,說明兩個序列互不相關(guān)。 5.4密鑰敏感性分析 Logistic映射生成的混沌序列對初始值具有良好的敏感性,由于密鑰K1用于生成Logistic方程的初始值,因此K1也具有良好的敏感性。同時,本文利用Logistic映射對密鑰K2進(jìn)行了敏感和擴(kuò)散處理,使得K2也具有良好的敏感性。為了驗證密鑰K1和K2的敏感性,分別改變密鑰K1、K2中的一位,并統(tǒng)計新隨機序列與原隨機序列的不同位數(shù)所占的百分比。設(shè)i表示K1和K2中每一位對應(yīng)的位置編號,則1≤i≤Lg,Lg為密鑰K1和K2的長度總和。在本文中,Lg=40。NP表示新隨機序列與原隨機序列的不同位數(shù)占序列總數(shù)的百分比,NP的計算公式為: 其中,D(n)和D′(n)分別表示原隨機序列和新隨機序列,NK表示序列D(n)的總位數(shù),NP(i)表示改變第i位時所對應(yīng)的百分比。 根據(jù)分組密碼測度中的嚴(yán)格雪崩準(zhǔn)則,改變密鑰中的任一比特,應(yīng)導(dǎo)致密文中大約50%比特的變化。圖5是對密鑰長度Lg=40,生成序列長度NK=20 000時得到的百分比統(tǒng)計結(jié)果。 圖5 密鑰改變一位時生成的序列所改變的百分比 由圖5可以看出,密鑰改變一位時生成的序列所改變的百分比均接近50%,滿足嚴(yán)格雪崩準(zhǔn)則。因此,密鑰K1和K2均具有敏感性。 綜上所述,本文算法生成的0/1序列具有良好的隨機性,密鑰具有很強的敏感性。此外,本文采用24位的外部密鑰來生成混沌初值和控制參數(shù),與文獻(xiàn)[13]直接采用混沌初值和控制參數(shù)作為密鑰相比,本文的密鑰更方便管理。同時,解決了文獻(xiàn)[6]提出的Logistic序列易被重構(gòu)的問題,使得密鑰的安全性更好。 將混沌與神經(jīng)網(wǎng)絡(luò)相結(jié)合,引入外部密鑰,提出一種新的生成隨機序列的方法,以較少位數(shù)的密鑰生成無限長度的隨機序列。同時,對密鑰進(jìn)行敏感和擴(kuò)散處理,增強了密鑰的敏感性,并從仿真實驗結(jié)果中得到了驗證。但是,文中的密鑰空間大小為240,以目前計算機的運算速度,存在被暴力破解的風(fēng)險。因此,進(jìn)一步的研究方向?qū)紤]增加密鑰空間大小,同時考慮到算法的時間開銷,提高運算效率。 [1] 陳鐵明,蔣融融.混沌映射和神經(jīng)網(wǎng)絡(luò)互擾的新型復(fù)合流密碼[J].物理學(xué)報,2013,62(4):040301. [2] 何崢,李國剛.基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的混合加密[J].通信技術(shù),2012,45(5):50-52. [3] 鄒阿金,張雨濃,肖秀春.Hermite混沌神經(jīng)網(wǎng)絡(luò)異步加密算法[J].智能系統(tǒng)學(xué)報,2009,4(5):458-462. [4] 趙全習(xí),胡文志,鄭連清.一種流加密方案的設(shè)計與分析[J].計算機應(yīng)用研究,2007,24(12):191-192,234. [5] 孫百瑜,高俊山,吳宏偉.基于置換亂序的混沌加密算法[J].自動化技術(shù)與應(yīng)用,2005,24(2):7-9. [6] 高俊山,孫百瑜,韓偉.基于混沌理論的控制軌道函數(shù)構(gòu)造[J].電機與控制學(xué)報,2002,6(2):150-153,167. [7] Kengnou Telem,Adelade Nicole,Meli Segning,et al.A Simple and Robust Gray Image Encryption Scheme Using Chaotic Logistic Map and Artificial Neural Network[J].Advances in Multimedia,2014,2014:132-144. [8] Singla Prateek,Sachdeva Payal,Ahmad Musheer.A Chaotic Neural Network Based Cryptographic Pseudo-Random Sequence Design[C]//Proceedings-4th International Conference on Advanced Computing and Communication Technologies,2014:301-306. [9] 任志山.基于混沌神經(jīng)網(wǎng)絡(luò)混沌二進(jìn)制序列的性能分析及實現(xiàn)[C]//中國電子學(xué)會信息論分會.中國電子學(xué)會第十五屆信息論學(xué)術(shù)年會暨第一屆全國網(wǎng)絡(luò)編碼學(xué)術(shù)年會論文集(上冊),2008,6. [10] 藺小梅,李國剛,張澤普.采用OHNN和M-LFSR的字序列密碼加密方案[J].華僑大學(xué)學(xué)報:自然科學(xué)版,2014,35(5):519-522. [11] 吳君欽,陳天棟,李康順.一種基于多目標(biāo)差分演化的序列密碼算法[J].計算機應(yīng)用研究,2014,31(7):2139-2143. [12] 胡能發(fā),鄧永發(fā).基于遺傳算法的序列密碼生成方法[J].計算機工程與設(shè)計,2005,26(8):2190-2192. [13] 鄒于豐.基于Legendre多項式混沌神經(jīng)網(wǎng)絡(luò)的異步保密通信[J].計算機應(yīng)用與軟件,2012,29(12):315-317. STREAM CIPHER ALGORITHM BASED ON PIECEWISE LINEAR CHAOTIC NETWORKS Lin MinLong Fei (College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,Guizhou,China) In response to the issue that Logistic chaotic sequences are easily to be reconstructed, we introduced an external key to encrypt initial values and parameters of Logistic equation; and then put forward a piecewise linear chaotic networks model. It uses the sensitivity of Logistic sequence on initial values to process the chaotic networks in terms of sensitivity and diffusion, and enables the chaotic networks to iteratively operate through renewing the control parameters so as to generate the stream cipher with good stochastic property. The final algorithm analysis and simulation experiments proved that the keys of the algorithm have good sensitivity; and the generated random sequences have good stochastic property as well, and satisfy the requirement of cryptography. Chaotic sequencesExternal keyPiecewise linear chaotic networksStream cipher 2015-05-20。國家自然科學(xué)基金項目(61263005)。林敏,碩士生,主研領(lǐng)域:神經(jīng)網(wǎng)絡(luò),數(shù)據(jù)加密。龍飛,教授。 TP309.7 A 10.3969/j.issn.1000-386x.2016.09.0713 量化處理

4 生成0-1隨機序列


5 算法分析







6 結(jié) 語