?

基于Matlab的數字圖像處理綜合設計性實驗

2018-12-05 02:45龔黎華朱啟標周志洪周南潤
實驗技術與管理 2018年11期
關鍵詞:加密算法解密密鑰

龔黎華, 朱啟標, 周志洪, 周南潤, 2

(1. 南昌大學 電子信息工程系, 江西 南昌 330031;2. 上海市信息安全綜合管理技術研究重點實驗室, 上海 200240; 3. 上海交通大學 網絡空間安全學院, 上海 200240)

1 現有數字圖像處理實驗的不足

現有數字圖像處理實驗項目內容陳舊,有現成的程序,學生將代碼直接敲入運行即可,實踐教學效果很差, 造成學生對所學知識碎片化,缺乏整體知識框架,影響教學效果。李慶嶸提出應用分層教學方法,要求學生自行設計實驗方案并且自己編程實現相關算法[7],一些初涉及圖像處理領域的學生感到舉步維艱。采用翻轉課堂模式,對于部分學生來說,由于缺少自學,導致課堂上不愿參與,影響教學效果[8]。如果以應用為導向進行教學,能夠激發學生的學習興趣,但是時間上的充裕度和學習小組的協調配合度又對教學效果存在影響[9]。此外,當學生面對數字圖像處理相關的實際問題時,常常無法找到問題的切入點,從而無法有效地發揮學生應用知識與創新能力[10]。另外,現有的大多數數字圖像處理實驗的內容存在重復現象,浪費寶貴的時間,不利于學生的實踐創新能力培養。

2 基于Matlab平臺的數字圖像處理綜合設計性實驗案例

2.1 實驗原理

2.1.1 分數梅林變換

分數梅林變換的定義主要有兩類,第一類定義為

(1)

信號f(eu)exp(iu2cotα/2)的分數傅里葉變換為:

(2)

作變量代換eu=x可得

F-α{f(eu)exp(iu2cotα/2)}=exp(-it2cotα/2)Mα(t)

(3)

第二類定義為

(4)

對數—極坐標變換定義為

(5)

2.1.2 基于分數梅林變換的圖像加密算法

基于分數梅林變換的圖像加密算法步驟如下:

(1) 輸入由N個環形子圖像fi(x,y)組成的圖像f(x,y),i=1,2,…,N。 當N=6時,如圖1所示。f1(x,y)是半徑為r1的圓,fj(x,y)是內半徑為rj-1、外半徑為rj的環域,j=2,3,…,6。

圖1 由6幅子圖像組成的f(x,y)

(2) 對圖像fi(x,y)進行pi階分數梅林變換得到一系列復值圖像gi(x,y)。

gi(x,y)=M(pi,pi)(fi(x,y)),i=1,2,…,N

(6)

其中M(pi,pi)(·)表示二維分數梅林變換,pi為分數梅林變換的階次。

(3) 對復值圖像gi(x,y)進行如下迭代加密:

① 將復值圖像gi(x,y)的幅度信息調制為相位信息,即:

Ai(x,y)=|gi(x,y)|

(7)

Φi(x,y)=Arg[gi(x,y)]

(8)

其中|·|和Arg[·]分別表示取幅度信息和取相位信息。

Bi(x,y)exp[iφi(x,y)]=

(9)

其中Bi(x,y)和φi(x,y)分別表示幅度和相位,Fq{·}表示q階分數傅里葉變換。

③ 對φi(x,y)執行加密運算:

θi(x,y)=φi(x,y)-ψi(x,y)

(10)

其中ψi(x,y)=ξi-1(x,y)-2π·Ai(x,y)/360,θi(x,y)為密鑰。

④ 將ψi(x,y)加上θi(x,y)所得的結果編碼為相位信息,并聯合幅度信息Bi(x,y)一起進行分數傅里葉變換。

Ci(x,y)exp[iξi(x,y)]=

(11)

以Ci(x,y)代替式(9)中的Ci-1(x,y),并以ξi(x,y)代替ξi-1(x,y),執行下一輪迭代。循環迭代直到第N-1次迭代結束,得到密文C(x,y)=CN(x,y)exp[iξN(x,y)]

