基于混沌映射的分組加密方法

近年來,產(chǎn)生了不少的混沌密碼學(xué)的研究成果。但絕大多數(shù)提出的混沌密碼學(xué)方案采用的方法過于復(fù)雜,不便于實現(xiàn),因而現(xiàn)實生活中很少見到利用混沌加密的產(chǎn)品。而我們今天就采用了一種將傳統(tǒng)密碼學(xué)和混沌密碼學(xué)相結(jié)合的方式,既利用了混沌動力系統(tǒng)特有的性質(zhì),又吸取了傳統(tǒng)密碼學(xué)在有限域中便于實現(xiàn)的優(yōu)點,提出了一種新的基于混沌映射的分組加密方法。

一、偽隨機(jī)二進(jìn)制序列的產(chǎn)生

在現(xiàn)代通信系統(tǒng)和加密系統(tǒng)中偽隨機(jī)二進(jìn)制序列被廣泛應(yīng)用。通常人們都是采用線性反饋移位寄存器來獲得偽隨機(jī)二進(jìn)制序列。但當(dāng)序列長度不太長時,其安全性通常受到懷疑。近年來,人們注意到一些具有遍歷性的非線性映射可以用來產(chǎn)生性質(zhì)很好的偽隨機(jī)二進(jìn)制序列。我們常見的有三種方法可以從混沌遍歷映射中獲得獨立同分布的二進(jìn)制序列。

1、 Chcbyshcv混沌映射

第一類Chcbyshcv多項式定義為:

基于混沌映射的分組加密方法

該積分是包含原點,逆時針的閉曲線積分,它有個等價式如下:

基于混沌映射的分組加密方法

因此第一類Chcbyshcv多項式可以表示為:

基于混沌映射的分組加密方法

其中x∈[-1,1],n=1,2,…。

為了定量地刻畫動力系統(tǒng)相鄰兩點相互分離或靠攏的快慢,人們引入了Lyapunov指數(shù)。

不失一般性,一維迭代混沌映射可以表示為:

基于混沌映射的分組加密方法

Lyapunov指數(shù)定義為:

基于混沌映射的分組加密方法

它表示在多次迭代中平均每次迭代所引起的相鄰離散點之間以指數(shù)形式分離或靠攏的定量值。當(dāng)入<0時,表示這個動力系統(tǒng)將收斂到一個不動點或一個穩(wěn)定軌道。具有負(fù)的Lyapunov指數(shù)的系統(tǒng)是一個耗散系統(tǒng)或非保守系統(tǒng),它們是漸進(jìn)穩(wěn)定的系統(tǒng)。另一方面,當(dāng)入>O,這軌道是不穩(wěn)定的和混沌的,初始值無論多么接近,經(jīng)過多次迭代后,兩條軌道會變得毫不相干。對于Chcbyshcv映射,有一種等價的計算Lyapunov指數(shù)的方法,即入_=1np。因而當(dāng)p>1時,是典型的混沌系統(tǒng)。在我們提出的加密方法中選擇p>1的映射作為偽隨機(jī)序列的迭代產(chǎn)生式。

考慮整個動力系統(tǒng)產(chǎn)生序列{Fn(x)}的統(tǒng)計特性對研究動力系統(tǒng)的性質(zhì)和行為有非常大的價值。經(jīng)研究表明Chcbyshcv混沌序列具有絕對連續(xù)不變測度,均勻分布,對稱分布等等。從它可以構(gòu)造性質(zhì)非常好的偽隨機(jī)二進(jìn)制序列。下面我們將討論其產(chǎn)生過程。

2、Chcbyshcv映射的產(chǎn)生方法

假設(shè)十進(jìn)制的二進(jìn)制表示為:

假設(shè)十進(jìn)制的二進(jìn)制表示為:

第i個比特位bi可以表示為:

基于混沌映射的分組加密方法

其中θ(x)是一個閾函數(shù)定義為:

基于混沌映射的分組加密方法

由此種方法,我們可以獲得一組二進(jìn)制序列基于混沌映射的分組加密方法可以證明l這組序列是獨立同分布的。

二、基于混沌映射的分組加解密模式

我們提出的方法采用128位的明文分組和128位的密文分組。其結(jié)構(gòu)圖如圖1。

基于混沌映射的分組加密方法

為了敘述上的方便把128位明文分組看成由16個字節(jié)組成的二維數(shù)組,即:

基于混沌映射的分組加密方法

其中Pi為一個字節(jié),整個加密過程就是在這一系列分組上做變換。

1、 混亂和擴(kuò)散原則

有專家提出了密碼學(xué)設(shè)計的兩個重要原則混亂原則和擴(kuò)散原則:

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

