圖像文件加密之變參數(shù)混沌系統(tǒng)加密
針對一維離散單混沌系統(tǒng)在計(jì)算機(jī)有限精度下存在的退化問題,提出了一種在生成混沌信號的過程中參數(shù)隨機(jī)變化的混沌偽隨機(jī)序列產(chǎn)生方法,基于該方法構(gòu)建的混沌系統(tǒng)較單混沌系統(tǒng)具有偽隨機(jī)序列周期大、密鑰數(shù)量多、密鑰空間大等優(yōu)勢,所產(chǎn)生的密碼具有更高的安全性能。
一、參數(shù)隨機(jī)變化的一維混沌映射
通過隨機(jī)改變混沌映射的參數(shù),可以提高混沌序列的復(fù)雜性,并且在有限精度實(shí)現(xiàn)時(shí),使得混沌序列的周期可用不同參數(shù)的混沌映射的數(shù)目來度量,即混沌序列的周期等于狀態(tài)x(i)的周期與參數(shù)的周期的乘積。
1、一個(gè)良好隨機(jī)統(tǒng)計(jì)特性的分段線性混沌映射PLCM
一個(gè)良好隨機(jī)統(tǒng)計(jì)特性的一維分段線性迭代混沌映射,其定義如下:

其中,x∈(0,1],p∈(0,0.5)。
該迭代系統(tǒng)是混沌的,其輸出信號,{x(t)}在[o,1]上遍歷,且具有良好的自相關(guān)性和均勻分布特性。
2、Logistic混沌映射
![]()
其中,O≤Xn≤1,n∈Z當(dāng)μ∈[3.57,4]時(shí),系統(tǒng)是混沌的。
若直接利用式(1)的迭代來產(chǎn)生密鑰序列存在混沌參數(shù)p易被破解的缺陷。
對于由式(1)生成的混沌序列,只要得到位于同一個(gè)分段上的任意兩個(gè)(或多個(gè))的點(diǎn)對x(t),x(t+1)、x(t'),x(t'+1),就能確定出參數(shù):
![]()
3、參數(shù)隨機(jī)變化的多級一維分段線性混沌系統(tǒng)
基于FLCM和Logistic混沌映射,本文設(shè)計(jì)了一個(gè)基于參數(shù)隨機(jī)變化的多級混沌系統(tǒng)。如圖1所示。

其中,S01,S02是用戶隨機(jī)輸入的初始條件,F(xiàn)ip是一個(gè)按式(1)定義的一維分段線性混沌映射fLCM迭代k次后的混沌映射,其表達(dá)式為x(i+1)=fk(x(i),p),其中k>n,
k為迭代級數(shù),F(xiàn)IP的初始值是用戶隨機(jī)輸入的S01,利用S01作為Fi,的初始條件來生成x(1)。F1p,用來控制F2p的初始化和迭代過程,其中F2p是按式(1)定義的一個(gè)一維分段線性混沌映射PLCM。由于是在有限精度下實(shí)現(xiàn),所以設(shè)其精度為n,則序列{x(t)}t=1的取值空間為2n。
F2p也是一個(gè)一維線性混沌映射PLCM,在n=16精度下,由于參數(shù)p的取值空間為216所以對不同的參數(shù)另F2p可以看成是不同的混沌模型。也即相當(dāng)于存在216個(gè)一維線性
混沌映射F(x,p)。在每次迭代的過程中,F(xiàn),中的控制參數(shù)p是這樣產(chǎn)生的。
1)初始時(shí),隨機(jī)輸入一個(gè)數(shù)據(jù)O1時(shí),p=F3μ(x(t-1),μ)/3,其中μ=μ1或μ2。
3)F3μ中的參數(shù)μ是這樣控制在μ1和μ2之間來回切換的:把迭代次數(shù)徐運(yùn)算正整數(shù)m,當(dāng)運(yùn)算結(jié)果為奇數(shù)時(shí),F(xiàn)中使用參數(shù)μ1,當(dāng)運(yùn)算結(jié)果為偶數(shù)時(shí),F(xiàn)3μ中使用參數(shù)μ2。
這就保證了在生成,{x(t)}t=1的過程中,當(dāng)某次迭代產(chǎn)生的x(t')與之前的某次x(t)相等時(shí)其中t’>t與x(t')對應(yīng)的參數(shù)p'也以極大的概率與x(t')對應(yīng)的參數(shù)p不相等。只有當(dāng)某次的迭代狀態(tài)與之前的相同而且要使其對應(yīng)的參數(shù)也與之前的相同時(shí),混沌序列才會出現(xiàn)循環(huán)。在該偽隨機(jī)序列發(fā)生器中,只有當(dāng)x(t-1)與x(t'-1)相等,x(t)與x(t')相等,而且還必須當(dāng)tm與t'%m運(yùn)算得到的這兩個(gè)數(shù)的奇偶性相同時(shí),該偽隨機(jī)序列才可能會進(jìn)入周期循環(huán)之中。這樣,混沌序列的周期即h=t*22n,其中n為精度,h=1,2,3,4,…,h的初始值和m有關(guān)。從而在有限精度實(shí)現(xiàn)時(shí),輸出混沌序列的周期變大,并可以度量。
二、
序列轉(zhuǎn)換為0-1序列![]()
把根據(jù)圖1生成的模擬序列{x(t)}t=1用量化函數(shù)進(jìn)行量化,得到0-1二進(jìn)制序列{s(t)}t=1:

