文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)03-0107-04
0 引言
隨著云計(jì)算與大數(shù)據(jù)技術(shù)的發(fā)展,其在醫(yī)學(xué)信息化特別是醫(yī)院影像數(shù)據(jù)的應(yīng)用越來越廣泛。如何利用昂貴的影像設(shè)備在國內(nèi)實(shí)現(xiàn)區(qū)域影像數(shù)據(jù)有效共享,已成為醫(yī)院信息化的研究熱點(diǎn)之一?,F(xiàn)有的醫(yī)療領(lǐng)域信息系統(tǒng)是離散的,通過云計(jì)算可搭建一個(gè)扁平化的信息云平臺(tái),整合原有的離散信息系統(tǒng),進(jìn)而促成各項(xiàng)業(yè)務(wù)有效協(xié)同,共享數(shù)據(jù)資源。但是當(dāng)用戶依賴于云提供者存儲(chǔ)其數(shù)據(jù)時(shí),也就從應(yīng)用程序級(jí)別開始放棄對(duì)數(shù)據(jù)的直接控制。隨著云部署模型與數(shù)據(jù)的地理位置混合在一起,更是進(jìn)一步犧牲了數(shù)據(jù)控制,因此對(duì)醫(yī)院影像數(shù)據(jù)的個(gè)人隱私安全亟待保護(hù)。目前,醫(yī)學(xué)圖像占醫(yī)院醫(yī)療信息的70%~80%,傳統(tǒng)加密算法(如DES、AES)針對(duì)一維數(shù)據(jù)流設(shè)計(jì),沒有考慮數(shù)字圖像數(shù)據(jù)量大、相關(guān)性強(qiáng)、冗余度高、能量分布不均勻等特點(diǎn),簡單地將傳統(tǒng)加密算法應(yīng)用于圖像加密時(shí),加密效率不高,故不適用于加密數(shù)字醫(yī)學(xué)影像。
KULKARNI N S等[1]提出了針對(duì)條件訪問系統(tǒng)的小波域選擇性加密技術(shù),該技術(shù)只適用于多媒體數(shù)據(jù)流的一小部分子集,節(jié)省計(jì)算時(shí)間和資源。BHATNAGAR G[2]提出了基于鋸齒狀空間填充曲線、感興趣的像素、非線性混沌映射和奇異值分解的簡單選擇性加密,通過鋸齒形空間填充曲線用感興趣方法選擇重要像素的手段來打亂像素位置,從非線性混沌映射和奇異值分解得到秘密圖像密鑰對(duì)重要像素進(jìn)行擴(kuò)散。AGRAWAL P等[3]提出在概念上選擇圖像的一部分,有效地獲取圖像的重要部分,對(duì)其使用常規(guī)加密模式。大多數(shù)選擇性圖像加密方案基于圖像壓縮算法設(shè)計(jì),其編解碼器是特定的。由于圖像不同的位面對(duì)視覺效果貢獻(xiàn)方式不同,Xiang Tao等[4]提出有選擇性的灰度圖像加密方案,每個(gè)像素只有一部分重要比特通過單向耦合映像格子產(chǎn)生的密鑰流加密。
在醫(yī)學(xué)領(lǐng)域,病理圖片涉及到患者的個(gè)人隱私,在醫(yī)療診斷中,對(duì)病理圖片的要求非常高,同時(shí)要保證圖像在傳輸過程中的完整性,不能出現(xiàn)像素差錯(cuò)或者惡意篡改?;诖耍疚慕Y(jié)合SHA-3[5]算法,利用圖像自身的哈希值作為密鑰中的一部分,結(jié)合SCAN方法利用圖像位加密技術(shù),設(shè)計(jì)了一種選擇性加密算法,既解決了圖像傳輸過程中的惡意篡改和傳輸差錯(cuò)問題,又保證了圖像的安全性。
1 基本理論
1.1 選擇性圖像加密
在選擇加密中,僅對(duì)圖像的某些內(nèi)容加密可降低執(zhí)行時(shí)間,在保證圖像的安全性的同時(shí),圖像的某些部分是可見的。由于醫(yī)學(xué)影像的特點(diǎn),加密過程僅應(yīng)用于圖像中基于ROI提取的選中部分,使加密的時(shí)間縮短。在醫(yī)學(xué)影像中,部分加密足以保證圖像的安全性。選擇性加密雖然可能被預(yù)測(cè)出原始圖像,但原始圖像的準(zhǔn)確性和可視的范圍取決于加密方法和加密圖像的信息量。本文采用自動(dòng)選擇ROI并使用SCAN的mapping技術(shù)進(jìn)行選擇性加密。
定義1 利用m×n大小的矩形對(duì)圖像進(jìn)行分塊。m和n以像素為單位,大小可根據(jù)對(duì)圖像加密安全性能要求的高低自由選定。分塊后得到以大小為M×N的最小單元圖像塊的圖像,其中M=ceil(H/m),N=ceil(W/n)。
判斷是否被選擇加密:給定一個(gè)m×n的像素矩陣
X00 X01 X0j … X0n
X10 X11 X12 … X1n
Xi0 X21 X22 … X2n
… … … …
Xm0 Xm1 Xmj … Xmn
依次掃描其中像素值:
,j≥li∈[0,m],j∈[0,n]
st.xi,j>0&(xi-1,j|xi,j-1)>0i∈[0,m],j∈[0,n-1](1)
xi,j>0&(xi+1,j|xi,j+1)>0i∈[0,m-1],j∈[0,n-1]
其中l(wèi)為定義的閾值,當(dāng)該塊內(nèi)的像素總和超過閾值且非噪聲點(diǎn)時(shí),對(duì)該塊進(jìn)行進(jìn)一步的加密。
1.2 SCAN語言
SCAN是一個(gè)基于二維空間的訪問方法,易于表示和生成大量不同掃描路徑的形式化語言[6]。SCAN語言利用掃描模式產(chǎn)生大量掃描路徑或空間填充曲線,將二維的圖像數(shù)據(jù)變?yōu)橐痪S數(shù)據(jù)序列。圖1顯示了15種基本的掃描方式。有6種掃描模式的轉(zhuǎn)換,可分別通過90°、180°和270°的同一性、水平垂直反射、反射、旋轉(zhuǎn)以及組合得到。
假設(shè)需要加密的圖像已經(jīng)進(jìn)行分塊選擇的操作,選取一塊8×8像素矩陣?yán)肧CAN語言進(jìn)行置換操作。圖2是對(duì)像素塊內(nèi)的元素使用斜平行方式置換。圖3是對(duì)置換之后的圖像進(jìn)行逆操作,從而使得圖像恢復(fù)初始的狀態(tài)。
定義2 對(duì)于任意的A=A7 A6 A5 A4 A3 A2 A1 A0和B=B7 B6 B5 B4 B3 B2 B1 B0,其中Ai、Bi∈GF(2),則C定義為A、B中各字節(jié)對(duì)應(yīng)異或所得的結(jié)果:
2 算法流程
本文將對(duì)DICOM中的<Image>元素進(jìn)行加密,同時(shí)對(duì)該元素部分進(jìn)行反復(fù)多次加密實(shí)驗(yàn)。加密流程圖如圖4所示。
3 實(shí)驗(yàn)及算法分析
為了驗(yàn)證以上算法的加密效果,在MATLAB7.1平臺(tái)上對(duì)其進(jìn)行了仿真實(shí)驗(yàn),所用計(jì)算機(jī)CPU為CoreTM Duo 2.00 GHz,內(nèi)存為2.0 GHz 。
3.1 實(shí)驗(yàn)步驟
(1)以一張腦部的DICOM數(shù)據(jù)圖像為例,如圖5(a)所示,圖中可以看出腦部有明顯的腫瘤區(qū)域,對(duì)該圖進(jìn)行兩次加密,根據(jù)本文的加密算法,得到一次加密圖像和二次加密圖像分別如圖5(b)、5(c)所示。加密算法的操作步驟如下:
輸入:DICOM數(shù)據(jù)中圖像數(shù)據(jù)矩陣P、加密輪次t、每輪的塊間加密方式以及塊內(nèi)加密方式;
輸出:加密后圖像C及對(duì)應(yīng)密鑰。
?、賹×W大小的圖像分成若干個(gè)大小為m×n的圖像塊。對(duì)各塊掃描各像素點(diǎn),若分塊像素超過閾值且不是噪聲點(diǎn),則被選擇作為待加密分塊。計(jì)算圖像的哈希值。
?、谶x擇要加密的SCAN方法。將待加密塊依次與哈希值序列結(jié)合SCAN方法進(jìn)行異或運(yùn)算,得到一個(gè)經(jīng)過加密處理的矩陣。
?、蹖⒓用軌K用隨機(jī)SCAN方法進(jìn)行置換存儲(chǔ)為加密后的圖片。若滿足加密效果和應(yīng)用需要?jiǎng)t結(jié)束加密,否則返回步驟②。
(2)解密算法的操作步驟和加密的操作步驟基本一致,是一個(gè)逆向的操作過程,其算法主要步驟如下:
輸入:加密后的圖像以及對(duì)應(yīng)的密鑰(加密輪次、對(duì)應(yīng)的密鑰、加密塊位置、塊間加密方式、塊內(nèi)加密方式);
輸出:解密結(jié)果以及判斷結(jié)果是否被篡改。
?、賹⒌玫降募用軋D像存儲(chǔ)為矩陣,讀取加密輪次,及每輪加密密鑰和加密方式。
?、趯⒁阎猟位哈希值序列與圖像矩陣按已知的像素分塊順序,以m×n個(gè)像素為分塊進(jìn)行異或運(yùn)算,得到第一次解密后的圖像。
?、塾?jì)算該解密圖像的哈希值,判斷該圖像是否經(jīng)過篡改,如果是,操作終止,輸出圖像被篡改;若不是,則進(jìn)入步驟④。
?、軗?jù)已知的加密次數(shù),重復(fù)步驟②、③進(jìn)行多次解密操作。
3.2 算法分析
(1)圖像直方圖
一個(gè)好的圖像加密算法應(yīng)使加密后圖像的直方圖分布均勻,盡量減少圖像存在的像素統(tǒng)計(jì)特征,實(shí)驗(yàn)結(jié)果如圖6(a)、(b)、(c)所示。由圖可知,本文算法能很好地混淆圖像像素值的分布,具有較好的加密效果。
(2)相鄰像素相關(guān)性
對(duì)于圖像中各方向的相鄰像素相關(guān)性rxy可通過式(3)計(jì)算:
其中, xi、 yi代表相鄰的像素值。 N為選取對(duì)比的像素對(duì)總數(shù)。圖像加密前后各方向相鄰像素相關(guān)性結(jié)果如表1所列。
原始圖像、一次加密圖像和二次加密圖像的水平、垂直、對(duì)角像素相關(guān)性對(duì)比分別如圖7、8、9所示。加密后3個(gè)方向的相關(guān)性和原圖相比都大大減少,密圖無法辨認(rèn)。
(3)敏感性測(cè)試
?、倜荑€敏感性,首先對(duì)圖像進(jìn)行兩輪加密操作,保存密文圖像后,對(duì)解密密鑰中哈希值進(jìn)行微小的改變,再對(duì)圖像進(jìn)行解密操作。實(shí)驗(yàn)結(jié)果表明,雖然密鑰只進(jìn)行了一個(gè)比特的改變,亦將導(dǎo)致圖像無法解密,說明算法中密鑰有極高的敏感性。
?、诿魑拿舾行裕瑢D像中一個(gè)像素進(jìn)行改變,計(jì)算哈希值。將原圖和改動(dòng)后圖像的哈希值對(duì)比發(fā)現(xiàn),其哈希值是完全不同的序列。進(jìn)一步對(duì)其進(jìn)行加密,得到兩個(gè)幾乎無相關(guān)性的圖像,說明算法具有良好的明文敏感性,能在加密過程中將明文的改變擴(kuò)散到整個(gè)圖像。
③密文敏感性,將圖像加密兩輪之后密文圖像進(jìn)行若干個(gè)像素的改變,再應(yīng)用解密操作。對(duì)得到的第一輪解密圖像進(jìn)行哈希值計(jì)算發(fā)現(xiàn),雖然明文圖像只有幾個(gè)像素的差別,但其哈希值卻是基于無相關(guān)性的序列,說明算法具有良好的密文敏感性。
4 結(jié)論
本文的加密算法采用選擇性加密方式,將圖像進(jìn)行一定規(guī)則的分割,以分割后的圖像塊為最小單元采用SCAN語言打亂像素的位置有選擇性地進(jìn)行加密,相比較其他的圖像安全加密算法其可以縮短加密的時(shí)間。該算法在解決了圖像安全性問題的同時(shí)又確保了圖像在傳輸過程中的完整性認(rèn)證,適用于醫(yī)學(xué)應(yīng)用領(lǐng)域,具有一定的實(shí)用性。
參考文獻(xiàn)
[1] KULKARNI N S,RAMAN B,GUPTA I.Selective encryptionof multimedia images[C].NSC2008,2008.
[2] BHATNAGAR G,JONATHAN W Q M.Selective image en-cryption based on pixels of interest and singular value decomposition[J].Digital Signal Processing,2012,22(4):648-663.
[3] AGRAWAL P,RAJPOOT M.A fast and secure selective encryption scheme using grid division method[J].InternationalJournal of Computer Applications,2012,51(4):29-33.
[4] Xiang Tao,WONG K,Liao Xiaofeng.Selective image encryption using a spatiotemporal chaotic system[J].Chaos:An Interdisciplinary Journal of Nonlinear Science,2007,17(2):023115.
[5] BERTONI G,DAEMEN J,PEETERS M,et al.The keccak reference[Z].Submission to NIST(Round 3),2011.
[6] MANICCAM S S,BOURBAKIS N G.Lossless image com-pression and encryption using SCAN[J].Pattern Recognition,2001,34(6):1229-1245.