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

?

基于混沌加密的DCT域灰度級盲水印算法

2015-01-26 15:26張建忠孔華生
物聯(lián)網(wǎng)技術(shù) 2015年1期
關(guān)鍵詞:灰度級

張建忠+孔華生

摘 要:提出一種混沌加密的DCT域灰度級盲水印算法。該算法利用80位外部密鑰和兩個混沌序列加密水印圖像,為保證水印圖像的安全性,兩個混沌映射初始條件由外部密鑰經(jīng)過分組和數(shù)學(xué)變換提供,且動態(tài)變化。加密后的水印圖像再經(jīng)過灰度處理后嵌入到數(shù)字圖像之中。仿真實驗表明,該算法對圖像信號處理和幾何失真有較好魯棒性,可應(yīng)用于網(wǎng)絡(luò)環(huán)境下版權(quán)保護(hù)和多媒體數(shù)據(jù)認(rèn)證之中。

關(guān)鍵詞:混沌加密;DCT域;盲水印;灰度級

中圖分類號:TP316 ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A ? ? ? ? ? ?文章編號:2095-1302(2015)01-00-03

0 ?引 ?言

作為傳統(tǒng)密碼學(xué)的有效補(bǔ)充,數(shù)字水印技術(shù)被認(rèn)為是解決數(shù)字化時代數(shù)字作品版權(quán)保護(hù)的一個重要手段,并成為信息安全領(lǐng)域的研究熱點[1]。早期研究的水印多以嵌入一個無意義的一維或二維偽隨機(jī)序列為主,之后逐漸發(fā)展到嵌入一個具有可視性的水印圖像[2]。二值水印圖像或者灰度水印圖像嵌入的數(shù)據(jù)量更多,而且由于人眼在直覺上對圖像最為敏感,一維或二維偽隨機(jī)序列顯然不如二值水印圖像或灰度水印圖像更容易識別[3]。此外,灰度水印較二值水印嵌入的數(shù)據(jù)量大,不但嵌入難度高,而且難于實現(xiàn)盲提取,在提高水印嵌入魯棒性的同時,也降低了其透明性,所以許多學(xué)者對灰度水印進(jìn)行了預(yù)處理以減少數(shù)據(jù)的嵌入量。

一個好的數(shù)字水印算法應(yīng)該折中的考慮水印的不可見性和魯棒性。然而現(xiàn)有的水印加密的方法多數(shù)為用一個混沌序列與水印圖像進(jìn)行一定的位運(yùn)算進(jìn)行簡單的加密,可以很容易被直觀地提取出來,在安全性上存在很大風(fēng)險。而如果對水印的加密過于復(fù)雜的話,則其在恢復(fù)的時候比較困難;通過改變連續(xù)序列數(shù)據(jù)分布特征實現(xiàn)水印的嵌入,魯棒性較好,但只能對部分?jǐn)?shù)據(jù)項適用,限制了水印嵌入容量[4]。另外根據(jù)工作域不同還有空域法和變換域法[5],空域水印直接修改圖像的像素,該類算法最大特點是算法簡單、計算復(fù)雜度低、但魯棒性較差[6-7]。變換域算法是對圖像進(jìn)行各種各樣的變換后嵌入水印,相對于空域水印算法,變換域算法中水印信號能量可以分布到所有像素上,有利于保證水印不可見性;可以較方便地結(jié)合HVS (Human vision system),有利于提高魯棒性[8]。為了加強(qiáng)水印的安全性、不可見性和魯棒性,本文提出了一種基于混沌加密的 DCT(Discrete Cosine Transform)域灰度級盲水印算法,首先用兩個混沌序列置亂水印,然后把水印文件分解成二值序列嵌入到選定DCT塊的選定系數(shù)中實現(xiàn)水印文件的嵌入。實驗結(jié)果表明該算法有效,在沒有壓縮灰度水印數(shù)據(jù)量的情況下對JPEG 壓縮、剪切等圖像處理有較好魯棒性。

1 ?基于混沌映射的水印加密

混沌是非線性系統(tǒng)出現(xiàn)的類似隨機(jī)的動力學(xué)過程,具有初值敏感性、非周期性、連續(xù)寬帶頻譜及類似噪聲的特性,使它具有天然的隱蔽性。混沌序列具有接近δ函數(shù)的自相關(guān)函數(shù)和零互相關(guān)函數(shù)的統(tǒng)計特性,遍歷統(tǒng)計特性類似于白噪聲,因此可被應(yīng)用于數(shù)字通信、多媒體數(shù)據(jù)安全和水印之中,以加強(qiáng)信息和水印的安全性。水印加密是利用外部秘鑰通過對密進(jìn)行鑰分組和數(shù)學(xué)變換來確定混沌映射的初始條件X0、Y0,產(chǎn)生兩個混沌序列X、Y。第一個序列用于和水印圖像進(jìn)行異或運(yùn)算對水印圖像進(jìn)行數(shù)據(jù)的置亂(每次8 b),第二個序列用來決定給像素中的R、G、B(都占8 b)中的哪一位與第一個混沌序列進(jìn)行位運(yùn)算。置亂后的水印圖像再經(jīng)過灰度處理后嵌入到圖像文件中。

