基于時空二維混沌序列的變參數(shù)混沌加密算法

為了克服由計算機精度問題而引起的混沌序列特性的改變,我們提出了基于時空二維混沌序列的變參數(shù)混沌加密算法,該加密算法采用時空二維混沌系統(tǒng)模型產(chǎn)生二維混沌偽隨機序列,與一維序列相比,提高了加密算法的安全性;同時采用參數(shù)隨機可變的思想將二維混沌序列通過Logistic方程加密到明文中,該算法加密速度快、安全性高,被廣泛應(yīng)用于數(shù)據(jù)文件加密中。

一、時空二維混沌序列產(chǎn)生原理

采用單向耦合映象格子模型,同時應(yīng)用一個非線性混沌序列驅(qū)動該時空混沌模型,使其生成二維平面下的混沌實值序列,該模型可描述為:

基于時空二維混沌序列的變參數(shù)混沌加密算法

式中i表示空間上的格點序號,n表示離散時間,ε表示單向耦合映象格子系統(tǒng)格點間的耦合強度,在[0,0]取值,f為格子的局部狀態(tài)演化方程,取一維的Logistic映射,函數(shù)f定義如下:

基于時空二維混沌序列的變參數(shù)混沌加密算法

當控制參數(shù)α=2時,每個格子都處于混沌狀態(tài),我們采用Chebyshev映射作為驅(qū)動序列,Chebyshev映射方程為:

基于時空二維混沌序列的變參數(shù)混沌加密算法

其中ω為控制參數(shù),這里取ω=2,此時由上式中,產(chǎn)生的混沌實值均在[-1,1]范圍內(nèi)。

對于單向耦合映象格子方程中的耦合參數(shù)ε,可通過取不同參數(shù)值產(chǎn)生的時空混沌序列自相關(guān)性進行分析得出,ε越小,序列的自相關(guān)性越好,越接近隨機序列滿足的自相關(guān)趨近于6函數(shù)。若ε過大,則自相關(guān)函數(shù)中c(0)的值較小,一般選取ε<0.2作為OCML模型的耦合參數(shù)。

這種混沌迭代遞推的方法,可以在不增加加密系統(tǒng)復(fù)雜性的前提下,得到長周期的序列密碼并提供良好的安全性。

二、混沌實值的二值化

當在穩(wěn)定的混沌序列中按照一定的時間間隔和格點距離選取相應(yīng)的混沌實值形成最終的二維混沌序列后,采用符號函數(shù)法對實值序列進行二值化。在二值化方法中,最常用的方法是符號函數(shù)法:

基于時空二維混沌序列的變參數(shù)混沌加密算法

式中E表示取格點序列的均值,但用此方法產(chǎn)生的時空混沌二值序列的隨機性能并不理想。在Matlab環(huán)境下任意抽取某一格點的實值序列畫出其密度分布圖,可以看出,該序列數(shù)值的密度分布并不關(guān)于E對稱,用這種方法將產(chǎn)生的實值序列二值化,得到的二值序列中0,1的個數(shù)不平衡,進而影響序列的隨機特性。為此,我們引入一種改進的二值化方法:在進行二值化前,先將某個格點上的實值序列取反,并將其與另一個格點上的序列相加,之后再乘以一個系數(shù),以128×128矩陣為例,x代表原始序列,y代表改進后的序列則有:

基于時空二維混沌序列的變參數(shù)混沌加密算法

依次類推,式中β為線性變換系數(shù),其大小直接影響生成序列的相關(guān)性,經(jīng)過多次分析表明,此處應(yīng)取為2,最后應(yīng)用式上式的方法進行二值化,改進前后某格點序列的密度分布情況分別如圖左和圖右所示,比較圖左和圖右可見,改進前后所得序列的隨機性能得到了顯著改善。

基于時空二維混沌序列的變參數(shù)混沌加密算法

三、時空混沌二值序列的偽隨機性分析

1、偽隨機序列 

偽隨機序列又稱偽隨機碼,它是具有類似于隨機序列基本特性的確定序列。通常廣泛應(yīng)用于二進制序列,由兩個元素(符號)0,1或1,一1組成,序列中不同位置的元素取值相互獨立,取0和1的概率各為1/2,此種序列即為隨機序列,它具有以下3個基本特性:

