国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

直方圖移位安全可逆圖像水印算法的研究*

2020-09-17 05:39趙文鵬李子臣游福成李禎禎
關(guān)鍵詞:差值像素點直方圖

趙文鵬,李子臣,游福成,李禎禎

(北京印刷學院 信息工程學院,北京 102600)

0 引言

隨著網(wǎng)絡和多媒體的快速發(fā)展及普及,數(shù)字內(nèi)容規(guī)模呈指數(shù)級增長,使得數(shù)字內(nèi)容的安全性越發(fā)重要[1]。數(shù)字水印技術(shù)(Digital Watermarking)應運而生。數(shù)字水印技術(shù)是信息隱藏的一個重要分支。

傳統(tǒng)的水印是以顯性嵌入在作品中的形式存在的,會極大地影響原作品的展示、傳播、學習和欣賞。顯性水印指的是嵌入水印之后,人類肉眼可以看見嵌入的水印信息。

現(xiàn)在越來越多的水印是隱性水印,隱性的水印嵌入技術(shù)是指載體圖像嵌入水印之后,人類肉眼無法看見嵌入的水印信息。版權(quán)方面[2],現(xiàn)在的數(shù)字水印技術(shù)是將水印信息,如用戶信息、版權(quán)信息等嵌入到數(shù)字載體中,由此來確定版權(quán)擁有者、跟蹤侵權(quán)行為、所有權(quán)認證、認證數(shù)字內(nèi)容來源的真實性等。一旦攻擊者獲知了水印算法,利用提取水印算法很容易獲取水印信息,出現(xiàn)信息泄露或偽造水印的現(xiàn)象,因此,使用水印加密技術(shù),即使水印被攻擊也只能得到無用的數(shù)據(jù)。在其他領(lǐng)域,如軍事方面,數(shù)字水印用于秘密通信,讓軍事機密消息的傳遞不暴露在傳統(tǒng)的信息通道中,同時也需要保護水印信息。

在已有研究中,文獻[3]提出了基于直方圖移位的方法,具有良好的PSNR值,但嵌入容量和水印圖像的魯棒性需要進一步提高。文獻[4]中提出了對直方圖進行修改并對提取方式進行了改進,增強水印的魯棒性,但算法并沒有提高水印嵌入容量。文獻[5]中提出了一種基于直方圖修改的圖像水印算法,能抵抗一般的傳統(tǒng)攻擊,增強了算法的魯棒性,但算法并沒有提高水印嵌入容量。文獻[6]提出了基于二維直方圖平移的方法,解決圖像在嵌入容量較大的情況下,水印隱蔽性和認證圖像質(zhì)量不高的問題,利用篡改檢測方法定位出圖像被篡改的區(qū)域,圖像完整性的認證進一步增強,但是沒有考慮像素溢出和水印信息安全的問題。

在上述研究的基礎上,針對如何保護水印信息的機密性,解決嵌入水印信息時像素溢出的問題,實現(xiàn)無損地恢復原始圖像,本文提出了直方圖移位安全可逆圖像水印算法。首先,對載體圖像進行圖像預處理,防止出現(xiàn)像素上溢和下溢的問題。把圖像劃分為棋盤結(jié)構(gòu),計算每個半平面像素的四鄰域、八鄰域的預測差值,構(gòu)建二維直方圖,使用ZUC算法對水印信息進行加密,保證水印信息的機密性。利用直方圖移位安全可逆圖像水印算法,嵌入和提取加密水印,并恢復原始載體圖像。實驗結(jié)果表明,被加密的水印信息抗攻擊能力強,圖像預處理解決了像素溢出的問題,并且水印圖像具有很好的峰值信噪比,該算法能夠無損地恢復原始圖像,實現(xiàn)算法的可逆。

本文算法流程圖如圖1所示。

圖1 算法流程圖

1 直方圖移位安全可逆圖像水印算法

1.1 圖像預處理

假設原始圖像的每個像素xi,j的取值范圍為[0,255]。 x(i,j)表 示 位 于(i,j)的 載 體 圖 像 像 素 值 。

在每個半平面的嵌入過程中,像素值可能增加1或減少1。為了防止溢出的問題(即像素值變?yōu)?56或-1),采用預處理的方法,在對每個半平面嵌入水印之前,預先將等于255或0的像素值分別改為254和1,而具有其他值的像素保持不變。換句話說,254或255的像素具有相同的結(jié)果值254,而像素值0或1的像素具有相同的結(jié)果1。對進行修改的像素使用標志位來標識像素。提取水印的過程中,在執(zhí)行每個半平面的提取之后,根據(jù)標志位將值為1或254的像素改變?yōu)槠湓贾怠?/p>

1.2 計算四鄰域、八鄰域預測差值

把灰度圖像分為兩個半平面:黑色半平面和白色半平面,類似于棋盤,如圖2所示。

