關一凡,劉立東,蔣東華,榮憲偉
(1.長安大學信息工程學院,陜西西安 710064;2.哈爾濱師范大學物理與電子工程學院,黑龍江哈爾濱 150025)
隨著信息和網絡技術的飛速發(fā)展,每時每刻都有大量的信息載體(例如數(shù)字圖像、視頻等)產生、傳輸以及保存。與此同時,越來越多的政府、企業(yè)及個人都開始注重信息載體在傳輸過程中的安全性。其中數(shù)字圖像的用途十分廣泛,包括軍事、醫(yī)學、網絡等領域,因此圖像傳輸?shù)陌踩跃偷玫搅巳藗兊淖⒁狻,F(xiàn)有的大部分圖像加密算法都是將有意義的明文圖像轉換為一幅近似噪聲的密文圖像,攻擊者很難從密文圖像中獲取有用的信息,從而增加了恢復原始明文圖像的難度,這種加密算法也被稱為傳統(tǒng)的加密算法。近年來,研究者們提出了許多種不同的加密算法,如基于混沌理論[1-3]、DNA 編碼[4-5]、元胞自動機[6]、S 盒[7]、Hash 函數(shù)[8]等。然而經上述加密算法得到的近似噪聲的密文圖像很容易引起攻擊者的注意,在很大程度上增加了被攻擊的風險。
后來研究者們基于圖像隱寫又提出了另一種具有視覺意義的加密方案[9-15]。首先通過傳統(tǒng)加密算法生成密文圖像,接著將其鑲嵌在一幅有意義的載體圖像中,這樣在傳輸?shù)倪^程中就不會引起任何的懷疑。具有視覺意義的加密算法主要分為兩類,第一類是在空間域上進行嵌入,例如基于最低有效位(LSB)[9]、像素值差分[10]、直方圖位移法等[11];第二類是在變換域上進行嵌入,例如基于離散小波變換(DWT)[12]、奇異值分解(SVD)[13]等。通過圖像視覺安全加密可以增加圖像在傳輸過程中的安全性。
Bao 等人[14]在2015 年提出了一種具有視覺意義的加密算法,首先通過傳統(tǒng)加密算法生成密文圖像,接著通過離散小波變換鑲嵌在一幅有意義的載體圖像中。但是這種算法使用的載體圖像大小是明文圖像的4 倍,在傳輸過程中會大大增加傳輸?shù)呢摀?/p>
姚楚茂等[15]提出了一種基于奇異值分解的具有視覺意義的加密方案,通過將明文圖像分塊后進行SVD 分解得到奇異值向量,通過方向編碼算法(EMD)將秘密信息嵌入在奇異值向量中,最后通過逆變換生成嵌入后的圖像。這種算法在傳輸過程中只能傳輸一幅圖像,傳輸效率低。
Hui Wang 等人[16]提出了一種基于離散小波變換的視覺加密方案,通過離散小波變換和壓縮感知,將明文圖像的大小壓縮至原來的四分之一后進行鑲嵌,最后通過逆變換完成加密,它的缺點在于加密算法不是明文相關的,并且使用的密鑰是固定的,這樣會導致算法容易受到選擇明文的攻擊。
綜上所述,現(xiàn)有的數(shù)字圖像加密算法的主要問題包括:1)傳統(tǒng)的加密算法得到的類噪聲圖像受到攻擊的可能性大。2)大部分具有視覺意義的加密算法只能傳輸一幅圖像,且載體圖像的大小比明文圖像大,傳輸?shù)男瘦^低。3)有的加密算法不具有明文相關性,容易受到選擇明文攻擊。
針對上述問題,文中提出一種基于混沌Hopfield神經網絡的雙圖像視覺安全加密算法。所提算法的優(yōu)勢在于:1)利用雙三次插值對兩幅明文圖像同時進行壓縮,一次傳輸兩幅明文圖像來提高傳輸效率。2)通過Hash 函數(shù)以及明文圖像的像素和來生成混沌Hopfield 神經網絡的初值,從而使得算法具有明文相關性,不同的明文圖像得到的密鑰也不同。3)通過離散余弦變換(DCT)將圖像嵌入到彩色載體圖像中,從而實現(xiàn)對數(shù)字圖像的數(shù)據(jù)以及視覺效果的雙重保護。理論分析和實驗結果表明,文中提出的算法具有良好的魯棒性及安全性。
雙三次插值也被稱為立方卷積插值。其基本原理是通過待采樣點周圍的16 個點的灰度值進行三次插值。假設源圖像a的大小為h×w,壓縮后的圖像b的大小為H×W,則圖像b中的坐標(X,Y)在圖像a中的對應坐標為(X×h/H,Y×n/N)。通過離目標像素點最近的16 個點的像素值來計算目標像素點的像素值,計算公式如下:

