陳丁睿 佟國(guó)香
(上海理工大學(xué) 上海 200093)
近年來,數(shù)字技術(shù)發(fā)展迅速,伴隨著網(wǎng)絡(luò)的發(fā)展,數(shù)字產(chǎn)業(yè)的快速發(fā)展,以及數(shù)字圖像所具有的廣泛實(shí)用性和功能性等特點(diǎn),數(shù)字圖像已成為應(yīng)用最廣泛的一種數(shù)字信息。但隨之而來的是多媒體數(shù)據(jù)的版權(quán)保護(hù)問題,而數(shù)字水印在版權(quán)保護(hù)方面起到了重要的作用。數(shù)字水印在近年來也發(fā)展了許多,在科研人員中也出現(xiàn)了許多杰出的成果[1~5]。文獻(xiàn)[12]選擇對(duì)圖像進(jìn)行三級(jí)離散小波變換,再對(duì)變換后得到的低頻子帶進(jìn)行奇異值分解。在強(qiáng)魯棒性的研究上面,文獻(xiàn)[13]提出了一種具有多方向,多尺度特征的二維圖像分析算法,但是不足的是,圖像邊緣會(huì)出現(xiàn)偽Gibbs 失真現(xiàn)象。文獻(xiàn)[14]提出了一種基于局部特征的魯棒盲水印算法,算法魯棒性強(qiáng),提取圖像的特征點(diǎn)是其算法的主要內(nèi)容,其算法缺點(diǎn)是視覺質(zhì)量的下降。因此,圖像水印技術(shù)中最難的一個(gè)技術(shù)點(diǎn)就是在保證圖像質(zhì)量的前提下,盡可能平衡不可見性和魯棒性。
本文針對(duì)上述問題提出了一種對(duì)原始水印圖像進(jìn)行二重加密的方法。算法利用基于中國(guó)剩余定理(CRT)的RNS余數(shù)系統(tǒng)進(jìn)行水印的加密,再結(jié)合Arnold 置亂使得加密的圖像具備二次加密性和良好的隨機(jī)性。此外,基于DCT域的數(shù)字圖像數(shù)字水印算法,將立足于基于人眼視覺系統(tǒng),將不同基色的水印分量嵌入到DCT 的中頻系數(shù)當(dāng)中。本文提出的RNS加密算法運(yùn)算簡(jiǎn)單,使得水印具有良好的不可見性,相比傳統(tǒng)的混沌系統(tǒng)加密,RNS 的加密速度更快。
Arnold 置亂的原理是利用置換矩陣,將矩陣中的像素點(diǎn)重新排列,從而達(dá)到加密的效果[15]。
二維Arnold置亂的公式為
xn,yn是原始圖像矩陣中的像素點(diǎn)的初始位置。xn+1,yn+1是變換后的新位置。經(jīng)過多次置亂后,圖像會(huì)失去本來的面目。
實(shí)驗(yàn)中發(fā)現(xiàn),Arnold 置亂沒有密鑰參與,且具有周期性,且這種置亂只是像素位置的變換,圖像的統(tǒng)計(jì)信息無法加密,安全系數(shù)并不理想。因此,我們需要利用RNS進(jìn)行二次加密。
RNS是一個(gè)非權(quán)重?cái)?shù)值表征系統(tǒng),RNS不同于十進(jìn)制、二進(jìn)制那樣有權(quán)位的數(shù)制,它的數(shù)值表示和算數(shù)運(yùn)算都是用余數(shù)進(jìn)行的,余數(shù)運(yùn)算是一種并行運(yùn)算,不需要進(jìn)位,具有高精度[11]。余數(shù)系統(tǒng)可表現(xiàn)為如下形式。
{m1,m2…mn}為一組兩兩互質(zhì)的正整數(shù),整數(shù)X由它對(duì)該余數(shù)基的余數(shù)向量{x1,x2…xn}來表示,其中xi=Xmodmi,?i∈{1,2…n},寫作xi=X mi由式(1)可以確定X的值:
一個(gè)完整的余數(shù)系統(tǒng)至少應(yīng)該包含三個(gè)部分:余數(shù)約化、余數(shù)運(yùn)算、余/二后向轉(zhuǎn)換(R/B 轉(zhuǎn)換)。余數(shù)約化的目的是將有位權(quán)數(shù)值表示轉(zhuǎn)化為余數(shù)表示,余數(shù)運(yùn)算包括算數(shù)四則運(yùn)算和其他的必要運(yùn)算,R/B 轉(zhuǎn)換的作用是將各種余數(shù)運(yùn)算的最終結(jié)果從余數(shù)制表示轉(zhuǎn)換成二進(jìn)制表示[9]。
R/B 轉(zhuǎn)換是余數(shù)系統(tǒng)的重要內(nèi)容。目前,對(duì)于普通余數(shù)基的R/B 轉(zhuǎn)換,主要有以下兩種方法:混合基轉(zhuǎn)換和中國(guó)剩余定理(CRT)[10],本文主要的R/B 實(shí)現(xiàn)也是基于CRT 及其變形來處理。文獻(xiàn)[6]對(duì)CRT 進(jìn)行變形,得到了上述定理的三個(gè)推論CRT-I,CRT-II 和CRT-III,本文主要利用CRT-I 作為RNS的后向轉(zhuǎn)換算法進(jìn)行水印的提取。
CRT-I計(jì)算X可以由式(3)確定:
將上述內(nèi)容帶入式(3)可以求得R/B的后向轉(zhuǎn)換算法:
Step1:首先,將水印圖像進(jìn)行Arnold 置亂得到置亂后的水印圖像,實(shí)現(xiàn)初步加密。
Step2:將加密后的圖像按照余數(shù)基進(jìn)行取余,得到三通道的RNS余數(shù)塊,實(shí)現(xiàn)二次加密。
Step3:對(duì)載體圖像進(jìn)行RGB 分解得到RGB 灰度圖像,將RGB 灰度圖像按N*N 的數(shù)據(jù)塊進(jìn)行DCT變換,再將三通道的RNS數(shù)據(jù)塊按照合適的嵌入強(qiáng)度a 分別嵌入到RGB 灰度圖像的DCT 中頻變換域數(shù)據(jù)塊中:
a 為嵌入強(qiáng)度,D 為DCT 變換后的基色圖像矩陣,Rj為RNS 余數(shù)塊,Ri為嵌入水印后的DCT 變換圖像矩陣。
Step4:再分別對(duì)嵌入水印后的圖像矩陣按N*N 的數(shù)據(jù)塊進(jìn)行DCT 反變換得到加密后的RGB灰度圖像,再將三通道的分量合成得到加密后的彩色圖像。圖1為水印嵌入的流程圖。
圖1 水印嵌入流程圖
Step1:將嵌入水印的彩色圖像按RGB 分量進(jìn)行分解,獲得三通道的灰度圖像。
Step2:將三通道的灰度圖像按照N*N 的數(shù)據(jù)塊進(jìn)行DCT變換,并且與未嵌入水印的彩色圖像的RGB 三通道的DCT 變換矩陣作差獲得嵌入的三通道水印數(shù)值。
Step3:按照嵌入強(qiáng)度a 對(duì)水印數(shù)值進(jìn)行縮放,獲得三通道的RNS余數(shù)塊,再利用R/B的后向轉(zhuǎn)換算法獲得初步加密的水印圖像,最后對(duì)上述圖像進(jìn)行Arnold反置亂,獲得水印圖像。
本實(shí)驗(yàn)用Matlab 來對(duì)圖像進(jìn)行水印的加密和嵌入。載體圖像選取一幅分辨率為256*256 的標(biāo)準(zhǔn)Lena 彩色圖像,水印圖像為32*32 的灰度圖像,DCT 變換的數(shù)據(jù)塊選擇8*8 數(shù)據(jù)塊,嵌入強(qiáng)度a 取3.5。
峰值信噪比PSNR 用來評(píng)價(jià)算法的不可見性,PSNR 的值越大,說明水印圖像對(duì)原始載體圖像的改變?cè)叫?,算法的不可見性越好,彩色圖像的PSNR計(jì)算公式定義如下:
NC 歸一化相關(guān)性表示提取出的水印圖像與原始水印圖像的相似程度,它的值越大,表明算法的魯棒性越好。在此基礎(chǔ)上,還需要通過各種常見攻擊來深入測(cè)試水印的魯棒性:在嵌入水印之后,對(duì)載體圖像進(jìn)行裁剪、JPEG 壓縮、旋轉(zhuǎn)、添加噪聲以及均值濾波、中值濾波等多種常見的水印攻擊。圖2 是RGB 原始載體圖像和原始水印圖像;圖3 是含水印的RGB 載體圖像和未受攻擊情況下提取的水印圖像;圖4 是旋轉(zhuǎn)45°后的載體圖像和提取的水印圖像;圖5 是添加高斯噪聲0.1 后的RGB 載體圖像和提取的水印圖像。
圖2 原始圖像和水印
圖3 未受攻擊的載體圖像和水印
圖4 旋轉(zhuǎn)45°的載體圖像和水印
圖5 高斯噪聲0.1的載體圖像和水印
表1 是本文算法與和另一文獻(xiàn)中結(jié)合傅里葉全息加密技術(shù)和非抽樣變換的的彩色圖像水印算法的性能比較,顯然,本文的算法效果更優(yōu)。
表1 算法抗攻擊性能比較
在RNS中,通過對(duì)該系統(tǒng)下的每個(gè)分量進(jìn)行加減法和乘法操作,可以實(shí)現(xiàn)大數(shù)相加減和乘法運(yùn)算。RNS中的各個(gè)分量在運(yùn)算時(shí)不需要進(jìn)位,這使得算法的并行度得到極大的提高。本文的算法將余數(shù)系統(tǒng)分為RGB 三通道進(jìn)行并行計(jì)算,并且與文獻(xiàn)[8]提供的算法進(jìn)行時(shí)間上的比較,實(shí)驗(yàn)均采用256*256 的國(guó)際標(biāo)準(zhǔn)測(cè)試圖像,如圖6 所示??梢姡琑NS 算法不僅具有良好的加密效果,還能實(shí)現(xiàn)高速的計(jì)算。
圖6 算法速度性能比較
本文結(jié)合基于中國(guó)剩余定理(CRT)的RNS 余數(shù)系統(tǒng)和Arnold置亂,提出了一種適用于彩色圖像的數(shù)字水印嵌入算法,試驗(yàn)結(jié)果表明,對(duì)于普通的幾何攻擊或噪聲攻擊,該算法具有較強(qiáng)的魯棒性,算法速度快。若采用FPGA 硬件平臺(tái),可以設(shè)計(jì)RNS 復(fù)用處理器,實(shí)現(xiàn)算法的可重構(gòu)特性,并通過合理的調(diào)度實(shí)現(xiàn)數(shù)據(jù)級(jí)并行和指令集并行,充分挖掘數(shù)據(jù)的并行度,加快運(yùn)算速度,有很強(qiáng)的實(shí)用性。