圖像加密算法之武警信息系統(tǒng)加密

隨著武警信息化建設(shè)的不斷深入,全面提高武警信息系統(tǒng)的安全防護(hù)能力已成為當(dāng)前武警部隊(duì)信息系統(tǒng)建設(shè)的一個重要課題。為保護(hù)武警信息系統(tǒng)中圖像文件的安全,要求專門開發(fā)一個數(shù)字圖像文件加密系統(tǒng)。傳統(tǒng)的加密算法(如DES、RSA等)無法滿足其網(wǎng)絡(luò)圖像文件加密要求,必須研究一種安全可靠的加密方法取而代之。為此我們提出了在武警信息系統(tǒng)中實(shí)現(xiàn)混沌圖像文件加密的研究課題,并通過對圖像文件加密系統(tǒng)的研究,結(jié)合武警部隊(duì)電視電話會議系統(tǒng),進(jìn)一步對視頻圖像的混沌加密算法和應(yīng)用軟件的研究。

一、混沌圖像文件加密系統(tǒng)功能結(jié)構(gòu)

混沌圖像文件加密系統(tǒng)主要功能足完成對數(shù)字圖像文件加密、解密處理,因此整個系統(tǒng)主要劃分為圖像文件密文接收模塊、圖像文件加密功能模垛、圖像文件解密功能模塊和圖像密文發(fā)送模塊。

各個功能模塊相互之問的關(guān)系如圖1所示。

圖像加密算法自武警信息系統(tǒng)加密

圖像密文接收模塊:向本系統(tǒng)輸入待加解密的數(shù)字圖像,可以直接從網(wǎng)絡(luò)中直接獲取,也可以用打開圖像文件的方式獲取,獲取后進(jìn)行一定的預(yù)處理。如果獲得的數(shù)字圖像足待加密的明文圖像,則系統(tǒng)調(diào)用加密模塊進(jìn)行加密;如果獲得的是密文圖像,則調(diào)用解密模塊進(jìn)行解密。

圖像文件加密模塊:對接收的數(shù)字圖像文件加密處理,并判斷圖像是否要求進(jìn)行壓縮處理,從而選擇不同的加密方式。這是本系統(tǒng)的核心功能部分。

圖像文件解密模塊:對接收的數(shù)字圖像進(jìn)行解密,同樣可根據(jù)不同的罔像格式選擇是否要求進(jìn)行解壓縮處理。

圖像密文文件發(fā)送模塊:對加密處理后的圖像進(jìn)行直接存儲或者通過網(wǎng)絡(luò)進(jìn)行發(fā)送。

二、混沌序列

混沌(chaos)定義:設(shè)X為一個度量空間,f:X→X稱為在X上足混沌的,如果:

(1)f對初始條件的敏感依賴性:即存在ξ>0對任何X∈X和善的任何鄰域N。存在Y∈N和自然數(shù)n>0.使得d(fn(x),fn(y))>ξ。

(2)f是拓?fù)鋫鬟f的,即對任何一對開集U,V_X。存在k>0,使得fk( U)∩v≠φ。

(3)周期點(diǎn)在V中稠密。

目前被廣泛研究的一維混沌系統(tǒng)是Logistic映射。

Logistic迭代公式如下:

圖像加密算法自武警信息系統(tǒng)加密
其中,0≤a<4稱為分枝參數(shù),xk∈(0.1)D當(dāng)3.5699456<a<4時,Logistic映射工作予混沌態(tài)。通過簡單的變量代換,Listic映射可以在區(qū)間(-1,1)定義。其形式如下:

圖像加密算法之武警信息系統(tǒng)加密

其中λ∈[O,2]。

LogisLic系統(tǒng)的統(tǒng)計(jì)特性:

概率密度函數(shù):

圖像加密算法之武警信息系統(tǒng)加密

(1)均值:

圖像加密算法之武警信息系統(tǒng)加密

(2)自相關(guān)函數(shù):當(dāng)自相關(guān)間隔m=0時。

圖像加密算法之武警信息系統(tǒng)加密

當(dāng)自相關(guān)間隔m≠0時,

圖像加密算法之武警信息系統(tǒng)加密

式中:

圖像加密算法之武警信息系統(tǒng)加密

(3)互相關(guān)函數(shù)為:

圖像加密算法之武警信息系統(tǒng)加密

式中:

圖像加密算法之武警信息系統(tǒng)加密

從以上特性可以知道.Logistic序列的統(tǒng)計(jì)特性與白噪聲一致。

三、JPEG圖像的混沌加密算法

1、圖像加密算法比較

(1)通用加密算法

通用加密算法主要是把圖像當(dāng)作普通的數(shù)據(jù)流,利用經(jīng)典的加密算法(如DES和RSA等)進(jìn)行加密。這種方法不必考慮實(shí)際圖像的數(shù)據(jù)規(guī)律,實(shí)現(xiàn)簡單。但是,因?yàn)楹雎粤藟嚎s圖像本身的特點(diǎn),必然會使加密的效率降低,增加程序運(yùn)行的時間開支,這與壓縮圖像在網(wǎng)絡(luò)中應(yīng)用高時效性要求不符。并且,傳統(tǒng)圖像加密算法正面臨著密碼分析等破譯手段的考驗(yàn),最終要技淘汰,因此研究適合壓縮圖像本身特點(diǎn)的加密方法很有必要。