本文以Logistic映射為例演示混沌序列加密水印算法,具體步驟如下:

第一步,應(yīng)用一個80 b長的外部密鑰,每4 b分成一個秘鑰塊:

K=k1k2k3…k20(HEX格式) ? ? ? ? ? ? ? ? ? ? ? ? (1)

ki是0-9,A-F。另外,每8 b分成一個秘鑰塊表示如下,其中Ki代表第i個密鑰塊:

K=K1K2…K10(ASCII格式) ? ? ? ? ? ? ? ? ? ? ? ?(2)

第二步,利用Logistic映射產(chǎn)生兩個混沌密鑰序列Xn、Yn用來置亂水印圖像:

Xn+1=μXn(1-Xn) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)

Yn+1=μYn(1-Yn) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)

混沌序列的初始值X0、Y0通過下面的數(shù)學(xué)轉(zhuǎn)換得到。

第三步,計算初始條件X0,選擇式(2)中三個密鑰模塊(如:K1K2K3)并把其轉(zhuǎn)換成二進(jìn)制格式B1:

B1=K1K2K3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)

Kij是第i個密鑰模塊第j個bit位(0或1),用上面二進(jìn)制形式計算實數(shù)X01[9]:

X01=(B1)10/224=(K41×20+K42×21+…+K48×27+K51×28+

K52×29+…+K58×215+K61×216+K62×217+…+K68×223)/224 ? ?(6)

用如下公式計算得出X02,其中的 ki 是式(1)中十六進(jìn)制表示的塊:

X02=(k13+k14+k15+k16+k17+k18)10/96 ? ? ? ? ? ? ? ? (7)

根據(jù)式(6)、式(7)計算的X01和X02,利用以下算法可得映射(3)的初值X0:

X0=(X01+X02)mod 1 ? ? ? ? ? ? ? ? ? ? ? ? ? (8)

第四步,根據(jù)計算獲得的X0和式(3)產(chǎn)生一個混沌序列,其中取出區(qū)間[0.1,0.9]內(nèi)的4個迭代值構(gòu)成一個實數(shù)序列f1, f2,…, f4,再把該實數(shù)序列用下式轉(zhuǎn)換成整數(shù)序列,如式(9)所示,其中int表示整數(shù)轉(zhuǎn)換,第k個整數(shù)為[9]:

Pk=int(23×(fk-0.1)/0.8)+1 ? ?(k=1,2,…,4) ? ? (9)

第五步,計算第二個混沌序列的初始狀態(tài)Y0,選擇三個密鑰模塊轉(zhuǎn)換成二進(jìn)制形式:

B2=K1K2K3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (10)

Kij是第i個密鑰模塊第j個bit位(0或1),用上面二進(jìn)制形式計算實數(shù)Y01:

Y01=(B2)10/24 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(11)

Y02用如下公式計算得到:

(12)

B2[Pk]表示B2中第Pk個bit位的二進(jìn)制值(0或1),映射(4)的初始值表示如下:

Y0=(Y01+Y02)mod 1 ? ? ? ? ? ? ? ? ? ? ? ? (13)

第六步,利用初始條件Y0和式(4)迭代產(chǎn)生一個混沌序列y1,y2,y3,y4,…yn。對序列的每個值都擴(kuò)大十倍后取整,然后對每個值對3取余,具體表示如式(14)所示:

vn=int(yn×10)mod 3 ? ? ? ? ? ? ? ? ? ? ? (14)

序列vn決定R、G、B與第一個混沌迭代產(chǎn)生的實數(shù)序列進(jìn)行位運(yùn)算,如式(15)所示。從文件中取一個像素點的數(shù)據(jù),放入大小為3的數(shù)組Val中,R放入Val[0],G放入Val[1],B放入Val[2]。序列vn(其值為0、1、2序列)決定R、G、B中的與fi (第一個混沌序列產(chǎn)生的迭代值)中的那一個進(jìn)行異或操作。其中的char表示取實數(shù)的低八位。

Val[j]=Val[j](char(fi))(j=0,1,2,j∈vn) ? ? ? (15)

第七步,水印文件的像素模塊加密以后,用如下方程更改K1~K9密鑰,

