諶貽會(huì)
摘要:針對(duì)彩色圖像的加密,本文使用混沌映射首先對(duì)彩色圖像進(jìn)行隨機(jī)分塊,并對(duì)每個(gè)子圖像的紅、綠和藍(lán)這三個(gè)像素層使用Arnold變換和不同的密匙進(jìn)行加密操作,其次把經(jīng)過(guò)了Arnold變換處理后的這三層加密像素疊加起來(lái),構(gòu)成每子圖像的加密圖像。實(shí)驗(yàn)結(jié)果說(shuō)明,這種方法無(wú)需進(jìn)行迭代計(jì)算,因此它的時(shí)間復(fù)雜度相對(duì)較低,運(yùn)行速度較快,而且由于密鑰空間得到了擴(kuò)大,使得其加密強(qiáng)度較高。
關(guān)鍵詞:彩色圖像;加密算法;混沌映射;Arnold變換
中圖分類號(hào):TP309.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)06-0135-03
0 引言
隨著多媒體技術(shù)特別是彩色圖像在人們?nèi)粘I钪械膹V泛使用,在給人們帶來(lái)便利的同時(shí)也引發(fā)了一些安全問(wèn)題,這主要是圖像數(shù)據(jù)的存儲(chǔ)和傳輸?shù)陌踩珕?wèn)題。圖像的加密技術(shù)已成為可以保障圖像信息安全的一個(gè)重要方面。一些傳統(tǒng)的數(shù)據(jù)加密技術(shù)對(duì)圖像數(shù)據(jù)的加密而言并不完全適用,因此需要研究針對(duì)圖像數(shù)據(jù)的加密方法。
混沌系統(tǒng)具有一些獨(dú)特的性質(zhì),例如,對(duì)初始值和參數(shù)的敏感性,白噪聲的統(tǒng)計(jì)特性與遍歷性?;煦缦到y(tǒng)的吸引子的位數(shù)是分?jǐn)?shù)維的,它具有非常復(fù)雜的分形結(jié)構(gòu)和不可預(yù)測(cè)性。因此,使用混沌系統(tǒng)產(chǎn)生的混沌序列具有較好的隨機(jī)性和密碼學(xué)特性,在圖像加密中進(jìn)行使用,可設(shè)計(jì)出具有較好性能的加密算法[1,2]。在基于混沌的圖像加密方法的早期研究中,主要是使用一些性能較好的低維混沌系統(tǒng),由于此時(shí)的混沌結(jié)構(gòu)較為簡(jiǎn)單并且參數(shù)少,因此相應(yīng)的加密算法的密鑰空間比較小,易被攻破。由于高維混沌系統(tǒng)擁有更大的參數(shù)空間和復(fù)雜的結(jié)構(gòu),因此近年來(lái)高維混沌系統(tǒng)被應(yīng)用到圖像的加密中,使得加密算法的密鑰空間得到了擴(kuò)大[3-5],密鑰的生成方法也更復(fù)雜化,從而提高了密鑰的敏感度。
本文使用混沌映射Skew tent來(lái)對(duì)彩色圖像進(jìn)行分塊,之后使用Arnold變換對(duì)圖像的像素進(jìn)行操作,實(shí)現(xiàn)了彩色圖像的加密,具有加密強(qiáng)度較高,時(shí)間復(fù)雜度相對(duì)較低,運(yùn)行速度快等特點(diǎn)。
1 Arnold變換
對(duì)一幅圖像進(jìn)行數(shù)字化處理后所得到的是一個(gè)二維離散的數(shù)字矩陣,該矩陣中的每個(gè)元素代表了圖像的相關(guān)信息。Arnold變換的數(shù)學(xué)表達(dá)式如下:
其中,N是圖像的大小,即圖像是一幅大小為N×N的圖像。當(dāng)對(duì)一幅圖像進(jìn)行Arnold變換時(shí),(x,y)和(x′,y′)分別表示一個(gè)像素點(diǎn)在變換前和變換后的位置坐標(biāo)。mod表示求余運(yùn)算,它的目的是保證圖像的數(shù)據(jù)矩陣在進(jìn)行變換后仍然落在原先的圖像區(qū)域內(nèi)。參數(shù)a,b,c和d滿足的條件是:|ad-bc|=1,例如,a=b=c=1,d=2。
當(dāng)對(duì)一幅圖像進(jìn)行了Arnold變換時(shí),就按照如上公式對(duì)圖像中的像素點(diǎn)位置進(jìn)行移動(dòng),結(jié)果就能得到一個(gè)與原圖像相比混亂無(wú)章的圖像。一般地,為了達(dá)到較滿意的效果,通常需要對(duì)一幅圖像進(jìn)行很多次的Arnold變換。
2 加密的過(guò)程
在下面我們對(duì)彩色圖像進(jìn)行加密時(shí)將使用如下的混沌映射Skew tent,它的定義如下:
其中,μ是控制參數(shù),x0∈[0,1]是混純系統(tǒng)的初始狀態(tài)。對(duì)于一個(gè)任意的μ值,公式F(x)的分段線性映射都有一個(gè)正的Lyapunov指數(shù),因此該系統(tǒng)總是混純的。對(duì)初值x0,可以通過(guò)計(jì)算F(x0)來(lái)得到x1。類似地,通過(guò)使用公式F(x)執(zhí)行迭代運(yùn)算,就可以得到一個(gè)混純序列xk,k=0,1,2,……。
加密的過(guò)程為:讀取將要進(jìn)行加密的彩色圖像,然后提取這張圖像的R、G、B這三個(gè)像素層;針對(duì)不同的像素層,將設(shè)置不同的加密密匙Key來(lái)提高加密的安全性,這里的加密密匙Key是指Arnold變換中所使用的參數(shù)a,b,c和d,可表示為:Key=(a,b,c,d),即使用不同的密匙對(duì)不同的像素層即R,G,和B層進(jìn)行Arnold變換,這里R、G、B分別代表的是紅色(Red)、綠色(Green)和藍(lán)色(Blue);這樣經(jīng)過(guò)變換之后就可以得到三個(gè)二維的數(shù)字矩陣,將這三個(gè)大小相同的數(shù)字矩陣疊加起來(lái)就得到一個(gè)新的二維數(shù)字矩陣,該矩陣就是加密后的數(shù)字圖像。具體的實(shí)現(xiàn)步驟如下:
算法1
步1:讀取一副彩色圖像,將它轉(zhuǎn)換為矩陣,從而獲得預(yù)處理圖像。設(shè)預(yù)處理圖像是一幅大小為N×N的圖像。
步2:使用混沌映射Skewtent隨機(jī)生成一個(gè)正整數(shù)n。
步3:把預(yù)處理圖像分塊成M個(gè)子圖像,這里M的取值為2n。對(duì)每一個(gè)子圖像,進(jìn)行如下的步4,步5和步6。
步4:對(duì)一個(gè)子圖像,提取它的R,G,B這三層像素,并把它們各自轉(zhuǎn)化為一個(gè)二維矩陣,共得到三個(gè)這種矩陣。
步5:設(shè)計(jì)三個(gè)不同的密匙KeyR,KeyG和KeyB,并使用它們分別對(duì)各層像素矩陣進(jìn)行Arnold變換處理。
步6:把進(jìn)行Arnold變換處理后的這三層加密像素疊加起來(lái),構(gòu)成原子圖像的加密圖像。
步7:對(duì)M個(gè)子圖像都進(jìn)行了如上的處理之后,把這M個(gè)子圖像的加密圖像組合到一起,構(gòu)成預(yù)處理圖像的加密圖像。
在算法1的第2步中使用混沌映射Skew tent時(shí)所生成的數(shù)不一定是整數(shù),這時(shí)需要對(duì)公式F(x)的值取整。在第3步中對(duì)密匙的取值,可以根據(jù)預(yù)處理圖像的特點(diǎn)來(lái)選取,也可以任意選取,例如,對(duì)R,G和B這三層像素所對(duì)應(yīng)的二維矩陣,分別選取各自的密匙KeyR,KeyG和KeyB為:keyR=(7,2,17,5),keyG=(1,2,2,5),keyB=(3,5,4,7)。在第5步中,對(duì)每一個(gè)子圖像都設(shè)計(jì)對(duì)應(yīng)的不相同的密匙KeyR,KeyG和KeyB,這樣可以進(jìn)一步增加加密的強(qiáng)度。
對(duì)經(jīng)過(guò)使用算法1的加密圖像進(jìn)行解密,其過(guò)程是算法1的逆過(guò)程,即首先分別提取加密圖像的R,G和B這三層經(jīng)過(guò)加密的像素層,然后分別使用加密時(shí)所用的密匙對(duì)各個(gè)像素層進(jìn)行Arnold逆變換,這樣就可以還原得到原圖像的各層像素,最后再把這三個(gè)像素層疊加起來(lái)就可以完整的還原并得到原圖像。
3 實(shí)驗(yàn)結(jié)果
對(duì)算法1,我們?cè)谔幚砥鳛?.0GHz的微型計(jì)算機(jī)上通過(guò)MATLAB編程進(jìn)行了實(shí)現(xiàn),并對(duì)一些彩色圖像進(jìn)行了實(shí)驗(yàn)。圖1使對(duì)256*256的測(cè)試圖像的實(shí)驗(yàn)結(jié)果。圖1(a)是lena圖像,圖1(b)是使用算法1對(duì)lena圖像進(jìn)行加密后的圖像,圖1(c)是對(duì)圖1(b)進(jìn)行解密還原后的原圖像。
圖1(d),圖1(e)和圖1(f)分別是對(duì)圖1(a)所提取的R層像素,G層像素和B層像素等的圖像。圖1(g),圖1(h)和圖1(i)分別是對(duì)圖1(d),圖1(e)和圖1(f)進(jìn)行加密后的圖像。
圖2(a)是Baboon圖像,圖2(b)是使用算法1對(duì)Baboon圖像進(jìn)行加密后的圖像,圖2(c)是對(duì)圖2(b)進(jìn)行解密還原后的原圖像。圖3(a)是Peppers圖像,圖3(b)是使用算法1對(duì)Peppers圖像進(jìn)行加密后的圖像,圖3(c)是對(duì)圖3(b)進(jìn)行解密還原后的原圖像。
這些實(shí)驗(yàn)結(jié)果說(shuō)明,本文的算法1具有良好的加密效果。由于在加密過(guò)程中所設(shè)置的參數(shù)較多,對(duì)圖像進(jìn)行了分塊,并且對(duì)各個(gè)子圖像的R,G,B這三層像素采用了各自的密匙進(jìn)行加密,因此這就大大增加了加密的強(qiáng)度,致使非法份子在僥幸竊取到傳輸?shù)募用軋D像時(shí)也難以得知原圖像的內(nèi)容。此外,由于該算法無(wú)需進(jìn)行迭代計(jì)算,因此它的時(shí)間復(fù)雜度相對(duì)較低,運(yùn)行速度較快,而且對(duì)加密的圖片規(guī)格大小無(wú)限制要求,這也說(shuō)明該算法具有較好的適用性。
4 結(jié)語(yǔ)
由于混沌系統(tǒng)所產(chǎn)生的混沌序列具有良好的密碼學(xué)特征,因此在圖像的加密過(guò)程中使用混沌序列可以提高加密算法的強(qiáng)度與效率。本文使用混沌映射Skew tent來(lái)對(duì)彩色圖像進(jìn)行隨機(jī)分塊,并使用Arnold變換對(duì)圖像的像素進(jìn)行處理,實(shí)現(xiàn)了對(duì)彩色圖像的加密,可以取得良好的加密效果。
參考文獻(xiàn)
[1] 洪媛,徐寧,涂興華.基于Logistic混沌的圖像實(shí)值加密[J].量子電子學(xué)報(bào),2018,35(2):149-155.
[2] 陳艷浩,劉中艷,周麗宴.基于差異混合掩碼與混沌Gyrator變換的光學(xué)圖像加密算[J].電子與信息學(xué)報(bào),2019,41(4):888-895.
[3] 王琳娟,張小英,郝稱意. 基于Arnold置亂和混沌加密的小波域數(shù)字水印算法[J].信息技術(shù),2018,42(11):49-53.
[4] 李琳,孔留勇.一種基于混沌的新型圖像加密算法[J].系統(tǒng)仿真學(xué)報(bào),2018,30(3):954-961.
[5] 黃迎久,杜永興,石煒.基于新的組合混沌映射的圖像加密算法[J].微電子學(xué)與計(jì)算機(jī),2019,36(5):47-52.
Research on Color Image Encryption Algorithms Based on Chaotic Random Blocking and Arnold Transform
CHEN Yi-hui
(College of Continuing Education, Chengdu University,Chengdu Sichuan? 610106)
Abstract:In order to encrypt the color image, this paper uses chaotic mapping to block the color image randomly at first, and encrypts the red, green and blue pixel layers of each sub-image using Arnold transform and different keys. Secondly, the three layers of encrypted pixels after Arnold transform are superimposed to form the encrypted image of each sub-image. The experimental results show that this method does not need iterative computation, so its time complexity is relatively low and its running speed is faster. Moreover, because the key space is expanded, the encryption intensity is higher.
Key words:Color image;encryption algorithms;chaotic mapping;Arnold transform.