第一種預測差值方法:對于載體圖像的每個像素用該點的像素值與其周圍的上、下、左、右4個相鄰像素的均值向下取整后做差,得到該像素點的第一個預測差值。如式(1)所示:

圖2 黑白棋盤結(jié)構(gòu)

當像素點位于頂點或者邊界存在特殊情況時,周圍不存在4個像素點,則按實際相鄰像素點數(shù)進行計算。

如圖3所示,像素位于頂點,則第一個預測差值計算公式為:

如圖4所示,像素位于邊界,則第一個預測差值計算公式為:

圖3 像素位于頂點的情況

圖4 像素位于邊界的情況

第二種預測差值方法:對于原始圖像的每個像素用該點的像素值與其周圍的8個相鄰像素的均值向下取整后做差,得到該像素點的第二個預測差值。當像素點位于頂點或者邊界存在特殊情況,周圍不存在8個像素點時,采用有幾個點算幾個點的方法,與第一種預測差值的方法類似。

1.3 水印加密

傳統(tǒng)的保護水印方法,僅僅是對水印信息采用一些簡單的置亂處理,沒有對水印信息進行有效的保護。序列密碼具有加解密處理速度快、實現(xiàn)簡單、便于硬件實施等特點,因此本文采用序列密碼中的ZUC密碼算法進行加密。本文的水印信息為圖片的形式。

ZUC算法稱為祖沖之算法[7-8],屬于序列密碼。ZUC算法是3GPP機密性算法EEA3和完整性算法EIA3的核心,加密是將ZUC產(chǎn)生的密碼流和輸入的明文按位異或;解密過程是將密文與加密過程相同的密碼流按位異或,實現(xiàn)解密。

對于一個未經(jīng)壓縮的灰度圖像,一個圖像像素xi,j的 取 值 范 圍 為 [0,255],(i,j)表 示 像 素 在 塊 中 的位置,xi,j可用 8 bit來表示,設各像素的比特位為bi,j,1,bi,j,2, … ,bi,j,k, 則 :

其中?·」表示向下取整。內(nèi)容所有者利用ZUC算法產(chǎn)生一個偽隨機比特流 ri,j,k,與圖像像素各比特位bi,j,k逐位進行異或運算。

所得到的 Bi,j,k即圖像像素 xi,j加密的結(jié)果 。

水印信息為灰度圖像,圖像采用ZUC進行加密,實驗結(jié)果如圖5、圖 6所示。

圖5 水印信息

圖6 加密后的水印信息

1.4 水印嵌入與提取過程

與其他數(shù)據(jù)隱藏方案一樣,該算法支持多層嵌入。對于每一層,嵌入過程包括兩輪:第一輪,通過執(zhí)行步驟(1)~(5)將消息嵌入到黑半平面;第二輪,通過再次執(zhí)行步驟(1)~(5),將消息嵌入到白色半平面。具體步驟如下:

(1)將原始載體圖像分為兩個半平面,類似黑白棋盤格結(jié)構(gòu)。首先對黑色半平面中的每個像素計算它的四鄰域差值和八鄰域差值,分別用d1,d2表示。

(2)利用差值對(d1,d2)出現(xiàn)的頻次構(gòu)建黑色半平面中的二維直方圖 H(d1,d2)。

(3)由 c=d1-d2將二維直方圖 H(d1,d2)劃分為多個不同的一維直方圖 Hc=(d1,d2),并選擇可嵌入信道(Embeddable Channel,EC)。

c的絕對值越小代表信道的位置越接近直線d1=d2,而c的絕對值越大代表信道的位置距離直線d1=d2就越遠。信道所在的位置越接近直線d1=d2,就有越好的嵌入效果。參數(shù)cb用來選擇EC,例如cb=2,那么信道-2、-1、0、1、2 均為可嵌入信道。

(4)對于每個 EC,找出相應直方圖的“左峰”和“右峰”。通道c的左峰和右峰是通道中具有最大直方圖值的兩個位置(pl,pl-c)和(pr,pr-c),pl<pr。 如果通道中的某些位置具有相同的直方圖值,則選擇最左邊的位置作為左峰,最右邊的位置作為右峰。

對EC進行平移,將d2=d1-c且d1>pr的直方圖Hc=(d1,d2)右 上 移 動 1 個 單 位 。 將 d2=d1-c 且 d1<pl的直方圖Hc=(d1,d2)左下移動 1個單位。具體平移過程如下所示:

(5)在峰值點嵌入加密水印消息,水印信息為二進制序列,b表示一位水印信息,它的值為0或1,為了避免引起混淆,含水印圖像的像素用 y(i,j)表示。具體嵌入過程如下:

(6)最終得到嵌入加密水印的黑色半平面,再次重復步驟(1)~(5)對白色半平面嵌入水印,最終得到含加密水印的圖像。

嵌入過程中的參數(shù)CB、標志位、峰值信息和加密水印的密鑰,可以通過隱蔽通道進行傳輸,在提取階段使用。

提取過程是水印嵌入的逆過程。具體步驟如下所述:

步驟(1)~(3)與嵌入過程的步驟(1)~(3)相同。

(4)掃描黑色半平面。如果掃描的像素值y(i,j)屬 于 EC,(pl,pl-c)和(pr,pr-c)是 左 峰 和 右 峰 , 則 執(zhí)行以下處理,處理有五種情況:

(5)最終得到提取加密水印之后的黑色半平面,再對白色半平面重復同樣的步驟,最終得到恢復的圖像。

1.5 加密水印的解密

提取的加密水印通過ZUC密碼算法,利用密鑰實現(xiàn)對水印圖像解密,計算收到的信息和 ri,j,k的異或得到解密圖像,如式(14)所示:

實驗結(jié)果如圖 7、圖8所示。

圖7 提取后的加密水印

圖8 解密后的水印

2 實驗結(jié)果分析

本方案在 MATLABR2014a,Windows10操作系統(tǒng)下驗證性能,選取了PEPPER、COUPLE、LENA這三幅大小為256×256的經(jīng)典灰度圖像進行實驗,水印信息選用64×64的數(shù)字圖像,如圖5所示。從不可見性、可逆性和水印信息的加密幾方面驗證算法的性能。

2.1 圖像質(zhì)量分析

峰值信噪比(Peak Signal-to-Noise Ration,PSNR)衡量圖像的質(zhì)量,PSNR值越大,即圖像質(zhì)量越好,視覺效果越好。表1說明針對256×256大小的灰度圖像,在嵌入信道為 cb=3、cb=5時,本文算法的 PSNR值。計算PSNR的公式如下:

式中,MSE代表原宿主圖像和含水印圖像之間的均方差。

表 1 256×256大小的圖像嵌入加密水印的PSNR值(dB)

通常PSNR的普遍基準在30 dB,30 dB以下的圖像劣化較為明顯,在50 dB以上則表明效果良好,而表1中本文算法的PSNR值均達到50 dB以上,說明可視效果好。

實驗分別對三幅原始圖像嵌入水印,得到含水印圖像,通過圖9對比可以看出,水印嵌入之后,水印的不可見性和水印圖像的質(zhì)量都很好。

通過原始圖像與提取水印信息后恢復的圖像之間的歸一化系數(shù)NC來說明算法的可逆性:

圖9 原始圖像和含加密水印的圖像

式中,w1、w2分別表示原始圖像和提取水印恢復后的圖像,l1、l2表示原始圖像的寬度和高度。

從表 2看出,本次以三幅大小為 256×256的灰度圖像作為原始圖像的實驗,得到的NC值為1,這說明恢復的圖像并無損失,提取加密水印信息過程和圖像恢復階段是完全無失真的,從而說明水印算法的可逆性。

2.2 水印信息的加密

傳統(tǒng)水印信息的加密方法,僅僅是對水印信息采用一些簡單的置亂處理,沒有對水印信息進行有效的保護。而ZUC算法具有實現(xiàn)簡單、便于硬件實施、加解密處理速度快等特點。利用ZUC密碼算法對水印信息進行加密,水印信息能夠抵抗目前各種常見的攻擊。

3 結(jié)論

在版權(quán)方面和多媒體信息安全方面,水印信息具有很重要的意義,需要對水印信息進行保護。本文的方案,采用國密ZUC對水印進行加密,加密的水印能夠有效地抵抗各種常見的攻擊,水印信息能得到有效的保護。對原始圖像進行預處理的方法,解決了像素溢出的問題,提取水印信息后圖像能夠百分之百地恢復,從而實現(xiàn)算法的可逆性。本文算法保證了含水印圖像具有良好的PSNR值。

猜你喜歡
差值像素點直方圖
符合差分隱私的流數(shù)據(jù)統(tǒng)計直方圖發(fā)布
數(shù)字日照計和暗筒式日照計資料對比分析
圖像二值化處理硬件加速引擎的設計
紅細胞壓積與白蛋白差值在繼發(fā)性腹腔感染患者病程中的變化
基于局部相似性的特征匹配篩選算法
基于FPGA的直方圖均衡圖像增強算法設計及實現(xiàn)
用直方圖控制畫面影調(diào)
基于像素點篩選的艦船湍流尾跡檢測算法
基于canvas的前端數(shù)據(jù)加密
關(guān)注
西吉县| 五华县| 金秀| 晴隆县| 枣阳市| 苏尼特右旗| 新巴尔虎左旗| 嵩明县| 宜都市| 河北省| 西平县| 衡水市| 怀集县| 关岭| 晋中市| 龙海市| 小金县| 德江县| 耿马| 同心县| 泽普县| 横山县| 棋牌| 陇川县| 沅江市| 克东县| 尼勒克县| 唐海县| 灌阳县| 沁水县| 望城县| 博野县| 自治县| 义马市| 陇南市| 连云港市| 江孜县| 内丘县| 澜沧| 佛坪县| 云梦县|