基于多混沌映射的信息加密算法
混沌在信息加密中的應用是目前的研究熱點之一,為了增強混沌加密的安全性,我們提出一種基于多個混沌離散映射的動態(tài)加密算法。
利用多個混沌映射的信息加密算法
一、三個混沌映射
(1)Logistic映射
Logistic映射是一個自治一維映射:
![]()
當μ=2時,系統(tǒng)為滿映射的混沌態(tài)。文中使用μ=2的Logistic映射。
(2)Cubic映射
![]()
當3.2≤r≤4時,輸出為混沌序列(-1≤xn≤1)。文中Cubic映射的r值與輸入的密鑰有關。
(3)ArnoldCat映射
ArnoldCat映射是一個保面積混沌映射:

該映射雖然沒有吸引子,但它利用矩陣相乘增大x和y來實現(xiàn)“ 拉伸”,又通過取模使x和y發(fā)生 “折疊”,而拉伸和折疊是產生混沌運動的兩個典型因素,使其輸出為混沌序列(0≤xn≤1,0≤yn≤1)。其Lyapunov指數(shù)為:

文中提出的加密算法使用Logistic和Cubic映射構成兩個級聯(lián)混沌子系統(tǒng)a和b,并根據密文反饋及ArnoldCat映射的輸出改變兩個子系統(tǒng)a和b的迭代次數(shù),兩個子系統(tǒng)的輸出和明文經加密函數(shù)處理后得到密文。
二、基于多混沌映射的信息加密算法描述
文中提出的混沌加密系統(tǒng)框圖如圖所示。它由混沌級聯(lián)子系統(tǒng)a和b、ArnoldCat映射和加密函數(shù)f(_)構成。子系統(tǒng)a和b都是由兩級離散混沌映射聯(lián)接構成:子系統(tǒng)a的第一級和第二級依次是Logistic映射和Cubic映射;子系統(tǒng)b的第一級和第二級則依次是Cubic映射和Logistic映射。

在對第i個明文mi加密時,子系統(tǒng)a和b各迭代ηi次和_i次后,分別輸出ui和wi。ui、wi及明文mi經加密函數(shù)f(_)處理后,產生密文ei。同時利用ei的值改變ArnoldCat映射下次迭代運算的初值,進行若干次迭代后,根據所得結果相應地改變子系統(tǒng)a和b下一輪的迭代次數(shù),為第i+1個明文mi+1的加密做準備。
加密系統(tǒng)中各混沌映射的初值和初始迭代次數(shù)均與密鑰有關。密鑰K分為K1、K2和K3三部分,其中實數(shù)K1,K2∈[3.2,4],K3是由n(n_16)個字符構成的字符串(K3=k1k2%kn)。
將子系統(tǒng)a和b中Cubic映射的參數(shù)r分別設置為K1、K2。其余混沌映射的初值和和初始迭代次數(shù)根據K3確定。加密函數(shù):
![]()
加密算法步驟如下:
(1)根據密鑰k1k2%kn(二進制數(shù))生成初始值:
![]()
子系統(tǒng)a的初值:
![]()
子系統(tǒng)a的迭代次數(shù):
![]()
子系統(tǒng)b的初值:
![]()
子系統(tǒng)b的迭代次數(shù):
![]()
Arnold Cat映射的初值:
![]()
(2)子系統(tǒng)a和b分別經ηi(i=1,2,3,%)次和_i次迭代后,輸出ui和wi;
(3)ui、wi以及第i個明文mi經加密函數(shù)后,生成第i個密文ei;
(4)計算△=ei/256,并將
![]()
作為Cubic映射的迭代初值,經3次迭代運算后,得到xC,i+1和yC,i+1;
(5)根據xC,i+1和yC,i+1計算子系統(tǒng)a和b下一輪的迭代次數(shù)ηi+1和_i+1。
![]()
然后重復以上步驟(2)~(5),直至所有明文均加密完畢。
解密是加密的逆過程,解密函數(shù)為:
![]()
該解密算法的步驟與加密算法相似。
三、基于多混沌映射的信息加密算法說明
從根本上來說,混沌加密主要是利用混沌系統(tǒng)生成不可預測的類隨機信號,來阻止非法攻擊者得到系統(tǒng)的確定特性,以保證系統(tǒng)的安全性?;蛘哒f,混沌加密實際上是利用信號的不可預測性隱藏混沌系統(tǒng)的確定性。為此,上圖所示的加密系統(tǒng)中使用了混沌映射的級聯(lián)和混沌映射迭代次數(shù)的動態(tài)變化,將混沌映射的輸出和明文文件加密函數(shù)進行非線性處理,以提高密文的不可預測性。
設計過程中,在保證算法安全性的前提下,為降低算法復雜度,選用了三個運算較簡單的混沌映射。其中,構成級聯(lián)混沌子系統(tǒng)的Logistic映射和Cubic映射,其值域相同,便于直接級聯(lián)。而且參數(shù)μ=2的Logistic映射處于滿映射混沌態(tài),避免了Logistic映射在某些μ值下存在無限窗口的缺點。級聯(lián)混沌子系統(tǒng)的迭代次數(shù)根據ArnoldCat映射的輸出動態(tài)改變,ArnoldCat映射是保面積映射,沒有吸引子,有助于提高算法的安全性,且易于實現(xiàn)。
另外,圖中的密文反饋是必不可少的。若沒有密文反饋,則在明文中有重復字符時,其密文會呈現(xiàn)明顯的規(guī)律性,使系統(tǒng)易被非法攻擊者破譯。加了密文反饋之后,即使明文中有連串的重復字符,對應的密文仍然是類隨機的。實際上,密文反饋使明文中的任意字符均影響到其后字符對應的密文,加強了算法的安全性。
由于算法處理的是一個字節(jié)的明文字符(0~255),因此在算法中使用了取模256的運算。子系統(tǒng)a和b的迭代次數(shù)μ_的下限值取為3,以減小混沌系統(tǒng)前后狀態(tài)之間的關聯(lián)性。同時,設置了迭代次數(shù)的上限值,增大上限值,有利于提高算法的安全性,但會降低算法的運行速度。實際應用中,可根據需要對迭代次數(shù)的上限值進行折衷選擇。
文中的加密算法對各混沌映射的最大迭代次數(shù)作了限制,加密一個明文字符(1個字節(jié))所需的迭代總次數(shù)不超過70,而著名的Baptista型混沌加密算法及其若干改進形式,加密一個明文字符所需迭代次數(shù)大都超過100。同時,文中算法采用簡單的混沌映射,無需解微分方程,計算方便,易于實現(xiàn)。
小知識之Lyapunov指數(shù)
Lyapunov指數(shù)是衡量系統(tǒng)動力學特性的一個重要定量指標,它表征了系統(tǒng)在相空間中相鄰軌道間收斂或發(fā)散的平均指數(shù)率。對于系統(tǒng)是否存在動力學混沌, 可以從最大Lyapunov指數(shù)是否大于零非常直觀的判斷出來: 一個正的Lyapunov指數(shù),意味著在系統(tǒng)相空間中,無論初始兩條軌線的間距多么小,其差別都會隨著時間的演化而成指數(shù)率的增加以致達到無法預測,這就是混沌現(xiàn)象。