(Ki)10=((Ki)10+(K10)10)mod 256 ? ?(1≤i≤9) ? ? ? ?(16)

用上式修改密鑰后,取步驟4中迭代產(chǎn)生的實數(shù)序列中的 f4作為第一個混沌映射的初始條件(即X0=f4)再次生成一個新的4位實數(shù)序列,之后重復(fù)步驟5~7,直到水印文件處理完畢。

2 ?DCT域灰度級盲水印算法

2.1 ?灰度級水印預(yù)處理

經(jīng)過1產(chǎn)生的加密水印圖像文件為設(shè)為W,大小為M×N。對W每個像素值W(i,j),i=1,2,…M,j=1,2,…N,按位分解為二進(jìn)制,得到一個長度為M×N×8的一維二值水印嵌入序列。

2.2 ?水印嵌入

將原始灰度圖像按8×8進(jìn)行分塊然后進(jìn)行DCT變換。為較好地滿足水印的穩(wěn)健性和不可見性,選擇將水印嵌入到DCT中頻系數(shù)中[10]。具體步驟如下:

(1)設(shè)W為192×192的原始圖像數(shù)據(jù)矩陣,將W按8×8進(jìn)行分塊,每塊大小為24×24。對每個分塊進(jìn)行DCT變換,即I'=DCT 2(I)。

(2)將W的像素值分別嵌入到24個8×8的塊中,并按加性原則嵌入在中頻位置。將水印信息分別嵌入到每個塊的第(x,y)系數(shù)上,即I'd(x,y)=k×W(i,j),k為嵌入強(qiáng)度。

(3)水印嵌入后,對圖像進(jìn)行離散余弦逆變換,即I''=IDCT(I'd),這樣就得到含水印的圖像。

2.3 ?水印提取

水印提取算法大致是嵌入算法的逆過程:

第一步,對嵌入水印后的圖像I''按8×8分塊,每一塊進(jìn)行DCT變換,得到每一塊系數(shù),取出每一塊中點(x,y)處系數(shù)I''d(x,y)做相應(yīng)計算:W'(i,j)=I''d(x,y)/k,k為嵌入強(qiáng)度[11]。

第二步,對提取出的水印圖像W'(i,j),先灰度級逆處理,然后用混沌序列再進(jìn)行二值化處理即可得到原始水印圖像。

3 ?仿真實驗結(jié)果及分析

在DCT域選定一組混沌加密序列作為嵌入?yún)?shù),盲水印嵌入利用人類視覺掩蔽特性,如圖1、2所示。嵌入的水印序列在沒有原始圖像情況下可以被提取出來,實驗結(jié)果表明水印對大部分圖像信號處理和幾何失真具有魯棒性,如圖3、4所示。圖5為論文用到的原始水印,圖6為恢復(fù)水印。

圖1輸入灰度圖像 ? 圖2 嵌入水印圖像 ? ? ? 圖3不同像素

圖4受噪聲破壞的圖像 ? 圖5原始水印 ? ? ?圖6恢復(fù)水印

選用峰值信噪比PSNR客觀評價圖像降質(zhì),數(shù)據(jù)失真率DR客觀評價檢測水印質(zhì)量,NC表示原水印和提取水印最大相關(guān)系數(shù);

(17)

(18)

各種攻擊及其對含水印載體和水印檢測結(jié)果質(zhì)量的影響如下:

(1)JPEG壓縮:圖7描述了在JPEG不同的質(zhì)量和相應(yīng)的NC壓縮后的恢復(fù)水印。顯然,水印可以被識別,同時,NC的值均大于0.85。一般來說,當(dāng)Q從90至20變化過程中,NC是穩(wěn)步減少而不是像Q一樣下降。因此,該算法仍具有魯棒性和穩(wěn)定性。

(2)濾波:當(dāng)水印圖像通過高斯低通、中值和不同型號的平均值過濾器進(jìn)行過濾時,所有的水印如圖8和圖9所示。此外,NC的值均大于0.83,這表明該算法具有對抗濾波的能力。

(a) Q=90 ?NC=0.950 9 ? ? ? ?(b) Q=70 ?NC=0.927 3 ? ? ? ?(c) Q=50 ?NC=0.911 8

(d) Q=30 ? NC=0.895 4 ? ? ? ? ? ? ? ? ? ? ? ? (e) Q=20 ? NC=0.868 7

圖7 ?不同品質(zhì)JPEG壓縮后的恢復(fù)水?。≦)

(a) s=3 ?NC=0.907 3 ? ? ? ? ? ? ? ? ? ? ? ? ? (b) s=4 ?NC=0.870 8

圖8 ?不同尺寸高斯低通濾波器(s*s)后的恢復(fù)水印

