基于多混沌映射的信息加密算法

混沌在信息加密中的應(yīng)用是目前的研究熱點(diǎn)之一,為了增強(qiáng)混沌加密的安全性,我們提出一種基于多個(gè)混沌離散映射的動(dòng)態(tài)加密算法。

利用多個(gè)混沌映射的信息加密算法

一、三個(gè)混沌映射

(1)Logistic映射

Logistic映射是一個(gè)自治一維映射:

基于多混沌映射的信息加密算法

當(dāng)μ=2時(shí),系統(tǒng)為滿映射的混沌態(tài)。文中使用μ=2的Logistic映射。

(2)Cubic映射

基于多混沌映射的信息加密算法

當(dāng)3.2≤r≤4時(shí),輸出為混沌序列(-1≤xn≤1)。文中Cubic映射的r值與輸入的密鑰有關(guān)。

(3)ArnoldCat映射

ArnoldCat映射是一個(gè)保面積混沌映射:

基于多混沌映射的信息加密算法

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

基于多混沌映射的信息加密算法

文中提出的加密算法使用Logistic和Cubic映射構(gòu)成兩個(gè)級(jí)聯(lián)混沌子系統(tǒng)a和b,并根據(jù)密文反饋及ArnoldCat映射的輸出改變兩個(gè)子系統(tǒng)a和b的迭代次數(shù),兩個(gè)子系統(tǒng)的輸出和明文經(jīng)加密函數(shù)處理后得到密文。

二、基于多混沌映射的信息加密算法描述

文中提出的混沌加密系統(tǒng)框圖如圖所示。它由混沌級(jí)聯(lián)子系統(tǒng)a和b、ArnoldCat映射和加密函數(shù)f(_)構(gòu)成。子系統(tǒng)a和b都是由兩級(jí)離散混沌映射聯(lián)接構(gòu)成:子系統(tǒng)a的第一級(jí)和第二級(jí)依次是Logistic映射和Cubic映射;子系統(tǒng)b的第一級(jí)和第二級(jí)則依次是Cubic映射和Logistic映射。

基于多混沌映射的信息加密算法

在對(duì)第i個(gè)明文mi加密時(shí),子系統(tǒng)a和b各迭代ηi次和_i次后,分別輸出ui和wi。ui、wi及明文mi經(jīng)加密函數(shù)f(_)處理后,產(chǎn)生密文ei。同時(shí)利用ei的值改變ArnoldCat映射下次迭代運(yùn)算的初值,進(jìn)行若干次迭代后,根據(jù)所得結(jié)果相應(yīng)地改變子系統(tǒng)a和b下一輪的迭代次數(shù),為第i+1個(gè)明文mi+1的加密做準(zhǔn)備。

加密系統(tǒng)中各混沌映射的初值和初始迭代次數(shù)均與密鑰有關(guān)。密鑰K分為K1、K2和K3三部分,其中實(shí)數(shù)K1,K2∈[3.2,4],K3是由n(n_16)個(gè)字符構(gòu)成的字符串(K3=k1k2%kn)。

將子系統(tǒng)a和b中Cubic映射的參數(shù)r分別設(shè)置為K1、K2。其余混沌映射的初值和和初始迭代次數(shù)根據(jù)K3確定。加密函數(shù):

基于多混沌映射的信息加密算法

加密算法步驟如下:

(1)根據(jù)密鑰k1k2%kn(二進(jìn)制數(shù))生成初始值:

基于多混沌映射的信息加密算法

子系統(tǒng)a的初值:

基于多混沌映射的信息加密算法

子系統(tǒng)a的迭代次數(shù):

基于多混沌映射的信息加密算法
子系統(tǒng)b的初值:
基于多混沌映射的信息加密算法

子系統(tǒng)b的迭代次數(shù):

基于多混沌映射的信息加密算法

Arnold Cat映射的初值:

基于多混沌映射的信息加密算法

(2)子系統(tǒng)a和b分別經(jīng)ηi(i=1,2,3,%)次和_i次迭代后,輸出ui和wi;

(3)ui、wi以及第i個(gè)明文mi經(jīng)加密函數(shù)后,生成第i個(gè)密文ei;

(4)計(jì)算△=ei/256,并將

基于多混沌映射的信息加密算法

作為Cubic映射的迭代初值,經(jīng)3次迭代運(yùn)算后,得到xC,i+1和yC,i+1;

