圖像文件加密方法之隨機(jī)區(qū)域移位和隨機(jī)像素映射加密

隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展和對(duì)大量圖像信息傳輸需求的日益增加,圖像文件加密技術(shù)已變得越來(lái)越重要,為此,我們提出了一種基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法,該方法首先對(duì)待加密圖像進(jìn)行分割,然后將分割出來(lái)的圖像單元順序隨機(jī)打亂,擾亂了圖像的原始信息;然后再對(duì)每個(gè)圖像單元進(jìn)行像素映射擾亂,切斷了各個(gè)單元像素值之間的聯(lián)系。該方法結(jié)合了區(qū)域移位算法和像素映射算法的優(yōu)點(diǎn),自由度大,文件加密效果好對(duì)二值圖像和灰度圖像加密都取得了很好的效果。

一、基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像加密算法

1、 像素映射法

像素映射法是一種簡(jiǎn)單的圖像文件加密方法,對(duì)于一幅灰度圖它首先建立從原灰度值到新灰度值的映射表,然后把圖像中所有原灰度替換成在映射表中該灰度對(duì)應(yīng)的新灰度,打亂圖像中原來(lái)的像素分布,從而達(dá)到加密圖像文件的目的;而在解密時(shí)只要依照映射表用舊灰度替代加密后圖像中的新灰度,就可以還原出原來(lái)的圖像,完成解密,從原灰度值到新灰度值的映射函數(shù)可以表示如下,假設(shè)Gold表示原圖中某一灰度,Gnew表示新灰度,構(gòu)造一個(gè)函數(shù)f(.),使:

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法

建立了映射函數(shù)后,用新灰度去取代對(duì)應(yīng)的舊灰度,實(shí)現(xiàn)對(duì)原圖像文件加密。該函數(shù)可以任意選取,選取的函數(shù)不同,加密的效果就會(huì)不同,所以為了達(dá)到加密圖像文件的目的,需選用合適的映射函數(shù)。本文所采用的映射函數(shù)是隨機(jī)產(chǎn)生的,就是用隨機(jī)像素映射法來(lái)加密圖像文件。隨機(jī)像素映射法是將256個(gè)灰度值隨機(jī)排列產(chǎn)生新的灰度值,在這里用到rand(.)函數(shù),該函數(shù)能產(chǎn)生一個(gè)值在0到1的隨機(jī)數(shù);把函數(shù)y= fix(rand(x).255)的值作為新灰度值,當(dāng)每一次產(chǎn)生新灰度值的時(shí)候,要和之前產(chǎn)生的所有新灰度值進(jìn)行比較,如果當(dāng)前灰度值已經(jīng)出現(xiàn)過(guò)了,那么該新灰度值不人選,重新產(chǎn)生新灰度值,直到產(chǎn)生的新灰度值包含256個(gè)灰度值為止,這樣就產(chǎn)生了隨機(jī)排列的256個(gè)灰度值,與它們對(duì)應(yīng)的位置序號(hào)一起構(gòu)成隨機(jī)像素映射表。

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法

圖1(b)是用隨機(jī)像素映射法來(lái)加密圖1(a)的效果,加密后圖像已經(jīng)失去了表示原事物的能力;圖1(c)是用錯(cuò)誤的映射表來(lái)解密的圖像,從結(jié)果來(lái)看,用錯(cuò)誤的映射表來(lái)解密得不到原圖像的信息。

然而隨機(jī)映射法有著很大的缺陷,如果對(duì)一個(gè)二值圖進(jìn)行加密,那么它就無(wú)能為力了,圖2(b)是用隨機(jī)像素映射法來(lái)加密字符二值圖圖2(a)的效果,由于原圖像的對(duì)比度很強(qiáng),灰度等級(jí)二級(jí)(即只有二個(gè)灰度值)的性質(zhì)從而導(dǎo)致了加密后圖像的對(duì)比度仍然很大(仍然是兩個(gè)灰度值),原圖的信息依稀可見(jiàn),從而違背了圖像文件加密的原則。

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法

2、區(qū)域移位法

區(qū)域移位法是一種基本的加密算法,它是先把待加密的圖像分割成N×N個(gè)單元塊,然后對(duì)分割后的單元塊進(jìn)行移位,形成加密圖像,其中涉及到一張移位表用來(lái)放單元塊移位的信息,解密時(shí)仍將圖像分割成N×N個(gè)單元塊,根據(jù)移位表還原回去,得到原圖像。

圖3是區(qū)域移位法的示意圖,假設(shè)將原圖像分割成4個(gè)單元塊如(a),按照移位表(e)將單元塊進(jìn)行移位(見(jiàn)(b))得到加密的圖像;解密時(shí)仍將圖像分割成4個(gè)單元塊如圖(c),括號(hào)中是原圖像單元塊序號(hào),通過(guò)移位表將單元塊移位,得到解密的圖像(d),由括號(hào)中的序號(hào)可知,圖像已經(jīng)恢復(fù)成原圖像。

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法

對(duì)于區(qū)域移位表的選擇可以是任意的,但一定要起到圖像文件加密的效果,本文的移位表仍是用前面所論述的產(chǎn)生隨機(jī)像素映射表的原理得到,即為隨機(jī)區(qū)域移位法的圖像文件加密,圖4是用隨機(jī)區(qū)域移位加密圖像圖1(a)的效果,圖4(a)將原圖像分割成4×4個(gè)單元塊進(jìn)行區(qū)域移位加密;圖4(b)將原圖分解成8×4個(gè)單元塊進(jìn)行圖像文件加密。

