混沌加密系統(tǒng)之基于離散斜帳篷映射加密

依據(jù)帳篷映射的混沌特性并結(jié)合動(dòng)態(tài)參數(shù)和明文塊細(xì)分子塊方法,我們提出了一種改進(jìn)了的基于離散斜帳篷映射的混沌加密方法。該方法不僅繼承了原有系統(tǒng)的優(yōu)良密碼學(xué)特性,而且通過理
論分析和實(shí)驗(yàn)證明它擁有更好的抗選擇明文攻擊特性以及較穩(wěn)定的加解密速度。

一、基于有限狀態(tài)的帳篷映射的加密系統(tǒng)

Masuda和Aihara提出了一種基于一維離散斜帳篷映射的加密系統(tǒng)。其斜帳篷映射的離散化方法比較新穎,易于推廣到一般的混沌映射上。該加密算法將本是二對(duì)一的斜帳篷映射通過離散化變?yōu)橐灰粚?duì)應(yīng)的離散映射;同時(shí)保留了原帳篷映射的混沌特性,如對(duì)初值的敏感性和迭代軌道序列的相關(guān)性以指數(shù)遞減。其軌道序列可以視為貝努利序列,即具有強(qiáng)的偽隨機(jī)特性,可以直接用于對(duì)信息文件加密,同時(shí)因?yàn)槟孀儞Q的存在,其解密算法將變得非常簡單。

1、離散化混沌映射為一一對(duì)應(yīng)的離散變換的方法

斜帳篷映射是一種推廣的帳篷映射,其定義如下:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

該函數(shù)是二對(duì)一的映射,沒有一一對(duì)應(yīng)的逆函數(shù),但可以看作具有兩個(gè)分支的逆函數(shù),即fa-1=ax或fa-1=1+(a-1)x0若想直接利用fa(x)的迭代來加密明文,然后用其逆函數(shù)直接解密,則其逆函數(shù)的不唯一將使解密面臨一致性問題,解密不能恢復(fù)出原文o為了做到解密的一致性,文件提出了如下的離散化方法,以誘導(dǎo)出一個(gè)有限狀態(tài)的一一對(duì)應(yīng)的擴(kuò)敢變換。

令M>2,定義如下兩個(gè)集合,P=C={x;x=1/m,2/m...m/m};由(1)式誘導(dǎo)的變換關(guān)系定義如下:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

這里|.|表示集合的勢(shì)。這樣(2)式就是一個(gè)有限狀態(tài)的離散映射。fa(x)對(duì)應(yīng)到{x;x=1/m,2/m...m/m}中的第fa(x)M個(gè)最小元素,fa(x1)=fa(x2)且x1<x2,則令:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

容易看出,fa(x)是一一對(duì)應(yīng)的函數(shù)。并保持了將0<x≤a和a<1≤1都拉伸到0<x≤1上。其逆變換fa-1如下,若fa(x’)是{x;x=1/m,2/m...m/m}中M.y的一個(gè)最小元,則令fa-1 (y)=x’∈ P即可。

2、基于離散化斜帳篷映射的加密算法

將(2)式改寫為下面的形式:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

而fa-1(x)可寫為如下的形式:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

為了將(4)式和(5)式用于加密和解密算法,需要將它們進(jìn)一步修改為整數(shù)集合上的變換和逆變換。變換的定義域和值域做如下修改:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

其中P’,C’,A’可分別視為明文空間、密文空間和密鑰空間。加密算法就是直接的對(duì)明文做尼次函數(shù)迭代得到密文,每一輪都采用如下的加密變換:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

解密過程是加密的逆過程,對(duì)密文做如下的逆變換n次即可恢復(fù)明文。

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

二、改進(jìn)的離散斜帳篷映射加密算法

離散斜帳篷映射的迭代軌道有很好的偽隨機(jī)特性。不論是從歐氏空間來看,還是從GF(2n)來看,隨著迭代次數(shù)的增加,在密文中的明文信息以指數(shù)速率迅速衰減a這個(gè)特性若能很好地利用可以設(shè)計(jì)出高安全的加密系統(tǒng)a這里,我們將提出一種具有動(dòng)態(tài)參數(shù)的離散斜帳篷映射的加密系統(tǒng)。

