結(jié)合Cat和Logistic映射的混沌加密算法

混沌加密的思想自提出以后,混沌加密算法得到廣泛的研究,但其中絕大多數(shù)是基于單一混沌映射系統(tǒng)的加密算法,如一維的Logistic映射,二維的Smale映射、Henon映射或三維的Lorenz系統(tǒng)等。本文在對雙混沌系統(tǒng)應(yīng)用于加密算法進(jìn)行了有益的嘗試和分析后,提出一種新的數(shù)據(jù)混沌加密算法——結(jié)合Cat和Logistic映射的混沌加密算法,該算法能夠被應(yīng)用于文件加密、實(shí)時數(shù)據(jù)流加密和商品防偽等,基于該算法的加密軟件可以實(shí)現(xiàn)對任何類型的文件加密。

一、兩種離散混沌系統(tǒng):Cat映射和Logistic映射

1、Cat映射

Cat映射是一個二維的可逆混沌映射,其動力學(xué)方程的一般形式如式(1):

結(jié)合Cat和Logistic映射的混沌加密算法
由于其線性轉(zhuǎn)換矩陣行列式為1,所以Cat映射又被稱為是區(qū)域保留(area-preserving)的。其李雅普諾夫指數(shù)δ1,δ2為1c;當(dāng)a,b均為1時,就是經(jīng)典的Amold Cat映射。Cat映射具有較好的混沌特性,其每次的運(yùn)算首先將正方形的點(diǎn)空間線性拉伸,然后通過模運(yùn)算分割折疊。

2、 Logistic映射

Logistic映射為自治一維離散動態(tài)系統(tǒng),用一維非線性迭代函數(shù)來表征混沌行為,通過這一混沌函數(shù)可以通過微小的改變調(diào)節(jié)參數(shù)的值來產(chǎn)生完全不同的偽隨機(jī)序列。

Logistic映射動力學(xué)方程為:

結(jié)合Cat和Logistic映射的混沌加密算法

式中,μ為控制參量,μ值確定后,由任意初值X0∈(0,1),可迭代出一個確定的時間序列。對于不同的μ值,系統(tǒng)(2)將呈現(xiàn)不同的特性,隨著參數(shù)μ的增加,系統(tǒng)(2)不斷地經(jīng)歷倍周期分叉,最終達(dá)到混沌。稱當(dāng)μ=4時由系統(tǒng)(2)產(chǎn)生的序列具有隨機(jī)性、規(guī)律性、遍歷性、對初值的敏感性等典型的混沌特征。

當(dāng)函數(shù)在固定點(diǎn)的斜率的模大于等于l時,這個固定點(diǎn)是不穩(wěn)定的,同時函數(shù)在不可忽略固定點(diǎn)上的梯度值越大,函數(shù)的混沌性能越好。因此有專家給出了一種改進(jìn)的Logistic映射,其動力學(xué)方程為:

結(jié)合Cat和Logistic映射的混沌加密算法

式中,β為[1,4]之間的一個實(shí)數(shù),X0∈(0,1)。

二、結(jié)合Cat和Logistic映射的混沌加密算法設(shè)計(jì)

基于單一混沌系統(tǒng)的數(shù)字混沌加密算法,其設(shè)計(jì)的關(guān)鍵是對混沌映射的選擇,不同的混沌映射在算法實(shí)現(xiàn)復(fù)雜度,算法時間和空間復(fù)雜度以及安全性等方面都有較大差異。典型的一維混沌映射有Logistic映射,其算法實(shí)現(xiàn)簡單,運(yùn)算速度較快,但密鑰空間較小,安全性差,而研究較多的三維混沌Lorenz系統(tǒng),其算法實(shí)現(xiàn)復(fù)雜,運(yùn)算速度較Logistic映射慢,但密鑰空間很大,安全性較高.本文所提出混沌加密算法從算法的實(shí)現(xiàn)、速度和安全性考慮,既能達(dá)到較小的時間和空間復(fù)雜度,又能有較大的密鑰空間和較高的安全性,而且能避免單混沌系統(tǒng)可能出現(xiàn)的信息泄漏問題。算法流程圖如圖所示。

結(jié)合Cat和Logistic映射的混沌加密算法
可以選定Cat映射和Logistic映射的初始值xo,y0,x’o;和3個內(nèi)部參數(shù)a,b,β作為密鑰,算法中設(shè)置標(biāo)志FLAG: FLAG為真,正向迭代加密;FLAG為假,反向迭代加密。算法中的Xn,Yn,Xn':為Cat映射和Logistic映射的中間迭代結(jié)果,具體加密算法如下:

①針對式(1)和(3)確定初始密鑰,置FLAG為假。

②各初始迭代10次。

