天天看點

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

0 引言

随着通訊技術的飛速發展, 越來越多的領域需要傳送數字圖像信号, 是以資訊的傳送安全問題顯得越來越重要。通常應用于數字圖像通信的兩種保護技術為:數字水印技術和圖像加密技術。前一種保護技術因不改變圖像的可見性而不适合用于保密圖像的傳送。後一種技術通過加密操作, 改變圖像的可見性, 使原來的圖像成為不可辨識的, 而隻能通過相應的解密算法得到原始圖像。随着通訊技術的發展, 圖像加密技術因其具有良好的保密性而得到越來越廣泛的應用。

在加密算法中需要一個随機序列發生器。由于離散的混沌系統容易實作, 同時混沌系統對參數和初始條件極其敏感, 把其作為密鑰, 則系統具有優良的密碼特性, 同時它在二維相平面内的不規則性使其更适用于圖像加密。

本文應用離散混沌動力系統, 針對圖像資料的存儲特點, 設計了一種圖像加密算法。所有的密鑰都由離散混沌映射産生, 是以算法沒有因為增加密鑰設定而影響加密/解密的效率和速度。由于利用了混沌映射, 增加了破譯難度, 提高了安全性, 仿真結果表明該算法能夠有效地實作對數字圖像數的加密/解密。

1 正交拉丁方置亂

1.1 基本概念

定義1由元素1, 2, 3,…,n構成一個n×n的方陣(aij) n×n,使得每行每列中各元素恰好隻出現一次,這樣的方陣叫做n階拉丁方。

定義2設A=(aij) n×n, B= (bij) n×n是兩個n×n的拉丁方,若方陣( (aij, bij) )n×n中的n2個偶對(aij, bij)互不相同,i, j=1, 2,…,n,則稱A與B為互相正交拉丁方,或稱A與B為n階正交拉丁方。

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

則由A、B構成3×3的偶對方陣

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

其中沒有相同的元素,故A與B是三階正交拉丁方。

1.2 相關定理

定理1互相正交的n階拉丁方的個數不超過n-1個,即若A1, A2,…,Ak是兩兩正交的n階拉丁方,則k≤n-1。

定理2設n≥3且n=pα,p為一個素數,α是一個正整數,則存在n-1個正交的n階拉丁方A1, A2,…,An-1,且設

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

定理3若A1, A2,…,Am為兩兩正交的拉丁方組,且設

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】
【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

1.3 基于正交拉丁方的數字圖像置亂

圖像置亂起源于密碼學早期所使用的一些密碼算法,功能是将圖像中像素的位置重新排列,将原始圖像變換成一個雜亂無章的新圖像,要恢複原始圖像必須保證原始圖像與變換圖像之間的變換是1-1映射(雙射),而正交拉丁方正好具備該性質。具體方法是:

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

由定理3知,對于3維空間中的圖像,利用正交拉丁方同樣能達到數字圖像置亂的目的,由于正交拉丁方組中含有n-1個互相正交的拉丁方,故這種圖像置亂方法有n (n-1) 種。而對于三維圖像則有n (n-1) (n-2) 種。

1.4 新的圖像加密算法

文中提出的算法其主要思想是:根據Logistic映射,利用密鑰x0, μ産生混沌序列xk,由xk生成灰階置亂矩陣G*,利用矩陣G*對原圖像加密後再對其應用基于正交拉丁方的置亂,完成對圖像的雙重加密。完整的置亂和複原算法如圖1所示。

算法采用異或運算對像素值進行改變是因為異或運算在數學上可逆,可實作算法的逆操作。步驟如下:

(1)根據Logistic映射,利用密鑰μ, x0。生成一組混沌序列xk, 從xr (r>0) 開始取M×N個元素構成M×N的矩陣B, B (i, j) ∈[0, 1]。将B (i, j) 按式 (7) 變換生成加密矩陣C, C (i, j) ∈[0, 255]。

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

(2)原始圖像矩陣為A,把A中每個像素的像素值 (i, j) 與C (i, j) 作異或運算,得到一級加密圖像M。

(3)對圖像M進行正交拉丁方置亂變換,得到最終加密圖像I*。解密過程剛好是加密隐藏的逆過程。

(4)對圖像I*進行正交拉丁方逆變換, 得到圖像M。

(5)根據一維Logistic函數、參數及初始值,得到一維随機序列,形成加密矩陣C。

(6)加密矩陣C與圖像M作異或運算,得到原始圖像矩陣A。

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

圖1 加密算法模型

【圖像加密】基于matlab GUI正交拉丁方置亂算法圖像加解密【含Matlab源碼 182期】

1 matlab版本

2014a

2 參考文獻

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

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

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

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