其中,ni為任意正整數(shù),I0n',I1n',I2n',I3n',一是區(qū)間,o,1的2n'個(gè)連續(xù)的等分區(qū)間。
由于混沌序列,{x(t)}t=1具有良好的隨機(jī)統(tǒng)計(jì)特性,這樣生成的{s(t)}t=1在理論上具有均衡的0-1比和δ-like的自相關(guān)等優(yōu)良的統(tǒng)計(jì)特性。
最后,為了進(jìn)一步增加算法的隨機(jī)性,提高序列的抗破解能力,使得對初始條件的攻擊無效,加密時(shí)截掉序列的初始端部分和結(jié)尾部分,假設(shè)序列{s(t)}t=1L的長度為L,任取截點(diǎn)N1,N2,滿足1<N1
這樣,本算法的保密性不但依賴于混沌系統(tǒng)的參數(shù)和初始條件,而且還依賴于保密系統(tǒng)的初始值N1,N2和隨機(jī)選取的某個(gè)正整數(shù)m,m=1,2 3,4,5,…。這樣,加密系統(tǒng)的密鑰就包括N1,N2,m,n',s01,S02,p,p1~p(2n),L1,L12,這就使得密碼分析變得極其困難。
三、混沌系統(tǒng)性能分析
本文設(shè)計(jì)的混沌系統(tǒng)有以下優(yōu)點(diǎn)。
1)保證了產(chǎn)生的0-1序列滿足二值分布。在迭代過程中,每次換一個(gè)混沌參數(shù)p(t),相當(dāng)于更換了一個(gè)混沌方程。由此來提高產(chǎn)生的混沌序列的復(fù)雜性,而且對于相同的狀態(tài)p(t),由于它所對應(yīng)的參數(shù)p(t)不同,使得它的下一個(gè)狀態(tài)x(t+1)不同。
2)使得破解參數(shù)p變得異常復(fù)雜。破解一個(gè)一維分段線性混沌的參數(shù)p需要該混沌2個(gè)點(diǎn)對。本系統(tǒng)有2n個(gè)不同的混沌方程。所以一個(gè)點(diǎn)對落入一個(gè)指定的混沌的概率為2n,2個(gè)點(diǎn)對同時(shí)落入一個(gè)指定的混沌方程的概率為2-n X2-n=2-2n,因此,破解本系統(tǒng)的一個(gè)混沌參數(shù)的復(fù)雜度是破解一維分段線性混沌映射的22n倍。全部破解P1,p2,p3,…,p2n。這2n個(gè)參數(shù),其復(fù)雜度是破解一維分段線性混沌系統(tǒng)的2n*22n=23n倍。同時(shí)由于N1,N2,m的引入,破解該混沌系統(tǒng)的復(fù)雜度在此基礎(chǔ)上又得到了極大的提高,使得到的混沌序列的隨機(jī)性更強(qiáng),周期更長,極大地增強(qiáng)了抗密碼分析的能力。
3)進(jìn)一步增大了序列的周期。作為密碼序列,其周期應(yīng)該越長越好。而定參數(shù)的方法產(chǎn)生的序列的周期完全取決于序列{x(i)}的精度。而本文采用的方法其周期由混沌參數(shù)的改變周期與,{x(i)}的周期的乘積來決定,即,h X2n×2n=7z×22n(n為數(shù)字化精度,h為正整數(shù)),這樣產(chǎn)生的序列周期大大增加,而且可以度量。
四、變參數(shù)混沌系統(tǒng)的仿真驗(yàn)證
從圖2(a)可以看出,該混沌系統(tǒng)在初始值S01改變10- 16時(shí),該混沌系統(tǒng)大約經(jīng)歷15次迭代之后,這兩個(gè)序列就變得完全不同了,其中,實(shí)線為初值So1=9.501292851471754e -001,虛線為初值So1 =9. 501292851471753e - 001,這說明該偽隨機(jī)序列發(fā)生器對初始值具有極高的敏感性。由 Berlekanp Messy算法對該序列的線性復(fù)雜度進(jìn)行分析,可從圖2(b)看出,該序列的線性復(fù)雜度曲線趨向于獨(dú)立二項(xiàng)同分布隨機(jī)序列的復(fù)雜度曲線,約等于序列長度的一半,表現(xiàn)出良好的隨機(jī)性,滿足保密通信的要求。從圖2(c)、(d)可以看出,該偽隨機(jī)數(shù)發(fā)生器生成的二進(jìn)制混沌序列,{k(t)}t=1具有類似δ-like的性質(zhì),有尖銳的自相關(guān)和良好的互相關(guān)性。