③FLAG取反并作如下判斷:FLAG是否為真,如果為真,正向迭代;否則,反向迭代,取迭代結(jié)果的第2,4,6位對256取余,得到混沌密鑰。

④將明文字節(jié)與混沌密鑰字節(jié)異或,輸出密文字節(jié)。

⑤判斷加密完否,如果加密完則退出,否則FLAG取反,轉(zhuǎn)③。其中,正向迭代如圖4所示,Cat映射以茗xo,yo作為初始參數(shù)先迭代1次得到xn,yn,xn與yn乘積作為Logistic映射的參數(shù)迭代1次得到x'n作為最終迭代結(jié)果,反向迭代如圖5所示,Logistic映射以x'0作為初始參數(shù)先迭代1次得到x'n,x'n與yo作為Cat映射的參數(shù)迭代1次得到xn,yn,xn與yn乘積作為最終迭代結(jié)果。

結(jié)合Cat和Logistic映射的混沌加密算法

三、結(jié)合Cat和Logistic映射的混沌加密算法分析

1、 安全性分析

一個好的加密算法應(yīng)該能夠抵御已知的解密攻擊,如選擇(已知)明文攻擊、惟密文攻擊、統(tǒng)計(jì)分析攻擊等.以下是對該算法所作的一些安全性分析:

*密鑰空間分析

加密算法選定3個內(nèi)部控制參數(shù)和3個初始狀態(tài)作為密鑰,密鑰空間是很大的,即使在已知加密算法使用Cat映射和Logistic映射的情況下,攻擊繞過窮舉密鑰攻擊轉(zhuǎn)而通過窮舉間接獲得3個內(nèi)部控制參數(shù)也是不可能實(shí)現(xiàn)的,因?yàn)閍,b參數(shù)的選擇并沒有范圍限制,而β是一個在[1,4]內(nèi)的實(shí)數(shù)。

*密鑰敏感性分析

對Cat映射和Logistic映射的迭代初始值x0,yo,x'0分別增加10的-13次方,并觀察其密鑰序列,通過統(tǒng)計(jì)分析發(fā)現(xiàn)所得到的隨機(jī)序列與原始隨機(jī)序列平均有99.9999%不相同。

*統(tǒng)計(jì)學(xué)分析

根據(jù)香農(nóng)理論,任何的加密密碼都可以通過基于統(tǒng)計(jì)分析的方法來解密。加密算法的統(tǒng)計(jì)學(xué)特性可以通過對比加密前后的柱形圖進(jìn)行分析,通過分析可得:加密文本的統(tǒng)計(jì)學(xué)特性發(fā)生了很大的改變,如圖6,圖7所示。

結(jié)合Cat和Logistic映射的混沌加密算法
結(jié)合Cat和Logistic映射的混沌加密算法

由于字符在計(jì)算機(jī)中是以補(bǔ)碼來表示,所以當(dāng)計(jì)算的值大于01111111(127)時,就變?yōu)椴豢娠@示的字符。因此在進(jìn)行統(tǒng)計(jì)學(xué)分析時,對應(yīng)的負(fù)值要加256轉(zhuǎn)換為實(shí)際值進(jìn)行分析。

2、性能分析

本文通過對比基于Lorenz系統(tǒng)的三維連續(xù)混沌加密算法進(jìn)行了以下性能分析:

*時間代價(jià)

基于Lorenz系統(tǒng)連續(xù)混沌加密算法由于其連續(xù)數(shù)值的量化過程是一種不可逆變換,因此具有較好的安全性.但是,其需要經(jīng)過數(shù)值積分,量化處理,因此運(yùn)算速度較慢,不適合應(yīng)用于實(shí)時性較高的場合。本算法由于采用了Cat映射和Logistic映射,其動力學(xué)方程簡單,計(jì)算機(jī)處理的都是簡單的基本運(yùn)算,其加密速度與單純Logistic映射加密算法相當(dāng),而且加密強(qiáng)度很高。

*空間代價(jià)

空間代價(jià)分為算法實(shí)現(xiàn)的靜止空間和運(yùn)行態(tài)空間.靜止空間指算法變成程序后本身所占用的空間,一般表現(xiàn)為執(zhí)行代碼的長度?;煦缂用芩惴ū纫话銓ΨQ或不對稱加密算法占有更少的靜止空間,而且,由于其主要運(yùn)算過程是通過迭代完成的,因此實(shí)現(xiàn)運(yùn)行態(tài)空間運(yùn)行時占用的空間很少。在空間代價(jià)上,本算法也是比較優(yōu)秀的。

小知識之映射:

映射,或者射影,在數(shù)學(xué)及相關(guān)的領(lǐng)域還用于定義函數(shù)。函數(shù)是從非空數(shù)集到非空數(shù)集的映射,而且只能是一對一映射或多對一映射。