杜萬鑫,曹新玉,潘明華
(桂林電子科技大學 廣西密碼學與信息安全重點實驗室,廣西 桂林 541004)
數字水印是一種具有保護知識產權功能的水印嵌入技術,通過某種算法將水印嵌入圖像、視頻、音頻等載體上[1]。這種水印包含所有者的Logo、序列號或控制信息。因此,當作品發生版權糾紛,所有者就可通過檢測水印信息來維護自身合法權益。
數字水印領域相關算法很多,如空間域法、變換域法等。變換域法是將空間域的信息轉換為頻率域的信息,相較于空間域算法,不僅復雜度高,且抗幾何攻擊能力強。離散小波變換(DWT)作為變換域算法中常用的數字水印算法,具有較好的多尺度分析和時域局部性[2]。黃根嶺等[3]通過提出的基于DWT-DCTSVD 的水印算法對最優塊進行小波分解,有效增強了算法的不可見性和魯棒性。陳夢瑩等[4]提出了一種基于FRFT 的自適應彩色水印算法,通過改變載體圖像的FRFT 中頻系數來實現水印嵌入,提高了算法的自適應能力和安全性。張雪[5]利用DNA 編碼與耦合映像格子CML 技術,提出一種雙彩色圖像水印方法,增強了圖像應對各類攻擊時的魯棒性。Gonge 等[6]將DWT-DCT 水印技術與AES 加密技術相結合,能夠有效保證圖像傳輸過程中所需的保密性與完整性,增加了版權保護的可靠性。Zeng 等[7]結合非二次采樣輪廓變換(NSCT)與離散小波變換技術對載體圖像進行一級NSCT 分解,以獲取其低頻部分,然后對低頻部分進行二級DWT,提取二級低頻子帶,并根據大小將這些子帶劃分為子塊,以此計算水印的最佳嵌入位置,該算法不僅能夠很好地滿足水印的不可見性,而且能保證水印的魯棒性。Adnan 等[8]提出一種自適應彩色圖像水印技術,在編碼階段前,將載體圖像從RGB 變換為YCbCr 顏色空間,然后通過選擇其中的Cb 分量來引用DWT 嵌入方法;在提取過程前,用DWT 對載體圖像的所選象限進行分解,能夠保持水印的不可見性與魯棒性。總體來看,數字水印首要考慮不可見性和魯棒性2 個關鍵指標,然而兩者不可兼得,需要平衡。由此可見,在實際設計中,需要充分考慮即能夠實現水印圖像的不可見性,又要利用圖像本身特征使水印在應對不同類型的攻擊下具有更強的魯棒性[9]。
鑒于此,利用DWT 和FRFT 運算速度快、聚焦性高的特性來提升水印的視覺性和魯棒性。在水印嵌入環節對載體圖像進行分塊,并進行DWT 變換,選擇低頻子帶系數計算特征值,求出特征向量組后進行FRFT 變換,同時對水印信息進行DNA 編碼,從而產生密文,并根據密文序列生成隨機因子F1和F2。根據行優先原則伴隨隨機因子改變,對特征向量進行修改,以嵌入水印信息,再通過FRFT 逆變換來完成水印嵌入。
DNA 是由A、T、C、G 四種核苷酸組成的高分子化合物,其中A 和T,C 和G 分別互補配對。在計算機系統中,信息由0 和1 兩位數字組成的二進制數表示。因此,A、T、C、G 可用2 位二進制信息表示,即00、11、10、01。根據Watson-Crick 互補原則[10],共有8 種編碼規則,對應的8 種DNA 編碼規則如表1 所示。