1.2.1 混沌Hopfield神經網絡
該文使用一種四維混沌Hopfield 神經網絡,其表達式如下:

其中,x為混沌系統(tǒng)的初值,C為一對角矩陣,C=diag(1,1,1,100),W為權值矩陣,,v、u、k為神經網絡的參數(shù)。-0.37≤u≤0.6,-5≤v≤-2,-13 ≤k≤2,文中取v=-3,u=0.1,k=-5。
考慮到混沌系統(tǒng)在迭代時有可能出現(xiàn)退化現(xiàn)象,使用歐拉法以及一個很小的采樣周期TS對式(2)進行改寫,改寫后的混沌系統(tǒng)可以由下式描述:

1.2.2 二維超混沌系統(tǒng)
該文通過二維超混沌系統(tǒng)來生成矩陣,用于生命游戲算法,其具體表達式如下:

ai和bi都是二維超混沌系統(tǒng)的控制參數(shù),且ai∈R,bi∈R,i=1,2,…6。為了降低該加密算法的計算復雜度,對一些參數(shù)進行簡化,簡化后的混沌系統(tǒng)如下:

當控制參數(shù)a4=1.55,a5=-1.3,b2=-1.1,b4=0.1 時,二維超混沌系統(tǒng)的輸出值范圍為xn∈(-1.65,0.65),yn∈(-0.65,1.85),且二維超混沌系統(tǒng)的李雅普諾夫指數(shù)為0.238 和0.166。
1.2.3 生命游戲算法
生命游戲,也被稱為康威生命游戲,是英國數(shù)學家約翰·康威在1970 年提出的一種元胞自動機。這種算法主要基于一個二維矩陣,矩陣中的每一個元素代表一個細胞的狀態(tài),每一個元素只有兩個狀態(tài),即0 和1,其中0 代表死亡,1 代表存活。每個細胞在下一刻的狀態(tài)是由周圍相鄰的8 個細胞,也就是水平、豎直以及對角方向上的細胞所決定的,其規(guī)則主要有以下幾條:
1)如果當前細胞周圍的存活細胞的個數(shù)不多于2 個,任何存活的當前細胞都將死亡。
2)如果當前細胞周圍的存活細胞的個數(shù)為2 個或3 個,任何存活的細胞仍然存活。
3)如果當前細胞周圍的存活細胞的個數(shù)大于3個,任何存活的當前細胞都將死亡。
4)如果當前細胞周圍的存活細胞的個數(shù)為3個,任何死亡的當前細胞都將轉為存活。
1.2.4 圖像嵌入
傳統(tǒng)的加密算法可以抵御各種類型的攻擊,如暴力破解、選擇明文攻擊、差分攻擊等。這樣無疑可以提高圖像在傳輸過程中的安全性,但是這種近似噪聲的圖像從視覺上來說是加密圖像的一個特征,攻擊者可以很輕易地辨認出經過加密的圖像并進行攻擊,這樣會大大增加信息泄露或是被惡意篡改的概率。該文針對這種問題,將加密后的類噪聲圖像通過DCT嵌入在有意義的彩色圖像中來提高傳輸?shù)陌踩浴?/p>
加密算法包括4 個階段:圖像壓縮、添加隨機數(shù)、置亂操作、圖像嵌入。該文使用的壓縮方法為雙三次插值,對圖像進行壓縮可以提高傳輸?shù)男剩瑴p輕了公用網絡信道傳輸負擔。在第二個階段中,首先通過迭代混沌Hopfield 神經網絡得到一組隨機數(shù),然后將隨機數(shù)與圖像進行拼接,得到一幅組合圖像。在置亂階段中,通過二維超混沌系統(tǒng)生成一個只有0和1 的矩陣,接著通過生命游戲算法對其進行迭代,生成置亂矩陣并完成置亂。最后通過載體圖像實現(xiàn)對明文圖像的隱藏。圖1所示為該加密過程流程圖。