五、基于該混沌系統(tǒng)的圖像加密算法
1、圖像加密解密算法原理
加密算法
1)發(fā)送方利用該混沌模型在本地生成加密序列fo(假定圖像大小為M×M,灰度等級為256,則序列肭長度為M×MX8;如果數(shù)字圖像不是方陣,可以通過填充為背景色的方法擴(kuò)充為方陣。為了提高加密/解密效率,序列f可以多次使用,發(fā)送方和接收方經(jīng)過協(xié)商可以在約定時(shí)刻更換加密序列Z以提高加密算法的安全性。)
2)發(fā)送方通過初始值S01、S02和混沌參數(shù)利用該混沌模型生成一個(gè)序列,把該序列量化為0-1序列后,轉(zhuǎn)換為一個(gè)十進(jìn)制數(shù)組x(L),且L≤Mo用x(L)對圖像的灰度矩陣m進(jìn)行行置亂,即根據(jù)x(L)中的元素值對m的相應(yīng)于該值的行進(jìn)行倒置,得到m2。
3)同2),發(fā)送方利用該混沌模型最終生成一個(gè)十進(jìn)制數(shù)組Y(L2),且L2≤M。用Y(L2)對經(jīng)過第2)步后圖像的灰度矩陣m2進(jìn)行列置亂,即根據(jù)Y(L2)中的元素值對m2的相應(yīng)于該值的列進(jìn)行倒置,得到m3。
4)發(fā)送方利用該混沌模型最終生成一個(gè)十進(jìn)制數(shù)組Z(L3),且L3≤M。通過Z(L3),對m3以主對角線為對稱軸,把按Z(L3)指定的那些平行于主對角線的行進(jìn)行翻轉(zhuǎn),得到
m4。
5)同4),發(fā)送方生成十進(jìn)制數(shù)組N(L4),且L4≤M。通過N(L4),對m4以副對角線為對稱軸,把按w(L4)指定的那些平行于副對角線的行進(jìn)行翻轉(zhuǎn),得到最終置亂后的矩陣
m5。
6)用第1)步生成的加密序列f對m5轉(zhuǎn)換成的二進(jìn)制位進(jìn)行逐位異或運(yùn)算。得到加密后的圖像。
7)發(fā)送方把生成該混沌模型加密序列J各個(gè)初始值和參數(shù)以及生成x(L)、y(L2)、Z(L3)、w (L4)的各個(gè)初始值和參數(shù)在一個(gè)安全信道上傳給接收方。
8)發(fā)送方把加密后的圖像通過公共信道傳給接收方。
2、算法安全性分析
1)從算法的原理看,整個(gè)算法由兩部分組成:置亂和替代。這與很多圖像加密算法原理相似,不同的是,一般的圖像加密算法中置亂矩陣時(shí)不受密鑰的控制,導(dǎo)致無法完全公開加密算法,不能抵御選擇明文攻擊,而本算法在對灰度矩陣置亂時(shí)要4次用到混沌系統(tǒng)產(chǎn)生的混沌序列,即要受到密鑰的控制,而且本系統(tǒng)密鑰數(shù)量眾多;此外,以本文中大小為256×256的灰度矩陣為例,完全能夠抵御窮舉攻擊,這就極大地增加了加密圖像的抗破解性。
2)該加密方案利用本文中提出的混沌系統(tǒng)產(chǎn)生的混沌序列作為加密序列,利用了該混沌系統(tǒng)對初始條件的極端敏感性,對于初始值僅有非常微小的偏差,該混沌系統(tǒng)在迭代了一定的次數(shù)后便會產(chǎn)生完全不同的混沌序列,本文中混沌系統(tǒng)由于使用的是迭代2000次之后的混沌序列,使得加密效果更佳,安全性更高。
3)由于本文采用的混沌系統(tǒng)是有多個(gè)混沌映射級聯(lián)而成,這就大大增大了密鑰的個(gè)數(shù)和密鑰空間;從一次一密的角度分析,加密者可以隨意地選擇密鑰,這極大地增強(qiáng)加密后圖像抵抗強(qiáng)行攻擊的能力;同時(shí),該混沌系統(tǒng)設(shè)計(jì)原理簡單,便于用硬件實(shí)現(xiàn)。
六、加密仿真及安全性分析
1、可視效果及對密鑰的敏感性
采用該加密方案對多幅圖像進(jìn)行了實(shí)驗(yàn),圖3為用該方案對大小為256*256,灰度等級為256的BMP圖像Yanhn加密解密的結(jié)果。其中,圖3(a)為Yanhn原始圖像,生成加密序列肭密鑰參數(shù)為0.45,3 57.3 92, 12.5,5000 +65536×8, So1,So2),其中,S01=9501292851471754e-001. S02=2311385135742878e-001;生成置亂矩陣時(shí)所用的密鑰參數(shù)為:(0.45,3.57,3.67, 11,5,200,4 450 964 322 879468e-001,0.318 145 784 616 647e -001,0.38,0.5,3.97,9,5,210,4659 943 416 754 240e- 001,4 186 494 677 275 062 e-001,0.49,0.82,3.71, 12,7,240,&462214178243245e-001,5.251524963 051724e - 001,0.48,3.73,3.62, 10,5,180,2026473576503873e-001,6 721374684742885e-001);圖3(b)為置亂操作后異或加密前圖像,圖3(c)為加密后圖像。圖4(a)為使用正確密鑰解密后得到的圖像。把生成加密序列f的初始密鑰S01改為:9.501292851471753e - 001,即S01減小了10-16,其他一切參數(shù)都不變,解密后得到的圖像為圖4(b);把生成加密序列,的初始密鑰S02改為:2311385135742879e-01,即S02增加了10- 16,其他一切密鑰參數(shù)都同正確的密鑰參數(shù)相等,解密后得到的圖像為圖4(c)。從仿真結(jié)果可以看出,該混沌系統(tǒng)對密鑰參數(shù)極其敏感,即使密鑰參數(shù)發(fā)生極其微小的偏差都會造成無法正確解密。

