劉 星, 陳慧琴, 夏萬貴
(黑龍江科技大學 計算機與信息工程學院, 哈爾濱 150022)
隨著信息和互聯網技術的飛速發展,大量的信息通過互聯網進行傳輸,因此信息安全受到人們廣泛的關注[1-3]。數字圖像具有直觀、生動的特點,成為多媒體信息的重要形式之一,并在網絡上得到廣泛傳播[4]。網上圖像傳輸給人們提供了很大的便利,但在網絡應急通信情況下,海量圖像數據的安全存儲和傳輸問題日顯突出。在軍事、醫療、商業等特殊領域,數字圖像通常需要具有更高的保密程度。數字醫療圖像嵌入了許多患者隱私信息,其中包含的醫學信息對于診斷至關重要,泄漏和因保護不當而破壞醫療信息會給醫療機構和患者造成巨大的損失和傷害,甚至會對生命健康造成威脅[5]。隨著遠程醫療技術的發展以及區域醫療衛生服務信息化發展,醫學影像在醫療機構之間的共享將會成為未來的發展趨勢,醫學圖像需要在公共渠道進行傳輸和存儲,非常容易受到安全威脅。因此,醫療機構為了保證醫學影像的私密性和保密性,使用了各種安全服務,其中圖像加密技術已成為保護醫療信息免受各種攻擊的重要技術手段之一。
一般來說,數字醫療圖像最重要的應該是其嵌入的患者隱私和醫療信息,即一張圖像只有一部分是有意義的,也就是說只有一部分圖像信息需要進行加密保護。因此圖像是分為兩部分的即隱私區,也稱作為感興趣區域(Region of Interest,ROI)和無隱私區域,也稱為非感興趣區域(Region of Background,ROB)[5]。近年來,選擇性圖像加密作為一種趨勢,在保持足夠安全級別的同時,最大限度地減少圖像加密和解密的處理時間,引起眾多科學家和工程師的關注,為此提出了許多的加密方案。與作用于整個圖像的傳統加密方案不同,選擇性加密方案僅作用于圖像的選定部分。因此可用于許多實時醫療應用,以保護醫療記錄,包括無線醫療網絡和移動醫療服務。現已有邊緣圖[6]、感興趣區域(ROI)[7]和基于熵[8]等選擇技術。
受上述分析及研究成果的啟發,本文提出了一種基于ROI的選擇性圖像無損加密方案。根據仿真結果驗證,此方案可以加密圖像中含有重要信息的部分。此外,為了保證足夠的安全級別,本文引入了提升小波變換和混沌系統對圖像進行加密。
混沌系統是非線性確定系統,由于內容隨機性而產生的外在復雜表現,是一種貌似隨機的非隨機現象[9]。混沌系統對于初始值和系統參數的敏感性,使其初始條件的微小差異會導致結果產生巨大差異。由于混沌序列具有優良的密碼學特性,基于混沌的保密技術已經被應用到數據安全和通信保密等眾多領域。其中Tent混沌映射是一種具有逐段線性的混沌映射。Tent混沌映射可以定義為
(1)
其中,α∈(0,1)。
該映射是具有均勻分布特性的函數,其產生的混沌序列具有良好的統計性質。在本文方案中設定α=1.999 999,并用其生成置亂序列J和擴散序列U。
為了解決小波變換在對圖像進行分解并重構的過程中會使圖像的小部分信息丟失的問題,Sweldens等[9]于1994年研究出了一種新的雙正交小波構造方法,即提升小波變換。其使得小波構造擺脫了傅里葉變換的依賴,只在時域或空域內進行操作,簡單且清晰,便于直接應用。提升方案用于構造第二代小波,第二代小波不必是一個函數的伸縮和平移[10]。實際上,提升小波變換的重構就是分解的逆過程。提升小波變換主要通過分裂/合并、預測和更新3個階段完成。其中:分裂/合并是將輸入的原始信號X分裂成兩個互不相交的子集合,每個子集的長度是原來的一半。通常是將一個數列分裂成一個奇數序列Xodd和一個偶數序列Xeven;預測是利用偶數序列和奇數序列之間的相關性,由其中一個序列來預測另一個序列,通常用偶數序列Xeven和預測算子P來預測奇數序列Xodd;經過分裂步驟產生的子集中某些整體特征可能與原始數據并不一致,為了保持原始數據的整體特征,需要一個更新過程。更新過程用算子U來代替,利用更新算子U更新偶數序列Xeven,使其保持原始信號X的一些特性。提升小波變換過程如圖1所示。

