基于二維超混沌序列的圖象加密算法

圖象加密日益受到重視,許多加密算法被提出,其中一維混沌加密算法由于利用了混沌序列的良好復(fù)雜性、偽隨機(jī)性和對(duì)初值的敏感特性而具有較好的加密性能,但與其他方法比較。其最大的缺陷是密鑰空間太小,為此,我們提出了一種基于二維超混沌系統(tǒng)的圖象文件加密方法,設(shè)計(jì)了若干個(gè)形式簡(jiǎn)單的二維超混沌模型,把它們生成的混沌序列變換成加密因子序列,采用縱橫兩重逐位模2加運(yùn)算來(lái)加密、解密圖象。

一、混沌序列與二維混沌離散系統(tǒng)模型

混沌(chaos)定義為:設(shè)X為一個(gè)度量空間,f:X→X稱為在X上是混沌的,如果:

(1)f對(duì)初始條件的敏感依賴性:如存在?δ>0,對(duì)任何z∈X和r的任何鄰域N,存在y∈N和自然數(shù)n≥0。使得d(fn(x),fn(y))>δ。

(2)f是拓?fù)鋫鬟f的:如對(duì)任何一對(duì)開(kāi)集U,yUX,存在k>0,使得fk(u)∩v≠Φ。

(3)周期點(diǎn)在y中稠密。

Lyapunov指數(shù)(簡(jiǎn)稱李氏指數(shù))是刻畫(huà)非線性系統(tǒng)混沌特性的有效方法之一,李氏指數(shù)的個(gè)數(shù)與系統(tǒng)狀態(tài)空間的維數(shù)n相同,若只有一個(gè)李氏指數(shù)大于零,則系統(tǒng)是混沌的;若至少有兩個(gè)李氏指數(shù)大于零,則系統(tǒng)是超混沌的,大于零的李氏指數(shù)個(gè)數(shù)愈多,系統(tǒng)不穩(wěn)定的程度愈高。一般來(lái)說(shuō),系統(tǒng)的狀態(tài)量個(gè)數(shù)越多(如高維系統(tǒng),對(duì)離散系統(tǒng)來(lái)說(shuō),n>2),它可能出現(xiàn)不穩(wěn)定的程度會(huì)越高。

目前被廣泛研究的一維混沌系統(tǒng)是Logistic映射,即:

基于二維超混沌序列的圖象加密算法

其中,O≤μ≤4稱為分枝參數(shù),xk∈(0,1)?;煦鐒?dòng)力系統(tǒng)的研究工作指出,當(dāng)3. 569 945 6…<μ≤4.000 0時(shí),Logistic映射工作處于混沌態(tài)。也就是說(shuō),由初始條件x0在Logistic映射的作用下所產(chǎn)生的序列{xk;k=0,1,2,3...)是非周期的、不收斂的并對(duì)初始值非常敏感的。

Logistic映射的另一種形式為:

基于二維超混沌序列的圖象加密算法
其中,λ∈[0,2],n的定義區(qū)間是(-1,1).當(dāng)1. 401 15<λ<2.000 00時(shí),Logistic映射工作處于混沌態(tài)。

不失一般性,二維混沌離散系統(tǒng)有如下形式:

基于二維超混沌序列的圖象加密算法

其中:

基于二維超混沌序列的圖象加密算法

式中,ai(i=1,2,…,1 2)均為待定常系數(shù)。

采用高維系統(tǒng)產(chǎn)生超混沌,由于系統(tǒng)較之低維情況復(fù)雜,產(chǎn)生超混沌時(shí)序的時(shí)間增長(zhǎng),將有可能直接影響保密通訊實(shí)時(shí)性的要求,因此,如何在系統(tǒng)狀態(tài)變量個(gè)數(shù)盡可能少而正性李氏指數(shù)又盡可能多的條件下,尋找到非線性形式簡(jiǎn)單的系統(tǒng),是十分實(shí)際而又有意義的工作。為了尋找簡(jiǎn)單形式的二維離散超混沌系統(tǒng),需進(jìn)一步簡(jiǎn)化(3)式,使部分非線性項(xiàng)前的系數(shù)為零,然后通過(guò)計(jì)算該系統(tǒng)的李氏指數(shù),即有兩個(gè)或兩個(gè)以上大于零的李氏指數(shù),可認(rèn)為該系統(tǒng)是超混沌特性的二維離散系統(tǒng).通過(guò)計(jì)算,最后得到一些形式簡(jiǎn)單且具有超混沌特性的二維離散系統(tǒng)如表1所示。

基于二維超混沌序列的圖象加密算法

以離散系統(tǒng)1為例,用它生成數(shù)字圖象加密的加密變換的因子序列.先分析其簡(jiǎn)單分岔特性(如圖1,圖2所示),為選取合適的參數(shù)值和密鑰空間做好準(zhǔn)備。假若a5=1.3,a8= -1.1,a10=0.1先固定。