加密系統(tǒng)中,密鑰是參數(shù)A。且在加密過程中,A是沒有變化的,這也保證了解密的一致性。而在傳統(tǒng)的加密方案中,如高級(jí)加密標(biāo)準(zhǔn)(Advanced EncryptionStandard.AES) Lzl,其密鑰在進(jìn)行時(shí)有一個(gè)密鑰擴(kuò)散過程,也稱為密鑰編排。即加密和解密算法使用從種子密鑰的字節(jié)數(shù)組生成的密鑰次序表,實(shí)質(zhì)上,從初始密鑰生成多個(gè)密鑰(而非使用單個(gè)密鑰)會(huì)大大增加位的擴(kuò)散,在對(duì)一個(gè)明文塊加密時(shí),每一輪的加密密鑰都是由種子密鑰通過擴(kuò)散過程產(chǎn)生的輪密鑰。測試和分析表明對(duì)明文塊加密采用輪密鑰可以加強(qiáng)系統(tǒng)的安全性。

1、基于動(dòng)態(tài)參數(shù)的離散斜帳篷映射加密算法

動(dòng)態(tài)改變加密參數(shù)A是指,在對(duì)明文迭代加密時(shí),每次迭代的離散斜帳篷映射的系統(tǒng)參數(shù)是不同的。因此,需要有一個(gè)在每一輪由種子密鑰產(chǎn)生每輪迭代所用的參數(shù)的算法。在下面的算法描述中,把這些參數(shù)稱為輪密鑰或子密鑰。設(shè)種子密鑰為K,每一輪迭代所需的子密鑰記為Ai,i=1,2,…,N。則產(chǎn)生Ai的算法如下:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

這里,第i輪的子密鑰Ai是通過(6)式迭代得到的,其所需的迭代次數(shù)ni和系統(tǒng)參數(shù)q由種子密鑰K產(chǎn)生。具體產(chǎn)生ni和ai的算法如下:

設(shè)明文空間、密文空間和密鑰空間的大小按比特長度計(jì)為L= [log2 M]。將種子密鑰串劃分為基本相等的g份,前q-1個(gè)長為floor( L/q),最后一個(gè)長為L-(q-1)×floor( L/q)。這里Zoor(.)表示地板函數(shù)。即將種子密鑰分為q個(gè)子串,分別記為K1,K2,…,Kq。下面我們利用Kj,j=1,2.…,q來產(chǎn)生輪密鑰,用如下算法產(chǎn)生ni和ai:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

下面用一個(gè)實(shí)際的例子來說明上述的密鑰編排方案,這里用較短的密鑰來演示我們提出的加密方案的有效性。取密鑰空間大小為肘= 216,則L= 16,令密鑰K=55 147=11010011101101011,取q=2,將密鑰分為2個(gè)子串Ki=11010111=215和Kz=01101011=1070加密迭代的次數(shù)N=[2. 39×16]+ 15=54。

依據(jù)(8)式和(9)式,利用Ki和K2來產(chǎn)生的54輪密鑰如下:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

采用文中提出的加密算法對(duì)256×256的灰度圖像moonsurface加密和解密的效果見圖1,加密所用的時(shí)間為0.40s,解密所用的時(shí)間為0. 53s,即加密速度和解密速度分別為1. 280Mb/s和0.96Mhis(Matlab實(shí)現(xiàn),并在擁有2.1GHz的CPU和512M內(nèi)存的個(gè)人電腦上運(yùn)行測試)。

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

2、基于動(dòng)態(tài)參數(shù)和明文塊細(xì)分子塊的加密算法

當(dāng)需要很高的安全程度時(shí),在加密系統(tǒng)中,對(duì)應(yīng)的加密明文和密文空間也會(huì)變得很大,這時(shí)其上的變換運(yùn)算的速度將變得很慢,也就是隨著密鑰長度的增加,加密和解密所需的時(shí)間也會(huì)變得較長。在許多實(shí)時(shí)應(yīng)用中,這是不希望出現(xiàn)的。而在我們改進(jìn)的加密算法中,由于應(yīng)用了輪加密參數(shù)動(dòng)態(tài)產(chǎn)生的策略,若對(duì)加密和解密算法做一些改進(jìn),就可以做到在加密變換的空間大小不變的情形下,擴(kuò)大明文、密文和密鑰的空間a即在要求的加密密鑰長度很長時(shí),通過密鑰編排,將密鑰信息逐漸轉(zhuǎn)移到較短的輪密鑰中,即每次迭代變換的參數(shù)Ai中,以實(shí)現(xiàn)在擴(kuò)展密鑰長度時(shí),加密和解密運(yùn)算的速度基本不發(fā)生改變或者增加的計(jì)算量很小。

進(jìn)一步改進(jìn)的加密算法可視為基于密鑰編排和明文塊細(xì)分子塊加密的方案。塊細(xì)分子塊加密的方案的加密和解密算法描述如下:

加密算法