(5)根據(jù)xC,i+1和yC,i+1計(jì)算子系統(tǒng)a和b下一輪的迭代次數(shù)ηi+1和_i+1。

基于多混沌映射的信息加密算法

然后重復(fù)以上步驟(2)~(5),直至所有明文均加密完畢。
解密是加密的逆過程,解密函數(shù)為:

基于多混沌映射的信息加密算法

該解密算法的步驟與加密算法相似。

三、基于多混沌映射的信息加密算法說明

從根本上來說,混沌加密主要是利用混沌系統(tǒng)生成不可預(yù)測(cè)的類隨機(jī)信號(hào),來阻止非法攻擊者得到系統(tǒng)的確定特性,以保證系統(tǒng)的安全性?;蛘哒f,混沌加密實(shí)際上是利用信號(hào)的不可預(yù)測(cè)性隱藏混沌系統(tǒng)的確定性。為此,上圖所示的加密系統(tǒng)中使用了混沌映射的級(jí)聯(lián)和混沌映射迭代次數(shù)的動(dòng)態(tài)變化,將混沌映射的輸出和明文文件加密函數(shù)進(jìn)行非線性處理,以提高密文的不可預(yù)測(cè)性。

設(shè)計(jì)過程中,在保證算法安全性的前提下,為降低算法復(fù)雜度,選用了三個(gè)運(yùn)算較簡(jiǎn)單的混沌映射。其中,構(gòu)成級(jí)聯(lián)混沌子系統(tǒng)的Logistic映射和Cubic映射,其值域相同,便于直接級(jí)聯(lián)。而且參數(shù)μ=2的Logistic映射處于滿映射混沌態(tài),避免了Logistic映射在某些μ值下存在無限窗口的缺點(diǎn)。級(jí)聯(lián)混沌子系統(tǒng)的迭代次數(shù)根據(jù)ArnoldCat映射的輸出動(dòng)態(tài)改變,ArnoldCat映射是保面積映射,沒有吸引子,有助于提高算法的安全性,且易于實(shí)現(xiàn)。

另外,圖中的密文反饋是必不可少的。若沒有密文反饋,則在明文中有重復(fù)字符時(shí),其密文會(huì)呈現(xiàn)明顯的規(guī)律性,使系統(tǒng)易被非法攻擊者破譯。加了密文反饋之后,即使明文中有連串的重復(fù)字符,對(duì)應(yīng)的密文仍然是類隨機(jī)的。實(shí)際上,密文反饋使明文中的任意字符均影響到其后字符對(duì)應(yīng)的密文,加強(qiáng)了算法的安全性。

由于算法處理的是一個(gè)字節(jié)的明文字符(0~255),因此在算法中使用了取模256的運(yùn)算。子系統(tǒng)a和b的迭代次數(shù)μ_的下限值取為3,以減小混沌系統(tǒng)前后狀態(tài)之間的關(guān)聯(lián)性。同時(shí),設(shè)置了迭代次數(shù)的上限值,增大上限值,有利于提高算法的安全性,但會(huì)降低算法的運(yùn)行速度。實(shí)際應(yīng)用中,可根據(jù)需要對(duì)迭代次數(shù)的上限值進(jìn)行折衷選擇。

文中的加密算法對(duì)各混沌映射的最大迭代次數(shù)作了限制,加密一個(gè)明文字符(1個(gè)字節(jié))所需的迭代總次數(shù)不超過70,而著名的Baptista型混沌加密算法及其若干改進(jìn)形式,加密一個(gè)明文字符所需迭代次數(shù)大都超過100。同時(shí),文中算法采用簡(jiǎn)單的混沌映射,無需解微分方程,計(jì)算方便,易于實(shí)現(xiàn)。

小知識(shí)之Lyapunov指數(shù)

Lyapunov指數(shù)是衡量系統(tǒng)動(dòng)力學(xué)特性的一個(gè)重要定量指標(biāo),它表征了系統(tǒng)在相空間中相鄰軌道間收斂或發(fā)散的平均指數(shù)率。對(duì)于系統(tǒng)是否存在動(dòng)力學(xué)混沌, 可以從最大Lyapunov指數(shù)是否大于零非常直觀的判斷出來: 一個(gè)正的Lyapunov指數(shù),意味著在系統(tǒng)相空間中,無論初始兩條軌線的間距多么小,其差別都會(huì)隨著時(shí)間的演化而成指數(shù)率的增加以致達(dá)到無法預(yù)測(cè),這就是混沌現(xiàn)象。