基于离散余弦变换的数字水印算法Word下载.doc
《基于离散余弦变换的数字水印算法Word下载.doc》由会员分享,可在线阅读,更多相关《基于离散余弦变换的数字水印算法Word下载.doc(5页珍藏版)》请在冰豆网上搜索。
Keywords:
informationhiding;
DCT;
digitalwatermarking;
copyrightprotection;
explanationattack
0引言
1993年,A.Z.Tirkel等人在“Electronicwatermarking”一文中首次使用了“Watermarking”(数字水印)这一术语至今,国内外许多专家学者在此领域中已取得了丰富的研究成果,并成为国际学术界研究的一个前沿热门领域[1-2]。
作为信息隐藏技术的重要分支,数字水印技术的出现与发展,为解决数字产品的版权纠纷开辟了一条新的途径。
用于版权保护的数字水印是利用水印嵌入算法在数字产品中嵌入一个版权信息,它可以是文字、图像或其它符号等,其内容可以是作品的作者、所有权、发行者以及授权使用者等有关信息,这些信息能够较好地证明版权的归属。
数字水印应满足透明性(不可见性)、鲁棒性以及安全性等基本特性[3],其中透明性与鲁棒性是一对矛盾,是水印算法必须重点解决的问题。
本文在详细分析和研究了数字水印算法和攻击原理的基础上,提出了一种基于离散余弦变换的数字水印算法以及水印密钥是由认证中心分密钥和作者分密钥生成的密钥方案。
在离散余弦变换的重要系数上嵌入水印,水印信息是一幅二值图像,在水印嵌入前利用Arnold变换进行置乱,提高水印的安全性。
实验结果表明该水印算法很好地解决了水印的透明性与鲁棒性之间的矛盾,该密钥生成方案较好地解决了解释攻击问题。
1离散余弦变换和Arnold置乱
1.1离散余弦变换
用s(x,y)表示一个N×
N图像的块,s(u,v)表示对应块的DCT(DiscreteCosineTransform,DCT)系数,则二维DCT系数及其IDCT(DCT反变换)系数的计算公式如下:
其中:
若u/v=0,则C(u/v)=1/;
否则,C(u/v)=1。
在对DCT系数反复研究之后,发现这些系数可以分成三部分,即低频部分、中频部分和高频部分,其中低频部分聚集着图像的大部分能量,中频部分聚集着图像的小部分能量,高频部分则聚集着图像的很小部分能量,而中高频系数是JPEG压缩的对象,因此,把水印信息嵌入到DCT的低频系数之中,具有较强地抗JPEG压缩能力。
考虑到水印对图像视觉的影响,文中选择低频系数的后半部分,即(2,2)至(3,3),作为水印嵌入位置。
图像压缩实验结果如图1所示。
(a)原始图像(b)保留左上角低频10系数压缩(c)保留右下角高频10系数压缩
图1图像压缩实验结果
1.2Arnold置乱
为了加强水印算法的鲁棒性,消除像素的空间相关性,对水印图像进行Arnold置乱[4]。
Arnold置乱采用如下函数:
式中:
k为控制函数,N为矩阵大小,(x,y)和(x'
y'
)分别为像素变换前后的位置.如果变换有周期T,则(x,y)经过T次变换之后,图像就能回到原始位置,即图像复原。
2数字水印算法
2.1水印嵌入与提取模型
水印嵌入与提取模型如图2所示。
原始图像I
嵌入
水印解码器
水印编码器
水印WwaIwIwn水印W’
提取
水印密钥K水印密钥K
密钥生成器
作者密钥Ka原始图像I作者密钥Ka
CA密钥KbCA密钥Kb
图2数字水印嵌入与提取模型
传统的数字水印嵌入和提取一般是由嵌入者(多指作者)单独完成,水印的内容以及嵌入过程缺乏法律依据和第三方的旁证。
本文提出的密钥生成方案很好的解决了这个问题。
该方案是建立在存在可信任中心(CA)的基础上。
虽然在众多的文献中都使用到CA,但那里的CA只为用户提供数字签名(即时戳),用于判定多重水印嵌入的先后顺序,因此,无法较好地抵抗解释攻击,而本文的可信任中心是指某一法律机构,它负责向用户提供水印的生成、嵌入、提取和密钥的生成等服务。
用户首先向CA为自己的作品申请一个序列号或注册号,该序列号包括作品编号、水印嵌入时间、作品特征值以及作者姓名等信息,这个序列号亦是要嵌入作品中的水印。
整个水印的嵌入和提取过程都是在CA的参与下进行的,CA即是一个有力而合法的证明者。
两个密钥同时泄漏的可能性很小,从而增强了水印的安全性,而水印的嵌入与提取的复杂性并没有增加。
密钥生成方案可采用如下步骤实现:
⑴作者选择一个大素数Ka,把Ka和原始作品一起安全地发送到可信任中心CA。
为了保证密钥上传过程以及保管时的安全性,可以采用文献[5]中的RSA算法,对密钥进行加密,然后传送加密后的密钥;
⑵CA根据gcd(Kb,Ka)=1求得互素数Kb,把Ka和Kb一起输入到密钥生成器,计算出水印嵌入密钥K=Ka*Kb。
由K求Ka或Kb的运算几乎是不可逆的[5]。
2.2水印嵌入算法
设原始图像S(x,y)的大小为M×
M,水印图像W(p,q)大小为N×
N,其中M满足M=2n,且8N<
M,1≤p≤N,,1≤q≤N;
⑴对W(p,q)进行Arnold置乱,置乱后的水印记为W'
(p,q);
⑵对图像S(x,y)进行8×
8的二维DCT变换,变换后的DCT系数记为Si(u,v),其中1≤i≤((M/8)×
(M/8)),i为子图像块的序号,1≤u≤8,1≤v≤8;
⑶利用随机函数在Si(u,v)中随机选择N*N个子图像块,并在每个子图像块的DCT系数的低频区域选中一个像素点,例如取u=3,v=2,把选中的像素点的DCT系数记为S'
j(3,2),j为子图像块的序号,例如,j=18时,S'
j(3,2)表示第10个子图像块中第(3,2)个DCT系数。
由于随机函数服从(0,1)分布,保证水印能够均匀地分布在载体图像之中,同时随机函数的种子可以作为密钥,与水印嵌入密钥一起构成双密钥系统;
⑷利用Sj(3,2)=S'
j(3,2)+μ*W'
(p,q)嵌入水印,得到含有水印的DCT系数Si(u,v),其中μ为水印嵌入强度;
⑸对Si(u,v)进行IDCT,得到含有水印的图像S(x,y)。
2.3水印提取算法
在提取水印时需要用到原始载体图像或原始水印,下面给出利用原始载体图像提取水印的算法:
⑴对含有水印的图像和原始载体图像分别进行二维DCT变换,得到的DCT系数分别记为Si(u,v)和S'
i(u,v);
⑵利用随机函数在Si(u,v)和S'
i(u,v)中分别随机选择N*N个子图像块,并取u=3,v=2,其DCT系数分别记为Sj(3,2)和S'
j(3,2)。
注意:
必须使用和水印嵌入时相同的种子,否则,选中的DCT系数就不相同,就不会提取到嵌入的水印;
⑶利用W'
(p,q)=(Sj(3,2)-S'
j(3,2))/μ,对W'
(p,q)进行IDCT变换,并进行Arnold反置乱,得到W(p,q),即提取的水印图像。
3实验结果及分析
仿真实验采用的开发工具是Matlab7.0,运行环境MicrosoftWindowsXP,实验载体图像使用512×
512的灰度lenna.jpg图像,水印信息为32×
32的二值图像,利用上述算法,μ取不同的值,分别得到图3所示的实验结果,提取的水印如图4所示。
实验结果表明0.025≤μ≤0.5时,能够提取完整清晰的水印信息,图像能够保证良好的视觉效果,而μ<
0.02,不能提取完整清晰的水印信息,μ>
0.5能够提取完整清晰的水印信息,但图像视觉效果明显下降。
(a)原始图像(b)µ
=0.02(c)µ
=0.03(d)µ
=0.5
图3水印嵌入实验结果
(a)原始水印(b)µ
=0.02(c)µ
=0.03(d)µ
图4提取的水印实验结果
表1为μ=0.03时水印在各种攻击下计算的均方差(MSE)、峰值信噪比(PSNR)和归一化相关系数(NC)的值。
文中采用均方差和峰值信噪比评价原始图像与嵌入水印后图像的差别,采用归一化相关系数定量分析原始图像与嵌入水印后图像的相似度。
表1水印在各种攻击下的MSE、PSNR和NC值
攻击方式
MSE
PSNR
NC
影响程度
中值滤波
3×
3
8.80
20.500
0.89
较小
高斯噪声
5%
12.36
15.75
0.61
有一定程度
JPEG压缩(15%)
26.80
23.28
0.91
几乎没有
剪切
(微小)
10.60
23.12
0.97
图5为μ=0.3时在各种攻击下提取的水印信息。
(a)中值滤波(b)高斯噪声(c)JPEG压缩(d)剪切
图5各种攻击下提取的水印
4结束语
用于版权保护和防盗版的数字水印的合法性(即抗解释攻击)以及鲁棒性,一直是该领域的两大难题。
本文提出的基于DCT变换的水印算法以及密钥生成方案,较好地解决了这些问题。
实验结果表明该水印算法对JPEG压缩、高斯噪声、图像剪切和中值滤波等攻击有理想的鲁棒性,但算法不足之处是该算法不能实现水印的盲提取,需要进一步研究和完善。
参考文献(Reference