表1 DNA 編碼規則
對于一幅圖像,每個像素點可轉化為二進制序列。以灰度圖像為例,其像素值范圍為0~255,長度為8 bit。每個像素點的二進制序列由DNA 序列來表示,則可分割為4 個2 bit 長度的核苷酸。
小波變換是一種變換分析方式,離散小波是將連續的小波離散化[11]。假設任意函數w(t)的小波變換為W(x,y),其中:x為尺度因子,y為平移因子。當小波基函數的x、y在某些離散點上取值時,進行以下離散變換:
因此,離散小波變換(DWT)定義為
分數階傅里葉變換(FRFT)是以時域的角度旋轉頻域的坐標軸,因此其同時具有時域與頻域的特征以及角度連續性[12]。
在對圖像進行處理時,可將信息采用二維FRFT變換[13],使之能夠選取信息最為集中的部分進行分析,即能通過不同的分數階獲取最大的幅值,以此得到最優階次。二維圖像信號的FRFT 變換為
其中:σ=απ/2;θ=βπ/2 為FRFT 信號的旋轉角度;f(p,q)為二維圖像信號,p、g為原始圖像大小;F(m,n)為分數階的二維圖像信號,m、n分別為分數階圖像的長和寬;α、β為變換階數,在(0,1)區間上取值。
利用DNA 置亂加密的高安全性,同時考慮DWT 和FRFT 運算速度快、高聚焦性的特性,提出DNA-DWT-FRFT 數字水印算法。算法分為水印加密、水印嵌入、水印提取三部分,算法流程如圖1 所示。水印嵌入前,先進行DNA 編碼加密,產生水印密文序列;定義隨機因子F1和F2并初始化,根據水印密文序列更新F1、F2。水印嵌入時,先對載體圖像進行8×8的分塊處理和一級離散小波變換,選取低頻子帶進行二維FRFT 變換后,計算出特征值和特征向量組,并根據隨機因子F1、F2確定水印嵌入位置,最后通過對特征向量組替換來實現水印密文的嵌入。水印提取時,通過計算F1、F2與特征向量的相關性,并與閾值進行比較后,提取出密文水印。
水印信息作為版權所有者的標識,一般都以二維的形式表示。為了使篡改者即便獲得水印,也難以分析出原始水印,對水印進行加密。考慮DNA 編碼的置亂加密的高安全性,采用DNA 編碼技術對水印進行加密處理,以提高水印信息的安全性。加密過程如下:
1) 若水印為彩色圖像,則直接分離水印R、G、B 三通道分量,將水印圖像轉換為二維矩陣;若水印為灰度圖像,則利用偽彩色變換將灰度圖像轉為彩色圖像。
2) 將水印圖像的二維矩陣轉換為一維的比特流信息序列。
3) 按照DNA 編碼規則將一維圖像信息序列加密為DNA 序列,最終得到水印密文序列Iew。
在水印嵌入時,通過改進的DWT 進行載體圖像處理。首先對載體圖像進行一級DWT 變換[14],得到載體圖像的系數矩陣,然后根據系數矩陣得到對應的特征向量組[15],再對特征向量組進行二維FRFT 變換,最后根據水印密文序列得到隨機因子F1和F2,以此確定載體圖像嵌入水印的位置,從而達到將水印嵌入載體圖像的目的。具體運算過程如下:
1) 首先對載體圖像F進行8×8 分塊處理,分成一系列的子塊In,n=1,2,···,64。為方便后續水印提取,計算圖像二值化的閾值d,
其中:p0為背景區域(像素值小于等于d)所有像素點數占圖像總像素數的比例;m0為平均像素值;p1為前景區域(像素值大于d)所有像素點占圖像總像素數的比例;m1為平均像素值。
7) 為了提高隨機性,增加安全性,水印嵌入位置選取規則為
按照行優先原則,對特征向量ej的σ2進行替換,以嵌入水印信息。i取的是特征向量ed,替換式為
8) 完成水印信息嵌入后進行FRFT 逆變換,生成嵌入后的載體圖像(pq),
水印提取是水印嵌入的逆過程,根據置亂后的特征向量和隨機因子F1和F2完成整個水印的提取,步驟如下:
2) 選取DWT 變換后的低頻子帶系數,進行二維FRFT 變換,得到含有水印信息的系數矩陣。
3) 對系數矩陣每個元素j計算F1、F2與低頻子帶矩陣相應特征向量ei的相關性Sj,
4) 對圖像所有位置進行水印值提取:若相關性Sj大于閾值d,則水印信息為1;否則,水印信息為0,遍歷所有像素點即可。
3.1.1 峰值信噪比
峰值信噪比(PSNR)是一種評價圖像質量的客觀標準[16]。峰值信噪比越大,則2 幅圖像的相似度也越大,圖像質量越高。根據人眼視覺系統[17](HVS),當PSNR 大于33 dB 時,人從視覺上就認為2 幅圖像是一致的[18]。PSNR 計算式為
其中:fMSE為原始圖像與秘密圖像之間的均方誤差;t為每個采樣像素值的比特位數;為原始載體圖像;為水印圖像。
老子是偉大的哲學家、思想家,真正做到了長壽,即壽百歲,又“死而不亡”,留下了不朽的《道德經》,不被人遺忘,其中樸素的辯證法為人稱道。
3.1.2 歸一化相關系數
歸一化相關系數[19](NC)表示原始水印與提取水印之間的相似程度。一般地,NC 越大,魯棒性越好。NC 計算式為
其中:w為原始水印;w′為提取水印。
3.2.1 水印加密測試
對水印加密進行測試,若圖像為灰度圖像,則首先將灰度圖像轉為彩色圖像,分離水印R、G、B 三通道分量,繼而對水印圖像進行DNA 編碼置亂加密。實驗中采用如圖2(a)所示的灰度圖像作為水印,其大小為128 像素 ×128 像素,得到如圖2(b)所示的加密后的水印圖像。從圖2 可看出,加密后的圖像從人眼視覺上看與原圖無直接聯系,從而達到提高水印安全性的目的。

