基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法

隨著Internet技術(shù)與多媒體技術(shù)的飛速發(fā)展,數(shù)字化信息以不同的形式在網(wǎng)絡(luò)上方便、快捷地傳輸,因此,信息的安全與保密顯得越來越重要。其中圖像以其不可比擬的直觀性、可操作性和大信息量而成為多媒體通信和保密通信中的重要信息載體,這使得數(shù)字圖像的安全性問題尤為突出,而有關(guān)圖像加密的算法亦層出不窮。那么我將給大家介紹基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法。

一、混沌系統(tǒng)特性

混沌現(xiàn)象是在非線性動力系統(tǒng)中出現(xiàn)的確定性的、類似隨機(jī)的過程,這種過程既非周期又不收斂,并且對初始值有極其敏感的依賴性。一維多參數(shù)非線性動力系統(tǒng)定義如下:

Xn+1=f(xn,μi)

其中,μi(i=1,2,…)為參數(shù),xn∈W(n=0,1,2,…)稱之為狀態(tài)。而f:W→W是一個映射,將當(dāng)前狀態(tài)xn映射到下一個狀態(tài)xn+1。如果從初始值x0開始反復(fù)應(yīng)用f,就可得到一個序列{xk;k=0,1,2,...},這一序列稱為該離散時間動力系統(tǒng)的一條軌跡。如果為各μi選擇恰當(dāng)?shù)臄?shù)值,使f:W→W滿足三個條件,即具有對初始條件的敏感性,拓?fù)鋫鬟f的和周期點在W中稠密,則對應(yīng)的動力系統(tǒng)在W上是混沌的。

目前,一類非常簡單卻被廣泛研究的動力系統(tǒng)是Logistic映射,其典型定義式為:

xn+1=μxn(1-xn) ? ? ?(1)

式中,0≤μ≤4稱為分支參數(shù),xn∈(0,1)?;煦鐒恿ο到y(tǒng)的研究工作指出:當(dāng)0<μ≤3.569945時,該動力系統(tǒng)從穩(wěn)定狀態(tài)分叉產(chǎn)生倍周期;當(dāng)3.569945<μ≤4時,該動力系統(tǒng)進(jìn)入混沌狀態(tài),也就是說,由初始條件x0在Logistic映射的作用下所產(chǎn)生的序列{xk;k=0,1,2,…}是非周期、不收斂的,且對初始值非常敏感。

實驗表明,初始條件任意小(如10-15)的改變都會引起完全不同的行為,呈現(xiàn)出大相徑庭的迭代軌跡。下圖為μ=3.9,初值x0=0.2,y0=0.2001,z0=0.200001時對應(yīng)生成的混沌序列X,Y,Z的示意圖。

基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法同時,由式(1)迭代生成的Logistic序列的遍歷統(tǒng)計特性等同于白噪聲。另外,若將所有由任意初值產(chǎn)生的混沌實數(shù)值序列,通過定義一個閾值函數(shù)Γ轉(zhuǎn)換成混沌二值序列,并將這些二值序列看作一個集合G,顯然G非空。依據(jù)群的第一定義,一個非空集合G對于一個叫做乘法的代數(shù)運(yùn)算來說看作成一個群,假如:

(1)G對某個乘法來說是封閉的;

(2)結(jié)合律成立,即對于G中任意三個元a,b,c,均有(ab)c=a(bc);

(3)對于G的任意兩個元a,b來說,方程ax=b和ya=b都在G中有解。

由此我們可以得到混沌二值序列的一個特殊性質(zhì):混沌二值序列集合是一個乘法群。由Logistic序列特性可見,盡管混沌動力系統(tǒng)具有確定性,但其遍歷統(tǒng)計特性等同于白噪聲,且具有形式簡單、對初始條件極其敏感、具備白噪聲統(tǒng)計特性等諸多特性,因而,將定長混沌二值序列作為數(shù)字圖像加密密鑰是簡單可行和安全可靠的。

二、基于混沌的數(shù)字圖像加密算法

基于混沌系統(tǒng)特性,利用初始條件可獲得數(shù)量極多的混沌序列,而在一般情況下,很難從一段有限長序列推斷出整個混沌序列的初始條件,因此,選擇定長的混沌二值序列作為密鑰對圖像的某些信息流(如數(shù)據(jù)矩陣)進(jìn)行加密,不失為一種切實可行的方案。基于此思想,我們首先提出將圖像數(shù)據(jù)流與混沌密鑰流進(jìn)行簡單異或加密的SCENT算法。

1、簡單混沌加密(SCENT)算法