基于二維超混沌序列的圖象加密算法

基于二維超混沌序列的圖象加密算法

驗(yàn)發(fā)現(xiàn)a4=0.91時(shí),離散系統(tǒng)1進(jìn)入準(zhǔn)周期運(yùn)動(dòng)(圖3),而a4=1. 66時(shí),該系統(tǒng)已經(jīng)是超混沌態(tài)了(圖4),同時(shí)可以計(jì)算出此時(shí)序列區(qū)間為-1. 577 702<xn< 0. 529 923;- 0. 634 822<yn <1. 862 664。

基于二維超混沌序列的圖象加密算法

基于二維超混沌序列的圖象加密算法

二、二維混沌系統(tǒng)應(yīng)用于圖象置亂加密

基于混沌序列圖象加密和解密模型可以用圖5表示。

基于二維超混沌序列的圖象加密算法顯然,圖象加密算法和對(duì)應(yīng)的解密算法是需研究和解決的核心問(wèn)題,除此之外,由混沌實(shí)數(shù)序列生成直接應(yīng)用于加密變換的因子序列的變換(映射1)。以及密鑰與用來(lái)決定密鑰的初值和模型參數(shù)之間的映射2也是需要研究解決的問(wèn)題。

映射1設(shè)計(jì)的原則是讓加密因子序列盡量保持原混沌序列的偽隨機(jī)性,同時(shí)適于后續(xù)加密算法的操作。目前,常用的映射1大體上分為實(shí)數(shù)值序列、位序列和二值序列3種。

(1)實(shí)數(shù)值序列,即{Xk;k=0,1,2,3...},是混沌映射的軌跡點(diǎn)所形成的序列。顯然不宜直接應(yīng)用于加密圖象,而且理論研究表明:這種無(wú)誤差的平凡混沌加密方法是可破解的。

(2)位序列:同樣由實(shí)數(shù)值混沌序列得到,所不同的是,位序列是通過(guò)對(duì){Xk;k=0,1,2,3...}中的Xk改寫(xiě)為L(zhǎng)-bit的浮點(diǎn)數(shù)形式得到的:

基于二維超混沌序列的圖象加密算法
其中,bi(xk)是|xk|的第i位,所需序列即為bi(xk);i=0,1,2.….L;k=0,1,2,3…)。顯然該位序列bi(xk)的取值范圍是[O,9],不適合直接作用于8bit和24bit的圖象數(shù)據(jù)。

(3)二值序列,即將原混沌序列閾值化后生成的二值序列,混沌序列閾值化后,其混沌偽隨機(jī)性損失較大,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),加密后的圖象輪廓依稀可見(jiàn)。

針對(duì)數(shù)字圖象的特點(diǎn),結(jié)合加密效果和效率指標(biāo)要求,提出一種新的方法,即將混沌實(shí)數(shù)序列在其最大值和最小值之間,按256級(jí)等級(jí)線性映射,得到8位二進(jìn)制序列,作為加密因子序列,二維超混沌模型的多個(gè)參數(shù)和兩個(gè)初始條件都可以設(shè)計(jì)為密鑰.由于采用的是私鑰方式,為方便用戶使用。

一般來(lái)說(shuō),密鑰空間的連續(xù)性是首先必須保障的,如是8位密碼的話,密鑰最好可以從00000000~99999999連續(xù)取值,其次,從密鑰到初值和(或)模型參數(shù)的映射2可以有多種形式,在此推薦分節(jié)線性變換方法,該方法既保證密鑰與初值或參數(shù)的一一對(duì)應(yīng)性和同步相異性(在一定計(jì)算精度范圍內(nèi)),又充分利用了系統(tǒng)可提供的密鑰空間大小,更重要的是它可以有效地防止初值區(qū)間超出混沌迭代序列的區(qū)間而使密鑰無(wú)效這種致命問(wèn)題的出現(xiàn)。

以18位十進(jìn)制密鑰為例,它可被分為3節(jié)(長(zhǎng)度可以相等或不等),3節(jié)分別通過(guò)線性映射,映射為用于解密的初值x0,y0,和模型參數(shù)戶。

基于二維超混沌序列的圖象加密算法
一位X的取值范圍是0到9)。

基于二維超混沌序列的圖象加密算法
基于縱橫兩重異或(模2加)運(yùn)算的圖象加密新方法,其優(yōu)點(diǎn)是計(jì)算速度快,加密效果好,容易程序?qū)崿F(xiàn),可以抵御一定程度的攻擊,縱橫兩重異或加密、解密算法描述如下:

加密算法/過(guò)程為