圖2 原始水印與加密后圖像
3.2.2 不可見性測試
通過計算PSNR 可以評價算法保持圖像質量的性能。PSNR 越大,表明水印算法的隱蔽性越好。實驗中載體圖像選取如圖3(a)所示,且大小為512 像素×512 像素的Baboon彩色圖像。采用本水印算法進行水印嵌入實驗,得到水印嵌入后的圖像,如圖3(b)所示。對比圖3(a)、(b),兩者從視覺上看并無明顯差異,通過計算可得fPSNR為51.141 9 dB,大于33 dB,說明本算法具有良好的不可見性。

圖3 水印圖像嵌入前后對比
3.2.3 魯棒性測試
為進一步驗證本算法的魯棒性,對不同水印圖片、不同的載體圖像在不同攻擊下進行測試分析。實驗中,采用高斯噪聲(0.01、0.05、0.10)、椒鹽噪聲(0.01、0.05、0.10)、裁剪(1/8)、旋轉(10°)、JPEG壓縮(Q=70)。
1)不同水印圖像測試。
將水印1(灰度圖像)與水印2(彩色圖像)作為對照實驗。通過對含水印信息的圖像分別進行無攻擊、高斯噪聲(0.01)、椒鹽噪聲(0.01)、裁剪(1/8)、旋轉(10°)、JPEG 壓縮(Q=70)等攻擊測試,并從已遭受過攻擊的圖像中提取水印信息,水印提取結果如圖4、5所示。

圖4 水印1 在不同攻擊下的提取效果

圖5 水印2 在不同攻擊下的提取效果

圖6 不同水印嵌入載體圖像
從圖4、5 可看出,雖然水印圖像含有一些噪聲,但整體水印提取效果較為理想,仍能清晰地辨識出原始水印圖像,且同一張圖片不論是灰度圖像,還是彩色圖像,本算法的提取效果均完全一致。
2)與其他算法的比較實驗。
針對攻擊測試結果,將本算法與文獻[20]、文獻[21]算法進行對比。測試條件為無攻擊、高斯噪聲(0.01、0.05、0.10)、椒鹽噪聲(0.01、0.05、0.10)、裁剪(1/8)、旋轉(10°)、JPEG 壓縮(Q=70)攻擊,本算法與文獻[20]、[21]算法對比所得NC 值如圖7 所示。從圖7 可看出,相比其他算法,本算法總體性能更好,在無攻擊情況下,提取的水印與嵌入水印相似度為1,除了剪切攻擊下效果略差,其他如高斯噪聲、椒鹽噪聲、旋轉、壓縮等提取的水印相似度均大于98%,優于其他算法。由此可見,本算法抗攻擊能力較好,具有較強的抵抗能力。

圖7 攻擊實驗的NC 值
3)不同載體圖像測試。
對含有相同水印的不同載體圖像進行多種類型的攻擊測試。測試中選取如圖6 所示的3 種不同載體彩色圖像,其大小均為512 像素×512 像素。
通過提取遭受各類攻擊的載體圖像中的水印,得到本算法在不同攻擊下的各載體圖像的NC 值,如表2所示。從表2 可看出,本算法具有較好的魯棒性、不可見性,具備抵抗各類攻擊的能力。

表2 本算法各載體圖像攻擊實驗的NC 值
提出了一種基于DNA-DWT-FRFT 的改進的彩色圖像水印算法。本算法按DNA 編碼規則對原始水印進行置亂加密,提高了水印的安全性。在水印嵌入階段,對載體圖像進行DWT 變換,利用低頻子帶系數計算特征值,求出特征向量組后進行FRFT 變換,結合符合DNA 編碼規則的原始水印密文,由密文序列產生隨機因子,并采用隨機因子改變特征向量,以此確定嵌入像素點。對不同水印、不同載體進行測試,結果表明本算法能有效提高水印的隱蔽性,且在噪聲干擾、JPEG 壓縮等攻擊下具有較強的魯棒性,實現了水印抗攻擊能力與不可見性的平衡。將本算法與其他算法進行比較,結果表明本算法對噪聲攻擊、旋轉攻擊、JPEG 壓縮等具有較強的抵抗攻擊能力,可有效應用于加密通信、數字版權保護等領域,但在剪切攻擊方面仍有進步與提升空間。