林 敏 龍 飛
(貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院 貴州 貴陽 550025)
?
基于分段線性混沌網(wǎng)絡(luò)的序列密碼算法
林敏龍飛
(貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院貴州 貴陽 550025)
針對(duì)Logistic混沌序列容易被重構(gòu)的問題,引入一種外部密鑰對(duì)Logistic方程的初始值和參數(shù)進(jìn)行加密;然后給出一種分段線性混沌網(wǎng)絡(luò)模型。利用Logistic序列對(duì)初值的敏感性對(duì)混沌網(wǎng)絡(luò)進(jìn)行敏感和擴(kuò)散處理,通過更新控制參數(shù)使混沌網(wǎng)絡(luò)迭代運(yùn)算產(chǎn)生隨機(jī)性良好的序列密碼。最后的算法分析和仿真實(shí)驗(yàn)表明,該算法的密鑰具有良好的敏感性,生成的隨機(jī)序列具有良好的隨機(jī)性,滿足密碼學(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ù)作為私鑰,實(shí)現(xiàn)數(shù)據(jù)加密。(2) 利用離散Hopfield網(wǎng)絡(luò)的混沌吸引性和初始狀態(tài)與吸引子的單向映射性,可以將離散Hopfield網(wǎng)絡(luò)的穩(wěn)定吸引子作為密鑰實(shí)現(xiàn)加密。文獻(xiàn)[1]將神經(jīng)網(wǎng)絡(luò)互學(xué)習(xí)模型與混沌系統(tǒng)融合互擾,提出了一種新型復(fù)合流密碼。文獻(xiàn)[2]把Diffe-Hellman密鑰交換協(xié)議和流密碼算法相結(jié)合,設(shè)計(jì)了一種基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的混合加密算法。文獻(xiàn)[3]將Hermite正交多項(xiàng)式引入到神經(jīng)網(wǎng)絡(luò)激勵(lì)層,實(shí)現(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]對(duì)Logistic方程的四點(diǎn)和十六點(diǎn)序列片段完全實(shí)現(xiàn)了重構(gòu)。因此,簡(jiǎn)單的混沌序列加密方法是存在被破解的風(fēng)險(xiǎn)的。針對(duì)這個(gè)問題,本文引入一種外部密鑰對(duì)Logistic方程進(jìn)行加密,同時(shí)提出一種分段線性混沌神經(jīng)網(wǎng)絡(luò)模型,通過一種敏感和擴(kuò)散處理,使得混沌網(wǎng)絡(luò)模型也具有良好的敏感性,生成良好的隨機(jī)序列。
Logistic映射是經(jīng)典的混沌序列映射,由于其實(shí)現(xiàn)方法簡(jiǎn)單,容易被竊密者利用相空間進(jìn)行重構(gòu),從而構(gòu)造出混沌方程的形式[7]。因此,本文為了增強(qiáng)Logistic映射的保密性,引入一個(gè)外部密鑰對(duì)Logistic映射的初始值和參數(shù)進(jìn)行加密。
采用24位的二進(jìn)制數(shù)字K1作為一個(gè)外部密鑰來初始化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為L(zhǎng)ogistic映射的初始值。它們由外部密鑰經(jīng)過運(yùn)算產(chǎn)生,運(yùn)算過程中″k1k2k3k4k5k6″分別轉(zhuǎn)化為相應(yīng)的十進(jìn)制數(shù)進(jìn)行運(yùn)算。因此:
本文采用的混沌神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)的輸入層對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,每一層的傳輸函數(shù)由函數(shù)f(·)和g(·)組合構(gòu)成,實(shí)現(xiàn)對(duì)輸入的數(shù)據(jù)進(jìn)行混沌處理。
圖1 混沌神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
設(shè)二進(jìn)制密鑰K2長(zhǎng)度為16 bit,將其按行二維化分組,每一行為一組,形成4×4的二進(jìn)制數(shù)據(jù)矩陣D1:
每一行數(shù)據(jù)為一組,共有4組,分別為D11、D12、D13、D14。在本文中,為了提高密鑰K2的敏感性,分別對(duì)D11、D12、D13、D14作如下處理:
設(shè)D11、D12、D13、D14的十進(jìn)制表示分別為h1、h2、h3、h4,則:
其中:X為L(zhǎng)ogistic方程生成的值,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(·)為一個(gè)分段線性混沌映射函數(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ò)的每一個(gè)神經(jīng)元輸出值都在區(qū)間(0,1)上,因此可以采用如下方法來更新控制參數(shù)Q1、Q2的值,通過網(wǎng)絡(luò)運(yùn)算得到不同的隨機(jī)值D3。 Q1=(0.2×D2)+0.4 Q2=(0.2×D3)+0.4 每運(yùn)行一次混沌網(wǎng)絡(luò),都會(huì)生成一個(gè)隨機(jī)值D3,并更新Q1和Q2的值。利用更新后的Q1和Q2重復(fù)運(yùn)行混沌網(wǎng)絡(luò)就可以得到由隨機(jī)值D3組成的隨機(jī)序列。 為了將混沌網(wǎng)絡(luò)生成的隨機(jī)序列應(yīng)用于數(shù)據(jù)加密,本文引入轉(zhuǎn)換函數(shù)T(x),使生成的隨機(jī)序列轉(zhuǎn)換為0-1隨機(jī)序列,T(x)定義如下: 由于網(wǎng)絡(luò)生成的隨機(jī)值在區(qū)間(0,1)上,因此本文將區(qū)間(0,1)分成N等份,N值越大,(0,1)區(qū)間劃分越精細(xì),數(shù)據(jù)精度越高。 (1) 輸入密鑰K1來初始化Logistic映射,并迭代運(yùn)算Logistic映射200次,設(shè)X=[x101x102x103…x199x200]用于存儲(chǔ)后面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)將生成的隨機(jī)序列轉(zhuǎn)換成相應(yīng)的二進(jìn)制隨機(jī)序列。 本文通過理論分析和實(shí)驗(yàn)仿真的方法來對(duì)算法的密鑰空間大小、0/1的個(gè)數(shù)統(tǒng)計(jì)、隨機(jī)序列的相關(guān)性和密鑰的敏感性進(jìn)行分析,并得出相應(yīng)結(jié)論。仿真實(shí)驗(yàn)數(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的長(zhǎng)度決定。設(shè)它們的長(zhǎng)度分別為L(zhǎng)1和L2,則密鑰空間為2(L1+L2)。L1+L2越大,密鑰空間越大。在本文中L1=24、L2=16,密鑰空間大小為240。顯然,L2的長(zhǎng)度大小是可變的,增加L2的長(zhǎng)度可以增加密鑰空間大小。但是,增加密鑰L2的長(zhǎng)度時(shí),混沌網(wǎng)絡(luò)的輸入個(gè)數(shù)也會(huì)增多,相應(yīng)的混沌網(wǎng)絡(luò)層數(shù)也會(huì)增多,網(wǎng)絡(luò)迭代運(yùn)行一次的時(shí)間開銷將會(huì)增大。當(dāng)生成的隨機(jī)序列長(zhǎng)度非常大時(shí),整個(gè)網(wǎng)絡(luò)運(yùn)行的時(shí)間開銷將會(huì)是非常大的。 5.2統(tǒng)計(jì)分析 一個(gè)有效的二進(jìn)制隨機(jī)序列必須滿足0/1比例近似相等[9]。因此,本檢驗(yàn)的目的是確定序列中0/1的比例是否與真正的隨機(jī)序列中的0/1的比例近似相等。同時(shí),本文參考文獻(xiàn)[12]的方法對(duì)生成的隨機(jī)序列進(jìn)行頻數(shù)檢驗(yàn)、序列檢驗(yàn)和游程檢驗(yàn)。 為此,隨機(jī)選取兩個(gè)長(zhǎng)度為256的隨機(jī)序列進(jìn)行統(tǒng)計(jì)分析,分析結(jié)果如表1所示。 表1 統(tǒng)計(jì)分析結(jié)果 由表1可以看出,序列1和序列2中“0”與“1”的個(gè)數(shù)接近相等,滿足隨機(jī)序列要求。同時(shí),頻數(shù)檢驗(yàn)值y1均小于3.84,能通過頻數(shù)檢驗(yàn);序列檢驗(yàn)值y2均小于5.99,能通過序列檢驗(yàn);游程檢驗(yàn)值y3遠(yuǎn)小于1.96,能通過游程檢驗(yàn)。因此,生成的隨機(jī)序列具有很好的隨機(jī)性。 為了進(jìn)一步驗(yàn)證生成序列的隨機(jī)性,本文將上述隨機(jī)選取的兩組隨機(jī)序列與文獻(xiàn)[11,12]中的統(tǒng)計(jì)分析結(jié)果進(jìn)行比較。文獻(xiàn)[11,12]的統(tǒng)計(jì)分析結(jié)果如表2所示。 表2 文獻(xiàn)[11,12] 統(tǒng)計(jì)分析結(jié)果 由表1和表2可以看出,本文生成的隨機(jī)序列中“0”與“1”的相差個(gè)數(shù)要比文獻(xiàn)[12]中“0”與“1”的相差個(gè)數(shù)更小。因此,本文生成的0/1序列隨機(jī)性更好。同時(shí),本文的頻數(shù)檢驗(yàn)值y1、序列檢驗(yàn)值y2和游程檢驗(yàn)值y3均小于文獻(xiàn)[12]中對(duì)應(yīng)的值。因此,本文生成的0/1序列能夠更好地通過頻數(shù)檢驗(yàn)、序列檢驗(yàn)和游程檢驗(yàn)。與文獻(xiàn)[11]相比,本文生成的隨機(jī)序列中“0”與“1”的相差個(gè)數(shù)接近文獻(xiàn)[11]中“0”與“1”的相差個(gè)數(shù)。同時(shí),本文的頻數(shù)檢驗(yàn)值y1和游程檢驗(yàn)值y3在有些情況下小于文獻(xiàn)[11]中對(duì)應(yīng)的值,說明本文生成的0/1序列在有些情況下能夠更好地通過頻數(shù)檢驗(yàn)和游程檢驗(yàn)。但是,本文的序列檢驗(yàn)值y2均大于文獻(xiàn)[11]中對(duì)應(yīng)的值,說明文獻(xiàn)[11]中生成的0/1序列能夠更好地通過序列檢驗(yàn)??傮w上來說,本文算法在頻數(shù)檢驗(yàn)、序列檢驗(yàn)和游程檢驗(yàn)中優(yōu)于文獻(xiàn)[12],在有些情況下優(yōu)于文獻(xiàn)[11]。 5.3相關(guān)性分析 序列的自相關(guān)函數(shù)變化越小,說明序列的隨機(jī)性越好。序列的互相關(guān)函數(shù)越接近零,說明兩個(gè)序列越互不相關(guān)[10]。圖2是初始密鑰為K1和K2時(shí)生成的0/1序列的自相關(guān)函數(shù)圖。圖3是密鑰K1或K2隨機(jī)改變一位時(shí)生成的0/1序列對(duì)比圖,實(shí)線代表原序列,虛線代表新序列。圖4是兩個(gè)序列的互相關(guān)函數(shù)圖。 圖2 生成0-1序列的自相關(guān)函數(shù)圖 圖3 密鑰改變一位時(shí)生成的0/1序列對(duì)比圖 圖4 序列的互相關(guān)函數(shù)圖 由圖2可以看出,自相關(guān)函數(shù)變化很小,生成的序列隨機(jī)性良好。由圖3可以看出,只要改變密鑰K1或K2中的一位,生成的0/1序列將會(huì)有很大的不同;由圖4可以看出,改變密鑰K1或K2中的一位時(shí),生成的新序列與原序列的互相關(guān)函數(shù)值接近0,說明兩個(gè)序列互不相關(guān)。 5.4密鑰敏感性分析 Logistic映射生成的混沌序列對(duì)初始值具有良好的敏感性,由于密鑰K1用于生成Logistic方程的初始值,因此K1也具有良好的敏感性。同時(shí),本文利用Logistic映射對(duì)密鑰K2進(jìn)行了敏感和擴(kuò)散處理,使得K2也具有良好的敏感性。為了驗(yàn)證密鑰K1和K2的敏感性,分別改變密鑰K1、K2中的一位,并統(tǒng)計(jì)新隨機(jī)序列與原隨機(jī)序列的不同位數(shù)所占的百分比。設(shè)i表示K1和K2中每一位對(duì)應(yīng)的位置編號(hào),則1≤i≤Lg,Lg為密鑰K1和K2的長(zhǎng)度總和。在本文中,Lg=40。NP表示新隨機(jī)序列與原隨機(jī)序列的不同位數(shù)占序列總數(shù)的百分比,NP的計(jì)算公式為: 其中,D(n)和D′(n)分別表示原隨機(jī)序列和新隨機(jī)序列,NK表示序列D(n)的總位數(shù),NP(i)表示改變第i位時(shí)所對(duì)應(yīng)的百分比。 根據(jù)分組密碼測(cè)度中的嚴(yán)格雪崩準(zhǔn)則,改變密鑰中的任一比特,應(yīng)導(dǎo)致密文中大約50%比特的變化。圖5是對(duì)密鑰長(zhǎng)度Lg=40,生成序列長(zhǎng)度NK=20 000時(shí)得到的百分比統(tǒng)計(jì)結(jié)果。 圖5 密鑰改變一位時(shí)生成的序列所改變的百分比 由圖5可以看出,密鑰改變一位時(shí)生成的序列所改變的百分比均接近50%,滿足嚴(yán)格雪崩準(zhǔn)則。因此,密鑰K1和K2均具有敏感性。 綜上所述,本文算法生成的0/1序列具有良好的隨機(jī)性,密鑰具有很強(qiáng)的敏感性。此外,本文采用24位的外部密鑰來生成混沌初值和控制參數(shù),與文獻(xiàn)[13]直接采用混沌初值和控制參數(shù)作為密鑰相比,本文的密鑰更方便管理。同時(shí),解決了文獻(xiàn)[6]提出的Logistic序列易被重構(gòu)的問題,使得密鑰的安全性更好。 將混沌與神經(jīng)網(wǎng)絡(luò)相結(jié)合,引入外部密鑰,提出一種新的生成隨機(jī)序列的方法,以較少位數(shù)的密鑰生成無限長(zhǎng)度的隨機(jī)序列。同時(shí),對(duì)密鑰進(jìn)行敏感和擴(kuò)散處理,增強(qiáng)了密鑰的敏感性,并從仿真實(shí)驗(yàn)結(jié)果中得到了驗(yàn)證。但是,文中的密鑰空間大小為240,以目前計(jì)算機(jī)的運(yùn)算速度,存在被暴力破解的風(fēng)險(xiǎn)。因此,進(jìn)一步的研究方向?qū)?huì)考慮增加密鑰空間大小,同時(shí)考慮到算法的時(shí)間開銷,提高運(yùn)算效率。 [1] 陳鐵明,蔣融融.混沌映射和神經(jīng)網(wǎng)絡(luò)互擾的新型復(fù)合流密碼[J].物理學(xué)報(bào),2013,62(4):040301. [2] 何崢,李國(guó)剛.基于神經(jīng)網(wǎng)絡(luò)混沌吸引子的混合加密[J].通信技術(shù),2012,45(5):50-52. [3] 鄒阿金,張雨濃,肖秀春.Hermite混沌神經(jīng)網(wǎng)絡(luò)異步加密算法[J].智能系統(tǒng)學(xué)報(bào),2009,4(5):458-462. [4] 趙全習(xí),胡文志,鄭連清.一種流加密方案的設(shè)計(jì)與分析[J].計(jì)算機(jī)應(yīng)用研究,2007,24(12):191-192,234. [5] 孫百瑜,高俊山,吳宏偉.基于置換亂序的混沌加密算法[J].自動(dòng)化技術(shù)與應(yīng)用,2005,24(2):7-9. [6] 高俊山,孫百瑜,韓偉.基于混沌理論的控制軌道函數(shù)構(gòu)造[J].電機(jī)與控制學(xué)報(bào),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)制序列的性能分析及實(shí)現(xiàn)[C]//中國(guó)電子學(xué)會(huì)信息論分會(huì).中國(guó)電子學(xué)會(huì)第十五屆信息論學(xué)術(shù)年會(huì)暨第一屆全國(guó)網(wǎng)絡(luò)編碼學(xué)術(shù)年會(huì)論文集(上冊(cè)),2008,6. [10] 藺小梅,李國(guó)剛,張澤普.采用OHNN和M-LFSR的字序列密碼加密方案[J].華僑大學(xué)學(xué)報(bào):自然科學(xué)版,2014,35(5):519-522. [11] 吳君欽,陳天棟,李康順.一種基于多目標(biāo)差分演化的序列密碼算法[J].計(jì)算機(jī)應(yīng)用研究,2014,31(7):2139-2143. [12] 胡能發(fā),鄧永發(fā).基于遺傳算法的序列密碼生成方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(8):2190-2192. [13] 鄒于豐.基于Legendre多項(xiàng)式混沌神經(jīng)網(wǎng)絡(luò)的異步保密通信[J].計(jì)算機(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。國(guó)家自然科學(xué)基金項(xiàng)目(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隨機(jī)序列
5 算法分析
6 結(jié) 語