設(shè)明文塊P的長度為L,在做加密變換前將明文塊分為2s個(gè)等長的小塊P1,P2,…,P2s,子密鑰長度為L,記為A1,A2,…,As,它們由(8)式和(9)式根據(jù)種子密鑰尺來產(chǎn)生。加密變換的空間大小為2L/s,即每次變換在兩個(gè)小塊上進(jìn)行。首先將塊P1和P2連成一個(gè)長為2L/s的塊,基于變換公式(6),利用子密鑰Ai對(duì)P1P2做變換得到C11C21,將C21C23連接為一個(gè)塊,利用子密鑰A2s對(duì)C21C11做變換,得到C22C21;然后再將C31P4連接為一個(gè)塊,用子密鑰A3對(duì)C31P4做變換,得到C2-212;對(duì)所有P1,P2,…,P2s進(jìn)行上述的子塊加密,得到C2-12C21后,連接C21C11,利用子密鑰A2,對(duì)c11c21做變換,得到C21C11至此,我們可以將中間密文塊研,C11,C22....C2s2視為經(jīng)過兩輪變換后的密文塊,且每次變換所用的子密鑰是不同的。利用子密鑰組A2ixs+1,A2ixs+2,…,A2ixs+s,i=1,2,…,N-1,可以對(duì)明文子塊再做2(N -1)輪變換,得到最終的密文塊C12n,C22n,…,C12s。

解密算法

解密算法是加密算法的逆過程。

采用上面的加密方案就能在較小的變換空間里獲得很強(qiáng)的加密安全性,密鑰K的長度可以遠(yuǎn)遠(yuǎn)超出每輪加密的變換空間的尺度肼。下面用一系列的試驗(yàn)來驗(yàn)證該方案的有效性和進(jìn)行加密速度的測試。表2給出了3幅大小不同圖像Moon surface,Lenatestpattem和Man加密和解密的時(shí)間與密鑰長度的關(guān)系。 (Matlab實(shí)現(xiàn),并在擁有2.1GHz的CPU和512M內(nèi)存的個(gè)人電腦上運(yùn)行測試)。

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

三、加密算法的安全分析

1、抗選擇明文攻擊

考慮加密系統(tǒng)(6),對(duì)任何密鑰A∈K’,明文M總是被映射到1。這個(gè)特性是該加密系統(tǒng)的一個(gè)根本弱點(diǎn)?;诖巳觞c(diǎn)提出如下的攻擊方案。

當(dāng)密文CM=FA(N)和密文C1=FA(N)已知時(shí),下面的等式總是成立的:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

但我們不知道CM<A還是CM>A,但密鑰的可能空間能夠表示如下:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

由(10)式和(11)式得到的密鑰空間可能超出密鑰的范圍K',因此在下面的分析中只考慮如下可能的密鑰空間:

混沌加密系統(tǒng)之基于離散斜帳篷映射加密

基于一對(duì)選擇明文的攻擊方案可描述如下:若明文對(duì)1和M的密文已知,密鑰的可能空間可由(12)式得到,若該集_合的勢(shì)很小,則我們可以通過強(qiáng)力搜索得到真實(shí)的密鑰。

而在我們的改進(jìn)方案中,由于都引進(jìn)了密鑰編排,在改進(jìn)的加密方案中( 10)式不再成立,那么相應(yīng)的(12)式也無法找出,則此類明文攻擊將不再有效。

2、混亂和擴(kuò)散特性分析

混亂原則

人們所設(shè)計(jì)的密碼應(yīng)使得密鑰和明文以及密文之間的依贛關(guān)系相當(dāng)復(fù)雜,以至于這種依賴性對(duì)密碼分析者來說是無法利用的。

擴(kuò)散原則

人們所設(shè)計(jì)的密碼應(yīng)使得密鑰的每一位數(shù)字影響密文的許多位數(shù)字以肪止對(duì)密鑰進(jìn)行逐段破譯,而且明文的每一位數(shù)字也應(yīng)影響密文的許多位數(shù)字以便隱蔽明文數(shù)字的統(tǒng)計(jì)特性。

在我們提出的方法中用一個(gè)類似于數(shù)據(jù)文件加密標(biāo)準(zhǔn)(DataEncryption Standard.DES)加密算法中S盒的方法(混沌變換及其逆變換)來達(dá)到混亂的要求,同時(shí)又繼承了加密算法中相同的明文和密鑰敏感性。

小知識(shí)之S盒

S盒用在分組加密算法中,是非線性結(jié)構(gòu),其密碼強(qiáng)度直接決定了加密算法的好壞。