SCENT(SimpleChaoticEncryption)算法的原理是:設(shè)原始圖像為I,I=M×N,從I中提取出數(shù)據(jù)矩陣CData,大小Size=M×N×Z,Z=1,2,3(如當(dāng)I為灰度圖像時,Z=1,而當(dāng)I為真彩色圖像時,Z=3),CData中各元素的取值范圍為[0,255]。用戶密鑰為x0,將x0作為初值,采用式(1)生成混沌二值序列xk,長度自行設(shè)定,如64,1024(1KB)等。從1到Size,將CData中的每個元素轉(zhuǎn)換為8位ASCII碼,與xk按位異或后,再將加密后的該8位ASCII碼還原成十進(jìn)制數(shù),加密過程中xk可重復(fù)使用,也可更新。最后,將進(jìn)行加密處理后的數(shù)據(jù)矩陣CDa-ta進(jìn)行重畫,即得到加密后的圖像,加密效果如圖所示。用戶輸入正確密鑰后,將加密算法逆向運(yùn)算,即可獲得解密圖像。

基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法

上述加密算法(簡稱為一重SCENT)的特點是:原理簡單,軟硬件實現(xiàn)非常容易,且加密速度快,特別適用于要求設(shè)備輕巧、加密快速而保密性不太高的場合,如網(wǎng)絡(luò)上傳輸和發(fā)布的低保密性的圖像、低比特率視頻、文字消息等。但由上圖(b)的加密效果可以看出,一重SCENT加密圖像的效果很差,這是因為這種簡單加密僅改變了原始圖像各點的灰度,并沒有進(jìn)行空間上的置亂,原始圖像的大量相關(guān)信息有可能保存下來,從而起不到加密的作用。針對這樣的情況,我們又提出了下面兩種改進(jìn)思路:

①更新密鑰,進(jìn)行多重加密,三重及五重SCENT加密效果如上圖(c)、上圖(d)所示;

②結(jié)合經(jīng)典的加密算法將混沌二值序列作為密鑰對原始圖像數(shù)據(jù)流進(jìn)行置亂加密。由上圖(c)、上圖(d)可知,多重SCENT的加密效果并不比單重SCENT加密效果更好,這是由于混沌二值序列集合畢竟是一個群,所以即便用多個密鑰K1,K2,K3,K4,K5分別對圖像明文P進(jìn)行三級或五級加密,也總會存在一個密鑰K和L滿足:

C1=EK3(EK2(EK1(P)))=EK(P) ? ? ? ? ? (2)

C2=EK5(EK4(EK3(EK2(EK1(P)))))=EL(P)

因此,采用多重加密方式并不能很好地提高利用窮舉搜索法破解SCENT加密或中間相遇攻擊的難度,也無法從根本上提高加密效率,正因為如此,我們又在SCENT的基礎(chǔ)上提出了復(fù)雜混沌獨立密鑰DES加密(CCDES)算法。

2、復(fù)雜混沌獨立密鑰DES加密(CCDES)算法

CCDES(ComplexChaoticUnattachedKeyDES)算法的原理是:首先由16個獨立密鑰x1~x16生成16個獨立的48位混沌二值序列K1~K16,然后從待加密圖像中提取出數(shù)據(jù)矩陣CData,將CData按每8個元素進(jìn)行分組,每組均轉(zhuǎn)換為64位ASCII碼明文,進(jìn)行獨立密鑰的DES加密,然后將加密后的64位數(shù)據(jù)轉(zhuǎn)換為加密后的8個十進(jìn)制元素,依次進(jìn)行下去,最后剩余不足8個的元素進(jìn)行簡單的SCENT加密,至此就可將加密后的圖像重畫出來。其算法原理如圖所示:

基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法

加密效果如下圖所示:

基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法

解密算法與加密算法完全相同,唯一不同之處是密鑰的次序相反,即若DES各輪的加密密鑰分別是K1,K2,...,K16那么解密密鑰就是K16,K15,...,K1。

由上圖可知,CCDES算法加密效果良好、原理簡單、軟硬件實現(xiàn)也比較容易,其最大的特點是采用由混沌動力系統(tǒng)生成的獨立子密鑰進(jìn)行DES加密,可以極大地增加窮舉攻擊和中間相遇攻擊的難度,因此,CCDES算法非常適用于要求高保密性的系統(tǒng)。

三、基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法性能分析

1、算法安全性分析

