基于混沌迭代映射的加密算法

用混沌迭代映射進(jìn)行加密的算法,就是將一個(gè)一維迭代序列的混沌吸引子區(qū)間分成若干個(gè)等長的小區(qū)域,每一個(gè)區(qū)域?qū)?yīng)于一個(gè)不同的字符。對明文字符進(jìn)行加密的時(shí)候,首先進(jìn)行迭代,直到迭代后所得的值處于該字符所對應(yīng)的區(qū)域時(shí),記錄下迭代次數(shù)作為密文。由于其實(shí)現(xiàn)簡單而且密文為整數(shù),非常適于計(jì)算機(jī)通訊和網(wǎng)絡(luò)傳輸,從而受到了眾多研究者的關(guān)注。

一、基于混沌迭代映射的加密算法介紹

由于文件都是以二進(jìn)制的比特流的方式存儲,不失一般性,假定文件都是以ASCII編碼的方式保存,考慮簡單帳篷映射(Tent map)所描述的動力系統(tǒng)為:

基于混沌迭代映射的加密算法

控制參數(shù)r確定后,帳篷映射混沌吸引子的上界為r/2,下界為r(1-r/2)。在混沌吸引子區(qū)域[r(1-r/2),r/2]中選定一個(gè)區(qū)域[Xmin,Xmax](該區(qū)域也可包含整個(gè)吸引子),將其等分為N等分,得到N個(gè)等長的子區(qū)域S(i)=(Xmin+iε,Xmin+(i+1)ε)(0≤i≤N-1),子區(qū)域的長度為ε=(Xmax-Xmin)/N。引入一條與各子區(qū)域?qū)?yīng)的序列P(i)(1≤i≤N-1),序列P(i)是由元素0和1組成的隨機(jī)序列且0元素和1元素的個(gè)數(shù)相等,子區(qū)域S(i)和序列P(i)之間的元素一一對應(yīng)。

以方程(1)的參數(shù)r以及子區(qū)域S(i)和序列P(i)之間的映射關(guān)系作為密鑰。方程(1)的初始值X0為一隨機(jī)數(shù),用于代表當(dāng)前的加密進(jìn)程,X0對密碼分析者是完全公開的。以要加密的明文為“HUST……”為例,其ASCII碼為“01001000010101010101001101010100…”。在每一次加密進(jìn)程中,我們采取如下加密方式:

(1)首先產(chǎn)生一隨機(jī)數(shù)X0∈(0,1),用以代表當(dāng)前的加密進(jìn)程。

(2)在方程(1)中根據(jù)初始值X0和密鑰r,開始迭代。

(3)去掉最初的N0次過渡態(tài)。對于明文的第一個(gè)比特“0”,方程(1)繼續(xù)迭代,當(dāng)?shù)Y(jié)果進(jìn)入到子區(qū)域S(i),且該子區(qū)域所對應(yīng)的序列P(i)=0,記錄下當(dāng)前的迭代次數(shù)C1作為密文,總的迭代次數(shù)為N0+C1。對于明文的第一個(gè)比特“1”,方程(1)繼續(xù)迭代,當(dāng)?shù)Y(jié)果進(jìn)入到其中某一子區(qū)域S(i),該子區(qū)域所對應(yīng)的序列P(i)=1,記錄下當(dāng)前的迭代次數(shù)C2作為密文,總的迭代次數(shù)為N0+C1+C2。同上,對所有的明文消息進(jìn)行加密,得到密文序列C1,C2,…,CN。

解密過程與加密過程類似,接收方通過隨機(jī)數(shù)X0以及密鑰r,利用方程(1)進(jìn)行迭代,即可得到相應(yīng)的明文。

二、仿真結(jié)果與分析

假定要加密的明文為“HUST”,仿真結(jié)果如圖1所示。

基于混沌迭代映射的加密算法橫坐標(biāo)表示要加密的明文,縱坐標(biāo)表示加密的密文。混沌吸引子區(qū)域[r(1-r/2),r/2]中選定的區(qū)域[Xmin,Xmax]為[0.2,0.8]。圖1為我們對密鑰r作微小改變后的加密結(jié)果(10-14),隨機(jī)數(shù)X0=0.20070918091856,密鑰r的取值見圖1右上角。

由仿真結(jié)果可見,密文對密鑰非常敏感(10-14),這對算法的安全性是至關(guān)重要的一個(gè)方面。同時(shí),由于在我們的算法中采取動態(tài)加密的技術(shù),即使是同一明文在不同的加密進(jìn)程中,得到的是完全不同的密文,密文對代表加密進(jìn)程的隨機(jī)數(shù)x0的變化同樣非常敏感,從而有效地防止了采用的通過已知明文攻擊方式。在加密效率方面,由于我們采取了直接對明文的ASCII碼進(jìn)行加密,從而使加密速度大為提高。

事實(shí)上,由混沌序列的遍歷性可知,對每一個(gè)明文字符,在我們所采取的算法中混沌序列的迭代次數(shù)是(2/256)×8。

文中以一維Tent映射為例進(jìn)行了仿真,該算法同樣適用于高維的混沌系統(tǒng),利用高維混沌吸引子所具有的豐富的密鑰空間將更進(jìn)一步增強(qiáng)加密算法的安全性,具有很強(qiáng)的一般性。

小知識之ASCII

ASCII是基于拉丁字母的一套電腦編碼系統(tǒng)。它主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC 646。