基于Logistic映射的彩色圖像加密算法設(shè)計(jì)實(shí)現(xiàn)
由于彩色圖像數(shù)據(jù)量過(guò)大,在數(shù)字圖像處理中通常都要進(jìn)行壓縮。對(duì)于需壓縮的圖像而言,由于置亂變換破壞了圖像像素之間的相關(guān)性,會(huì)使壓縮的效果變差。對(duì)于JPEG彩色圖像,其數(shù)據(jù)壓縮算法是在頻域進(jìn)行的,我們?nèi)绻麑㈩l域加密算法與壓縮算法結(jié)合進(jìn)行,就不會(huì)增加太多的計(jì)算量。但對(duì)JPEG而言,如果在頻域進(jìn)行置亂變換,會(huì)破壞DCT系數(shù)的概率分布函數(shù),從而使得Huffman編碼無(wú)法按最優(yōu)的方式使用,使壓縮效率大大降低。為此,我們提出了基于JPEG壓縮的頻域加密算法。
一、基于Logistic映射的彩色圖像加密算法原理
本加密頻域算法使用Logistic映射來(lái)產(chǎn)生混沌序列。先用單向散列函數(shù)生成Logistic映射的兩個(gè)初始值,用兩個(gè)初始值進(jìn)行混沌迭代產(chǎn)生兩個(gè)混沌序列,然后按照一定的算法生成兩個(gè)變換矩陣實(shí)現(xiàn)對(duì)彩色圖像的頻域加密。
二、基于Logistic映射的彩色圖像加密算法設(shè)計(jì)
1、密鑰生成
本加密算法利用單向散列函數(shù)SHA1來(lái)生成Logistic映射迭代初始值。SHA1函數(shù)是由美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)局和美國(guó)國(guó)家安全局設(shè)計(jì)的與DSS一起使用的安全散列算法,并作為安全散列標(biāo)準(zhǔn)(SHS)的聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)而公布,SHA1是SHA的修訂版。該算法可將一定長(zhǎng)度的任意輸入消息壓縮輸出為固定的20字節(jié)。到目前為止,SHA1被認(rèn)為是一種安全的算法。
在本加密算法中,需要兩個(gè)Logistic初值x0和y0,由于SHA1的輸出為20字節(jié),我們將這20字節(jié)截取為兩部分,前10字節(jié)生成x0,后10字節(jié)生成y0,并且使x0、y0(-1,1)。其中,x0、y0的生成方法可由使用者協(xié)商決定,本算法為簡(jiǎn)便起見(jiàn),用每字節(jié)對(duì)10取模運(yùn)算產(chǎn)生1位十進(jìn)制小數(shù),10字節(jié)共產(chǎn)生10位小數(shù),因此本算法的精確度為10-10。
2、變換矩陣的生成
此加密算法是在彩色圖像的JPEG壓縮過(guò)程中進(jìn)行的,而在JPEG壓縮中,處理的塊單位為8×8,因此本算法中變換矩陣的大小設(shè)計(jì)為8×8。我們需要兩種變換矩陣,一種是符號(hào)矩陣S[1],一種是數(shù)值變換矩陣G。
(1)符號(hào)矩陣S的生成
符號(hào)矩陣S用于減少在頻域加密過(guò)程中對(duì)DCT系數(shù)概率分布函數(shù)的破壞,產(chǎn)生方法為:用x0生成混沌實(shí)值序列xk,定義一個(gè)閾值函數(shù)
,xk通過(guò)r1(x)生成混沌二值序列xk',將xk'中每1位構(gòu)成1個(gè)矩陣元素,用來(lái)構(gòu)造出符號(hào)矩陣S(8×8)。
(2)數(shù)值變換矩陣G的生成
用y0生成混沌實(shí)值序列yk,定義一個(gè)閾值函數(shù)
,yk通過(guò)r1(y)生成混沌二值序列yk',將yk'中每8位構(gòu)成1個(gè)矩陣元素,用來(lái)構(gòu)造出數(shù)值變換矩陣G(8×8)。
三、基于Logistic映射的彩色圖像加密算法實(shí)現(xiàn)
1、加密算法實(shí)現(xiàn)
Step1:輸入待加密的彩色圖像IM×N。
Step2:擇取任意的字符串作為密鑰,利用單向散列函數(shù)SHA1生成Logistic映射所需要的初始值x0、y0,輸入Logistic映射的參數(shù)密鑰。
Step3:用x0、y0生成混沌序列xk、yk(不使用序列的初始段部分),xk、yk分別經(jīng)過(guò)閾值函數(shù)r1(x)、r1(y)的運(yùn)算構(gòu)造出符號(hào)矩陣Sij和數(shù)值變換矩陣Gij,其中,Sij、Gij皆為8×8矩
陣(i=1,2,M/8,j=1,2,N/8)。
Step4:將圖像IM×N進(jìn)行8×8_DCT變換,用JPEG量化表對(duì)其進(jìn)行量化。
Step5:用符號(hào)矩陣Sij對(duì)相應(yīng)的DCT塊進(jìn)行點(diǎn)乘法,改變部分DCT系數(shù)值的符號(hào)。
Step6:用數(shù)值變換矩陣Gij對(duì)相應(yīng)的DCT塊的每一元素的絕對(duì)值進(jìn)行位異或運(yùn)算,改變DCT系數(shù)量化值。
Step7:完成JPEG編碼過(guò)程,生成頻域加密后的JPEG圖像。
2、解密算法實(shí)現(xiàn)
在JPEG解壓縮過(guò)程中,用戶(hù)輸入正確的密鑰后,將加密算法逆向運(yùn)算,即可獲得解密圖像。
四、實(shí)驗(yàn)仿真
利用MATLAB_6.5來(lái)實(shí)現(xiàn)算法。對(duì)原始圖像(512×512像素)文件加密實(shí)驗(yàn),見(jiàn)圖1。
任意選取密鑰字符串為“abcd128”,μ=2,為了增強(qiáng)生成混沌序列的安全性,我們除去序列的初始段,使Logistic方程預(yù)先迭代n=10000次。
加密結(jié)果如圖2所示。