圖1 小波提升過程
原始醫學圖像經過提升小波變換,可以分解成一個低頻分量和3個高頻分量。低頻分量主要是對整幅圖像強度的綜合度量;高頻分量主要是對圖像邊緣和輪廓的度量。由于原始圖像的絕大部分能量都集中在小波變換后的低頻分量上,因此只需要低頻成分就可以重構與原始圖像近似的圖像。然而對經過頻域加密后的圖像進行解密時,并不是無損解密。因此,改進的算法就是在保存感興趣區域像素高4位的基礎上,對ROI的低頻部分進行加密。該算法可在一定程度上降低頻域加密后解密圖像的失真程度。
為了實現無損的選擇性醫學圖像加密,整個實驗方案包含圖像分割、數據嵌入、圖像加密3個主要階段。本文在2.1節中已設定了Tent混沌映射的α參數,接下來將先對實驗選定的醫學圖像進行分割,分割出ROI區域和ROB區域,在將ROI信息嵌入到ROB的LSBs中以后,最后使用Tent混沌序列產生的密鑰對圖像進行加密。加密方案的整體流程如圖2所示。

圖2 圖像加密方案
1.3.1 圖像分割
為了構建加密醫學圖像,首先要對圖像進行分區:實驗用的原始圖像是RGB彩色圖像,為了方便分區要先將圖像轉換為8位的灰度醫學圖像,尺寸是M×N并且像素值p(j,j)∈[0,256],1≤i≤M,1≤j≤N。為了重新構造加密圖像,將原始圖像I分割成3部分:感興趣區域ROI、非感興趣區域ROB和邊界區域(Border)。由于在大多數案例中醫學圖片的感興趣區域一般是不規則圖形,因此將圖像的底部邊框劃為Border區域以記錄ROI的位置信息。實驗中,參數u設為0,a設定為8。圖像分割過程如下所述:
步驟1設定閾值分割參數。假定兩個參數u和a。u是閾值分割算法的閾值參數,u設為0;a是子矩陣的尺寸。子矩陣的個數可以通過a計算。

步驟3圖像重新排列。將所有標記為1的元胞數組提取出來,重新排列構成新的感興趣區域圖像。
1.3.2 數據嵌入
在數據隱藏技術中,一個重要的子學科技術就是數字隱寫術。隱寫術是一種在封面圖像中隱藏數據的方法,帶有嵌入數據的圖像稱為隱寫圖像,隱寫術可以在空間域或變換域中執行。隱寫術為通過公共渠道進行私密和安全的通信提供了巨大的保障[11]。目標接收者可以從隱寫圖像中提取數據,但其他人(例如攻擊者)并不知道隱寫圖像中存在嵌入數據[12]。
最低有效位(Least-significant-bit,LSB)數據隱藏是一種普遍的數據隱藏方法,可以將數據嵌入到圖像的LSB中。
Pi=(b7b6b5b4b3b2b1b0)
(2)
其中,b0是LSB。數據嵌入可以通過簡單地用秘密位替換K-LSB的Pi來實現,其中1≤k≤8。
如果k=1,則只有LSB被替換為秘密位,當k=8時,所有位都被替換。換句話說,如果想要嵌入更多的數據,k值應該設置的更大。
在本文的加密方案中采用最低有效位隱寫術,將ROI的高位真實信息嵌入到ROB區域的LSBs中。
第一步:提取上一階段分割出的ROI的真實信息。
第二步:將ROI的真實信息通過最低有效位隱寫術嵌入到ROB的LSBs中。
第三步:將ROI的位置信息嵌入到邊界區域。
1.3.3 圖像加密
首先,將ROI區域定義為圖像I(尺寸為M×N),并利用Tent混沌映射生成置亂序列J和擴散序列U;之后將對圖像I進行置亂擴散加密。ROI區域加密過程如下:
步驟1對圖像I進行提升小波變換,選取圖像變換后的低頻成分。
步驟2置亂擴散。先將圖像I轉換成一維向量,接著利用置亂序列U將ROI進行置亂。置亂后的圖像I定義為J,最后利用擴散序列U對圖像J進行異或邏輯運算擴散,掩蓋明文信息。擴散后的圖像J定義為E。擴散公式定義為:

1≤i≤M×N
(3)
步驟3對圖像E進行提升小波逆變換得到加密后的ROI。此時已初步達到掩蓋明文信息的要求。
步驟4將加密后的ROI和ROB重新構造,得到加密圖像。
由于加密/解密方案是對稱的,因此圖像解密實際就是加密過程的逆過程。解密流程如圖3所示。

