許 佳 佳
(四川外國語大學(xué)成都學(xué)院 經(jīng)濟(jì)管理系,成都 611844)
信息安全不僅關(guān)乎國家利益還關(guān)乎老百姓的切身利益,研究信息安全問題有著重大的學(xué)術(shù)與實(shí)際意義[1-7]。如何把信息進(jìn)行偽裝與隱藏已經(jīng)成為人們關(guān)心的話題,也是信息安全部門研究的新方向,更是密碼學(xué)學(xué)者研究的重點(diǎn)。
最近幾年在序列密碼加密方面,文獻(xiàn)[8]提出了以混沌理論作為基礎(chǔ)的應(yīng)用字符串的加密算法,該加密算法的運(yùn)算量小,靈活性強(qiáng);王林林在文獻(xiàn)[9]中提出了一種加密算法,這種算法能夠在確保迅速加密的基礎(chǔ)上,使得混沌系統(tǒng)產(chǎn)生的混沌序列結(jié)果具有較強(qiáng)的隨機(jī)性,加密系統(tǒng)在防攻擊性、安全性等方面都優(yōu)于那些基于聯(lián)合混沌和基于三維混沌密碼的加密系統(tǒng);柳揚(yáng)等[10]研究了基于可變參數(shù)的混沌動(dòng)力系統(tǒng)的序列密碼,研究了動(dòng)力系統(tǒng)經(jīng)平移變換之后新的動(dòng)力系統(tǒng)與原動(dòng)力系統(tǒng)具有相同的不變測度與均值,并且在新的動(dòng)力系統(tǒng)基礎(chǔ)上采用序列密碼設(shè)計(jì)了加密與解密的算法。2014年李占梅[11]首次引入不變的污染系數(shù),構(gòu)造了基于一維Logistic映射和分段線性映射的污染混沌動(dòng)力系統(tǒng),并提出相應(yīng)的加密算法。
本文基于對(duì)文獻(xiàn)[11]的研究,引入了一個(gè)不斷變化的污染系數(shù),構(gòu)造了污染系統(tǒng),進(jìn)而介紹序列加密算法。第1節(jié)介紹了污染混沌動(dòng)力系統(tǒng)的定義與例子,第2節(jié)基于污染混沌動(dòng)力系統(tǒng),介紹了本文的加密解密算法;第3節(jié)針對(duì)本文的加密算法進(jìn)行計(jì)算機(jī)仿真;第4節(jié)對(duì)本文的加密算法進(jìn)行安全性分析及相關(guān)檢驗(yàn),第5節(jié)是本文的結(jié)論。
定義1 設(shè)f1和f2是兩個(gè)動(dòng)力系統(tǒng),稱f=αf1+(1-α)f2為污染動(dòng)力系統(tǒng)。其中,0<α<1稱為污染系數(shù)[11]。選取拋物線映射[12]:
f1(n+1)=X(n+1)=μxn(1-xn),μ∈(0,4),xn∈[0,1]
(1)
當(dāng)μ∈(3.6,4)時(shí),映射出現(xiàn)分岔,是混沌映射。x隨μ的變化如圖1所示。
分段非線性映射[13]:
f2(n+1)=x(n+1)=
(2)
其中,x∈[0,1],p∈(0,0.5)。在p=0.25時(shí),分段非線性映射的圖像如圖2所示。
圖2 分段非線性映射圖
由拋物線映射式(1)與分段非線性映射式(2)形成的污染混沌動(dòng)力系統(tǒng)為
f(n)=αf1(n)+(1-α)f2(n)
(3)
當(dāng)α=0.099,μ=0.2,p=0.25時(shí),并且α=0.008 9,μ=3.8,p=0.15時(shí)的污染動(dòng)力學(xué)系統(tǒng)式(3)的圖像分別如圖3和圖4所示。
圖3 α=0.099,μ=0.2,p=0.25污染系統(tǒng)
圖4 p=0.15,α=0.008 9,μ=3.8污染系統(tǒng)
由圖3和圖4可知,當(dāng)p,α,μ取不同值時(shí),污染系統(tǒng)的輸出值相差很大。
證明在各參數(shù)取值范圍內(nèi)取
另一方面當(dāng)0.5≤x<1時(shí)
又因?yàn)?/p>
求導(dǎo)可知,q1(x)在定義域內(nèi)單調(diào)遞增,且
當(dāng)0.5≤x<1-p時(shí),
綜上可知:
|f′|>1
本文在各參數(shù)取值范圍內(nèi)選取
初值選取
x(1)=0.195,α(1)=0.001,p(1)=0.22,
μ(1)=3.66,n=1 500
則該污染混沌動(dòng)力系統(tǒng)輸出值x(n)的值如圖5所示,顯然輸出結(jié)果在[0,1]上服從均勻分布。
圖5 污染混沌動(dòng)力系統(tǒng)輸出值的分布
加密思想:在傳輸密文過程中,如果明文信息有變化密文也會(huì)變化,密鑰的微小變化也會(huì)引起密文的改變,本文的加密算法考慮了以上兩個(gè)影響因素。首先把原始明文信息轉(zhuǎn)化為相應(yīng)的二進(jìn)制序列,由初值出發(fā)通過污染系統(tǒng)的迭代得到混沌結(jié)果序列,把混沌序列處理后得到密鑰序列,最后把明文序列與密鑰序列進(jìn)行特殊運(yùn)算以得到效果更好的密文。加密過程如圖6所示:
圖6 加密過程框圖
具體加密算法如下:
步驟1將明文字符串轉(zhuǎn)化為ASCII碼,再將ASCII碼值由十進(jìn)制轉(zhuǎn)化為十六位二進(jìn)制,得到二進(jìn)制的明文序列D={d1d2d3…dL},L∈N+;其中di只取0或1。
步驟3由Tj(x(i))=[10jx(i)]mod 2計(jì)算得到密鑰序列{ki}。
步驟4加密。第一輪加密后得到第一輪密文si,明文與密鑰序列的相鄰bit影響第一輪密文,第二輪加密則是把第一輪密文與密鑰逆序列異或,得到最終密文mi序列,這樣保證了密文的不可攻擊性,進(jìn)一步加強(qiáng)了密鑰對(duì)密文的影響。
第一輪加密:
第二輪加密:
最后得到密文序列M={m1,m2,m3,…,mL}。
解密圖如圖7所示,解密時(shí),第一輪解密得到第一輪密文si,第二輪解密時(shí)與密鑰ki,ki-1異或得到兩個(gè)相鄰明文di,di-1的異或值yi,再用d1與yi+1層層異或逐步得到d2,d3,…。
圖7 解密過程框圖
具體解密過程:
步驟1取定系統(tǒng)值。
給定污染混沌動(dòng)力系統(tǒng)中的初始值,則迭代系統(tǒng)中其他參數(shù)值為
并代入污染混沌系統(tǒng)中進(jìn)行迭代,得到混沌序列{x(i)},i=1,2,3,…,L。
步驟2得到密鑰。
由Tj(x(i))=[10jx(i)]mod 2計(jì)算得到密鑰序列ki=Tj(x(i)),i=1,2,3,…,L。
步驟3解密。
第一輪解密:
第二輪解密:
步驟4得到明文序列。
D={d1d2…dL}
步驟5轉(zhuǎn)化為明文。
將明文二進(jìn)制序列的ASCII碼值轉(zhuǎn)換為明文。
為了更清楚地說明加密算法的加密過程,對(duì)加密算法進(jìn)行性能分析,下面給出一個(gè)例子,對(duì)一段文字用Matlab進(jìn)行加密。
明文:個(gè)人信息的安全性
首先將明文文字轉(zhuǎn)化成ASCII碼值,然后轉(zhuǎn)化為十六位二進(jìn)制序列,得到明文序列:010011100010101001001110101110100100111111100001011000000 110111101110110100001000101101110001001010100 01011010000110000000100111。
(1)在原初值條件下的密文為“〗?z宻J? ガ”。
(2)當(dāng)x(1)=0.195 000 1密文為“?┉Ut'.犧y鵎?”。
(3)將j=7改為j=9密文為“B鲇Y(進(jìn);賗株?S”。
(4)將α(1)=0.01改為α(1)=0.000 1,密文為“8V?緧ェ蕾l笒”。
(5)將p(1)=0.22改為p(1)=0.220 001,密文為“踻<_x0019_憖飪??f袲e”。
(6)將μ(1)=3.66改為μ(1)=3.660 001密文為“? /!_x0016_??O琲贊E”。
(7)當(dāng)x(1)=0.195 000 01,j=8時(shí),其他值不變“F3-?"瑣,Y庣婄”。
以上(1)~(7)的結(jié)果用0,1二進(jìn)制序列表示后,如圖8所示。分析圖形結(jié)果,初始值的極微小的變化會(huì)使得密文產(chǎn)生巨大變化。
圖8 不同條件下明文與密文二進(jìn)制序列圖
當(dāng)輸入正確的解密密鑰時(shí),可以得到正確的原始明文信息。如把步驟(1)中x(1)=0.195中輸入污染混沌動(dòng)力系統(tǒng),得到的密鑰流與密文流進(jìn)行多次異或就得到正確的明文信息,而把密鑰當(dāng)作x(1)=0.195+10-16時(shí),得到的明文為“>楑桳D?設(shè)8P謾”。由此可見,輸入錯(cuò)誤密鑰不能得到正確的明文信息。
判斷污染混沌動(dòng)力系統(tǒng)加密效果的好壞,要看加密后密文流二進(jìn)制序列中0與1的個(gè)數(shù)是否接近,越接近加密效果越好。污染系統(tǒng)式(3)中,在指定范圍內(nèi)取定參數(shù)值,代入后得到混沌序列,再經(jīng)過計(jì)算得到密鑰流。當(dāng)n取值越來越大時(shí),密鑰流中0與1的個(gè)數(shù)幾乎相等,這說明密文流是均勻分布的,該污染系統(tǒng)有良好的隨機(jī)性質(zhì),可以有效抵抗統(tǒng)計(jì)分析。
圖9 0在密文序列中所占的比例
由圖9可知,當(dāng)n增大時(shí),0在密文流中所占的比例逐漸接近0.5,說明密文流中0與1的個(gè)數(shù)幾乎相等,可見密文是均勻分布的,可以有效抵抗統(tǒng)計(jì)分析。
在參數(shù)取值范圍內(nèi)選取密鑰值,通過污染系統(tǒng)運(yùn)算后產(chǎn)生密鑰值,對(duì)明文進(jìn)行加密,通過明文與密文的相關(guān)度檢驗(yàn)加密效果。
定義明文與密文的相關(guān)度[12]:
設(shè){d1d2d3…dn}為明文信息的二進(jìn)制序列,{m1m2m3…mn}為密文流的二進(jìn)制序列,α,μ,p均為式(3)中的參數(shù)。
R(x(1),α(1),p(1),μ,j,n)=
例1 明文為混沌密碼學(xué)原理及其應(yīng)用,污染系統(tǒng)中各參數(shù)值為初值:x(1)=0.195,a(1)=0.000 1,p(1)=0.22,μ(1)=3.66,以上明文的二進(jìn)制序列長度為176,則n最大取到176,迭代系統(tǒng)中其他參數(shù)滿足:
明文二進(jìn)制、密文二進(jìn)制以及明文與密文的相關(guān)度值隨n的變化情況如圖10所示,由圖10可知,隨著n的不斷增大,明文與密文的相關(guān)度值逐漸趨近0。
圖10 明文與密文及其相關(guān)度值
通過以上例子,可以得到結(jié)果:明文與經(jīng)過該污染系統(tǒng)加密后的密文相關(guān)度很低,并且隨著n值的不斷增大,相關(guān)度值逐漸趨近于0,說明加密后的明文與原始明文幾乎不相關(guān)。
靈敏度[13]的定義:
設(shè){d1d2d3…dn}為明文信息的二進(jìn)制序列,{m1m2m3…mn}為密文流的二進(jìn)制序列。
靈敏度δ(di,mi,x(1),α(1),μ(1),p(1),j,n)=
用密鑰{x1,α(1),μ(1),p(1),j}={0.195,0.001,3.66,0.22,7}
對(duì)長度為10 000的0序列加密,得到的明文與密文靈敏度如圖11所示。
圖11 密文與明文的靈敏度
當(dāng)取不同密鑰時(shí),分別選取x(1)={0.195,0.195 02,0.195 04,0.195 06,0.195 08}對(duì)10 000個(gè)0序列加密后,明文與密文的靈敏度如圖12所示。
圖12 不同初值下密文與明文的靈敏度分析圖
取p(1)={0.22,0.220 002,0.220 004,0.220 006,0.220 008},對(duì)10 000個(gè)0序列加密后,明文與密文的靈敏度如圖13所示。
圖13 不同p值下密文與明文靈敏度
當(dāng)j={5,6,7,8,9}時(shí),密文與明文的敏感度如圖14所示。密文與明文之間隨著信息量以及各個(gè)密鑰的變化靈敏度在變化,幾乎趨近于0.5。說明加密時(shí)明文信息會(huì)以0.5的概率改變。
圖14 不同j值密文與明文的敏感度
設(shè){m1m2m3…mn}為加密后的密文二進(jìn)制序列,定義平衡度:
n1,n0分別是序列中1,0的個(gè)數(shù)。平衡度越小,0與1的個(gè)數(shù)越接近,獲得的密文隨機(jī)性越好。
取密鑰x(1)=0.195,a(1)=0.001,p(1)=0.22,μ(1)=3.66。長度為10 000的0序列加密,得到密文的平衡度分析圖如圖15所示。
圖15 密文的平衡度分析圖
由圖15可知,明文全是0時(shí),密文的平衡度接近于0,說明密文中0,1個(gè)數(shù)大體相等,對(duì)于更一般的明文,密文更有隨機(jī)性。
定義二值序列的自相關(guān)系數(shù)為
其中,m為步長,n為比較的密文長度bit數(shù),自相關(guān)系數(shù)的值與步長m及n有關(guān),當(dāng)m一定時(shí),自相關(guān)系數(shù)與n有關(guān),當(dāng)n變化時(shí),如果自相關(guān)系數(shù)變化很小,說明密文序列隨機(jī)性越好。當(dāng)m=1,m=2,m=3時(shí),做比較的密文長度為10 000時(shí),用密鑰x(1)=0.195,α(1)=0.001,p(1)=0.22,μ(1)=3.66得到的密文自相關(guān)系數(shù)與n的圖像如圖16所示。可以看出,當(dāng)步長分別取1,2,3時(shí),密文序列的自相關(guān)系數(shù)變化很小,說明密文的隨機(jī)性很好。
圖16 密文的自相關(guān)系數(shù)圖
對(duì)于選取的密鑰為x(1),α(1),p(1),μ(1)及離散化算子j,若計(jì)算機(jī)精度為10-5估算本算法的密鑰空間,結(jié)果密鑰空間為5×1025,實(shí)際上計(jì)算機(jī)的精度遠(yuǎn)大于10-5,則密鑰空間遠(yuǎn)大于5×1025,由此可知該污染混沌動(dòng)力系統(tǒng)有足夠大的密鑰空間可以抵抗窮舉攻擊。
文章介紹的密碼算法是基于污染混沌動(dòng)力系統(tǒng)的加密算法,使得簡單的映射能產(chǎn)生足夠安全的密文,真正做到了明文任一比特的改變都能引起密文的巨大改變。本文介紹了由拋物線映射和分段非線性映射構(gòu)造的污染混沌映射,用計(jì)算機(jī)模擬實(shí)例來驗(yàn)證加密的結(jié)果,并且進(jìn)行了多項(xiàng)加密性能分析,如密文是否均勻分布、平衡度以及密文的自相關(guān)性等,分析后表明該加密算法加密效果良好,密文及算法都可以有效抵抗攻擊。