五、安全性分析
1、隨機(jī)性測(cè)試
本算法主要是采用混沌映射產(chǎn)生的二值序列來(lái)進(jìn)行加密運(yùn)算,二值序列的隨機(jī)性對(duì)整個(gè)算法安全性起著關(guān)鍵作用,我們使用NIST-FIPS-140-2標(biāo)準(zhǔn)來(lái)對(duì)本算法生成的二值序列進(jìn)行隨機(jī)性檢驗(yàn)。
經(jīng)過(guò)多次測(cè)試,結(jié)果如表1、2所示。

由表1和2可知,本算法的二值混沌序列順利通過(guò)了FIPS-140-2的4個(gè)測(cè)試,具備良好的隨機(jī)性。
2、保密性測(cè)試
本加密算法使用符號(hào)矩陣S來(lái)改變DCT系數(shù)值符號(hào),使用數(shù)值變換矩陣G來(lái)改變DCT系數(shù)量化值,從密碼學(xué)角度來(lái)講加強(qiáng)了密鑰的擴(kuò)散和混亂,提高了算法的安全強(qiáng)度。通過(guò)疊加混沌特性,加密圖像在視覺(jué)上發(fā)生了色彩變化,圖像更難讀懂。在試驗(yàn)中,當(dāng)選擇錯(cuò)誤的解密字符串“abcd129”進(jìn)行解密時(shí),生成如圖3的錯(cuò)誤解密圖。
根本不能還原成原圖像,這是因?yàn)槔肧HA1散列函數(shù)生成Logistic方程的迭代初值時(shí),輸入字符串的細(xì)微改動(dòng)都會(huì)體現(xiàn)到所生成的迭代初值中,而混沌系統(tǒng)本身具有極強(qiáng)的初始條件敏感性,迭代初值的細(xì)微差異將會(huì)導(dǎo)致生成的混沌序列完全不同。圖4是參數(shù)的偏差為10-10時(shí)的錯(cuò)誤解密圖像。

3、抗攻擊測(cè)試
圖5為加密圖像經(jīng)JPEG壓縮為原大小20%后的解密圖像,圖6為加密圖像受到10%強(qiáng)度的高斯噪聲干擾后的解密圖像,可以看出,經(jīng)過(guò)一定壓縮處理、噪聲干擾的解密圖像效果較好,具有較強(qiáng)的抗攻擊能力。

小知識(shí)之NIST-FIPS-140-2
FIPS標(biāo)準(zhǔn)是美國(guó)法律強(qiáng)制實(shí)施的一項(xiàng)標(biāo)準(zhǔn),在加拿大也得到非常嚴(yán)格的實(shí)施,目前正在由ISO審批成為一項(xiàng)國(guó)際標(biāo)準(zhǔn)。FIPS 140-2作為一項(xiàng)重要的第三方認(rèn)證基準(zhǔn),適用于各種加密產(chǎn)品,正在世界范圍內(nèi)得到廣泛的認(rèn)可。










