劉瑤利,李京兵
(海南大學 信息科學技術(shù)學院,海南 海口570228)
數(shù)字水印技術(shù)作為信息隱藏技術(shù)研究領(lǐng)域的重要分支,是實現(xiàn)多媒體信息完整性保護的有效方法[1],它是對傳統(tǒng)的加密技術(shù)的有效補充。將病患的個人信息作為數(shù)字水印[2],以人眼看不見的形式嵌入到醫(yī)學體數(shù)據(jù)中,在體數(shù)據(jù)經(jīng)歷了信息交流過程中的數(shù)據(jù)處理后[3,4],將水印完整準確得提取出來,從而達到保護病患個人信息的目的。
目前,將水印嵌入二維圖像的方法很多。葉天語等人[5]利用奇異值的穩(wěn)定性,提出一種多功能雙水印算法;董春華等[6]提出了基于小波變換在醫(yī)學圖像中嵌入多水印的方法;劉泉等[7]基于圖像的認證提出了分層半脆弱數(shù)字水印算法;陳海鵬等[8]基于數(shù)字圖像特征提出一種魯棒性數(shù)字水印算法。然而,在實際應用中,三維醫(yī)學體數(shù)據(jù)在數(shù)字醫(yī)療系統(tǒng)中大量存在,如CT、MRI都是由切片組成的三維體數(shù)據(jù)。因此,將水印嵌入三維體數(shù)據(jù)有更好的實用性。醫(yī)學體數(shù)據(jù)對于醫(yī)生獲取患者的生理疾病信息及病情診斷至關(guān)重要,一般不允許作任何改動[9]。
混沌是非線性動力系統(tǒng)中的一種確定性的類隨機過程,混沌信號對初始值有不可預測性和高度敏感性[10]。Logistic Map是一種著名的混沌系統(tǒng),它是由以下公式給出的非線性返回映射
式中,0≤μ≤4稱為增長參數(shù),xk∈(0,1)為系統(tǒng)變量,k是迭代次數(shù)?;煦鐒恿ο到y(tǒng)的研究工作指出,當增長參數(shù)3.569945≤μ≤4時,Logistic Map工作于混沌狀態(tài)。應用Logistic混沌映射產(chǎn)生的混沌序列是一個理想的密鑰序列,可用于對多水印進行混沌加密。
三維離散余弦正變換公式如下
其中
式中:f(x,y,z)是體數(shù)據(jù)V在 (x,y,z)處的體素數(shù)據(jù)值,F(xiàn)(u,v,w)是該體素數(shù)據(jù)對應的三維DCT變換系數(shù)。
三維離散余弦反變換 (3D-IDCT)公式如下
式中 :(x,y,z)—— 空 間 域 采 樣 值 ;(u,v,w)—— 頻率域采樣值。醫(yī)學體數(shù)據(jù)可通過CT和MRI獲得,體數(shù)據(jù)是由許多層的切片組成,每個切片為二維醫(yī)學圖像,大小為M×N,切片層數(shù)為P。
嵌入醫(yī)學體數(shù)據(jù)的多重水印為:Wk={wk(i,j)|wk(i,j)=0,1;1≤i≤M1,1≤j≤M2,k≥1};同時,選取Matlab中自帶的一個MRI體數(shù)據(jù)作為原始醫(yī)學體數(shù)據(jù),表示為:F={f(i,j,k)|f(i,j,k)∈R;1≤i≤M,1≤j≤N,1≤k≤P}。wk(i,j)表示多水印的像素灰度值,f(i,j,k)表示原始醫(yī)學體數(shù)據(jù)的體素數(shù)據(jù)值。
將數(shù)字水印直接嵌入在體素或變換系數(shù)中不能有效的抵抗幾何攻擊,因為體數(shù)據(jù)的輕微幾何變換就會導致體素數(shù)據(jù)值或變換系數(shù)值發(fā)生較大變化,這樣嵌在體數(shù)據(jù)中的數(shù)字水印便會輕易的受到攻擊。不同體數(shù)據(jù)的三維輪廓在視覺上是有很大差異的,而且在經(jīng)歷微小的幾何變換之后其三維輪廓能夠基本保持一致。通過對大量體數(shù)據(jù)的三維DCT系數(shù)觀察發(fā)現(xiàn),當對一個體數(shù)據(jù)進行常見的幾何變換后 (通過對每個切片進行幾何變換來實現(xiàn)),三維DCT低中頻系數(shù)值的大小可能發(fā)生改變,但其系數(shù)符號基本保持不變。因此,三維DCT系數(shù)符號可以作為醫(yī)學體數(shù)據(jù)的主要視覺特征。
對原始醫(yī)學體數(shù)據(jù)進行全局三維DCT變換,得到三維DCT系數(shù)矩陣。選取8個DCT低中頻系數(shù)FD(1,1,1)-FD(2,2,2)組成醫(yī)學體數(shù)據(jù)的特征向量。三維DCT系數(shù)正值或零用 “1”表示,負值用 “0”表示。通過觀察表1發(fā)現(xiàn),體數(shù)據(jù)在受到常規(guī)攻擊和幾何攻擊后,三維DCT低中頻系數(shù)符號序列基本保持一致,與原始三維體數(shù)據(jù)的系數(shù)符號序列相關(guān)系數(shù)都較大。因此,醫(yī)學體數(shù)據(jù)的全局三維DCT系數(shù)符號序列可以作為其視覺特征向量。
表1 醫(yī)學體數(shù)據(jù)全局三維DCT變換低中頻部分系數(shù)及受不同攻擊后的變化值
步驟1 應用Logistic Map產(chǎn)生混沌加密矩陣。
由初始值x0生成混沌序列X(j)。由于多水印為二維圖像,所以X(j)需要通過升維運算得到二維矩陣。最后,混沌序列X(j)通過符號運算得到二值加密矩陣C(i,j)。其中X(j)的值大于0.5的為 “1”,其余為 “0”。
步驟2 得到混沌加密的多水印。
首先,將原始多重水印轉(zhuǎn)化為二值多重水印Wk(i,j),然后根據(jù)Hash函數(shù)性質(zhì),由二值加密矩陣C(i,j)和二值多水印Wk(i,j)得到混沌加密的多重水印BWk(i,j):BWk(i,j)=Wk(i,j)⊕C(i,j)。
步驟3 通過全局三維DCT變換,提取醫(yī)學體數(shù)據(jù)的視覺特征向量。
先對原始醫(yī)學體數(shù)據(jù)F(i,j,k)進行全局三維DCT變換,得到三維DCT系數(shù)矩陣FD(i,j,k),再將系數(shù)矩陣中的系數(shù)按照頻率由低到高的順序排列,從中選取前L個,并通過符號運算得到原始醫(yī)學體數(shù)據(jù)的視覺特征向量
步驟4 嵌入混沌加密的多水印并得到二值邏輯密鑰。
由提取的原始醫(yī)學體數(shù)據(jù)的特征向量V(j)和混沌加密的多重水印BWk(i,j),通過密碼學常用的Hash函數(shù)性質(zhì)生成二值邏輯密鑰Keyk(i,j)。保存Keyk(i,j),在后面提取水印時需要。將Keyk(i,j)作為密鑰向第三方申請,以獲得原始醫(yī)學體數(shù)據(jù)的查看權(quán)和使用權(quán)。該算法多水印的嵌入沒有改變原始醫(yī)學體數(shù)據(jù)的體素數(shù)據(jù)值,是一種零水印方案
步驟5 提取經(jīng)過攻擊后的待測水印體數(shù)據(jù)的視覺特征向量。
設(shè)待測水印體數(shù)據(jù)為F’(i,j,k),經(jīng)過三維DCT變換后得到的三維DCT系數(shù)矩陣為FD’(i,j,k)。按照上文步驟3的方法得到待測水印體數(shù)據(jù)的視覺特征向量
步驟6 利用Hash函數(shù),提取待測水印體數(shù)據(jù)中的加密多水印
式中:V’(j)——提取的待測水印體數(shù)據(jù)的視覺特征向量,Keyk(i,j)——嵌入多水印時得到的二值邏輯密鑰序列。通過Hash函數(shù)性質(zhì)得到待測水印體數(shù)據(jù)中所含的多水印BWk’(i,j)。
步驟7 生成混沌序列并得到二值加密矩陣。
令初始值x0與上文步驟1中保持一致,通過Logistic Map得到相同的混沌序列X(j)和二值加密矩陣C(i,j)。
步驟8 利用二值加密矩陣還原提取的多水印。
由待測體數(shù)據(jù)中提取的多水印BWk’(i,j)和二值加密矩陣C(i,j),通過密碼學中的Hash函數(shù)性質(zhì)得到還原的多水印Wk’(i,j)
根據(jù)Wk(i,j)和Wk’(i,j)的相關(guān)程度,我們可以判斷醫(yī)學體數(shù)據(jù)中所含的水印,從而確定待測醫(yī)學體數(shù)據(jù)的所有權(quán),保護病患的個人信息。圖1為魯棒多水印算法流程圖。由圖1可以看出,該算法實現(xiàn)了零水印嵌入和水印的盲提取,提高了醫(yī)學體數(shù)據(jù)的安全性。
圖1 魯棒多水印算法流程
仿真平臺是Matlab2010a,選擇兩個有意義的圖像作為嵌入醫(yī)學體數(shù)據(jù)的多水印,如圖2(a)-(b)所示,記為:Wk={wk(i,j)|wk(i,j)=0,1;1≤i≤32,1≤j≤32,k=1,2}。圖2(c)-(d)是由Logistic Map混沌加密的多水印,從圖中可以明顯看到水印變得雜亂無章,安全性 提高。原始醫(yī)學體數(shù)據(jù)見圖3(a),表示為:F={f(i,j,k)|f(i,j,k)∈R;1≤i,j≤128,1≤k≤27}。實驗中,Logistic Map初始值x0為0.2,增長參數(shù)μ為4。
圖2 原始水印和加密的水印
通過水印算法檢測出Wk’(i,j)后,通過計算Wk(i,j)和Wk’(i,j)的歸一化相關(guān)系數(shù)NCk來判斷是否有水印嵌入。本實驗中用NC1、NC2分別表示與提取的兩個水印對應的相關(guān)系數(shù)。其中歸一化相關(guān)系數(shù)NC公式為
式中 :W(i,j)、W’(i,j)——嵌入的原始水印和提取的水印。NC值越大,說明嵌入的水印和提取的水印相關(guān)程度越高。
圖3 不加干擾時的醫(yī)學體數(shù)據(jù)及提取的多水印
圖4 高斯噪聲強度為5%的體數(shù)據(jù)及提取的多水印
表2 水印抗高斯噪聲實驗數(shù)據(jù)
不加外部干擾時的醫(yī)學水印體數(shù)據(jù)如圖3(a)所示,可以看出含有水印的醫(yī)學體數(shù)據(jù)非常清晰。圖3(b)是醫(yī)學水印體數(shù)據(jù)的一個切片,提取的水印如圖3(c)-(d)所示,有NC1=1.00,NC2=1.00,可以準確地提取水印??闯鲶w數(shù)據(jù)切片出現(xiàn)嚴重的方塊效應,PSNR=16.57dB。此時,對應的體數(shù)據(jù)三維成像與原始體數(shù)據(jù)相比發(fā)生了很大的變化,如圖5(a)所示。觀察圖5(c)-(d),有NC1=0.93,NC2=0.93,提取的多水印與原始多水印基本保持一致。
下面通過具體的實驗來判斷該水印算法的魯棒性。
3.1.1 加入高斯噪聲
使用imnoise()函數(shù)對水印體數(shù)據(jù)進行高斯噪聲干擾,當噪聲強度為5%時,水印體數(shù)據(jù)切片已經(jīng)變的模糊不清,如圖4(b)所示。由圖4(a)可以明顯看到水印體數(shù)據(jù)整體三維輪廓已經(jīng)很模糊,PSNR=6.02dB。此時,提取的多水印依然十分清晰,且有NC1=0.95,NC2=0.94,如圖4(c)-(d)所示。
表2為水印抗高斯噪聲實驗數(shù)據(jù),可以看到噪聲強度高達25%時,PSNR降至0.07dB,有NC1=0.72,NC2=0.75,依然能夠較為準確得提取出多水印。因此,該算法有很好的抗高斯噪聲干擾能力。
3.1.2 JPEG壓縮處理
采用體數(shù)據(jù)壓縮質(zhì)量百分數(shù)作為參數(shù)對含水印體數(shù)據(jù)進行JPEG壓縮處理,(壓縮質(zhì)量為2%)。由圖5(b)可以
圖5 JPEG壓縮質(zhì)量為2%的體數(shù)據(jù)及提取的多水印
表3為水印抗JPEG壓縮實驗數(shù)據(jù),由表中實驗數(shù)據(jù)得到,該算法對JPEG壓縮有較強的魯棒性。
表3 水印抗JPEG壓縮實驗數(shù)據(jù)
3.2.1 旋轉(zhuǎn)變換
對水印體數(shù)據(jù)順時針旋轉(zhuǎn)4度,此時水印體數(shù)據(jù)的PSNR為17.54dB,如圖6(a)所示。圖6(b)為順時針旋轉(zhuǎn)4度的體數(shù)據(jù)切片。此時,提取的多水印清晰,與原始多水印保持一致,有NC1=0.95,NC2=0.94。
圖6 順時針旋轉(zhuǎn)4度的體數(shù)據(jù)及提取的多水印
表4為水印抗旋轉(zhuǎn)攻擊實驗數(shù)據(jù),當對水印體數(shù)據(jù)順時針旋轉(zhuǎn)35°時,信噪比變得很低,為11.33dB,仍然可以較為準確地提取出多水印,有NC1=0.88,NC2=0.87。由此得出,該水印算法有較強的抗旋轉(zhuǎn)攻擊能力。
表4 水印抗旋轉(zhuǎn)攻擊實驗數(shù)據(jù)
3.2.2 平移變換
對水印體數(shù)據(jù)進行平移變換,水平左移15%時的水印切片如圖7(b)所示,對應的三維體數(shù)據(jù)如圖7(a)所示,PSNR=8.63dB。提取的多水印如圖7(c)-(d)所示,NC1=1.00,NC2=1.00,可以準確得提取出多水印。
表5為水印抗平移變換實驗數(shù)據(jù),由表中數(shù)據(jù)可以看到,當水印體數(shù)據(jù)水平左移20%時,仍可準確得提取多水印。故該算法有好的抗平移變換能力。
圖7 向左平移15%的體數(shù)據(jù)及提取的多水印
表5 水印抗平移變換實驗數(shù)據(jù)
3.2.3 剪切實驗
對水印體數(shù)據(jù)進行剪切實驗,按Z軸方向剪切16%后,體數(shù)據(jù)三維成像的頂部已經(jīng)缺失了很大一部分,如圖8(a)所示。圖8(b)為體數(shù)據(jù)的第一個切片圖像。由圖8(c)-(d)可以明顯看到,多水印仍可被準確地提取出來,NC1=0.95,NC2=0.94。
圖8 Z軸剪切16%的體數(shù)據(jù)及提取的多水印
表6為水印抗剪切攻擊實驗數(shù)據(jù),當水印體數(shù)據(jù)按Z軸方向剪切30%時,仍可有效地提取出多水印,有NC1=0.69,NC2=0.77。由此得知,本文所提出的算法有一定的抗剪切能力。
表6 水印抗剪切攻擊實驗數(shù)據(jù)
針對醫(yī)學體數(shù)據(jù)水印信息的安全性保護,本文提出了一種基于三維DCT和混沌加密的醫(yī)學體數(shù)據(jù)魯棒多水印算法。
算法利用三維DCT變換提取醫(yī)學體數(shù)據(jù)的視覺特征向量,通過視覺特征向量進行多重水印的嵌入與提取,結(jié)合第三方概念和Hash函數(shù)性質(zhì),實現(xiàn)了零水印嵌入和水印的盲提取,有效地保護了醫(yī)學體數(shù)據(jù)。在多水印的處理上,采用了Logistic混沌映射對多水印進行加密,提高了水印信息的安全性。與此同時,該算法提高了嵌入體數(shù)據(jù)的水印容量,有更好的實用性。
實驗結(jié)果表明,該算法可以有效地提取多水印,且對常規(guī)攻擊和幾何攻擊都有很好的魯棒性。
此外,該算法也可用于其它領(lǐng)域的三維體數(shù)據(jù)水印信息保護和認證。
[1]Bhargava N,Sharma M M,Garhwal A S,et al.Digital image authentication system based on digital watermarking[C]//Proc of the IEEE International Conference on Radar,Communication and Computing,2012:185-189.
[2]Feng Hongyu,Gu Yuesheng,Li Yancui.Research on digital watermarking based on wavelet theory[J].Journal of Convergence Information Technology,2012,7 (13):292-299.
[3]Kaur S,F(xiàn)arooq O,Singhal R,et al.Digital watermarking of ECG data for secure wireless communication[C]//Proc of the IEEE International Conference on Recent Trends in Information,Telecommunication and Computing,2010:140-144.
[4]Navas K A,Sasikumar M.Survey of medical image watermarking algorithms[C]//Tunisia:Proc of the 4th Sciences of Electronic,Technologies of Information and Telecommunications International Conference,2007:25-29.
[5]YE Tianyu,NIU Xinxin,YANG Yixian.A multi-purpose dual watermark algorithm[J].Journal of Electronics &Information Technology,2009,31 (3):546-551 (in Chinese).[葉天語,鈕心忻,楊義先.多功能雙水印算法[J].電子與信息學報,2009,31 (3):546-551.]
[6]Dong Chunhua,Li Jingbing,Han Xianhua,et al.Multiple watermarks for management in medical image based on DWT[J].International Journal of Digital Content Technology and its Applications,2012,6 (10):239-247.
[7]LIU Quan,JIANG Xuemei.Hierarchical semi-fragile digital watermarking algorithm for image tamper localization and recovery[J].Journal on Communications,2007,28 (7):104-110 (in Chinese).[劉泉,江雪梅.用于圖像篡改定位和恢復的分層半脆弱數(shù)字水印算法[J].通信學報,2007,28 (7):104-110.]
[8]CHEN Haipeng,QIN Jun,SHEN Xuanjing,et al.Robust watermarking algorithm based on the feature of digital image[J].Computer Science,2011,38 (5):258-264(in Chinese).[陳海鵬,秦俊,申鉉京,等.基于圖像特征的魯棒性數(shù)字水印算法[J].計算機科學,2011,38 (5):258-264.]
[9]CHEN Wufan,QIN An,JIANG Shaofeng,et al.Medical image analysis:State of the art and future directions[J].Chinese Journal of Biomedical Engineering,2008,27 (2):175-181(in Chinese).[陳武凡,秦安,江少峰,等.醫(yī)學圖像分析的現(xiàn)狀與展望[J].中國生物醫(yī)學工程學報,2008,27(2):175-181.]
[10]ZOU Changhua,TAN Shiheng,LIN Tusheng.Digital watermarking algorithm in DCT based on chaotic scrambling and chaotic encryption[J].Microelectronics &Computer,2011,28 (5):58-62 (in Chinese).[鄒長華,譚世恒,林土勝.基于混沌置亂和混沌加密的DCT域數(shù)字水印算法[J].微電子學與計算機,2011,28 (5):58-62.]