(1)給定需要加密的原圖象,I={O≤fk(i,j)≤255,若圖象為彩色圖象,k=1,2,3代表3種顏色分量;若圖象為灰度圖象,k=1,i=O,1,2,…,M-1;j=0,1,2,…,N一1}和密鑰P,圖象分辨率為M×N;

(2)由密鑰P映射出混沌系統(tǒng)的初值和模型參數(shù);

(3)生成二維混沌序列;

(4)由實(shí)數(shù)值混沌序列通過(guò)線性變換映射到0~255的整數(shù)序列作為加密因子序列};

(5)在橫向上用生成的加密因子序列對(duì)原圖象進(jìn)行異或加密,對(duì)于彩色圖象,每個(gè)像素的多個(gè)顏色分量可以采用同一加密因子序列或緊鄰的加密因子序列加密;

(6)在縱向上用生成的加密因子序列對(duì)原圖象進(jìn)行異或加密;

(7)將加密后的圖象在公共通道上傳輸;

(8)將密鑰P在安全通道上傳輸。

解密算法/過(guò)程為:

(1)從公共通道上得到加密圖象;

(2)用從安全通道上得到的密鑰P;

(3)由密鑰P映射出混沌系統(tǒng)的初值和模型參數(shù);

(4)生成二維混沌序列;

(5)由實(shí)數(shù)值混沌序列通過(guò)線性變換映射到0~255的整數(shù)序列作為加密因子序列;

(6)在縱向上用生成的加密因子序列對(duì)原圖象進(jìn)行異或解密;

(7)在橫向上用生成的加密因子序列對(duì)原圖象進(jìn)行異或解密;

(8)生成恢復(fù)后的圖象。

三、實(shí)驗(yàn)結(jié)果

上述加密解密算法用Visual C++編程實(shí)現(xiàn),分別對(duì)灰度圖象和24位彩色圖象加密和解密,并進(jìn)行了測(cè)試,實(shí)際計(jì)算中去掉了前5 137次暫態(tài)過(guò)程,選取離散系統(tǒng)中的初始條件T。和yo來(lái)產(chǎn)生密鑰,圖6~圖1 0給出了以離散系統(tǒng)1為模型的實(shí)驗(yàn)結(jié)果。

從實(shí)驗(yàn)測(cè)試結(jié)果可以看出:

(1)對(duì)圖象進(jìn)行X或Y單個(gè)方向的混沌加密,如圖6、圖7所示,可以看到:原圖象的輪廓依稀可見(jiàn),置亂效果欠佳.但縱橫兩重異或加密后,圖象變得雜亂無(wú)章,置亂效果明顯,有良好的保密性。

基于二維超混沌序列的圖象加密算法

基于二維超混沌序列的圖象加密算法

(2)由于混沌系統(tǒng)對(duì)初始值的敏感性,當(dāng)改變密鑰11415927(原密鑰11415926),不但不能恢復(fù)原圖象,而且還原出的圖象依舊很混亂,如圖8。

基于二維超混沌序列的圖象加密算法

(3)局部破損實(shí)驗(yàn)中對(duì)加密后的圖象進(jìn)行部分破損,還原后,可以看出:破損部分沒(méi)有擴(kuò)散,其余部分能正確地還原,如圖9所示。

基于二維超混沌序列的圖象加密算法

(4)從表2的加密、解密時(shí)間來(lái)看,雖然二維超混沌系統(tǒng)比一維系統(tǒng)計(jì)算復(fù)雜,但加密的速度還是相當(dāng)快的。

基于二維超混沌序列的圖象加密算法

實(shí)驗(yàn)系統(tǒng)配置:CPU毒龍750r內(nèi)存128MB,主頻133MHZ;操作系統(tǒng):Windows XP。

(5)網(wǎng)絡(luò)傳輸?shù)男枰?,往往?huì)對(duì)原圖象進(jìn)行有損壓縮(如JPEG),到達(dá)目的地后再將其轉(zhuǎn)換為BMP格式,再去亂還原。如圖10所示實(shí)驗(yàn)結(jié)果表明:壓縮的品質(zhì)因子quality大于5時(shí),還原效果較好,當(dāng)品質(zhì)因子小于5時(shí),去亂后的圖象是不可用的。

基于二維超混沌序列的圖象加密算法

小知識(shí)之混沌

混沌是一種確定系統(tǒng)中出現(xiàn)的無(wú)規(guī)則的運(yùn)動(dòng)?;煦绲碾x散情況常常表現(xiàn)為混沌時(shí)間序列,混沌時(shí)間序列是由混沌模型生成的具有混沌特性的時(shí)間序列,混沌時(shí)間序列中蘊(yùn)涵著系統(tǒng)豐富的動(dòng)力學(xué)信息,混沌時(shí)間序列是混沌理論通向現(xiàn)實(shí)世界的一個(gè)橋梁,是混沌的一個(gè)重要應(yīng)用領(lǐng)域。