(1)在序列中“0”和“1”出現(xiàn)的相對概率各為1/2;

(2)序列中連0或連1稱為游程,連0或連1的個數(shù)稱為游程長度;序列中長度為1的游程數(shù)占 游程總數(shù)的1/2,長度為2的游程數(shù)占游程總數(shù)的1/4,長度為3的游程數(shù)占游程總數(shù)的1/8,長度為n的游程數(shù)占游程總數(shù)的1/2n(n有限),此性質(zhì)稱為隨機序列的游程特性;

(3)如果將給定的隨機序列位移任何個元素,則所得序列和原序列對應(yīng)的元素有一半相同,一半不同。

如果確定序列近似滿足以上3個特性,則稱此確定序列為偽隨機序列。

2、混沌二值序列的偽隨機性分析 

由上面的定義可知,經(jīng)OCML模型產(chǎn)生的時空混沌二值序列如果滿足以上3個特性,則此混沌序列具有偽隨機性,應(yīng)用該種序列進行信息加密,密鑰空間大,安全性高。此外,在通信系統(tǒng)中的碼分多址、糾錯編碼、擴頻通信、分離多徑以及數(shù)字加密、誤碼測量等方面也有廣泛應(yīng)用。

(1)平衡性 

為了衡量序列的平衡性,規(guī)定一個通過檢測的標準(100一α)%,其中α%稱為檢驗的顯著性水平,此處應(yīng)用頻數(shù)檢測檢驗序列的平衡性,構(gòu)造如下統(tǒng)計量:

基于時空二維混沌序列的變參數(shù)混沌加密算法

式中n0表示序列中“0”的個數(shù),n1表示序列中“1”的個數(shù),N為序列長度,當顯著性水平取為5%時,對應(yīng)的值為3.841,如果該統(tǒng)計量的值小于3.841,則表明該序列通過檢驗。下表列出了序列長度為128時10組序列頻數(shù)測試的平均值,實驗中各格點序列都通過了檢驗,表明此二值序列具有很好的平衡性。

基于時空二維混沌序列的變參數(shù)混沌加密算法

(2)游程特性

下表列出了5組時空混沌序列在游程長度分別為1,2,3時各游程長占總游程長的比例平均值。由于計算機內(nèi)存的限制,因此產(chǎn)生的時空混沌二值序列不能過大,對序列的位數(shù)應(yīng)有一定的限制,本文均以128*128的二維序列為例,這里只給出前3個游程長的實驗數(shù)據(jù)。由下表可見,二值序列基本上滿足長度為n的游程長占總游程長的1/2,時空混沌二值序列具有較好的游程特性。

(3)移位特性

將生成的時空混沌二值序列做不同長度的位移,并把所得新序列與原序列的對應(yīng)元素進行比較,計算相同元素個數(shù),從而判斷序列是否滿足移位特性。下表列出了多組混沌序列經(jīng)長度為1,4,8,16,32,64的位移后,與原序列比較所得的相同元素個數(shù)占序列總長度的比例,實驗結(jié)果顯示,時空混沌二值序列基本滿足移位特性。

基于時空二維混沌序列的變參數(shù)混沌加密算法

綜合以上分析可見,用OCML模型和相應(yīng)的二值化方法產(chǎn)生的時空混沌二值序列近似滿足偽隨機序列的3個特性,屬于偽隨機序列。

四、可變參數(shù)混沌加密的基本原理

一般的加密系統(tǒng)在應(yīng)用混沌序列進行加密處理時,通常采用將已經(jīng)生成的混沌序列作為密碼直接對明文進行加密,我們提出一種參數(shù)可變的加密理論,即在加密過程中,生成的混沌序列經(jīng)過特定的運算得到加密參數(shù),而每一位明文又通過參數(shù)可變的混沌映射分別進行加密處理。該加密算法屬于對稱塊加密,利用了混沌方程對初始條件的敏感性,將待加密明文分塊,為每塊分配不同的混沌映射參數(shù),這些參數(shù)由一個外部密鑰生成,該外部密鑰由兩部分組成:8位到128位可變長密鑰和8位到32位可變長會話密鑰,這里可變長密鑰由時空二值混沌序列構(gòu)成,會話密鑰隨機產(chǎn)生。在每一明文塊加密時,初始值和迭代次數(shù)依賴于隨機選擇的會話密鑰,這個密碼系統(tǒng)能有效的抵擋反饋技術(shù)攻擊,即明文塊依賴于以前的明文塊,混沌映射的系統(tǒng)參數(shù)在每次加密中動態(tài)變化,加/解密的過程如下:

(1)對于加/解密,把明文/密文分成8位一塊,明文/密文被分成n塊表示為:

基于時空二維混沌序列的變參數(shù)混沌加密算法

其中P,C,K均為十進制數(shù),K為可變長密鑰,本文采用時空混沌二值序列。

(2)用Logistic函數(shù)作為各塊加/解密過程,它的初始條件變化范圍為(0,1),系統(tǒng)參數(shù)在?。?.57,4.0)之間時產(chǎn)生混沌,用下列方法產(chǎn)生一個實數(shù)(Xs)和一個偽隨機數(shù)(Ns):

基于時空二維混沌序列的變參數(shù)混沌加密算法

(3)隨機選擇會話密鑰Kr,Kr是十進制數(shù),這里(K,Kr)是外部密鑰,按照下列方法修改初始條件(Xs)和迭代次數(shù)(Ns):

基于時空二維混沌序列的變參數(shù)混沌加密算法

(4)通過下列線性隨機數(shù)產(chǎn)生器產(chǎn)生λ值:

基于時空二維混沌序列的變參數(shù)混沌加密算法

這里a相當于放大器,m和c是常數(shù),λi是加密/解密第 個明文/密文的系統(tǒng)參數(shù).當i=1時,對于第一個塊Yi=0;當i=2~n時,由下列LCG產(chǎn)生器產(chǎn)生:

基于時空二維混沌序列的變參數(shù)混沌加密算法

選擇a=16,c=7,m=81。

(5)用Logistic函數(shù)迭代求Xnew=λiX(1一X),X作初始條件、N作迭代次數(shù),λi由式(4,8)產(chǎn)生,加/解密如下:

基于時空二維混沌序列的變參數(shù)混沌加密算法

加/解密過程第一步中的可變長密鑰K,采用本文前面提到的時空混沌二值序列,以行為單位生成,即對于已經(jīng)生成的二值矩陣,每行產(chǎn)生一個K值,并相應(yīng)計算出該行的初始值Xs和迭代次數(shù)Ns,作為本行待會話密鑰修改的原始值.基于這種思想,對于大數(shù)據(jù)量的信息,如圖像、文本,則可以根據(jù)圖像的大小、文本的分段長度,生成多個初始值和迭代次數(shù)以便進行加密。與用一維混沌偽隨機序列相比,由于它只能產(chǎn)生一個值,整個加密過程使用同樣的初始值和迭代次數(shù),使得采用二維時空混沌序列作為密鑰的方法在安全性上有較大的提高。

綜上可見,本文提出了一種基于時空二維混沌序列的可變參數(shù)混沌加密體制,通過對序列進行各項性能分析,證明混沌序列具有良好的偽隨機性。在此基礎(chǔ)上,又設(shè)計了一種新的對稱密鑰加密算法,密鑰由外部密鑰和線性生成器LCG生成,隨機性好,密鑰空間大,能有效抵抗密鑰窮舉搜索攻擊。通過經(jīng)過運算得到混沌系統(tǒng)初始參數(shù)和迭代次數(shù)的方法,使密文對密鑰的微小變化具有強烈的敏感性,計算機模擬結(jié)果表明,這種基于時空二維混沌序列的變參數(shù)混沌加密體制具有良好的保密性,密鑰空間大,計算速度快,適合于對大數(shù)據(jù)量的信息進行安全加密。

小知識之混沌序列:

混沌是一種確定系統(tǒng)中出現(xiàn)的無規(guī)則的運動?;煦绲碾x散情況常常表現(xiàn)為混沌時間序列,混沌時間序列是由混沌模型生成的具有混沌特性的時間序列,混沌時間序列中蘊涵著系統(tǒng)豐富的動力學信息,混沌時間序列是混沌理論通向現(xiàn)實世界的一個橋梁,是混沌的一個重要應(yīng)用領(lǐng)域。