作為一種基本加密技術(shù)的隨機(jī)區(qū)域移位法,若將原圖像分成4×4單元塊,則有16!加密方式,其中有一部分是起不到加密效果的,因?yàn)榧用苄Ч缓?,容易被非授?quán)者破解,這勢(shì)必要增加分割單元塊數(shù),通過(guò)這個(gè)方法雖然能使圖像保密性增強(qiáng),但同時(shí)也會(huì)增加計(jì)算量,導(dǎo)致加密速度的降低(特別對(duì)于視頻信號(hào));另外隨著高性能計(jì)算機(jī)的出現(xiàn),只要利用現(xiàn)有的各種解密算法對(duì)被截獲信息進(jìn)行窮舉運(yùn)算,則很有可能破解出原圖像,所以要尋找其它加密方法,該方法一方面運(yùn)算量不是很大,另一方面又要有很好的保密性。

二、基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密方法

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密法結(jié)合了像素映射法和區(qū)域移位法這兩種方法,該法充分發(fā)揮了兩種方法的各自文件加密優(yōu)點(diǎn),在運(yùn)算量不大的同時(shí)提高了圖像的保密性。該方法首先用隨機(jī)區(qū)域移位法對(duì)待加密的圖像文件進(jìn)行加密,初步置亂圖像區(qū)域位置,然后對(duì)每一個(gè)分割單元塊進(jìn)行隨機(jī)映射法加密,使像素信息再一次置亂,最后得到的圖像就是文件加密后的圖像。

下面來(lái)討論該圖像文件加密法的保密性程度,如果把圖像仍分成4×4個(gè)單元塊,則共有16!種區(qū)域移位方式;然后用像素映射法對(duì)每一個(gè)單元塊進(jìn)行加密,則共有256!種映射關(guān)系,由于每一個(gè)單元塊都對(duì)應(yīng)一個(gè)映射表,且每個(gè)單元塊的映射表都是獨(dú)立的,所以4×4個(gè)單元塊就有(256 !)16種加密方式,那么總共有(2561)16×16!種加密方式,由此可見(jiàn)該方法比單一的隨機(jī)區(qū)域移位法具有更好的保密性能,不僅運(yùn)算量不大而且圖像保密性更好,自由度更大。

由于移位表和映射表都是一一對(duì)應(yīng)的關(guān)系,授權(quán)者只要知道了¨鑰匙”,就可以依照“鑰匙”還原出原圖像。而非授權(quán)者在沒(méi)有得到“鑰匙”的條件下,試圖得到原圖信息是非常困難的。傳輸“鑰匙¨時(shí),可以將移位表和映射表組成一張表傳輸,并且可以制定“規(guī)則”來(lái)隱藏表的信息,這樣就更能提高圖像的安全性。

基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像加密法不僅具有很強(qiáng)的保密性,同時(shí)還克服了隨機(jī)映射法對(duì)二值圖加密無(wú)效的缺陷(見(jiàn)圖2和圖6),這也說(shuō)明該加密方法具有很好的通用性。

圖像文件加密方法之隨機(jī)區(qū)域移位和隨機(jī)像素映射加密

三、計(jì)算機(jī)仿真

本文在Matlab7.O軟件平臺(tái)上對(duì)以上提到的基于隨機(jī)區(qū)域移位和隨機(jī)像素映射的圖像文件加密法進(jìn)行了仿真。

圖像文件加密方法之隨機(jī)區(qū)域移位和隨機(jī)像素映射加密

圖5展示用基于隨機(jī)區(qū)域移位和隨機(jī)像素映射法加密圖像(圖1(a))的效果,圖5(a)是將原圖分成了4×4個(gè)單元塊進(jìn)行區(qū)域移位,圖5(b)是對(duì)移位后的圖像中每一個(gè)單元塊進(jìn)行隨機(jī)像素映射法置亂像素,得到最后的加密圖像;圖5(c)和圖5(d)是將原圖分成8×8個(gè)單元進(jìn)行圖像文件加密,圖6用基于隨機(jī)區(qū)域移位和隨機(jī)像素映射法對(duì)二值圖進(jìn)行加密,圖6(b)是將圖分割成了4×4個(gè)單元塊進(jìn)行區(qū)域移位,在加密圖中可以看見(jiàn)原圖的主特征;圖6(c)是對(duì)圖6(b)中每個(gè)單元塊進(jìn)行隨機(jī)像素映射來(lái)置亂像素,得到加密圖像.從圖中可看到圖6(b)中的主特征已經(jīng)被湮滅,在加密后的圖像文件中巳找不到任何關(guān)于原圖的相關(guān)信息,這就說(shuō)明了該方法克服了隨機(jī)映射法對(duì)二值圖文件加密無(wú)效的缺陷,具有很好的通用性。

小知識(shí)之二值圖像

二值圖像是指每個(gè)像素不是黑就是白,其灰度值沒(méi)有中間過(guò)渡的圖像。二值圖像一般用來(lái)描述文字或者圖形,其優(yōu)點(diǎn)是占用空間少,缺點(diǎn)是,當(dāng)表示人物,風(fēng)景的圖像時(shí),二值圖像只能描述其輪廓,不能描述細(xì)節(jié)。這時(shí)候要用更高的灰度級(jí)。