從圖5(a) Yanhn原始圖像的直方圖可以看出,不同像素值的像素?cái)?shù)目分布是不均等的;而加密后的直方圖圖5(b)表明,密文像素值在整個(gè)取值空間的取值概率趨于均等,呈現(xiàn)出良好的均勻分布特性,完全掩蓋了Yanhn原圖的特性。

2、相鄰像素的相關(guān)性分析
為了檢驗(yàn)明文圖像和密文圖像相鄰像素的相關(guān)性,從圖像中隨機(jī)選取部分水平方向相鄰像素對,部分垂直方向相鄰像素對和部分對角線方向相鄰像素對,用下列公式定量計(jì)算相鄰像素的相關(guān)系數(shù):

其中,x和y分別表示灰度圖像中相鄰2個(gè)像素的像素值,gxy即為灰度圖像中相鄰2個(gè)像素的相關(guān)系數(shù)。
圖6所示為原始Yanhn灰度圖像相鄰像素和加密后Yanhn灰度圖像相鄰像素的相關(guān)性,表1列出了按水平、垂直及對角線3種方向計(jì)算所得的圖像相鄰像素間的相關(guān)系數(shù)值。可以看出,原始明文Yanhn圖像的相鄰像素高度相關(guān),相關(guān)系數(shù)值接近于1;加密后Yanhn圖像的相鄰像素相關(guān)系數(shù)接近于0,表明相鄰像素已基本不相關(guān),證明圖像的統(tǒng)計(jì)特征已被擴(kuò)散到了隨機(jī)的密文中,能夠有效抵御像素相關(guān)統(tǒng)計(jì)分析攻擊。


小知識之遍歷
所謂遍歷(Traversal),是指沿著某條搜索路線,依次對樹中每個(gè)結(jié)點(diǎn)均做一次且僅做一次訪問。訪問結(jié)點(diǎn)所做的操作依賴于具體的應(yīng)用問題。 遍歷是二叉樹上最重要的運(yùn)算之一,是二叉樹上進(jìn)行其它運(yùn)算之基礎(chǔ)。當(dāng)然遍歷的概念也適合于多元素集合的情況,如數(shù)組。