圖像解密是加密的逆過程,不再贅述。

2.1.3 圖像加密算法性能評價指標

(1) 灰度直方圖?;叶戎狈綀D描述了數字圖像中不同灰度級像素出現的頻率,經常用來評價圖像加密算法的加密效果。一種好的圖像加密算法,應該能夠使不同原始圖像的密文圖像的像素值具有均勻分布的特性。

(2) 相鄰像素間相關性。相鄰像素間相關性是指數字圖像中的像素在水平方向、豎直方向和對角方向的相鄰像素間的相關程度的統計。一般來說,相關性越高,該值越近似于1。而一個有效的加密算法可以使加密圖像的相鄰像素間的相關性遠低于原始圖像。這種相關性可以用相關性系數來定義:

(12)

(3) 密鑰敏感性。對于數字圖像加密而言,有效的加密算法要求利用某個范圍內的錯誤密鑰無法恢復原始數字圖像的有用信息。為了檢驗圖像加密算法密鑰的敏感性,可以利用一些錯誤密鑰來解密圖像。

(4) 常見攻擊。一些常見攻擊,例如已知明文攻擊、選擇明文攻擊和選擇密文攻擊[11]等常用來檢測一個加密系統的安全性。在一個線性加密系統中,可以從明文λ1P1+λ2P2中得到對應的密文λ1C1+λ2C2,其中,Pn是明文圖像,Cn是密文圖像,λn是尺度系數,n=1,2。

(5) 噪聲攻擊。圖像在傳輸與處理的過程中難免會受到噪聲的影響,這將影響解密圖像的質量。因此,應該認真考慮加密算法抵抗噪聲攻擊的能力[11]。假設加密圖像按照以下形式受到噪聲的影響:

C′=C+kG

(13)

其中,C和C′分別是加密圖像和加了噪聲的加密圖像,k是噪聲強度系數,G則表示0均值、單位標準差的高斯白噪聲。

(6) 魯棒性。圖像在傳輸過程中,難免會遇到網絡故障、網絡攻擊或網絡擁塞而導致的數據丟失,這種情況下接收方僅得到一部分加密后的圖像,那么要考慮丟失部分信息對解密圖像的影響,即加密算法的魯棒性。

2.2 實驗內容

基于分數梅林變換的圖像加密算法是數字圖像處理課程實驗教學的創新研究成果[12-13]。在非線性加密系統中,不同階次的分數梅林變換被用于原始圖像的不同環域部分,從而得到一系列子圖像,該子圖像的值為復數值,子圖像通過迭代輸出加密后的圖像,即密文圖像。所述的迭代過程涉及分數傅里葉變換、幅度編碼以及相位編碼。理論上,分數梅林變換的非線性性質保證了加密系統能夠有效抵抗常見攻擊。不僅如此,分數梅林變換的階次、分數梅林變換的環域外半徑以及迭代中用到的相位模板皆可用作密鑰,這樣使得加密系統具備了更大的密鑰空間[14]。

本實驗的主要內容包括:

(1) 程序實現加密算法,得到加密和解密圖像;

(2) 程序實現算法的性能評價。

2.3 Matlab仿真實驗與結果分析

在實驗教學中,考慮到加密算法需要對原始圖像進行環狀操作,將原始圖像的尺寸選取為奇數,選擇灰度圖像進行實驗,如圖2(a)所示。為了在教學中節省處理時間,分數梅林變換和分數傅里葉變換對圖像的x和y方向常常設定一個變換階次。折中考慮傳輸圖像的質量和傳輸效率,仿真參數設置如表1所示。

表1 仿真參數

表1(續)

經過圖像加密,加密后的圖像幅度分布如圖2(b)所示,相位的分布如圖2(c)所示,解密后的圖像如圖2(d)所示。對比原始圖像與解密圖像,顯然解密正確。

2.3.1 密鑰安全性