(2)基于矩陣變換、象素置換的圖像加密算法

以Amold變換和按幻方做圖像象寨置亂變換為代表,這類算法把靜止圖像看作是平面區(qū)域上的二元連續(xù)函數(shù):z=f(x,y),0≤x≤Lx;0≤y≤_Ly。

對區(qū)域中任意的點(diǎn)(x,y).則f(x,y)代表圖像在這一點(diǎn)的灰度值,與圖像存這一點(diǎn)的亮度相對應(yīng)。并且圖像的亮度值是有限的,因而函數(shù)z=f(x,y)也是有界的。在圖像數(shù)字化之后.z =f(x,y)則相應(yīng)于一個矩陣,矩陣的元素所在的行與列就是圖像顯示在計(jì)算機(jī)屏幕上諸象素點(diǎn)的坐標(biāo),元素的數(shù)值就是該象素的灰度(通常有256等級,用整數(shù)0至255表示)。矩陣的初等變換可以將一幅圖像變換成另一幅圖像,其缺點(diǎn)足象裹置亂作用較差,保密性不高。

(3)基于混沌序列的圖像置亂算法

基于混沌序列的圖像置亂算法是利用混沌系統(tǒng)生成一個混沌序列,按行或列將序列生成一個置亂矩陣P。根據(jù)置亂算法,利用矩陣P對圖像的明文矩陣A進(jìn)行置亂,置亂后得到隨機(jī)排列的密文矩陣A'。

基于混沌序列的圖像置亂算法與傳統(tǒng)的迭代乘積密碼系統(tǒng)相比,排列算子是由密鑰決定,能夠較好的抗御差分密碼分析的攻擊。其缺點(diǎn)是對于壓縮圖像采用置亂算法,打亂了圖像象索之間本身的相關(guān)性,使得圖像壓縮率嚴(yán)重降低,制約壓縮圖像的網(wǎng)絡(luò)傳輸效率。

以上幾種圖像加密方法沒有充分考慮壓縮圖像本身的性質(zhì),壓縮、加密效果不理想,因此,本文以JPEG壓縮圖像為例,把混沌系統(tǒng)與圖像壓縮方法相結(jié)合,提出了一種新的加密算法。

2、基于JPEG圖像壓縮方法的混沌加密算法

(1)JPEG圖像壓縮方法

JPEG圖像是由國際標(biāo)準(zhǔn)化組織和國際電話電報(bào)咨詢委員會為靜態(tài)圖像所建立的第—個國際數(shù)字圖像壓縮標(biāo)準(zhǔn)?;綣PEG的編碼方法為順序編碼,其壓縮步驟是:

首先將圖像分為8×8的像素塊,根據(jù)從左到右,從上到下的光柵掃描方式進(jìn)行排序;然后利用DCT對8×8的像素塊進(jìn)行計(jì)算,得到64個DCT系數(shù),用均勻量化表逐一進(jìn)行標(biāo)量量化;接著根據(jù)“Z”形掃描方式對塊中的系數(shù)排序,得到的比特流通過行順序?qū)幋a生成中問的符號序列;最后將這些符號序列經(jīng)過Huffman編碼用于傳輸或存儲。

(2)加密算法原理

將原圖像分成8×8的塊,利用混沌置亂矩陣進(jìn)行置亂,DCT變換后使低頻分最都集中在左上角,高頻分量分布在右下角(DCT變換實(shí)際上是空間域的低通濾波器)。均勻量化后進(jìn)行“Z”形掃描,掃描的比特流用行順序編碼生成中間符號序列,并對其進(jìn)行Huffmari編碼得到由“0”和“1”組成的經(jīng)過壓縮的數(shù)據(jù),此時利用混沌灰度序列與得到的序列進(jìn)行位異或操作,生成的新序列看起來是隨機(jī)的,保存為JPFG文件。JPEG圖像壓縮加密過程如圖2所示:

圖像加密算法之武警信息系統(tǒng)加密

壓縮前在空域內(nèi)進(jìn)行混沌置亂,不會破壞DCT系數(shù)的概率分布函數(shù),也就不會影響圖像壓縮的效率。在壓縮加密過程中,DCT變換使低頻分量集中在左上角,而高頻分量集中在右下角,忽略圖像中不包含重要信息的高頻分量,可以達(dá)到壓縮的目的。

經(jīng)過“Z"掃描后,序列行程中連續(xù)“0”的個數(shù)增加,提高了壓縮效率。在Huffnun編碼后,將編碼后的序列與混沌系統(tǒng)生成的灰度序列進(jìn)行位異或操作,實(shí)現(xiàn)對數(shù)據(jù)文件加密。這樣將混沌加密過程與JPEG圖像的壓縮過程相結(jié)合,既不影響壓縮效愚,又實(shí)現(xiàn)了對圖像文件加密。

