杜万鑫,曹新玉,潘明华
(桂林电子科技大学 广西密码学与信息安全重点实验室,广西 桂林 541004)
数字水印是一种具有保护知识产权功能的水印嵌入技术,通过某种算法将水印嵌入图像、视频、音频等载体上[1]。这种水印包含所有者的Logo、序列号或控制信息。因此,当作品发生版权纠纷,所有者就可通过检测水印信息来维护自身合法权益。
数字水印领域相关算法很多,如空间域法、变换域法等。变换域法是将空间域的信息转换为频率域的信息,相较于空间域算法,不仅复杂度高,且抗几何攻击能力强。离散小波变换(DWT)作为变换域算法中常用的数字水印算法,具有较好的多尺度分析和时域局部性[2]。黄根岭等[3]通过提出的基于DWT-DCTSVD 的水印算法对最优块进行小波分解,有效增强了算法的不可见性和鲁棒性。陈梦莹等[4]提出了一种基于FRFT 的自适应彩色水印算法,通过改变载体图像的FRFT 中频系数来实现水印嵌入,提高了算法的自适应能力和安全性。张雪[5]利用DNA 编码与耦合映像格子CML 技术,提出一种双彩色图像水印方法,增强了图像应对各类攻击时的鲁棒性。Gonge 等[6]将DWT-DCT 水印技术与AES 加密技术相结合,能够有效保证图像传输过程中所需的保密性与完整性,增加了版权保护的可靠性。Zeng 等[7]结合非二次采样轮廓变换(NSCT)与离散小波变换技术对载体图像进行一级NSCT 分解,以获取其低频部分,然后对低频部分进行二级DWT,提取二级低频子带,并根据大小将这些子带划分为子块,以此计算水印的最佳嵌入位置,该算法不仅能够很好地满足水印的不可见性,而且能保证水印的鲁棒性。Adnan 等[8]提出一种自适应彩色图像水印技术,在编码阶段前,将载体图像从RGB 变换为YCbCr 颜色空间,然后通过选择其中的Cb 分量来引用DWT 嵌入方法;在提取过程前,用DWT 对载体图像的所选象限进行分解,能够保持水印的不可见性与鲁棒性。总体来看,数字水印首要考虑不可见性和鲁棒性2 个关键指标,然而两者不可兼得,需要平衡。由此可见,在实际设计中,需要充分考虑即能够实现水印图像的不可见性,又要利用图像本身特征使水印在应对不同类型的攻击下具有更强的鲁棒性[9]。
鉴于此,利用DWT 和FRFT 运算速度快、聚焦性高的特性来提升水印的视觉性和鲁棒性。在水印嵌入环节对载体图像进行分块,并进行DWT 变换,选择低频子带系数计算特征值,求出特征向量组后进行FRFT 变换,同时对水印信息进行DNA 编码,从而产生密文,并根据密文序列生成随机因子F1和F2。根据行优先原则伴随随机因子改变,对特征向量进行修改,以嵌入水印信息,再通过FRFT 逆变换来完成水印嵌入。
DNA 是由A、T、C、G 四种核苷酸组成的高分子化合物,其中A 和T,C 和G 分别互补配对。在计算机系统中,信息由0 和1 两位数字组成的二进制数表示。因此,A、T、C、G 可用2 位二进制信息表示,即00、11、10、01。根据Watson-Crick 互补原则[10],共有8 种编码规则,对应的8 种DNA 编码规则如表1 所示。
表1 DNA 编码规则
对于一幅图像,每个像素点可转化为二进制序列。以灰度图像为例,其像素值范围为0~255,长度为8 bit。每个像素点的二进制序列由DNA 序列来表示,则可分割为4 个2 bit 长度的核苷酸。
小波变换是一种变换分析方式,离散小波是将连续的小波离散化[11]。假设任意函数w(t)的小波变换为W(x,y),其中:x为尺度因子,y为平移因子。当小波基函数的x、y在某些离散点上取值时,进行以下离散变换:
因此,离散小波变换(DWT)定义为
分数阶傅里叶变换(FRFT)是以时域的角度旋转频域的坐标轴,因此其同时具有时域与频域的特征以及角度连续性[12]。
在对图像进行处理时,可将信息采用二维FRFT变换[13],使之能够选取信息最为集中的部分进行分析,即能通过不同的分数阶获取最大的幅值,以此得到最优阶次。二维图像信号的FRFT 变换为
其中:σ=απ/2;θ=βπ/2 为FRFT 信号的旋转角度;f(p,q)为二维图像信号,p、g为原始图像大小;F(m,n)为分数阶的二维图像信号,m、n分别为分数阶图像的长和宽;α、β为变换阶数,在(0,1)区间上取值。
利用DNA 置乱加密的高安全性,同时考虑DWT 和FRFT 运算速度快、高聚焦性的特性,提出DNA-DWT-FRFT 数字水印算法。算法分为水印加密、水印嵌入、水印提取三部分,算法流程如图1 所示。水印嵌入前,先进行DNA 编码加密,产生水印密文序列;定义随机因子F1和F2并初始化,根据水印密文序列更新F1、F2。水印嵌入时,先对载体图像进行8×8的分块处理和一级离散小波变换,选取低频子带进行二维FRFT 变换后,计算出特征值和特征向量组,并根据随机因子F1、F2确定水印嵌入位置,最后通过对特征向量组替换来实现水印密文的嵌入。水印提取时,通过计算F1、F2与特征向量的相关性,并与阈值进行比较后,提取出密文水印。
水印信息作为版权所有者的标识,一般都以二维的形式表示。为了使篡改者即便获得水印,也难以分析出原始水印,对水印进行加密。考虑DNA 编码的置乱加密的高安全性,采用DNA 编码技术对水印进行加密处理,以提高水印信息的安全性。加密过程如下:
1) 若水印为彩色图像,则直接分离水印R、G、B 三通道分量,将水印图像转换为二维矩阵;若水印为灰度图像,则利用伪彩色变换将灰度图像转为彩色图像。
2) 将水印图像的二维矩阵转换为一维的比特流信息序列。
3) 按照DNA 编码规则将一维图像信息序列加密为DNA 序列,最终得到水印密文序列Iew。
在水印嵌入时,通过改进的DWT 进行载体图像处理。首先对载体图像进行一级DWT 变换[14],得到载体图像的系数矩阵,然后根据系数矩阵得到对应的特征向量组[15],再对特征向量组进行二维FRFT 变换,最后根据水印密文序列得到随机因子F1和F2,以此确定载体图像嵌入水印的位置,从而达到将水印嵌入载体图像的目的。具体运算过程如下:
1) 首先对载体图像F进行8×8 分块处理,分成一系列的子块In,n=1,2,···,64。为方便后续水印提取,计算图像二值化的阈值d,
其中:p0为背景区域(像素值小于等于d)所有像素点数占图像总像素数的比例;m0为平均像素值;p1为前景区域(像素值大于d)所有像素点占图像总像素数的比例;m1为平均像素值。
7) 为了提高随机性,增加安全性,水印嵌入位置选取规则为
按照行优先原则,对特征向量ej的σ2进行替换,以嵌入水印信息。i取的是特征向量ed,替换式为
8) 完成水印信息嵌入后进行FRFT 逆变换,生成嵌入后的载体图像(pq),
水印提取是水印嵌入的逆过程,根据置乱后的特征向量和随机因子F1和F2完成整个水印的提取,步骤如下:
2) 选取DWT 变换后的低频子带系数,进行二维FRFT 变换,得到含有水印信息的系数矩阵。
3) 对系数矩阵每个元素j计算F1、F2与低频子带矩阵相应特征向量ei的相关性Sj,
4) 对图像所有位置进行水印值提取:若相关性Sj大于阈值d,则水印信息为1;否则,水印信息为0,遍历所有像素点即可。
3.1.1 峰值信噪比
峰值信噪比(PSNR)是一种评价图像质量的客观标准[16]。峰值信噪比越大,则2 幅图像的相似度也越大,图像质量越高。根据人眼视觉系统[17](HVS),当PSNR 大于33 dB 时,人从视觉上就认为2 幅图像是一致的[18]。PSNR 计算式为
其中:fMSE为原始图像与秘密图像之间的均方误差;t为每个采样像素值的比特位数;为原始载体图像;为水印图像。
老子是伟大的哲学家、思想家,真正做到了长寿,即寿百岁,又“死而不亡”,留下了不朽的《道德经》,不被人遗忘,其中朴素的辩证法为人称道。
3.1.2 归一化相关系数
归一化相关系数[19](NC)表示原始水印与提取水印之间的相似程度。一般地,NC 越大,鲁棒性越好。NC 计算式为
其中:w为原始水印;w′为提取水印。
3.2.1 水印加密测试
对水印加密进行测试,若图像为灰度图像,则首先将灰度图像转为彩色图像,分离水印R、G、B 三通道分量,继而对水印图像进行DNA 编码置乱加密。实验中采用如图2(a)所示的灰度图像作为水印,其大小为128 像素 ×128 像素,得到如图2(b)所示的加密后的水印图像。从图2 可看出,加密后的图像从人眼视觉上看与原图无直接联系,从而达到提高水印安全性的目的。
图2 原始水印与加密后图像
3.2.2 不可见性测试
通过计算PSNR 可以评价算法保持图像质量的性能。PSNR 越大,表明水印算法的隐蔽性越好。实验中载体图像选取如图3(a)所示,且大小为512 像素×512 像素的Baboon彩色图像。采用本水印算法进行水印嵌入实验,得到水印嵌入后的图像,如图3(b)所示。对比图3(a)、(b),两者从视觉上看并无明显差异,通过计算可得fPSNR为51.141 9 dB,大于33 dB,说明本算法具有良好的不可见性。
图3 水印图像嵌入前后对比
3.2.3 鲁棒性测试
为进一步验证本算法的鲁棒性,对不同水印图片、不同的载体图像在不同攻击下进行测试分析。实验中,采用高斯噪声(0.01、0.05、0.10)、椒盐噪声(0.01、0.05、0.10)、裁剪(1/8)、旋转(10°)、JPEG压缩(Q=70)。
1)不同水印图像测试。
将水印1(灰度图像)与水印2(彩色图像)作为对照实验。通过对含水印信息的图像分别进行无攻击、高斯噪声(0.01)、椒盐噪声(0.01)、裁剪(1/8)、旋转(10°)、JPEG 压缩(Q=70)等攻击测试,并从已遭受过攻击的图像中提取水印信息,水印提取结果如图4、5所示。
图4 水印1 在不同攻击下的提取效果
图5 水印2 在不同攻击下的提取效果
图6 不同水印嵌入载体图像
从图4、5 可看出,虽然水印图像含有一些噪声,但整体水印提取效果较为理想,仍能清晰地辨识出原始水印图像,且同一张图片不论是灰度图像,还是彩色图像,本算法的提取效果均完全一致。
2)与其他算法的比较实验。
针对攻击测试结果,将本算法与文献[20]、文献[21]算法进行对比。测试条件为无攻击、高斯噪声(0.01、0.05、0.10)、椒盐噪声(0.01、0.05、0.10)、裁剪(1/8)、旋转(10°)、JPEG 压缩(Q=70)攻击,本算法与文献[20]、[21]算法对比所得NC 值如图7 所示。从图7 可看出,相比其他算法,本算法总体性能更好,在无攻击情况下,提取的水印与嵌入水印相似度为1,除了剪切攻击下效果略差,其他如高斯噪声、椒盐噪声、旋转、压缩等提取的水印相似度均大于98%,优于其他算法。由此可见,本算法抗攻击能力较好,具有较强的抵抗能力。
图7 攻击实验的NC 值
3)不同载体图像测试。
对含有相同水印的不同载体图像进行多种类型的攻击测试。测试中选取如图6 所示的3 种不同载体彩色图像,其大小均为512 像素×512 像素。
通过提取遭受各类攻击的载体图像中的水印,得到本算法在不同攻击下的各载体图像的NC 值,如表2所示。从表2 可看出,本算法具有较好的鲁棒性、不可见性,具备抵抗各类攻击的能力。
表2 本算法各载体图像攻击实验的NC 值
提出了一种基于DNA-DWT-FRFT 的改进的彩色图像水印算法。本算法按DNA 编码规则对原始水印进行置乱加密,提高了水印的安全性。在水印嵌入阶段,对载体图像进行DWT 变换,利用低频子带系数计算特征值,求出特征向量组后进行FRFT 变换,结合符合DNA 编码规则的原始水印密文,由密文序列产生随机因子,并采用随机因子改变特征向量,以此确定嵌入像素点。对不同水印、不同载体进行测试,结果表明本算法能有效提高水印的隐蔽性,且在噪声干扰、JPEG 压缩等攻击下具有较强的鲁棒性,实现了水印抗攻击能力与不可见性的平衡。将本算法与其他算法进行比较,结果表明本算法对噪声攻击、旋转攻击、JPEG 压缩等具有较强的抵抗攻击能力,可有效应用于加密通信、数字版权保护等领域,但在剪切攻击方面仍有进步与提升空间。