圖3(a)—(e)是用一系列錯誤密鑰解密得到的解密圖像,即在只微小改變一個密鑰,而其他密鑰均不變的情況下得到的解密圖像。表明該算法對密鑰具有較高的敏感性。

圖2 算法測試

2.3.2 灰度直方圖

灰度直方圖是數字圖像處理實驗中最簡單、最有用的工具,它描述了一幅圖像的灰度級內容。Matlab標準函數imhist( )為顯示灰度直方圖的函數,其橫坐標表示像素的灰度級別,縱坐標為像素點的個數。以原始圖像Lena為例,其直方圖如圖4(a)所示,加密后的灰度直方圖如圖4(b)所示。比較兩幅直方圖,前者容易得到圖像的統計信息,而后者則無法得到有用信息。

圖4 灰度直方圖

2.3.3 相關性系數

相鄰像素間相關性用于衡量圖像像素值之間的關聯度,這種關聯度可以用相關性系數來表示。對于本實驗而言,可以分別從水平、豎直、對角方向各選取p(p∈[6000,12000])對相鄰像素點,按照公式(12)計算原圖像和加密圖像相關性系數。密文圖像在3個方向上的相關性系數皆很小,說明了所用的圖像加密算法具有良好的防統計分析能力。

2.3.4 噪聲攻擊

由于噪聲的隨機性,噪聲會傳輸中的數字圖像產生負面影響。加密后的圖像受到噪聲的影響可以用式(13)所示,引入均方誤差(mean-square error, MSE)來反映估計量與被估計量之間差異程度。MSE公式為

(14)

式中,D和O表示圖像像素,M和N表示圖像大小。

圖5給出了加入不同強度的高斯噪聲所對應的解密圖像均方誤差。隨噪聲強度系數k變化的曲線。當噪聲強度系數控制在某個數值范圍內時,圖像經過解密后依然可以識別,但是如果逐漸增大噪聲強度系數,解密后的圖像會顯得逐漸模糊。

圖5 MSE曲線

2.3.5 魯棒性

為了測試加密算法的魯棒性,可以對密文圖像進行部分遮擋,當解密圖像可以得到原圖像的大致信息,則該加密算法是可以抵抗一定程度的圖像裁剪攻擊。對于本實驗而言,魯棒性的實驗結果如圖6所示。

圖6 加密算法的魯棒性

綜上所述,通過一個具體的圖像加密算法,將數字圖像處理課程中復雜的理論知識點融合于具體的綜合設計性實驗項目中,不僅具有實踐性,更具創新性。

2.4 拓展問題設計

為擴展學生思維,以圖像加密為例可以思考以下問題:

(1) 多階分數梅林變換對圖像有哪些影響?

(2) 如何理解基于分數梅林變換的圖像加密算法的數據擴張?

(3) 改變實驗參數,觀察不同參數對實驗結果的影響,分析算法的穩健性。

3 結語

本文基于Matlab軟件平臺,以典型的基于分數梅林變換的數字圖像加密算法為例,開發了基于Matlab的數字圖像處理綜合設計性實驗項目,將最新的科研成果融入實驗教學,加深學生對數字圖像處理課程相關概念的理解,提高知識點的綜合應用能力,提供了由科研成果轉化為教學內容的一種新思路,有利于培養學生的科研興趣和科研能力。借助Matlab仿真分析手段,圖文并茂展現理論,使枯燥的理論知識變得生動活潑,使學生從被動的簡單實驗驗證者轉變為主動學習與探索新知者。

本實驗面向高年級本科生或研究生,可以將學時數設置為3個學時,實現圖像加密算法和3種算法性能評價方式。面向低年級的本科生,可以將學時設置為5個學時,實現全部的算法性能評價方式。

猜你喜歡
加密算法解密密鑰
炫詞解密
解密“一包三改”
密碼系統中密鑰的狀態與保護*
炫詞解密
TPM 2.0密鑰遷移協議研究
一種對稱密鑰的密鑰管理方法及系統
HES:一種更小公鑰的同態加密算法
基于小波變換和混沌映射的圖像加密算法
解密“大調解”
對稱加密算法RC5的架構設計與電路實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合