(3)密鑰生成

本文利用單向Hash函數(shù)(MD5)來生成Logistic映射迭代初值。 MD5算法可將任意長度的消息壓縮為128bit。該加密算法單向特性好、計(jì)算速度快(這也是該加密算法的主要設(shè)計(jì)目標(biāo)之一)、安全性能高。目前,還沒有可靠的方法在有效時間內(nèi)計(jì)算出兩個有相同壓縮值的消息,或在有效時間內(nèi)計(jì)算出某個具有給定壓縮的消息。

針對Logistic映射迭代初值Xo、YO∈(0,1)的要求,把用戶選取的不同形式的密鑰敞列映射為128位值,每4位組成十進(jìn)制數(shù)與十作模運(yùn)算,得到32個十進(jìn)制數(shù)字,截取前后兩部分,對于每個部分,分別將每位數(shù)字作為在(0,1)區(qū)間的雙精度實(shí)數(shù)的一位,正好生成Logislic映射的兩個迭代初值。

(4)置亂矩陣及灰度變換序列

利用密鑰值Xo、Y0,我們采用Logishc系統(tǒng)分別生成實(shí)數(shù)值混沌序列Xk和Yk(不使用序列的初始段部分),然后由Xk分別生成全局置亂變換矩陣P。

(5)置亂步驟

a、確定置換塊的大小為8×8。

b、生成置換矩陣Po設(shè)圖像I大小為M×N,通過K得到置換矩陣Pm/8,n/8,其中矩陣中的元素為l到(M/8)×(N/8)中互不袖同元素的雜亂排列。

c、排列圖像矩陣。對圖像進(jìn)行分塊,塊的大小為8x8.逐塊進(jìn)行編號,將各塊按行排列成有序矩陣IB。即IBij =j+(Z-1)×(N/8)。

d、開始置換。根據(jù)置換規(guī)則將幽像矩陣置亂,設(shè)IP為霞亂變換后的圖像,則圖像IP的第i行第j列象素塊對應(yīng)為原圖像I的第m行第n列的像素塊,其中m、n由等式慨= Pwn決定。

(6)加密算法實(shí)現(xiàn)

a、選擇任意長度的字符串作為密鑰,利用單向Hash函數(shù)(MD5)生成Logistic函數(shù)所需要的參數(shù)X0、Yo。

b、用X0、Yo生成Logistic混沌序列Xk、Yk。由Xk生成置亂矩陣P。

c、將圖像I進(jìn)行8x8分塊,利用矩陣P對I進(jìn)行置亂,得矩陣IP;

d、對矩陣IP進(jìn)行8x8的DCT變換,用JPEG量化表對其量化。

e、掃描行程編碼后,進(jìn)行Huffman編碼得序列Ik。

f、用混沌序列Yk與掃描后得到的序列Ik進(jìn)行位異或操作,得到加密后的序列I'k。

g、保存JPEG圖像。

(7)解密算法實(shí)現(xiàn)

a、獲得JPEG圖像。

b、輸入密鑰,用單向Hash函數(shù)生成Logistic函數(shù)所需要的參數(shù)X0、Yo。

c、用x0、Yo生成Logistic混沌序列x0、Yo,Xk生成置亂矩陣P。

d、用混沌序列yk與掃描后得到的序列I'k。進(jìn)行位異或操作,得到加密后的序列I'k。

e、對k進(jìn)行解壓縮得到按8x8分塊的圖像IP。

f、利用矩陣P對圖像IP進(jìn)行反置亂,即可得元圖像I。

四、實(shí)驗(yàn)結(jié)果與分析

利用Visual C++編程,實(shí)現(xiàn)了圖像壓縮、加密和解密、解壓縮的算法a對Lena圖(如圖3-a)進(jìn)行實(shí)驗(yàn),選擇密鑰字符半為“abcdefghi”,經(jīng)過MD5算法得Logistic函數(shù)的初值,對圖像文件進(jìn)行壓縮加密,得到圖像文件(3 - b)。利用相同的密鑰字符串進(jìn)行解密,解密圖像文件如圖(3 - c)。選擇解密字符串“abcdefgi”進(jìn)行解密,錯誤密鑰解密如圖(3-d)。不能還原為原圖像,這是因?yàn)槔肕D5散列函數(shù)生成Ingistic系統(tǒng)的迭代初位時,輸入字符串的細(xì)微改動都會體現(xiàn)到所生成的128位數(shù)值的每一位,而混沌系統(tǒng)本身具有很強(qiáng)的初始條件敏感性,迭代初值的細(xì)微差異將會導(dǎo)致生成的混沌序列完全不同,因此錯誤密鑰解密后的圖像雜亂無序,有效地抵抗了密碼分析方法的攻擊。

圖像加密算法之武警信息系統(tǒng)加密

小知識之幻方

幻方(Magic Square)是一種將數(shù)字安排在正方形格子中,使每行、列和對角線上的數(shù)字和都相等的方法。