天天看點

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

1 引言

随着多媒體技術的迅速發展和網絡帶寬限制的放松,越來越多的數字圖象在網絡上傳輸,這些圖象資訊有些無關緊要,有些卻至關重要,它們有可能涉及到個人的隐私、公司的利益、國家的安全,其價值無法衡量。另一方面,網絡的普及使得任何人都有可能接觸到其中的資訊,并從中搜集,而無論這種搜集是善意還是惡意、合法還是非法,這就使得在網絡上傳輸圖象的安全性倍受關注,對圖象進行加密也就成為重要的研究方向。

目前,資訊隐藏與僞裝技術是一個非常重要而又非常活躍的研究領域,而圖象的置亂技術既可作為一種常見的圖象加密方法,又可作為進一步隐藏圖象資訊的預處理,是一種值得深入研究的課題。已有很多文獻提出了圖象置亂的方法,如文獻提到的Arnold變換,文獻提出的排列變換,文獻提出的Fibonacci變換,這些置亂變換置亂圖象後的直覺效果各不相同,但其計算時間複雜度是基本一緻的,因為它們均存在取模(mod)運算,使得在作置亂時較費時。文章首先分析了Arnold變換、排列變換、Fibonacci變換的不足,然後基于仿射變換,提出了一類新的數字圖象置亂變換,該變換不含取模運算,隻含加、減、乘運算,進而使得計算時間較快。在文章的第三部分,提出了一個猜想,并給出了猜想的計算機驗證示例。最後進行了總結,指出了今後的研究方向。

2 Arnold變換、排列變換、Fibonacci變換的不足

Arnold變換是Arnold在周遊理論研究中提出的一種變換,對于正方形的數字圖象來說,使用離散化的Arnold變換,其定義為:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

其中N為圖象的高度和寬度的象素數。

文獻給出排列變換的定義為:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

其中{ad-bc=±1, a, b, c, deZ} ,當a=b=c=1, d=2時就是Arnold變換。當a=b=c=1, d=0時就是文獻[3] 提到的Fibonacci變換。它們的共同點是,均采用了取模的運算,以此來保證變換後的象素位置(x’,y’)不超過所給圖象的區域邀(x,y):0≤x≤N-1,0sy≤N-1妖。這就帶來了兩點不足:(1)置亂時較費時;(2) 除Arnold變換的逆變換易求出外, 其餘變換的逆變換不易求出。

一幅數字圖像可用一矩陣A=邀a(i, j) 妖NxN表示, 其中a(ij) 表示圖像在第i行j列象素處的灰階值(或RGB分量值) 。

數字圖象的置亂原理是:将原來點(x, y) 處象素對應的灰階值或RGB顔色值移動到變換後的點(x’, y’) 處。如果對一個數字圖象疊代地使用離散化後的Arnold變換、排列變換、Fibonacci變換, 即将(1) 或(2) 式左端的(x’, y’) 作為下一次相應變換的輸入, 則可重複這個過程一直作下去。當疊代到某一步時,如果出現的圖象的各種灰階值或RGB值均勻分布在圖象所在的區域:邀(x, y) :0≤x≤N-1, 0sy≤N-1妖, 則圖象的資訊将完全被掩蓋, 達到了圖象加密的目的。

3 仿射變換

仿射變換的一般形式為:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

為便于與Arnold變換、排列變換、Fibonacci變換對照,将它寫成矩陣的形式為:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

雖然對于平面仿射變換由三對對應點代入(3)後就可完全确定,但由于目的是要用它作圖象的置亂。是以對仿射變換還有特殊的要求,即:要尋找恰當的a,b,c,d,e,f使得:(1)變換是區域邀(x,y):1≤x≤N,1≤y≤N妖到其自身的單映射;(2)變換是區域邀(x,y):1≤x≤N,1≤y≤N妖到其自身的滿映射。根據文獻[5]中所指出的,可将仿射變換分解成:運動變換、斜對稱變換、相似變換、壓縮(拉伸)變換、正交變換、剪移等變換的組合,進而可求得滿足要求(1)和(2)的一系列解。求得的a,b,c,d,e,f可看作圖象置亂加密的密鑰,這裡僅給出一個所求得的仿射變換,如下所示。

當x<y時:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

當x≥y時:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

該變換避免了取模運算,其中隻有加、減、乘運算,不僅降低了其計算難度,而且也使求其逆變換變得容易,其逆變換為:

當x’+y’≤N+1時:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

當x’+y’>N+1時:

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

沒有逆變換,可以通過求出周期T(重複變換T次回到原始圖象),進行疊代T次獲得圖象解密。對Arnold變換,T通常是比較大的[3],如對256×256象素圖象T=192。這固然給敵方破譯圖象秘密增加了難度,但同時也給自己的解密增加了不必要的計算,對某些實時性要求高的系統帶來不變。有了逆變換的好處在于,知道了圖象置亂加密的密鑰後,可立即進行解密,沒有必要進行大數量的疊代運算。

【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】
【圖像加密】基于matlab仿射變換數字圖象置亂【含Matlab源碼 1171期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.