蔣天發,牟群剛
(中南民族大學計算機科學學院,武漢430074)
數字水印在數字媒體版權保護、私密信息傳遞、信息認證、電子商務等方面應用得非常廣泛,而且傳統的數字水印技術已經比較成熟了,但還有一些領域未能完全涉足,如今量子圖像水印技術及其認證目前還處在起步階段[1].量子理論在計算機方面也得到了廣泛的應用,如量子計算機的研究、量子算法的設計與研究等,當前最成熟的量子算法主要是量子進化算法和量子搜索算法,這兩種量子算法在計算機的各個方面也得到了不同程度的應用,其中,在圖像水印方面,量子進化算法主要起著速度優化與圖像視覺質量優化的功效,而量子搜索算法則在圖像水印嵌入過程中快速搜索出更好的嵌入位置[2,3];即使如此,量子算法在圖像水印方面的研究仍然屈指可數,還有更多關于量子水印方面的技術等待我們去發掘[1].本文對經典的量子進化算法[4]進化過程中種群和表達量子染色體的量子比特加以改進,并用改進的量子進化算法實現圖像水印的嵌入與提取操作.
將初始化的種群分為若干個子群,每個子群在進化算法執行時獨立進行進化操作,在一定的進化代數之后進行子群間的個體交換,即實現子種群間個體“移民”,以此交換信息并達到更快的運算速度.如初始化種群Q(0)中有N(N=2n)個個體,可以將種群Q(0)分為=2n/2個子種群,每個子種群含有個個體.進化一定代后,交換子種群間的個體,再次執行進化算法.這樣,每個子種群進化速度要比未劃分子種群時快,進化過程中,子種群內通過染色體雜交的同時,子種群間通過個體“移民”實現子種群間的“雜交”,在加快運算速度的同時兼顧了整個大種群內種群多樣性的維護.
量子染色體編碼的量子位改為量子角,原來的量子位|φ〉=α|0〉+β|1〉概率幅需滿足歸一化條件|α|2+|β|2=1,因此,一個量子比特的表示也可以用一個量子角來實現,|φ〉=[θ],可以等同于量子比特表示法,即:

只有一個變量θ.此時sinθ,cosθ分別為|0〉和|1〉的概率振幅值,|sinθ|2為量子基矢|0〉的概率,量子基矢|1〉的概率同理,兩個概率振幅值的歸一化就很明顯了.量子染色體可以相應地編碼為[θ1θ2… θn],其中n為染色體長度.
量子門旋轉也能用量子角表示為[θ'i]=[θi+τ(Δθi)],其中τ表示微小變化量,將量子門的運算改為量子角的微調.使用量子角表示量子態可以知道當前個體與最優個體之間的差角及差值方向,只需將當前個體向最優個體調整即可完成量子旋轉操作.量子旋轉角旋轉查詢見表1.

表1 改進量子旋轉門旋轉角查詢表Tab.1 The rotation angle query table of improved quantum rotation gate
依據表1中θi和besti的取值,量子旋轉門的操作直接調整s(θi)的值,這樣做不但簡化了傳統量子進化算法中定長步長的進化策略,而且可以一次到位.
同樣,為了防止進化早熟現象的發生,增強算法的局部搜索能力,需要對染色體基因位進行變異,這里對量子角執行“非”操作,構成新的量子角,達到變異的目的,即:

其中θ'i表示變異后的量子角,θi為變異前的量子角,兩角度之和為π/2,因此變異實質就是求量子角的“非”值.
Step1:對載體圖像進行小波變換并提取水印序列.按照水印嵌入者指定的變換級別K對載體圖像進行小波變換,做好水印嵌入準備.根據水印嵌入者的選擇,將圖片水印或者文字水印量化為二進制序列.其中,為了有效展示剪切攻擊效果,圖片水印需要置亂后再進行量化操作;為了提高嵌入后圖像的可視化效果,如果水印圖像為二值圖像則需要對圖片的量化按位求反.
Step2:提取載體圖像小波系數的量化序列并嵌入水印.量化過程為:設Il,f(θi)為當前特征點與密鑰經過混沌函數共同選擇的較高頻段的小波系數,其中l,f∈ {1,2,…,K}表示小波變換層數,指示各方向的細節子圖,θi表示當前點的量子角,混沌函數為:

其中A=4,B=2.5,變量x的初值由密鑰確定,第一步水印圖像置亂操作也由本函數完成.設當前第一個高頻模塊LL1的可見度閾值(水印嵌入者可以自由設置該閾值)為 JNDl,f1,則其余頻段的閾值為 JNDl,f1-k,k∈ {1,2,…,K-1},低于當前閾值的小波系數都準備嵌入水印信息.第一級高頻系數HH1中不嵌入數據,從去掉HH1后的其他高頻系數中嵌入數據,嵌入過程中,不同級數的小波系數用不同的閾值控制,而不是采用固定步長或者靈活步長確定.
Step3:采用QEA找到水印信息的最佳嵌入位置,其過程為:
①令種群代數t=0,初始化含有N個個體的種群Q(0),使用量子角編碼模式,將種群所含染色體的每個基因的量子角都初始化為π/4,將大種群Q(0)劃分為多個子種群;
②測量各個體得到種群P(t),產生0~π/2之間的隨機角度,若小于給定角度則測量值取0,否則為1,測量當前個體X的適應度f(X)并保存適應度最大的個體;
③當前是否終止,如未終止,則繼續以下過程:(i)t=t+1;
(ii)測量當前染色體是否優于最優個體,如果是,則將前面的最優個體改為當前最優個體,否則保持不變;
(iii)以最優個體為方向,利用基因位角度編碼的“非”門進行染色體變異以及種群間“移民”進行雜交;
(iv)得到后代Q(t+1),返回(i).
Step4:將嵌入過程所用到的私鑰存放至第三方可信數據庫中.
Step5:將嵌入水印后的載體圖形做小波逆變換,得到含水印的載體圖像.
使用與嵌入過程相同的小波函數對圖像執行相同層數的小波變換,并從可信第三方取出嵌入水印時所用到的私鑰,用嵌入過程相同的方案找出每個特征點對應的小波系數.使用與嵌入水印過程相反的步驟實現水印的提取.
設w'為提取水印的量化序列,w為原始水印的量化序列,利用所提取水印與原始水印的區別能看出水印圖像的真實性及其被修改過的坐標等信息,進一步判斷載體圖像是否真實以及可能被篡改的位置等.判斷所提取水印同原水印之間的差別函數可以定義為:

其中⊕表示異或運算.兩種水印不同時,對應的小波系數位置就表示水印圖像出錯的空間位置,詳細位置可以依據小波變換算法的尋址規則進行查詢.
以下從圖像的視覺質量、魯棒性與安全性分析、嵌入容量、與其他算法對比等幾個方面對算法性能進行評估.實驗仿真采用64位Windows 8操作系統、RAM 4GB、基于x64的處理器、四核Intel Core(TM)i7 3.46GHz下C++Builder開發環境用C++語言實現,測試載體圖像為256級的彩色圖像或者灰度圖像,大小均為512×512.
峰值信噪比(PSNR,peak-signal-of-noise-ratio,這里為8位采樣點)和均方差(MSE,mean squared error)用來度量嵌入水印后載體圖像的質量,彩圖PSNR為3個分量的平均值[5]:

為了獲得更大嵌入容量或者嵌入率,以下仿真測試選擇嵌入文字信息作為水印,嵌入水印前后的圖像與直方圖舉例展示如圖1.

圖1 嵌入水印前后載體圖像Lena及其像素直方圖Fig.1 Carrier image and pixel histogram before and after embedding watermarking
圖1從左至右分別為水印嵌入前載體圖、嵌入后載體圖、嵌入前載體直方圖、嵌入后載體直方圖.該算法可以用文字或者圖像作為仿真測試水印,待嵌水印與提取出來的水印如圖2所示.

圖2 嵌入水印與提取水印的效果Fig.2 Effect of watermark embedding and extraction
嵌入文字水印后,不同載體圖像(名稱含RGB的表示彩圖)的峰值信噪比如表2所示.

表2 文字水印嵌入不同圖像的性能顯示Tab.2 Performance show after text watermark embedded into different images
從表2可以看出,該算法嵌入率較高,PSNR值較大,對比 Wang Z W 的算法[6,7],本算法嵌入水印后圖像質量更高,PSNR最小值超過44,而Wang的文章中,其Lena的PSNR值為36.2941,改進后的基于量子進化算法的圖像水印策略有較高的峰值信噪比和高嵌入率,見表3.

表3 圖片水印嵌入不同圖像的性能顯示Tab.3 Performance show after image watermark embedded into different images
圖像水印為64×64的二值圖像,對每個像素只需要嵌入一個0或1即可.嵌入圖片水印后含水印圖像的PSNR值較大,圖像視覺效果好.
在此給出了幾種常見攻擊后含水印圖像及其水印檢測結果,剪切攻擊、壓縮攻擊,鹽椒攻擊與篡改、濾波攻擊后含水印圖像及其提取出來的水印圖片分別如圖3~圖6所示.
圖3給出了各種剪切攻擊的效果,其中第7個為中間1/4剪切攻擊,最后一個為隨機剪切.圖4中從左往右的壓縮因子分別為 0.8,0.6,0.4,0.2.圖 5中前3個從左往右鹽椒密度分別為0.03,0.06,0.10,最后一個含水印圖像的一個小方塊內被篡改過,增加了R分量的值,右邊為提取水印后判斷出該圖已被篡改并標注出了篡改位置.
圖6中從左往右分別為低通、中值、高斯濾波后含水印圖像及其提取的水印效果,可以看出,一般性攻擊后仍能提取可辨認的水印,滿足魯棒性要求.

圖3 剪切攻擊后含水印圖像及其水印檢測結果Fig.3 The watermarked image and watermark detection results after shear attack

圖4 JPEG壓縮攻擊后含水印圖像及其水印檢測結果Fig.4 The watermarked image and watermark detection results after JPEG compression attack

圖5 鹽椒攻擊與篡改后含水印圖像及其水印檢測結果Fig.5 The watermarked image and watermark detection results after salt and pepper attack and tamper

圖6 濾波攻擊后含水印圖像及其水印檢測結果Fig.6 The watermarked image and watermark detection results after filtering attack
將各種攻擊后所提取的水印與原水印圖像進行比較,水印圖像的PSNR如表4所示.

表4 Lena受攻擊后水印圖像的魯棒性測試結果Tab.4 Robustness test results of watermark image after Lena being attacked
嵌入水印后含水印圖像的PSNR及其嵌入率如表2所示,與Wang Z W等[6,7]的快速水印算法相比,本算法中,嵌入水印后含水印圖像的PSNR最小值為44.7416,超過了Wang等算法中給出的唯一PSNR結果36.2941.從PSNR的定義可知,一般而言,PSNR越大,則兩張圖片的相似度越高,本算法給出了一些仿真測試的PSNR值,就不再像Zhang那樣給出顯得有些冗余的相似度值.此外,本算法有較高的嵌入率,最大近似嵌入率為4bit/pixel.同樣,本算法在水印嵌入過程中運用了量子進化算法,優化了嵌入信息的速度,測試文本嵌入時,txt文本達1.2MB,耗時15s左右,從實際嵌入率4bit/pixel可知,嵌入最大長度接近1MB,若用仿真軟件中64×64大小的二值圖像作為水印,則瞬間可完成嵌入.
基于經典量子進化算法并在分析Wang Z W等文獻的基礎上,提出了一種新的基于量子計算理論的圖像水印算法,并對嵌入過程進行了一些優化,如嵌入過程不再使用量化間隔、嵌入時考慮低通濾波等攻擊的影響,實驗結果顯示:該算法比Wang Z W等所采用的算法有更高的圖像視覺質量,且嵌入容量有所增加.
[1]朱金娥.量子水印技術研究的現狀與前瞻[J].高等函授學報:自然科學版,2011,24(5):8-10.
[2]Giuliano B,Giulio C.量子計算與量子信息原理(第一卷:基本概念)[M].北京:科學出版社,2011:75-117.
[3]Michael A N,Isaac L C.量子計算和量子信息(一:量子計算部分)[M].北京:清華大學出版社,2004:228-240.
[4]蔣天發,牟群剛,周 爽.基于完全互補碼與量子進化算法的數字水印方案[J].中南民族大學學報:自然科學版,2014,33(1):95-99.
[5]熊志勇,王江晴.基于互補嵌入的彩色圖像可逆數據隱藏[J].光電子·激光,2011,22(7):1085-1090.
[6]Wang Z W,Li S Z,Cai Q X,et al.A fast watermarking algorithm based on quantum evolutionary algorithm[C]//IEEE.IEEE Conference Publications,Intelligent Computing and Intelligent Systems,ICIS 2009.IEEE International Conference on Shanghai.Shanghai:IEEE,2009:94-98.
[7]王智文,李紹滋,蘇松志,等.一種基于量子進化算法的快速水印算法[J].光電子·激光,2010,21(5):737-742.