一種基于二維元胞自動機的圖像置亂方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全領(lǐng)域中的圖像保密技術(shù),特別是一種基于二維元胞自動機的 圖像置亂方法。
【背景技術(shù)】
[0002] 數(shù)字圖像置亂是指將圖像攪亂,消除位置或灰度相關(guān)性,從而使人類或計算機系 統(tǒng)無法理解原始圖像所表達的真實含義。數(shù)字圖像的置亂技術(shù),可以看做數(shù)字圖像加密的 一種途徑,也可以用作數(shù)字圖像隱藏、數(shù)字水印圖像植入和數(shù)字圖像秘密共享的預(yù)處理和 后處理過程。
[0003] 常見的圖像置亂方法有Arnold變換、Fibonacci-Q變換、幻方變換、騎士巡游變 換、Hilbert曲線、混沌排序方法等。其中,以Arnold變換為代表的基于矩陣變換的圖像置 亂算法應(yīng)用最為廣泛,它們具有變換陣構(gòu)造簡單、置亂實現(xiàn)容易等特點。但缺點是Arnold 變換置亂后的圖像存在明顯的紋理效果,并且Arnold變換本身是一種擬仿射變換,具有線 性密碼學(xué)特性,導(dǎo)致其安全性較差。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的不足,而提供一種基于二維元胞自 動機的圖像置亂方法,與基于矩陣變換的圖像置亂方法相比,由于二維元胞自動機的演化 行為具有非線性的特點,使得本發(fā)明提出的方法不僅置亂效果好,而且安全性更高。
[0005] 本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0006] 根據(jù)本發(fā)明提出的一種基于二維元胞自動機的圖像置亂方法,包括以下步驟:
[0007] 步驟1,提取明文圖像的像素矩陣IMXN,M是圖像的寬度,N是圖像的高度,均以像 素計;
[0008] 步驟2,根據(jù)步驟1中明文圖像的高度和寬度,令二維元胞自動機水平方向元胞的 數(shù)量為M,二維元胞自動機垂直方向元胞的數(shù)量為N,設(shè)定一個大小為MXN個元胞的二維元 胞自動機;
[0009] 步驟3,設(shè)定二維元胞自動機的迭代規(guī)則;
[0010] 步驟4,二維元胞自動機的每個元胞在t = 0時刻的狀態(tài)由隨機數(shù)發(fā)生器產(chǎn)生,t =〇時刻所有成活元胞的集合記為Q1,然后二維元胞自動機依據(jù)步驟3設(shè)定的迭代規(guī)則進 行η步迭代;
[0011] 步驟5,令集合Z為二維元胞自動機內(nèi)所有元胞都是成活狀態(tài),(^為二維元胞自動 機迭代到第i步時所有成活元胞的集合,1彡i彡n,S i= U A為二維元胞自動機迭 代到第i步時所有成活過的元胞的集合,U為集合的并運算,則圖像置亂步驟如下:
[0012] 步驟5a :建立二維元胞自動機中元胞與明文圖像中像素點的--映射;
[0013] 步驟5b :將二維元胞自動機t = 0時刻中狀態(tài)為1的元胞對應(yīng)的像素點按掃描線 順序排列在置亂圖像坐標空間內(nèi);
[0014] 步驟5c :二維元胞自動機迭代到第i步時,將Si-Sp1集合中的元胞對應(yīng)的像素點 按掃描線順序排列在置亂圖像坐標空間內(nèi),-是兩個集合的差運算;
[0015] 步驟5d :二維元胞自動機迭代到第η步時終止,則將2_5"集合中的元胞對應(yīng)的像 素點按照掃描線順序排列在置亂圖像坐標空間內(nèi),至此置亂結(jié)束,置亂后的圖像記為P 1;
[0016] 步驟6,將置亂后的圖像?1作為明文圖像并繼續(xù)重復(fù)執(zhí)行步驟5-次,得到最終置 亂后的圖像P 2,至此完成全部兩輪圖像置亂。
[0017] 作為本發(fā)明所述的一種基于二維元胞自動機的圖像置亂方法進一步優(yōu)化方案,所 述步驟2中該二維元胞自動機每個元胞具有活和死兩個狀態(tài),分別用1和0表示,每個元胞 與其上下左右以及對角線上的元胞組成一個3 X 3的Moore鄰域;對二維元胞自動機邊界上 的元胞進行周期型邊界處理:第〇行元胞的狀態(tài)值等于第N行元胞的狀態(tài)值,第Ν+1行元胞 的狀態(tài)值等于第1行元胞的狀態(tài)值,第〇列元胞的狀態(tài)值等于第M列元胞的狀態(tài)值,第Μ+1 列元胞的狀態(tài)值等于第1列元胞的狀態(tài)值。
[0018] 作為本發(fā)明所述的一種基于二維元胞自動機的圖像置亂方法進一步優(yōu)化方案,所 述步驟3中的迭代規(guī)則為B3/S1234。
[0019] 作為本發(fā)明所述的一種基于二維元胞自動機的圖像置亂方法進一步優(yōu)化方案,所 述迭代規(guī)則具體如下:若一個狀態(tài)為0的元胞,當它的Moore鄰域中有3個元胞的狀態(tài)為1, 那么在下一時刻,該元胞的狀態(tài)為1 ;若一個狀態(tài)為1的元胞,當它的Moore鄰域中有1個 或2個或3個或4個元胞的狀態(tài)為1,那么在下一時刻,該元胞的狀態(tài)仍為1 ;否則,不論該 元胞的當前狀態(tài)為〇或1,下一時刻均為0。
[0020] 作為本發(fā)明所述的一種基于二維元胞自動機的圖像置亂方法進一步優(yōu)化方案,所 述步驟5a中建立二維元胞自動機中元胞與明文圖像中像素點的--映射,具體如下:坐標 位置為(1,1)的元胞對應(yīng)坐標位置為(1,1)的像素點,坐標位置為(1,2)的元胞對應(yīng)坐標 位置為(1,2)的像素點,…,坐標位置為(M,N)的元胞對應(yīng)坐標位置為(M,N)的像素點。
[0021] 本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
[0022] 本發(fā)明與基于矩陣變換的圖像置亂方法相比,采用二維元胞自動機實現(xiàn)圖像置 亂,不僅能夠避免初等矩陣變換的擬仿射特性,而且圖像置亂效果不具有的明顯紋理特性, 本發(fā)明具有好的置亂效果和安全性。
【附圖說明】
[0023] 圖1是本發(fā)明的流程框圖。
[0024] 圖2是實施例1中的明文圖像。
[0025] 圖3是實施例1中的二維元胞自動機的初始狀態(tài)。
[0026] 圖4a是實施例1中二維元胞自動機迭代1步結(jié)果。
[0027] 圖4b是實施例1中二維元胞自動機迭代2步結(jié)果。
[0028] 圖4c是實施例1中二維元胞自動機迭代3步結(jié)果。
[0029] 圖4d是實施例1中二維元胞自動機迭代4步結(jié)果。
[0030] 圖4e是實施例1中二維元胞自動機迭代5步結(jié)果。
[0031] 圖5是實施例1中圖像置亂算法中步驟5b的置亂結(jié)果。
[0032] 圖6是實施例1中最終的置亂圖像。
[0033] 圖7是實施例2中的明文圖像。
[0034] 圖8是實施例2中的二維元胞自動機的初始狀態(tài)。
[0035] 圖9是實施例2中最終的置亂圖像。
[0036] 圖IOa是添加椒鹽噪聲后的密文圖像。
[0037] 圖IOb是圖IOa的恢復(fù)結(jié)果。
[0038] 圖Ila是添加高斯噪聲后的密文圖像。
[0039] 圖Ilb是圖IOa的恢復(fù)結(jié)果。
[0040] 圖12a是剪切密文圖像部分數(shù)據(jù)后的圖像。
[0041] 圖12b是圖Ila的恢復(fù)結(jié)果。
【具體實施方式】
[0042] 下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:
[0043] 下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始 至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過 參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。 [0044] 本技術(shù)領(lǐng)域技術(shù)人員可以理解的是,除非另外定義,這里使用的所有術(shù)語(包括 技術(shù)術(shù)語和科學(xué)術(shù)語)具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。 還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文 中的意義一致的意義,并且除非像這里一樣定義,不會用理想化或過于正式的含義來解釋。
[0045] 下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:
[0046] 本發(fā)明設(shè)計一種基于二維元胞自動機的圖像置亂方法,流程框圖如圖1所示,本 發(fā)明中原始圖像通過兩輪圖像置亂就能達到非常滿意的置亂效果,實現(xiàn)了圖像的高效置 亂。此外,本方法抗攻擊能力強,能抵抗一定的剪切和噪聲的攻擊。
[0047] 本發(fā)明的實施例采用Mathematica 8軟件進行仿真,下面給出本發(fā)明的兩個實施 例:
[0048] 實施例1 :
[0049] 明文圖像選用大小為15X 10的彩色圖像,彩色圖像的每一個像素由24比特組成, 如圖2所示。
[0050] 實施例1的圖像置亂的具體實施步驟如下:
[0051] 步驟1 :提取明文圖像的像素矩陣I15xitl,圖像的寬度為15個像素,圖像的高度為 10個像素;
[0052] 步驟2,根據(jù)步驟1中明文圖像的高度和寬度,定義一個大小為15X 10個元胞的 二維元胞自動機,每個元胞具有活和死兩個狀態(tài),分別用1和〇表示,每個元胞與其上下左 右以及對角線上的元胞組成一個3X3的Moore鄰域,由于二維元胞自動機邊界上的元胞沒 有完整的Moore鄰域,因此需要進行合理的邊界處理,在這里我們做如下周期型邊界處理: 第〇行元胞的狀態(tài)值等于第10行元胞的狀態(tài)值,第11行元胞的狀態(tài)值等于第1行元胞的 狀態(tài)值,第0列元胞的狀態(tài)值等于第15列元胞的狀態(tài)值,第16列元胞的狀態(tài)值等于第1列 元胞的狀態(tài)值;
[0053] 步驟3,設(shè)定二維元胞自動機的迭代規(guī)則為B3/S1234,規(guī)則描述如下:若一個狀態(tài) 為O的元胞,當它的Moore鄰域中有3個元胞的狀態(tài)為1,那么在下一時刻,該元胞的狀態(tài)為 1 ;若一個狀態(tài)為1的元胞,當它的Moore鄰域中有1個或2個或3個或4個元胞的狀態(tài)為 1,那么在下一時刻,該元胞的狀態(tài)仍為1 ;否則,不論該元胞的當前狀態(tài)為0或1,下一時刻 均為〇 ;
[0054] 步驟4,二維元胞自動機的每個元胞在t = 0時刻的狀態(tài)由隨機數(shù)發(fā)生器產(chǎn)生,如 圖3所示,圖3中黑色方塊表示活的元胞(狀態(tài)值為1的元胞),白色方塊表示死的元胞(狀 態(tài)值為〇的元胞),t = 0時刻所有成活元胞的集合記為Ctl,然后二維元胞自動機依據(jù)B3/ S1234規(guī)則進行5步迭代,每步迭代結(jié)果如