基于離散數(shù)字混沌序列的圖像加密

采用混沌序列的保密通信僅僅只需要傳遞少數(shù)參數(shù)。餛飩序列的特性類似隨機(jī)的過程憶等同于白噪聲,對初始值極其敏感。因此,將混沌序列運(yùn)用于圖像加密,將具有極大的方便。那么下面我就給大家介紹一種基于離散數(shù)字混沌序列的圖像加密方法。

一、離散數(shù)字混沌計(jì)算原理

根據(jù)Logistic映射:

基于離散數(shù)字混沌序列的圖像加密

其中0≤μ≤4,稱為分支參數(shù)稱為分支參數(shù)。Xk∈(-1,1)。

經(jīng)過簡單的變量代換,Logistic映射可以在區(qū)間(?1,+1)上定義如下:

基于離散數(shù)字混沌序列的圖像加密

其中λ∈[0,2],當(dāng)λ=2時(shí)稱為滿映射。?對式(2)兩邊乘以a2得:

基于離散數(shù)字混沌序列的圖像加密

令zk=axk+a,則:

基于離散數(shù)字混沌序列的圖像加密

將式(4)代入式(3),取λ=2,化簡得:

基于離散數(shù)字混沌序列的圖像加密

令式(5)左邊為零,得到兩個(gè)穩(wěn)定解:

基于離散數(shù)字混沌序列的圖像加密

在有限二進(jìn)制位離散數(shù)字計(jì)算中,由于量化誤差的存在,即使初始值不為零值或2a,則由式(5)經(jīng)過多次的迭代計(jì)算,只要某次迭代中間得到值2a,則以后再次迭代的值就保持為零值。如參數(shù)a=2的15次方=32768,初始值取9,則經(jīng)過120次的迭代后將保持為零值。為了消除這種現(xiàn)象,將式(5)改寫為:

基于離散數(shù)字混沌序列的圖像加密

如果初始值不為零,則該式迭代結(jié)果不再出現(xiàn)零值??梢宰C明,只要初始值不取為零,則式(5)的計(jì)算范圍為:

基于離散數(shù)字混沌序列的圖像加密

二、產(chǎn)生圖像加密數(shù)字混沌序列?

設(shè)序列x(n),y(n),z(n),u(n)的最小周期分別為p1、p2、p3、p4,則可以證明函數(shù)運(yùn)算:

基于離散數(shù)字混沌序列的圖像加密

所得復(fù)合序列的最小周期p為:

基于離散數(shù)字混沌序列的圖像加密

其中運(yùn)算1cm表示求最小公倍數(shù)。顯然,若p1,p2,p3,p4中有一個(gè)為∞,則p?=?∞。

通過短序列的函數(shù)運(yùn)算,就可以克服有限精度處理的短周期問題,從而獲得長周期序列。取函數(shù)運(yùn)算為“異或”運(yùn)算,由3個(gè)離散數(shù)字混沌序列進(jìn)行“異或”運(yùn)算產(chǎn)生的長周期離散數(shù)字混沌序列的算法如圖。其中的離散數(shù)字混沌計(jì)算是式(7)的迭代計(jì)算。采用時(shí)鐘同步的3個(gè)離散數(shù)字混沌序列“異或”運(yùn)算函數(shù),可以表示為:

基于離散數(shù)字混沌序列的圖像加密

基于離散數(shù)字混沌序列的圖像加密

下圖為采用24bit精度(對應(yīng)的參數(shù)a=2的23次方)的3個(gè)混沌序列運(yùn)算產(chǎn)生的離散數(shù)字序列的一個(gè)實(shí)例。

基于離散數(shù)字混沌序列的圖像加密

下圖為它的自相關(guān)圖,可見序列自相關(guān)具有良好的二值性,表明序列具有很好的隨機(jī)性。

基于離散數(shù)字混沌序列的圖像加密

三、數(shù)字圖像加密?

采用BMP格式圖像文件加密仿真。BMP格式圖像的每一個(gè)像素點(diǎn)可以由R(red),G(green),B(blue)各一個(gè)字節(jié)的值表示。

基于離散數(shù)字混沌序列的圖像加密

由上圖輸入3個(gè)初始值,3個(gè)初始值的每一個(gè)都為24bit整數(shù),產(chǎn)生一個(gè)新的離散數(shù)字序列用于圖像加解密。密鑰序列的長度與圖像總像素相等。蜜鑰序列的每一個(gè)序列值與圖像中每一像素對應(yīng)。每一密鑰序列值占3個(gè)字節(jié)(24bit)。加密時(shí)分別將這3個(gè)字節(jié)與像素的R(red),G(green),B(blue)各一個(gè)字節(jié)的值進(jìn)行“異或”運(yùn)算。解密是加密的逆運(yùn)算。

下圖為加解密仿真對比圖。

基于離散數(shù)字混沌序列的圖像加密

其中圖(a)為加密前原圖,圖(b)為加密后的圖(密鑰參數(shù)為3個(gè)離散數(shù)字混沌的初始值:10,11,13),圖(c)為正確解密后的圖,圖(d)為錯(cuò)誤解密后的圖(輸入的3個(gè)離散數(shù)字混沌的初始值:9,11,13)。

四、基數(shù)密的分析

基于離散數(shù)字混沌序列的圖像加密的安全性取決于密鑰空間大小。

由不同初始值根據(jù)式(7)可以獲得離散序列。這些離散序列表現(xiàn)為短的周期性。當(dāng)a=2的24次方,周期為8,272,716,2的24-1的4種序列,此表為這4種周期對應(yīng)的初始值數(shù)目。

基于離散數(shù)字混沌序列的圖像加密

將初始值按產(chǎn)生的周期分成4個(gè)集合,設(shè)x(n),y(n),z(n)序列的初始值分別取自周期分別為272,716,22的24-1的這3個(gè)集合,作為初始值輸入圖1用以產(chǎn)生圖像加密序列。于是產(chǎn)生的新序列的w(n)最小周期p為:

基于離散數(shù)字混沌序列的圖像加密

則新序列的密鑰數(shù)量為:

基于離散數(shù)字混沌序列的圖像加密
以每秒100億次運(yùn)算,則約需要49.27年才能窮舉完所有的可能密鑰。令:

基于離散數(shù)字混沌序列的圖像加密則式(7)可以表示為:

基于離散數(shù)字混沌序列的圖像加密可見通過移位、乘法、取補(bǔ)、加法就可以實(shí)現(xiàn)離散數(shù)字混沌序列,且輸入、輸出都為離散數(shù)字整數(shù)值,方法簡單,便于硬件實(shí)現(xiàn)。

本文在推導(dǎo)出了離散數(shù)字混沌計(jì)算公式的基礎(chǔ)上,采用3個(gè)由離散數(shù)字混沌序列進(jìn)行“異或”運(yùn)算獲得周期較長的離 散數(shù)字混沌序列。并將產(chǎn)生的序列用于圖像的加密和解密的仿真。仿真結(jié)果可見,所產(chǎn)生的離散數(shù)字混沌序列對初始密鑰敏感,且計(jì)算簡單,參數(shù)較少,安全性非常高。

小知識(shí)之異或

異或也叫半加運(yùn)算,其運(yùn)算法則相當(dāng)于不帶進(jìn)位的二進(jìn)制加法:二進(jìn)制下用1表示真,0表示假,則異或的運(yùn)算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進(jìn)位。