1 引言
网络技术的迅速发展使多媒体数据的传输更加容易,信息隐藏和版权保护成为迫切需要解决的问题,数字水印技术是保护数据的有效途径。不可见性和鲁棒性是数字水印系统两个最重要的特性。水印被嵌入在图像的一些重要系数中,其抗攻击的鲁棒性较好,但重要系数改变太多,则图像会产生严重失真。所以鲁棒性和不可见性是彼此矛盾的。水印技术可分为空域水印技术和变换域水印技术。空域水印算法鲁棒性差。变换域算法可使所嵌入水印信号的能量分散到空间的所有像素上,有利于保证水印的不可见性,同时鲁棒性强。离散余弦变换DCT(Discrete Cosine Transformation)算法易于在数字信号处理器中快速实现,离散余弦变换域图像水印与常用的图像压缩标准JPEG兼容,对压缩、滤波和其他一些攻击具有较强的稳健性。离散小波变换DWT(DiscreteWavelet Transformation)是将信号分解为不同尺度分量的线性运算,其实现是通过信号与尺度变化的滤波器卷积完成的。离散小波变换是一种多分辨率分析方法,在时域和频域都可表征信号局部特征。小波分解将原始图像分解为一系列的低频分量和高频分量,根据人类感觉系统的掩蔽效应,可将数字水印信息嵌入到原始载体不易被感知的区域,使数字水印具有较强的不可见性。
由于小波变换具有良好的局部时频分析特性和多分辨率分析特性,而离散余弦变换具有良好的聚能效应。综合两种变换的优点,这里提出一种基于DWT和DCT联合变换的数字水印技术。
2 水印的嵌入算法
水印嵌入算法的主要思想:为了提高水印的安全性,在水印嵌入前先进行混沌加密,然后将宿主图像经过DWT得到4个子带:LL、LH、HL、HH,选择HL作为嵌入子带。为了使嵌入的水印可以均匀分布在HL子带,对HL子带分块进行DCT变换。将水印嵌入DCT变换后的中频系数。这里采用经典的比较中频系数法进行水印嵌入,嵌入过程如图1所示。
该算法步骤如下:
(1)对原始水印图像进行混沌置乱加密。置乱水印图像能增强水印算法的安全性。充分利用混沌序列对初值的敏感性高、安全性强、密钥空间大的特点,对水印图像进行置乱。混沌序列由Logistic映射产生,按照Logistic映射式式(1)进行迭代,得到序列:
式中,xn∈(0,1),μ为分叉参数。
由Lyapunov指数的计算可知,当3.569 9≤μ≤4时,Lo-gistic映射处于混沌状态。研究表明,当且仅当μ=4时,映射具有最强的混沌特性,所以在生成混沌序列时取μ=4。xn是实值序列,实值序列不利于计算机处理,通常需要对实值序列进行量化,对xn进行量化得到二值序列Xn。
Logistic序列对初始值敏感,只要设定迭代次数、初始值,就可以得到很多伪随机序列,因此将初始值作为用户的密钥,利用式(1)产生混沌序列混沌序列Xp。加密数字水印的方法很多,这里采用将水印图像W表示为向量形式Wp,P=1,2,…MxN。Wp作为明文空间,利用混沌序列Xp对水印图像进行加密,得到加密后的水印图像Vp:
这里+执行异或运算。解密过程与加密相同,用加密后的水印和混沌序列进行异或运算。将x0=0.800 000 000 1作为用户的密钥,图2为加密后的水印图像。混沌序列对初值极其敏感,即使密钥(初值)相差细微,也无法正确解密水印图像。
(2)对宿主图像进行一级DCT变换。得到4个子带LL、LH、HL、HH,为了兼顾透明性和鲁棒性,选择HL作为嵌入子 、带。提取HL系数组成的矩阵A。
(3)对HL系数组成的矩阵A,按照8x8的大小进行分块。分成8x8的块是为了与JPEG压缩标准兼容。
(4)对分块后的矩阵进行DCT变换。