魏志軍,林國璋
(1.北京理工大學(xué)珠海學(xué)院,廣東 珠海 519088;2.北京理工大學(xué),北京 100081)
近些年,信息安全獲得了巨大的發(fā)展?;煦缦到y(tǒng)[1]在信息安全領(lǐng)域應(yīng)用非常廣泛。其主要原因是混沌系統(tǒng)具有較好的隨機特性[2],且對參數(shù)和初值具有不可預(yù)測性。如果觀察者能夠掌握足夠多的初始條件,那么系統(tǒng)的行為是可以預(yù)測的,沒有這些信息時,系統(tǒng)表現(xiàn)出隨機性。隨機行為可以用來誘導(dǎo)明文圖像中的混亂和擴散[3],從而使數(shù)據(jù)所有者在不安全的通信信道中安全地傳遞信息。因此,基于混沌系統(tǒng)的圖像加密逐漸成為研究熱點[4]。
已經(jīng)有很多相關(guān)研究,如文獻[5]在移位變換的基礎(chǔ)上,修改了高級加密標準(Advanced Encryption Standard, AES),采用濾波器組密碼來檢查圖像加密的安全性。該方法在抵御攻擊方面表現(xiàn)較好,且統(tǒng)計性能也表現(xiàn)較好。
文獻[6]討論了基于分塊的轉(zhuǎn)換方法,其圖像分為多個塊,在進行加密處理前將這些分塊進行轉(zhuǎn)換。該方法的主要優(yōu)勢是在加密和解密過程中重新生成原始圖像,而不會丟失信息。模擬結(jié)果表明該方法具有良好的混亂性和擴散性,以及大的密鑰空間。
文獻[7]提出的混沌圖像加密方法使用了仿射模塊映射,置換過程中利用兩個仿射模塊映射[8],以達到置亂圖像像素位置的目標。其擴散過程采用了另外兩個仿射模塊映射。
文獻[9]提出了使用彩色映射和在bit級翻轉(zhuǎn)空間混沌(Spatial Chaos at Bit Level Flipping, SCBLP)。該方法使用邏輯混沌序列以打亂圖像像素的位置,接著將其轉(zhuǎn)換為紅、綠、藍的二進制矩陣分量。該方法的缺點是加密復(fù)雜度較高,難以獲得足夠大的密鑰空間來抵御普通攻擊。
本文加密系統(tǒng)使用混沌Arnold映射和改進的獨立成分分析(ICA)的混合矩陣形式,是一種簡單高效的方法。主要工作總結(jié)如下:1)通過插入任意維度的圖像,從混沌ACM中生成混合矩陣,使用混合矩陣和源圖像實施混合過程;2)使用ICA方法對圖像解密,即聯(lián)合近似特征矩陣對角化JADE方法。
根據(jù)Arnold變換,被轉(zhuǎn)換的原始圖像像素是隨機的。然而,如果迭代次數(shù)足夠多,最終可以重現(xiàn)原始圖像。這一迭代次數(shù)即被稱作Arnold周期。該周期取決于圖像大小,即圖像的大小不同,Arnold周期也不相同[10]。
(1)
式(1)被用于轉(zhuǎn)換圖像的每一個像素坐標,當所有坐標均被轉(zhuǎn)換,則該圖像變?yōu)橐粋€置亂圖像。在迭代的某一個步驟,如果得出的圖像達到預(yù)期目標(密鑰),即為得到置亂圖像。圖像的解密依賴于轉(zhuǎn)換周期,即需要進行的迭代數(shù)目= Arnold周期—密鑰[10]。
獨立成分分析[11](Independent Component Analysis, ICA)一般定義為觀測到的多變量數(shù)據(jù)的生成模型。該數(shù)據(jù)通常作為一個樣本大數(shù)據(jù)庫給出。在此模型中,數(shù)據(jù)變量被定義為一些隱藏未知變量的線性或非線性的混合,且混合系統(tǒng)同樣未知。假定非高斯?jié)撛谧兞勘舜讼嗷オ毩?,即觀測數(shù)據(jù)的獨立成分[12]。
基本線性模型將不可見的源圖像與觀測圖像相聯(lián)系:
x(t)=As(t)
(2)
式中:s(t)=[s1(t),…,sm(t)]T是一個m×1列向量,采集于源圖像,相似向量x(t)采集觀測到的信號,A為未知混合系數(shù)的n×m矩陣,n≥m,t為時間指數(shù)。該模型的混合矩陣包含固定元素,并且沒有噪聲。
為了從觀測混合圖像中恢復(fù)原始源圖像,本文使用一個簡單的線性分離系統(tǒng):
y(t)=Bx(t)
(3)
式中:y(t)=[y1(t),…,ym(t)]T為一個估計的s(t),B為一個n×n(假設(shè)n=m)分離矩陣,如圖1所示,這是一個線性分離系統(tǒng),將不可見的源圖像與觀測圖像相聯(lián)系。其中,觀測數(shù)據(jù)x(t),估計源圖像y(t)。
圖1 混合和分離部分圖示
在ICA的使用中,有兩種不同的方法,離線處理和在線方法。本文關(guān)注于使用JADE方法的批處理方法,通過以下兩個階段,以一種常見的方法批處理ICA方法[13]:
(1) 去相關(guān)化。本階段目的是將輸入信號的協(xié)方差矩陣進行對角化,通過計算樣本協(xié)方差矩陣完成,給出觀測輸出的二階統(tǒng)計量,即通過特征分解對矩陣進行計算。
(2) 旋轉(zhuǎn)。本階段降低了高階統(tǒng)計量的度量,這將確保非高斯輸出信號盡可能的統(tǒng)計獨立。很顯然,此階段可以通過一個旋轉(zhuǎn)酉矩陣進行,以提供較高階的獨立性。并且尋找一個旋轉(zhuǎn)矩陣,由對角化特征矩陣從白化數(shù)據(jù)的四階累計量中獲得。本階段的輸出為獨立成分。
去相關(guān)性和旋轉(zhuǎn)取決于非高斯信號的測量,對于高斯信號,較高階統(tǒng)計已經(jīng)為零,通過ICA方法不能得到有意義的分離。對于非高斯隨機信號,其含義是不僅信號應(yīng)該不相關(guān),而且較高階的交叉統(tǒng)計應(yīng)為零[14]。
本文提出的系統(tǒng)有兩個階段,首先使用混沌函數(shù)和Arnold映射加密,然后使用JADE方法恢復(fù)原始圖像,其中JADE主要用于離線批處理。
加密方法的步驟如下:
步驟1:首先假設(shè)高為M,寬為N的原圖像I為一維向量P,長度L=M×N,向量中元素大小為1比特位。
步驟3:在所提方法中,一般丟棄公式(4)和公式(5)在計算過程中的前δr次迭代。該變量中循環(huán)變量為r,其取值可能性為r=1,2,3,…,R。經(jīng)驗表明,δr的取值范圍為(300,600)。通常來說,該區(qū)間的上界增加了總的密鑰取值范圍,也就是說,加密和解密的時間增加了。
xi+1=λ1xi(1-xi),i≥0
(4)
yi+1=λ2yi(1-yi),i≥0
(5)
式中,xi+1和yi+1為狀態(tài)值,i=1,2,...;λ1和λ2為確定映射混沌行為的參數(shù),且作為加密系統(tǒng)密鑰的一部分。x0和y0為0到1之間的初始化種子,通過迭代式(2)和式(3),xi+1和yi+1的值介于0和1之間。公式(4)用于交換像素位置,公式(5)用于修改像素強度值。
步驟4:這里首先使用循環(huán)變量i處理向量P,范i的取值范圍是(1,L-2)。接著,從向量中提取元素,與下式的第2項異或運算。
(6)
步驟5:公式(3)的值投影到區(qū)間[2,255],接著將投影值與V1異或運算,獲得結(jié)果值為V2:
(7)
以上工作是獲得擴散過程的必需過程,一般情況下,為了獲得加密圖像均衡化的結(jié)果,迭代數(shù)次即可。本文進行異或運算,使得隨機性更大,獲得的像素灰度值變化較大,達到了混沌變化的效果。
步驟6:異或運算獲得的比特位如下:
V3=V2⊕Pr[i-1]
(8)
(9)
上述兩個步驟的目的是增加明文的敏感性,使得方法對已知明文攻擊和選擇明文攻擊具有較好的抵御特性。
步驟8:為了使以上步驟生效,進行如下操作:
(10)
步驟9:獲得混合矩陣A,應(yīng)用公式(1)為圖像加密。
解密方法的步驟主要是應(yīng)用JADE方法,總結(jié)如下:
本文提出的加密系統(tǒng)采用Dell Laptop平臺,Windows7操作系統(tǒng),處理器為酷睿2雙核,2 GB內(nèi)存,采用MATLAB2011b編程。
直方圖分析是一個非常重要的特征,直方圖可以表現(xiàn)圖像中灰度值的頻率分布。一個安全加密方法生成的圖像應(yīng)該具有均勻的直方圖,這樣可以提高抵抗統(tǒng)計分析的能力。本文分析了一些明文圖像的直方圖以及其加密圖像?!胞惸取?、“攝影師”、“船”、“機場”的明文圖像及其直方圖如圖2所示?!胞惸取?、“攝影師”、“船”、“機場”的加密圖像及其直方圖如圖3所示。從中可以發(fā)現(xiàn),加密圖像的直方圖幾乎是均勻一致的,并與普通圖像的直方圖完全不同。因此,本文提出的方法可以抵抗任何的統(tǒng)計攻擊。
圖2 明文圖像及其直方圖
圖3 加密圖像及其直方圖
圖像的對比度可被定義為一個圖像中亮部和暗部間的亮度差分。事實上,對比度表示一個圖像中的亮度分布。在視覺上,對比度被解釋為圖像亮度直方圖的擴散。對比度如下式:
(11)
式中,p(i,j)是灰度共生矩陣的數(shù)目。采用本文方法和其他方法加密圖像的對比度結(jié)果如表1所示,由表1可知,本文方法的對比度在大多數(shù)情況下均表現(xiàn)出高于其他方法的對比度,其平均對比度也較高?;谠摻Y(jié)果,可以得出結(jié)論:本文方法在加密圖像中生成隨機性的有效性較高。與其他方法相比,所提方法具有更高的對比度,而文獻[5,7]中提出的方法的對比度值大致相同。
表1 本文方法與同類方法的對比度比較
信息熵是圖像加密的重要評估標準[15]。信息熵的具體定義如下:
(12)
式中,p(xi)表示像素xi的出現(xiàn)概率,像素總數(shù)量為K。理想狀態(tài)下,熵的理論值為8,這種情況下,必須滿足像素出現(xiàn)的概率相等。一般信息熵越高表示圖像的信息量越大,反之越少。加密圖像的信息熵分析如表2所示,由表2可知所有加密圖像后的熵值接近8,所提加密方法平均熵值為7.997,與其他文獻方法相比,在大多數(shù)情況下,本文方法熵值更高,平均熵值也較高,因此,所提加密方法在抵御熵攻擊性能方面更高。
表2 加密圖像的信息熵分析
部分實驗結(jié)果如表3所示,為了給出客觀質(zhì)量評估模型的性能的量化度量,本文采用性能評估標準有:信號失真比(SDR)、結(jié)構(gòu)相似度指數(shù)(SSIM)和峰值信噪比(PSNR),其定義如下:
SDR評估分離信號的質(zhì)量。SDR值越高,則信號越好。SDR以分貝(dB)為單位,其計算公式如下:
(13)
結(jié)構(gòu)相似度(Structural Similarity, SSIM)指數(shù)是一種度量兩個圖像之間的相似性的方法,體現(xiàn)了目標結(jié)構(gòu)的重要信息,其取值范圍在0和1之間,只有兩個圖像完全相同的情況下,其值才為1。在尺寸為N×N的兩個窗口x和y間的定義如下:
(14)
峰值信噪比(Peak Signal to Noise Ratio, PSNR)可以表征圖像的優(yōu)劣,PSNR值越高,則圖像質(zhì)量越好,即獲得的解密圖像結(jié)果越好。
(15)
(16)
式中:I(x,y)為原始圖像,I′(x,y)為估計圖像,圖像尺寸大小為M×N。
本文采用了不同的圖片和不同的尺寸,有128×128和512×512兩種尺寸??梢钥闯霰疚姆椒M足一般性要求,加密的密碼性良好。一些圖像實例如圖4所示,可以看出加密部分和解密圖像,解密出來的圖像基本保持了大部分圖像信息。在加密過程紅,為了達到混沌變化的效果,使得隨機性更大,一般將彩色圖像轉(zhuǎn)化為灰度圖像進行異或運算,解密獲得的圖像也是灰度圖像。因此,圖4的第1行和第2行彩色圖像解密的結(jié)果為灰度圖像。
圖4 本文方法的測試樣本
表3 本文方法的評估結(jié)果
圖像尺寸圖像編號PSNRSDRSSIM128×1281.40.815514.4710.86422.39.01381.47800.48503.37.87413.93660.24544.40.44555.45440.6080512×5121.39.20452.60920.63562.41.26193.43200.61083.40.59123.91580.69074.39.30793.39560.2165
為了更進一步研究,本文使用像素數(shù)變化率(Number of Pixel Change Rate, NPCR)[16]、統(tǒng)一的平均改變強度(Unified Average Change Intensity,UACI)[16]、相關(guān)的加密吞吐量(ET,單位:MBps)和循環(huán)次數(shù)(NC)作為評估標準。
NCPR和UACI可測試明文圖像上一個比特位改變的影響,定義如下:
(17)
(18)
式中,C1和C2表示兩幅加密圖像。W表示加密圖像的寬,H表示加密圖像的高。C1(i,j)和表示加密圖像C1在(i,j)處的像素灰度值(有可能是彩色),C2(i,j)表示加密圖像C2在(i,j)的像素灰度值(有可能是彩色)。性能評估結(jié)果如表4所示。由于不同方法所運行的硬件和軟件平臺具有一定差異,因此比較直接比較運行時間可能不是很準確,因此在相近的軟硬件配置下比較運行時間,或者直接比較循環(huán)數(shù)量是較為切實可行的性能比較方法。由表4可知,所提方法的NC循環(huán)數(shù)量最小,運行效率最高,比文獻[5,7]快了近三倍。
表4 利用ET和NC比較一些方法的性能
本文通過獨立成分分析和混沌Arnold映射矩陣相結(jié)合,提出了一種加密系統(tǒng),實驗結(jié)果表明本文方法取得了較好的加密效果,從直方圖分析、對比度分析和信息熵分析可以看出本文方法可以成功抵御熵攻擊和統(tǒng)計攻擊等,從加密和解密的效果看,完全滿足加密方法的密碼性要求。未來本文將詳細研究ACM發(fā)生器矩陣的強度,并在加密和解密過程中分析其影響。