(a)Median(s=3)NC=0.910 7 ? (b)Median(s=5)NC=0.890 8 ? (c)Median(s=7) ?NC=0.869 7

(d)Median (s=9)NC=0.850 2 ?(e)Average(s=3)NC=0.904 7 ?(f)Average(s=5)NC=0.873 0

(g) Average(s=7) ?NC=0.857 8 ? ? ? (h) Average (s=9) ?NC=0.832 4

圖9 ?不同尺寸下中值和均值濾波器(s*s)后的恢復(fù)水印

各種攻擊及其對含水印載體和水印檢測結(jié)果質(zhì)量的影響如表1所示。

表1 ?攻擊及其對載體圖像和水印質(zhì)量攻擊方法 載體PSNR 水印

無攻擊 43.236 4 1.039 5

JPEG 90% 38.656 3 5.659 4

JPEG 70% 36.146 8 10.626 8

JPEG 30% 33.562 2 23.931 8

高斯噪聲 26.748 3 11.258 4

低通濾波 33.515 8 14.216 4

中值濾波 34.753 9 14.469 4

銳化 29.812 3 18.837 1

灰度拉伸 18.776 5 26.890 1

綜合 10.166 2 18.123 7

4 ?結(jié) ?語

在本算法中利用80 b的外部秘鑰通過數(shù)學(xué)轉(zhuǎn)換計算得到混沌序列的初始值,迭代產(chǎn)生兩個混沌序列,以字節(jié)的方式加密水印圖像像素點,再經(jīng)過灰度處理后嵌入到圖像中。實驗顯示此算法保證了水印的不可見性,又具有很強(qiáng)的穩(wěn)健性,受到攻擊后的圖像提取出來的水印仍能被識別出來,對常見圖像處理操作具有較好的魯棒性。

參考文獻(xiàn)

[1]單桂軍,時文兵. 基于Shearlet變換的盲圖像水印算法[J]. 計算機(jī)應(yīng)用與軟件,2014,31(6):319-323.

[2]鮑政, 張建偉, 夏德深. 基于混沌加密的DCT域灰度級盲水印算法[J]. 計算機(jī)工程,2006,32(7):157-162.

[3]楊恒伏, 陳孝威. 一種魯棒的DCT域公開水印算法[J]. 計算機(jī)工程,2003,30(11): 142-144.

[4]徐龍秦. DWT域的關(guān)系數(shù)據(jù)庫魯棒性盲水印算法研究[J]. 計算機(jī)工程與應(yīng)用,2010,46(22):153-156.

[5]丁海洋. 基于DCT和DFT視頻盲水印算法的研究與實現(xiàn)[J]. 北京印刷學(xué)院學(xué)報,2012,20(4):32-35.

[6] Yang Qianli, Cai Yanhong. A Digital Image Watermarking Algorithm Based on Discrete Wavelet Transform[C]. Information Technology in Medicine and Education,2012:1102-1105.

[7]鄭融, 金聰, 魏文芬, 等. 一種基于混沌加密的DCT域數(shù)字圖像水印算法[J]. 計算機(jī)應(yīng)用,2005,25(10): 2365-2373.

[8] Kutter M, Winkler S. A vision-base masking model for spread spectrum image watermarking[J]. IEEE Trans. Image Proccessing, 2002,11(1):16-25.

[9] Pareek. N. K, Vinod Patidar, Sud. K. K. Image encryption using chaotic logistic map[J]. Image and Vision Computing ,2006,24(9): 926–934.

[10]信麗萍, 段普. 基于混沌加密的DCT域盲數(shù)字水印算法[J]. 計算機(jī)安全,2008(4):19-20.

[11]余秋菊. 基于混沌加密的DCT域數(shù)字水印算法[J]. 科技信息,2013(2):208-209.

[12] http://www.advancedsourcecode.com/dctwater.asp[EB/OL].2005.

猜你喜歡
灰度級
一種運(yùn)用抖動矩陣的LED顯示屏圖像增強(qiáng)處理算法
一種基于紅外對比度提升的高動態(tài)范圍壓縮技術(shù)
人眼可感知最多相鄰像素灰度差的全局圖像優(yōu)化方法*
基于自適應(yīng)多子直方圖均衡的圖像增強(qiáng)算法
嵌入灰度級信息的粗糙模糊熵閾值分割法
基于實測校正因子的實時伽馬校正算法
基于加權(quán)直方圖均衡的紅外圖像增強(qiáng)方法
基于灰度級分組的X光行李圖像增強(qiáng)改進(jìn)方法
基于直方圖均衡化的數(shù)字圖像增強(qiáng)技術(shù)
保持圖像細(xì)節(jié)的直方圖均衡算法