圖像像素值置換加密技術(shù)
大家都知道憶阻細(xì)胞自動(dòng)機(jī)是一種全新的細(xì)胞自動(dòng)機(jī),它的響應(yīng)會(huì)引起細(xì)胞狀態(tài)和細(xì)胞問(wèn)鏈接狀態(tài)的變化。我們?cè)诜治隽藨涀杓?xì)胞自動(dòng)機(jī)中的細(xì)胞問(wèn)鏈接狀態(tài)豐富變化的基礎(chǔ)上,設(shè)計(jì)了一種全新的圖像加密算法:以一個(gè)WXH的憶阻自動(dòng)機(jī)陣列為公鑰,以細(xì)胞的初始狀態(tài)和細(xì)胞迭代次數(shù)為私鑰,將細(xì)胞與相鄰細(xì)胞間的一紐鏈接狀態(tài)加權(quán)后設(shè)置成加密矩陣,同時(shí)采用像素王換方法對(duì)數(shù)字圖像文件進(jìn)行加密。
一、基于憶阻細(xì)胞自動(dòng)機(jī)的數(shù)字圖像加密算法
1、演化規(guī)則的設(shè)定
憶阻自動(dòng)機(jī)是一種以動(dòng)態(tài)激勵(lì)結(jié)構(gòu)的細(xì)胞自動(dòng)機(jī),每個(gè)細(xì)胞通過(guò)鏈接獲得與它鄰近細(xì)胞的信息。每個(gè)細(xì)胞的狀態(tài)更新取決于它緊鄰且彼此間鏈接是導(dǎo)通的那些細(xì)胞的狀態(tài),且每個(gè)細(xì)胞都通過(guò)同樣的規(guī)則同步更新自己的狀態(tài)。憶阻細(xì)胞自動(dòng)機(jī)的細(xì)胞有3種狀態(tài):休眠狀態(tài)、激勵(lì)狀態(tài)和抑止?fàn)顟B(tài)。每個(gè)鏈接有導(dǎo)通和截止兩種狀態(tài),用狀態(tài)0和狀態(tài)1表示。每個(gè)鏈接的狀態(tài)更新取決于它所連接的細(xì)胞狀態(tài)。讓u(x)= {y:|x-y|l00 =1}是元胞x的鄰居。細(xì)胞x的一組輸入鏈接{lxy:y∈u(x)}中,只有xt,yt∈(十,一)且xt=+、yt=-時(shí)鏈接lxy是導(dǎo)通的,反向的lyx則為截止的。
這里采用兩種方法來(lái)計(jì)算活躍鄰居細(xì)胞的加權(quán)和。
這里,當(dāng)yt=+時(shí),x(yt+)=1,其余情況下x(y=+) =0。
因此,我們考慮兩種類(lèi)型的憶阻自動(dòng)機(jī)。如果σ+>0,則自動(dòng)機(jī)A為休眠細(xì)胞被激活。如果∑+>1或σ+>0,則自動(dòng)機(jī)A2為休眠細(xì)胞被激活。
Ai01(i-l或2)細(xì)胞自動(dòng)機(jī)在響應(yīng)激勵(lì)的同時(shí),在激勵(lì)傳播方向上的鏈接會(huì)轉(zhuǎn)換為抑止?fàn)顟B(tài)。同理我們可以知道,Ai1o細(xì)胞自動(dòng)機(jī)在響應(yīng)激勵(lì)的同時(shí),在激勵(lì)傳播反方向上的鏈接會(huì)轉(zhuǎn)換為抑止?fàn)顟B(tài)。
2、數(shù)字圖像的加密算法設(shè)計(jì)
憶阻細(xì)胞自動(dòng)機(jī)是二維細(xì)胞自動(dòng)機(jī),細(xì)胞分布在無(wú)窮大平面的格點(diǎn)上,而一般的圖像都是有限長(zhǎng)和有限寬的,這樣為了在圖像上應(yīng)用憶阻細(xì)胞自動(dòng)機(jī),必須在技術(shù)上做一些處理。解決的方法是將自動(dòng)機(jī)看作一個(gè)拓?fù)淦矫妫凑J(rèn)為圖像的上下左右邊界都是吸收邊界,亦即當(dāng)細(xì)胞自動(dòng)機(jī)的響應(yīng)傳遞到邊界上時(shí),邊界的細(xì)胞不產(chǎn)生響應(yīng),就好像激勵(lì)被吸收了一樣。這樣我們就只用考慮圖像的中間點(diǎn)有8個(gè)鄰居,邊界的細(xì)胞都默認(rèn)處于休眠狀態(tài),不參與響應(yīng)。
我們首先建立—個(gè)A101細(xì)胞自動(dòng)機(jī)模塊,如圖1所示。
對(duì)它施加激勵(lì),待經(jīng)過(guò)一段時(shí)間的響應(yīng)達(dá)到平衡之后,細(xì)胞間的鏈接狀態(tài)會(huì)產(chǎn)生很大的變化,然后將圖1(e)鏈接狀態(tài)賦值給A201細(xì)胞自動(dòng)機(jī)模塊,如圖2所示,施加激勵(lì)響應(yīng)一段時(shí)間。然后,經(jīng)過(guò)兩種細(xì)胞自動(dòng)機(jī)特有的初始狀態(tài)響應(yīng),細(xì)胞間將會(huì)出現(xiàn)獨(dú)特的連接狀態(tài),如圖2(e)所示。其中黑色細(xì)胞表示激活狀態(tài),灰色細(xì)胞表示抑止?fàn)顟B(tài),白色細(xì)胞表示休眠狀態(tài),箭頭表示細(xì)胞間連接的導(dǎo)通狀態(tài)。
這里,我們知道每?jī)蓚€(gè)細(xì)胞間的鏈接都是雙向的,如果把通向代表同一個(gè)細(xì)胞x(3,3)的所有鏈接lux(w為x周?chē)従拥奈恢?定義為一組,就相當(dāng)于定義了整個(gè)細(xì)胞自動(dòng)機(jī)的所有鏈接。然后按照鏈接狀態(tài)O為阻斷、1為導(dǎo)通,將細(xì)胞x(i,j)的所有鏈接按圖3的lx1-lx2的順序從高位到低位排列為一個(gè)8位二進(jìn)制數(shù),再把該二進(jìn)制數(shù)轉(zhuǎn)化為一個(gè)十進(jìn)制數(shù),這樣通過(guò)圖2(e)中x(3,3)來(lái)分析細(xì)胞與周?chē)従拥逆溄?見(jiàn)圖3)。
這樣,對(duì)應(yīng)要加密的圖像,我們按照其像素多少生成兩個(gè)二維憶阻細(xì)胞自動(dòng)機(jī)陣列。憶阻細(xì)胞自動(dòng)機(jī)中的每個(gè)細(xì)胞都會(huì)有一組鏈接響應(yīng),可對(duì)應(yīng)于需加密圖像的像素點(diǎn)產(chǎn)生一個(gè)數(shù)據(jù)矩陣,而每一個(gè)非邊界細(xì)胞都有8條通向自己的鏈接,所代表的二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制有O~255種可能,且每個(gè)細(xì)胞的鏈接狀態(tài)都會(huì)有很大差異,因此使用憶阻細(xì)胞自動(dòng)機(jī)的鏈接來(lái)進(jìn)行圖像加密十分可靠。
二、圖像加密數(shù)值仿真實(shí)驗(yàn)
以灰度圖像為例,說(shuō)明如何使用憶阻細(xì)胞自動(dòng)機(jī)對(duì)圖像加密,對(duì)于W×H的灰度圖像,首先生成W×H的二維憶阻細(xì)胞自動(dòng)機(jī)陣列,然后采用兩個(gè)初始狀態(tài)D1和D2對(duì)憶阻細(xì)胞自動(dòng)機(jī)進(jìn)行兩次激勵(lì),激勵(lì)響應(yīng)的次數(shù)組和如由加密方和解密方共同約定(注意;抑止太小,至少要等于W或H中最小者的1/2,否則會(huì)影響保密性),響應(yīng)后得到的獨(dú)特鏈接狀態(tài)值和目標(biāo)圖像像素異或就可用于圖像的加密和解密。
1、仿真實(shí)驗(yàn)
對(duì)200×188的灰度圖像lena(如圖4所示)進(jìn)行加密時(shí)首先生成兩個(gè)200X188的二維憶阻細(xì)胞自動(dòng)機(jī)陣列,建立一個(gè)A101細(xì)胞自動(dòng)機(jī)模塊,對(duì)它施加激勵(lì),待經(jīng)過(guò)一段輪次的響應(yīng)達(dá)到平衡之后,細(xì)胞間的鏈接狀態(tài)會(huì)產(chǎn)生很大的變化(選用有圖像像素點(diǎn)數(shù)目0.08%的細(xì)胞為激活狀態(tài)初始配置的初始激勵(lì),并設(shè)定激勵(lì)響應(yīng)次數(shù)t1=t2=100)。然后將細(xì)胞間的鏈接狀態(tài)賦值給A901細(xì)胞自動(dòng)機(jī)模塊,再施加t2次激勵(lì)響應(yīng)。這時(shí),經(jīng)過(guò)兩種細(xì)胞自動(dòng)機(jī)特有的初始狀態(tài)響應(yīng),細(xì)胞間將會(huì)出現(xiàn)獨(dú)特的鏈接狀態(tài),如圖5所示。然后把圖4和圖5相同位置的像素異或得出加密后的圖像,如圖6所示,再把加密后的密圖(見(jiàn)圖6)發(fā)送給接收方。
在進(jìn)行解密時(shí),接受方按照生成細(xì)胞自動(dòng)機(jī),同時(shí)采用相同激勵(lì)和響應(yīng)次數(shù)進(jìn)行操作,然后將得到的鏈接轉(zhuǎn)化圖與得到的加密圖像進(jìn)行像素異或,即可得到解密后的圖像,如圖7所示,它與原始圖像(見(jiàn)圖4)完全相同。
這里可以看到,實(shí)驗(yàn)中的加密算法和解密算法實(shí)際上是分別用憶阻細(xì)胞自動(dòng)機(jī)系統(tǒng)進(jìn)行的完全相同的兩次迭代處理產(chǎn)生的。憶阻細(xì)胞自動(dòng)機(jī)動(dòng)力學(xué)中的零誤差特性產(chǎn)生完全同步的結(jié)果,為本實(shí)驗(yàn)的可行性提供了良好的數(shù)據(jù)支持。
2、安全性分析
1)密鑰量大
在圖像加密時(shí),選取圖像像素點(diǎn)數(shù)目0.08%的細(xì)胞為激活狀態(tài)的初始配置。以188×200的lena圖為例,需選擇30個(gè)像素點(diǎn)的細(xì)胞為激活狀態(tài),則選擇一組初始狀態(tài)的密鑰選取有C3760a種可能,那么兩次迭代所選取的密鑰量將會(huì)達(dá)到10zoo,再加上兩次迭代時(shí)間的選擇,將使得整個(gè)算法的密鑰空間非常大,保密性更強(qiáng);而由于憶阻細(xì)胞自動(dòng)機(jī)的同步運(yùn)行特性,使得龐大的密鑰空間對(duì)加密和解密速度卻沒(méi)有太大的影響,且使用蠻力搜索攻擊將遭遇不可思議的困難,對(duì)相同大小圖像,這個(gè)密鑰量遠(yuǎn)大手中臧鴻雁等基于離散混沌系統(tǒng)廣義同步定理的數(shù)字圖像加密方案的1076的密鑰量,也大于朱從旭等使用一種基于廣義Chen氏混沌系統(tǒng)的圖像加密算法的1044的密鑰量。
2)擴(kuò)散性好
在加密和解密過(guò)程中,所產(chǎn)生的效果由系統(tǒng)中初始激活細(xì)胞的位置即密鑰決定。從憶阻細(xì)胞自動(dòng)機(jī)的動(dòng)力學(xué)特性的式(1)和式(2)可以得到,憶阻細(xì)胞自動(dòng)機(jī)進(jìn)行迭代時(shí),每個(gè)細(xì)胞的狀態(tài)變化取決于與之相鄰的細(xì)胞以及之間鏈接的狀態(tài)。因此,初始狀態(tài)的每一個(gè)激活細(xì)胞都會(huì)如圖1和圖2所示向周?chē)鷶U(kuò)張自己的影響。因此在初始時(shí)激活細(xì)胞位置的改變,將會(huì)在迭代記次后影響到鄰近大范圍細(xì)胞的狀態(tài),同時(shí),我們也可以知道,細(xì)胞間的鏈接狀態(tài)在迭代過(guò)程中與細(xì)胞狀態(tài)息息相關(guān),也就是說(shuō)加密數(shù)據(jù)的產(chǎn)生與初始狀態(tài)的激勵(lì)緊密聯(lián)系,即不同初始狀態(tài)的系統(tǒng)在經(jīng)過(guò)兩輪設(shè)定的迭代次數(shù)后,逐步形成的鏈接狀態(tài)將會(huì)產(chǎn)生驚人的不同,這就為我們的圖像加密提供了良好的加密數(shù)據(jù)。
選用另一組初始細(xì)胞狀態(tài)作為密鑰,經(jīng)過(guò)相同次數(shù)的迭代后生成的鏈接轉(zhuǎn)化圖像如圖8所示。圖9即為第一次實(shí)驗(yàn)的加密數(shù)據(jù)與第二次試驗(yàn)的解密數(shù)據(jù)相作用后的解密效果圖。可以看到,選擇不相同的初始狀態(tài)所得到的解密數(shù)據(jù)無(wú)法解開(kāi)加密圖像。
3)統(tǒng)計(jì)特性
通常來(lái)說(shuō),每張圖片都有自己的統(tǒng)計(jì)特性,如果圖像的像素置換效果不好,可通過(guò)像素的統(tǒng)計(jì)特性進(jìn)行破解,我們分析了原始圖片和加密圖片的統(tǒng)計(jì)特性(見(jiàn)圖10)。
可以看出,經(jīng)過(guò)加密后的像素能夠被較均勻地轉(zhuǎn)換,原圖像的像素統(tǒng)計(jì)特性已經(jīng)被完全改變,降低了原圖像與加密后圖像的相關(guān)性,增強(qiáng)了系統(tǒng)的抗破解能力。
小知識(shí)之細(xì)胞自動(dòng)機(jī)
細(xì)胞自動(dòng)機(jī)(cellular automata)為模擬包括自組織結(jié)構(gòu)在內(nèi)的復(fù)雜現(xiàn)象提供了一個(gè)強(qiáng)有力的方法。細(xì)胞自動(dòng)機(jī)模型的基本思想是:自然界里許多復(fù)雜結(jié)構(gòu)和過(guò)程,歸根到底只是由大量基本組成單元的簡(jiǎn)單相互作用所引起。因此,利用各種細(xì)胞自動(dòng)機(jī)有可能模擬任何復(fù)雜事物的演化過(guò)程。