圖3 圖像解密方案
解密時,要將Tent的混沌序列初始值和置亂序列作為密鑰傳給接收方,接收方進行混沌解密反置亂和小波逆變換,就可以還原得到原始感興趣區域圖像;然后將非感興趣區域像素的低四位數值提取出來,通過最低有效位算法,將原始圖像像素的高四位數值重新嵌入到感興趣區域,最后將感興趣區域重新嵌入到原始圖像中,就可以還原得到原始圖像。
為了驗證和比較本文提出的加密算法性能,選擇將圖像分割為8×8大小的單元結構,分割閾值設為0進行仿真實驗。圖像A的灰度醫學圖像加解密結果如圖4所示。

圖4 加密實驗結果對比
2.2.1 直方圖分析
直方圖分析是用于評估圖像加密方案穩健性的重要指標[13],是一種視覺測試,顯示了可用強度級別上的像素分布。本文計算和分析了醫學圖像ROI的直方圖(如圖5所示)。實驗結果顯示,加密圖像ROI的直方圖相當均勻,并且與原始圖像ROI各個直方圖明顯不同,可以有效抵御任何統計攻擊。且解密后圖像ROI的直方圖分布與原始圖像ROI的分布基本相似。
2.2.2 信息熵
信息熵是衡量圖像混肴程度的重要工具。圖像加密的過程其實就是一個信息熵增加的過程,信息熵越大,圖像信息越混亂,圖像信息不確定性越大,從而可視信息也就越少。所以,對于圖像加密系統來說,需要對其密文圖像的信息熵進行分析。信息熵的計算公式為
(4)
式中:i表示像素的灰度值(0≤i≤255),j表示鄰域灰度值(0≤j≤255)。
經過計算,8位加密圖像的理想信息熵為8。當ROI閾值為0時,信息熵的計算結果,見表1。從表1可見,8位的加密圖像信息熵都超過了7.997,并且非常接近8位圖像信息熵的理想值,證明本文算法具有良好的保密效果及良好的保密等級,可以有效抵御熵的攻擊。

(a) 原始圖像ROI直方圖

表1 信息熵對比
2.2.3 相關性分析
相鄰像素的相關性反映了圖像相鄰位置像素的相關程度。在未加密的醫學圖像上,相鄰像素的相關系數總是很高,而在加密的醫學圖像上,其應該顯著降低。一個好的圖像加密算法應該減少相鄰相關系數,并盡量實現零相關[6]。通過從明文圖像或加密圖像中隨機抽取N對隨機相鄰像素來測試像素相關性。
在相鄰像素相關性方面,本文對原始圖像A進行了相關性分析。在其明文圖像和加密圖像中,沿水平、垂直和對角線方向隨機選取了4 000對相鄰像素進行了相關性分析。測試結果如圖6所示,加密圖像的相關性分析結果詳見表2。

表2 加密圖像的相關性分析

圖6 圖像A的相關性分析
從表2中可以看出,加密后的圖像相關系數近似為0,表明密碼圖像中相鄰像素在水平、垂直和對角線方向的相關系數極低,呈現低相關。因此,加密方案可以抵御基于像素相關性的統計攻擊。
醫學圖像包含患者的個人信息,如果解密后的醫學圖像丟失過多的圖像信息,就會影響醫生的診斷,可能會導致誤診,甚至造成醫學事故,因此醫學圖像應該實現無損解密。在本文的加密方案中,通過最低有效位數據隱藏方案實現醫學圖像主要信息的保存和還原,以此實現無損解密。
本文以峰值信噪比(PSNR)和結構相似性(SSIM)作為評價指標,來評價算法是否達到無損加密。PSNR與SSIM均是最常應用的圖像質量客觀評價指標,PSNR是基于對應像素點之間的誤差,即基于誤差敏感性的圖像質量評價;SSIM主要用來衡量圖像在亮度、對比度和結構方面的相似性。如果圖像是無損解密的,則原始圖像和解密圖像的PSNR和SSIM的理論值應為∞和1。從表3中可以看出,本文的加密算法在兩個指標上都有明顯的提升,SSIM的指標都趨近于理論值1,PSNR提升了7個點以上。

表3 峰值信噪比和結構相似性對比
本文提出了基于LSB的頻域加密算法,在保證了圖像安全級別的同時,也極大改善了頻域加密而導致的圖像信息丟失問題。同時不需要對整個圖像進行加密,加密解密的速度更快,相比全圖像加密,更加適合遠程醫療圖像的傳輸加密。整個方案只是使用了簡單的Tent映射加密,未來可以選擇更換混沌系統進行加密。