2)人們所設(shè)計的密碼應(yīng)使得密鑰的每一位數(shù)字影響密文的許多位數(shù)字以防止對密鑰進(jìn)行逐段破譯,而且明文的每一位數(shù)字也應(yīng)影響密文的許多位數(shù)字以便隱蔽明文數(shù)字的統(tǒng)計特性。在我們提出的方法中用一個8×8的S-hox來達(dá)到混亂的要求,并用一個離散混沌映射來進(jìn)行擴(kuò)散,用基于Chcbyshcv的偽隨機(jī)二進(jìn)制序列作為密鑰。

2、輪變換

當(dāng)前的密碼分析研究表明,迭代型分組密碼抗擊密碼分析攻擊的能力隨輪數(shù)的增加而增加。在我們的系統(tǒng)中同樣引入多輪變換,其中每輪分別由一個S-盒和擴(kuò)散層組成。

(1)S-BOX的功能及選取

S-盒是許多密碼算法中的唯一非線性部件,因此,它的密碼強(qiáng)度決定了整個密碼算法的安全強(qiáng)度。S-盒本質(zhì)上可看作映射S(x)=f1(x),…,fm(x),其中S(x)=f1(x),…,fm(x)分別為m個布爾函數(shù)。所以S-盒是一個GF( 2n)→GF(2m)的映射。在我們的方法中n=m=8,即8×8的S盒,這也是目前比較流行的一種模式如,高級加密標(biāo)準(zhǔn)AES中的S-盒。我們提出了一種新的基于混沌映射的S-盒產(chǎn)生方案,給出了一個例子經(jīng)過試驗分析J8喧在非線性度,差分均勻性,完全雪崩效應(yīng),輸出位獨立性等上都達(dá)到很好的要求。在我們加密方法中就選擇它作為S盒。

(2)擴(kuò)散層的實現(xiàn)

密碼分析者通常會從比較一組明文,密文對中發(fā)現(xiàn)一些有用的信息。為了打亂明文和密文的統(tǒng)計特性,引入擴(kuò)散層是很有必要的,它可以增加密碼分析的復(fù)雜度。在我們的方案中擴(kuò)散層主要由LOGISTIC混沌映射組成,其定義為:

基于混沌映射的分組加密方法
是一個遍歷的混沌映射。首先選取一個x(0)作為初值,用上節(jié)的方法獲得一個8比特的二進(jìn)制數(shù),定義為Φ(t),并與經(jīng)過S-盒后的字節(jié)作以下運算:

基于混沌映射的分組加密方法
其中P(i)是經(jīng)過S-盒后分組中的第i個字節(jié),C(i)是密文分組中的第i個字節(jié)。

3、密鑰編排方案

密鑰編排方案包括兩部分,即密鑰的擴(kuò)展和輪密鑰的選取。密鑰的擴(kuò)展是指如何由密碼密鑰得到輪密鑰。在我們的加密系統(tǒng)中,密碼密鑰是由Chchyshcv多項式的p和初始值所確定的。使用上節(jié)的方法,從Chcbyshcv映射產(chǎn)生128比特的密鑰作為一輪的輪密鑰。重復(fù)此過程得到每輪的密鑰。

4、加密過程的算法描述

1)對明文進(jìn)行分組,1 28比特為一個分組,令P:p0,p1,p2,...p15,選取密碼密鑰。另r=O,statc=P。

2)產(chǎn)生輪密鑰,記為SubKcy。

3)作運算state=statc+Subkey[r]然后通過S盒。

4)進(jìn)行擴(kuò)散處理。如果r<R,r=r+1,轉(zhuǎn)3),否則令C=Statcj,e即就是輸出密文。

其偽代碼如下:

Fmcryption (state,Key)

{
GenerateSuhKey Key, SuhKey);

Fm (nt r=0; r<R , r++)

{

Round ~tate, Suhkeyrri);

其中 Round ~tate, Suhkey[r1)

{

State=State XOR SuhKey[rl;

Shox ~tate);

Dissuf'ion $tate);

}

其中Statc稱為狀態(tài)字節(jié)46個字節(jié)),指明文分組在進(jìn)行各種變換中的中間狀態(tài)。

5、解密過程

因我們采用的是對稱密碼系統(tǒng),解密模式與加密模式非常相似。從加密算法很容易構(gòu)造出解密算法。對于擴(kuò)散變換,它的逆函數(shù)為:

基于混沌映射的分組加密方法

本文的思想源于混沌動力系統(tǒng)非常好的混沌特性。在我們提出的方法中把傳統(tǒng)加密和混沌加密相結(jié)合產(chǎn)生了一種新的文件加密方法。經(jīng)過多種測試和分析,它具有很好的性能,能夠有效地抵抗多種密碼學(xué)中常用的攻擊。另外此方法具有非常好的可擴(kuò)展性,比如修改明文和密文的分組長度,增加輪數(shù),以達(dá)到滿足更高安全的要求。

小知識之映射

映射,或者射影,在數(shù)學(xué)及相關(guān)的領(lǐng)域經(jīng)常等同于函數(shù)。基于此,部分映射就相當(dāng)于部分函數(shù),而完全映射相當(dāng)于完全函數(shù)。