圖1 加密過程流程圖
加密過程如下:
1)首先讀取兩幅大小為M×N的明文圖像P和Q。
2)通過雙三次插值算法對圖像P和Q進行壓縮,生成大小為的兩幅壓縮圖像PC和QC。
3)通過SHA-256 函數(shù)對明文圖像P進行處理,生成長度為64 的16 進制字符串,接著將其轉換為長度為256 的二進制字符串,記為hb,通過下式將其分為4 組,長度均為64 位:

其中,n=1,2,3,4;a、b分別是每組的首尾兩端。
4)通過第一幅明文圖像P來生成混沌系統(tǒng)的初值。首先計算圖像P的像素和,記為S,接著計算圖像P的左半部分及右半部分的像素和,分別記為S1、S2。
5)通過式(7)~(10)得到混沌Hopfield 神經網絡的初值[x1,x2,x3,x4]T,將其迭代次,并且舍棄掉前m個值來避免瞬時效應,生成大小為的隨機數(shù)矩陣,然后與兩幅明文圖像水平拼接在一起,得到大小為的拼接圖像,并進行DCT 變換,得到的圖像記為PD。


6)給定初值u0=0.25,v0=0.15,對二維超混沌系統(tǒng)迭代次,舍棄前m個值得到兩個大小為的矩陣u和v,通過下式生成一個二值矩陣CM:

7)給定迭代參數(shù)t,用生命游戲算法迭代t次矩陣CM,每次迭代的結果記為SMi,其中i=1,2,…,t,通過式(12)得到置亂矩陣SG,對其所有行按降序進行排序后得到索引矩陣SI,并通過式(13)得到置亂圖像PC。

嵌入過程:
9)讀取一幅大小為M×N的彩色圖像QC作為載體圖像,提取它的R、G、B分量,并分別進行DCT 變換,得到的圖像分別記作QCT1、QCT2、QCT3。再對SP1、SP2、SP3進行DCT操作,得到的圖像記作CT1、CT2和CT3。
10)通過式(14)對QCT1、QCT2以及QCT3右下角大小為的區(qū)域D的像素值進行修改:

11)對修改后的3 個分量進行逆DCT 操作,得到嵌入后的彩色圖像。
圖像的解密過程是加密隱藏過程的逆過程,主要包括4 個階段:提取階段、逆置亂階段、分割階段以及放大階段。首先將鑲嵌在彩色圖像的R、G、B分量右下角的圖像提取出來,通過逆DCT 變換恢復出原始置亂圖像,再通過逆置亂得到組合圖像,最后通過分割和放大恢復出兩幅明文圖像。
利用該文提出的基于混沌Hopfield 神經網絡和生命游戲算法的圖像隱藏算法對圖像進行隱藏和解密恢復實驗。使用大小為512×512 的明文圖像進行模擬仿真。各項安全測試均在Matlab 2018a 環(huán)境下進行。外部密鑰為a4=1.55,a5=-1,b2=-1.1,b4=0.1,u0=0.25,v0=0.15,TS=0.000 7,t=4,λ=0.1。仿真結果如圖2 所示。

