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

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

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

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

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

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

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

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

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

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

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

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

二、混沌實(shí)值的二值化

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

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

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

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

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

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

三、時(shí)空混沌二值序列的偽隨機(jī)性分析

1、偽隨機(jī)序列 

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

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

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

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

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

2、混沌二值序列的偽隨機(jī)性分析 

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

(1)平衡性 

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

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

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

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

(2)游程特性

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

(3)移位特性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

小知識(shí)之混沌序列:

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