SCENT算法的安全性與混沌映射參數(shù)μ、初值x0、二值序列轉(zhuǎn)換時閾值Γ的選取以及二值序列的長度L等因素有關(guān)。μ,x0,Γ及L中任何一個發(fā)生微小變化均可以生成完全不同的密鑰序列,這就使得采用窮盡式密鑰搜索分析來進(jìn)行解密是很困難的,即便在公開除x0(如x0∈(0,1))以外的所有參數(shù)的情況下。由于在一般的計算機(jī)系統(tǒng)中,十進(jìn)制小數(shù)有效位置精度為15位,所以采用窮舉攻擊的難度仍將達(dá)到10的15次方。但由于這種加密算法自身的缺陷,原始圖像或視頻的大量相關(guān)信息仍將保留下來,因此該算法并不太適于圖像和視頻文件加密,但對文字信息的加密效果良好,且加密速度極快。

如用SCENT算法對字符串“Iwillwaitingforyouinthepark,2004/9/10,2:30PM”進(jìn)行加密時,若取密鑰x0=0.1457855555555285,加密后的字符串為“←□□:u□ 澝L驅(qū)虛袁諞輻并□慫>蓯曷怨匈昒c絀酉e鷇冞瑵□□”;解密時,若密鑰相同,輸出字符串為“Iwillwaitingforyouinthepark,2004/9/10,2:30PM”。若密鑰稍有差別,如取x0=0.1457855555555286,則解密字符串為“頁艸樵O(shè)s} _&vIwg◣潂W Iv8H@{懂□”。

CCDES算法的安全性在基于SCENT算法的安全性基礎(chǔ)上,由于采用16個初值x1~x16,利用混沌動力系統(tǒng)生成16個48位獨立二值密鑰K1~K16,所以其窮舉攻擊難度可達(dá)到(1015)16。另外,單就DES安全性而言,由于采用16個獨立混沌二值序列作為每輪DES加密的獨立子密鑰,而16輪的每輪都需要48密鑰位,這就意味著這種變型的密鑰長度為768位,這將極大地增加DES算法窮舉攻擊算法的難度,其復(fù)雜性將達(dá)到2768,中間相遇攻擊的復(fù)雜性將達(dá)到2384。盡管DES算法對差分分析比較敏感,但由于有混沌密鑰和按時更新密鑰的雙重保護(hù),此算法的安全性足以適用于高保密性系統(tǒng),如情報、國防、金融等商業(yè)的高層管理。

2、計算復(fù)雜度及速度分析

本文提出的兩種加密算法是將數(shù)字圖像視為數(shù)據(jù)流來進(jìn)行完全加密的,其優(yōu)點是安全性強(qiáng),缺陷是計算復(fù)雜度較高、速度較慢。由于傳統(tǒng)高強(qiáng)度密碼(如DES,IDEA,RSA等)通常具有較高的計算復(fù)雜度,所以完全加密的CCDES算法的計算復(fù)雜度更高,從而極大地影響加密速度。表1以Cameraman.tif(256×256,64KB)原圖像為例,列出了單重及多重SCENT算法和CCDES算法總體加密時間、實際加密時間等各項參數(shù),以供參考。實驗測試平臺為奔Ⅲ處理器,256MB內(nèi)存,采用雙精度浮點運(yùn)算:

基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法

由表1可以看出,SCENT算法的計算復(fù)雜度比CCDES的小得多,加密速度快,對實際數(shù)據(jù)流的加密時間較短,因此這種算法比較適用于要求傳輸速度快的網(wǎng)絡(luò)數(shù)據(jù)流,如文字信息流加密等。CCDES算法的耗時主要集中在DES算法的非線性變換S-盒替換上,其加密速度雖然較慢,但安全性極強(qiáng)。事實上,實用DES的軟硬件實現(xiàn)速度是相當(dāng)快的。

本文討論了一種基于混沌系統(tǒng)的獨立密鑰DES數(shù)字圖像加密算法(CCDES),該算法優(yōu)點是原理簡單、易于理解、安全性很高,且僅依賴于密鑰,軟硬件實現(xiàn)簡單經(jīng)濟(jì),較好地符合了加密算法的設(shè)計準(zhǔn)則,并且該算法是將數(shù)字圖像當(dāng)作數(shù)據(jù)流來處理,因此也適用于其他多媒體數(shù)據(jù)流(如位序列、文本文件、數(shù)字化的語音和視頻等)的加密;缺點是計算較為復(fù)雜,速度較慢。

小知識之?dāng)?shù)字圖像

數(shù)字圖像,又稱數(shù)碼圖像或數(shù)位圖像,是二維圖像用有限數(shù)字?jǐn)?shù)值像素的表示。數(shù)字圖像是由模擬圖像數(shù)字化得到的、以像素為基本元素的、可以用數(shù)字計算機(jī)或數(shù)字電路存儲和處理的圖像。