圖2 仿真結果
密鑰空間是用來衡量加密算法抵御暴力攻擊的一項重要指標,一個加密算法若想要抵御暴力破解,其密鑰空間的大小至少應該達到2100。文中使用的密鑰主要可以分為三部分:1)由Hash 函數(shù)產生的256 位密鑰流;2)混沌Hopfield 系統(tǒng)的參數(shù)u、v、k以及采樣周期TS;3)二維超混沌系統(tǒng)的初值u0、v0,系統(tǒng)參數(shù)a4、a5、b2、b4。其中由Hash 函數(shù)產生的密鑰空間為2256,由二維超混沌系統(tǒng)產生的密鑰空間大小為(0.65+1.65)×1015×(1.85+0.65)×1015,最后計算出該圖像隱藏算法的總密鑰空間為5.75×2256×1015≈2358,遠遠大于2100,可以看出提出的隱藏算法可以很好地抵御暴力破解。
高的密鑰敏感性意味著密鑰的微小變化也會引起恢復出的圖像的巨大變化,一個優(yōu)秀的加密算法應當有高的密鑰敏感性。該部分使用大小為512×512的兩幅明文圖像Lena和Peppers,以及大小為512×512的載體圖像Baboon。通過對密鑰u0、v0、a4、a5以及b4和b2分別修改10-13,恢復出的圖像如圖3(b)~(g)所示,其中(a)是兩幅明文圖像。可以看出,即使密鑰發(fā)生了大小僅為10-13的變化,恢復出的圖像與明文圖像的差別也很大。

圖3 密鑰敏感性分析結果
3.3.1 噪聲攻擊
為了定量評估算法抵御噪聲的性能,向隱藏圖像中加入兩種噪聲,分別為椒鹽噪聲和斑點噪聲,大小分別為0.01%、0.03%和0.05%。加入兩種不同的噪聲時,測試結果如圖4 所示,恢復出的圖像的PSNR 值如表1 所示,其中前3 行為椒鹽噪聲的測試結果,后3 行為斑點噪聲的測試結果,第一列為加入噪聲后的隱藏圖像,后兩列為恢復出的明文圖像。可以看出提出的圖像隱藏算法有著很好的抗噪性。

表1 噪聲攻擊恢復出明文圖像的PSNR值

圖4 噪聲攻擊測試結果
3.3.2 剪切攻擊
魯棒性也是評價一個算法是否優(yōu)秀的標準之一,該部分對隱藏圖像進行裁剪,通過恢復出的明文圖像的效果來對提出的算法的魯棒性進行評價。如圖5 所示,第一列分別為缺失16×16、32×32、64×64、128×128 大小的信息的隱藏圖像,第二、三列為恢復出的明文圖像,表2 為恢復出的兩幅明文圖像的PSNR 的值。從仿真結果可以看出,提出算法可以很好地抵御剪切攻擊,具有很好的魯棒性。

圖5 剪切攻擊測試結果

表2 剪切攻擊恢復出明文圖像的PSNR值
對視覺安全圖像加密算法來說,密文圖像與載體圖像越相似,說明算法的視覺安全性越好。結構相似度(SSIM)以及峰值信噪比(PSNR)是兩個衡量視覺安全性的重要指標。表3、表4 分別是該文算法恢復出的明文圖像的PSNR 值及SSIM 與其他算法的比較結果,可以看出該文算法具有很好的視覺安全性。

表3 不同算法的明文圖像PSNR值比較結果

表4 不同算法的明文圖像SSIM值比較結果
該文提出的基于混沌Hopfield 神經網絡的具有視覺意義的雙圖像加密算法克服了傳統(tǒng)加密算法無法對得到的類噪聲圖像的視覺效果進行保護的問題,通過向明文圖像中加入一組隨機數(shù),提高了明文圖像在傳輸過程中的安全性,并且在不提高信道負載的情況下同時對兩幅圖像進行壓縮傳輸,提高了傳輸效率。實驗結果表明,該算法的密鑰空間足夠大,能夠抵御各種攻擊,同時經過實驗仿真得出恢復出的明文圖像的效果與之前的算法相比有所改善,是一種加密安全性較好的加密算法。