王玉莹,关 虎,黄 樱,张树武,牛保宁+
(1.太原理工大学 信息与计算机学院,山西 晋中 030600;2.中国科学院自动化研究所 北京市数字内容工程技术研究中心,北京 100190)
随着互联网技术的发展和数字信息的快速普及,对数字信息的版权保护逐渐受到大众的关注。在数字信息发布之前通过文本数字水印技术[1]对其进行适当的处理,能够对盗版和篡改行为进行查证,为防止被简单拷贝,以文本图像[2,3]为载体的数据内容是数字化文本传播的主体部分。单一变换域水印算法[4-6]对文本图像质量造成干扰较大,影响水印的不可见性。不同单一变换域算法仅应用一种矩阵变换,将水印嵌入到文本图像能量较高区域,易对文本图像的主要内容造成影响,且对各种攻击的抵抗能力不同,无法满足同时对多种攻击都具有较好的抵抗能力。联合变换域算法[7-12]结合不同单一变换域的优点,对文本图像及水印图像进行多种联合变换域变换,但各个变换域算法侧重不同,抵抗多种不同攻击的兼容性弱。此外,为防止水印被篡改和伪造,在水印嵌入前需要对水印进行置乱加密[13-15],但一旦公开加密算法,密钥易被破解,水印的安全性将无法保障。
针对上述问题,本文提出结合Arnold置乱加密和特征序列加密的二次加密算法,保存两次加密处理所需密钥。即使公开加密算法,由于双重加密策略,增加攻击者得到有效密钥的难度,从而提高水印的安全性;提出利用联合变换和差错控制策略相结合的水印嵌入、提取算法算法。对待嵌入水印的文本图像进行DWT-DCT联合变换,利用DWT变换对文本图像进行多尺度、多分辨率,确定嵌入区域,DCT变换具有去相关性的能力,文本图像的主要能量集中在变换矩阵的低频系数。本文算法将经过纠错编码的加密水印叠加嵌入到DWT-DCT变换域的中频部分,削弱水印对图像整体主观视觉的影响,同时提高水印算法的不可见性和鲁棒性。
单一变换域水印算法一般将水印嵌入到文本图像变换域中能量较高的区域,这种方法会对水印的不可见性和鲁棒性产生消极的影响。Fan等[4]对原始图像进行DCT变换,利用量化索引调制方法嵌入水印,该算法具备抵抗高压缩率JPEG压缩攻击的能力,但未提及抵抗滤波、剪切等其它攻击的能力。燕鲲鹏等[6]在此基础上考虑到嵌入水印位置对水印鲁棒性的影响,对文本图像进行三级DWT变换,选取三级低频子图嵌入水印。该方法抗噪声攻击和剪切攻击的效果较好,但是由于将水印信息嵌入到能量集中部分,图像可读性较差,影响图像的实用性,也没有对提取的水印进行纠错处理,导致提取水印的准确率减低,不满足实际需求,且采用单次加密,安全性差。
联合变换域算法结合多种变换域算法,对文本图像进行联合变换后嵌入水印。变换的组合方式通常有:NSCT-DCT[7],DWT-DCT-SVD[8],DWT-SVD[9]。Lamri等[10]提出联合DCT与SVD变换的文本图像水印算法,对文本图像和水印图像同时进行SVD-DCT变换,融合得到的两个SVD-DCT域系数,然后依次进行DCT和SVD逆变换,得到变换后的文本图像。该方法利用联合变换域,将水印信息嵌入到视觉不敏感区域,使文本图像具有较好的不可见性,但抗高压缩率JPEG压缩和滤波攻击能力差,且提取过程需要参考原始水印和原始文本图像,存储代价较高。Singh等[11]提出结合DWT-SVD变换和快速响应码的图像水印算法,首先对图像和快速响应码同步进行多级DWT变换,然后将图像分块,对图像块进行SVD变换,选取变换系数嵌入水印,该算法不可见性较好,但对抵抗滤波和噪声攻击效果不好。
空间域算法[16]操作简单,但对旋转、放缩、加噪、抖动等攻击的抵抗能力差,暂不做考虑。相比空间域算法,变换域算法可嵌入的水印容量更大,并且对于抵抗常见攻击的鲁棒性更高。本文采用DWT-DCT联合变换盲水印算法。既保证水印的不可见性,又能够提高水印的鲁棒性。
差错控制策略可以提高提取水印的准确率,其原理为通过利用冗余信息(监督码元)增加水印信息的规律性,从而抵抗文本图像在传播过程中受到的攻击干扰,提高抵抗攻击的能力和提取水印的准确性。
水印加密算法可防止嵌入的水印被篡改和伪造,是文本图像水印算法的重要组成部分。目前常见的水印图像加密置乱算法包括基于细胞自动机[13]、基于二维码[14]、基于Arnold变换[15]的算法等等。基于Arnold变换的加密算法通过像素位置变换完成加密,信息隐藏效果好,是最为常用的水印加密算法。
若只采用基于Arnold变换的加密算法,当被攻击者获得加密方法和密钥,水印信息极易被恢复,无法保证水印信息的安全性。针对此问题本文提出一种结合Arnold变换与特征序列的二次加密算法,利用Arnold变换加密算法去除水印像素之间的关联性,使其不可辨别,再通过特征序列二次加密,保留双重密钥,由于算法具有双重保密性,可提高水印的安全性。
为提高文本图像水印算法的安全性和鲁棒性,可以考虑:在单次加密的基础上对水印进行有效的二次加密;设计有效的水印嵌入、提取算法,提高水印同时抵抗多种攻击的能力,尽量削弱水印对视觉的影响。围绕这些问题,本文提出一种二次加密算法,提高水印算法的安全性;提出一种利用DWT-DCT联合变换的水印嵌入、提取算法,利用联合变换域和差错控制策略,提高水印算法的鲁棒性。
本文提出的水印二次加密和解密算法是指在Arnold变换加密算法的基础上,再进行一次基于特征序列的加密,进一步提高水印算法的安全性。
Arnold变换对文本图像经过多次迭代,保存迭代次数作为密钥;逆变换公式经过相应的迭代次数还原原始图像。
基于特征序列的加密算法对原始文本图像进行DWT-DCT变换,提取特征序列。文本图像经DWT-DCT变换后得到变换矩阵的低频系数,这部分系数包含文本图像的主要内容,信息量大,当文本图像受到滤波、压缩、平移等攻击时,系数符号基本保持不变。获取系数符号,提取特征向量,将提取特征向量的个数作为加密密钥进行保存;最后,取奇数个特征向量每一位的众值,作为该位的特征值,构成特征序列,特征序列具有稳定性和代表性,可以唯一标识文本图像。利用特征序列与置乱后的水印信息进行二次加密,合法用户保存两次加密密钥,即便攻击者得到Arnold加密密钥和周期,仍无法得到有效水印或篡改水印,从而增强水印的安全性。
2.1.1 水印的二次加密
设原始文本图像为I(大小为G*H,宽度为G,高度为H),原始水印图像为W(大小为N*N)。按照以下3个步骤对水印进行二次加密。
(1)对原始水印W进行Arnold加密。
利用Arnold置乱加密技术对W进行一级加密处理,得到加密后的水印WA。
(2)从DWT-DCT联合变换域中提取文本图像的视觉特征向量。
若G满足G≥N*32,并且H满足H≥N*32,对原始文本图像I进行一级DWT变换,得到LL1子图系数矩阵。对LL1子图系数矩阵进行全局DCT变换,得到第一离散余弦变换系数矩阵。将所有系数进行‘之’字排序,以低频分量在前、高频分量在后的顺序排列,如图1所示。按照排列顺序取出除直流分量外的前S*N个低频系数,组成系数序列OLL,其中S为奇数,3≤S≤((G*G/4-1)/N), 3≤S≤((H*H/4-1)/N)。按照式(1)进行符号运算,将系数序列OLL中每个系数的符号用“0”和“1”表示,以N为长度,划分为S个视觉特征向量Us。
图1 “之”字型排序
若G不满足G≥N*32,或若H不满足H≥N*32,则需要对文本图像I进行小尺度放大,直至得到高度为H1、宽度为G1的放大的文本图像I1;其中,高度为H1、宽度为G1为满足以下条件的最小正整数:H1和G1为均能被8整除且分别大于等于所述高度H、宽度G;对小尺度放大后的文本图像I1进行相同操作,得到S个视觉特征向量U,其中U= [U0,U1,…,Ui,…,Us-1],将S作为二次加密密钥保存
(1)
(3)提取特征序列,进行二次加密。
遍历S个视觉特征向量U,确定各个特征向量中相同位置的特征值,取众值(即获取各特征向量中下标相同项中出现次数最多的特征值),将众值作为特征序列对应下标的特征值,得到特征序列V,长度为N。将提取的特征序列V分别与经过一次加密后的水印信息WA的每一列按位异或,得到经过二次加密的加密水印图像WD。
2.1.2 水印的二次解密
(1)假设待解密的水印图像为W′D,含水印的文本图像为I′。给定二次加密密钥S,按照2.1.1所述方法中的第(2)、第(3)步骤,对I′进行DWT-DCT联合变换并提取特征序列V′,将特征序列V′分别与待解密的水印W′D的每一列按位异或,得到一次解密后的水印图像W′A。
(2)利用Arnold置乱解密的密钥,对W′A进行二次解密,得到水印图像W′。
文本图像纹理分布呈现局部均匀特性,经DWT变换后,能量分布均匀,若直接嵌入水印对文本图像质量影响较大。在DCT变换后的中频区域嵌入水印可减弱对文本图像不可见性和安全性的影响。对DWT各个频带进行DCT变换,再将水印嵌入到各个频带的中频区域,可减小对图像质量的影响,提高提取水印的准确率。在嵌入水印之前,通过汉明码差错控制策略,将待嵌入的水印图像进行纠错编码,进一步提高水印提取的鲁棒性。
2.2.1 基于DWT-DCT的水印嵌入过程
基于DWT-DCT联合变换的文本图像水印嵌入算法分为以下5个步骤:
(1)按照2.1.1所述,对水印图像进行二次加密,获得加密水印图像WD;利用汉明码编码将WD进行差错编码,确定待嵌入的水印图像WR(大小为L*N,L=N+k≤(G/32), 且L=N+k≤(H/32),k为新增加的汉明编码中的检测位数,2k≥N+k+1)。
(2)如图2所示,对原始文本图像I进行二级小波变换,得到4个不同的频带,即:LL2, LH2, HL2, HH2;将LL2进行8*8分块,得到互不重叠、尺寸为8*8的P个系数块(P=L*N)。对各系数块分别进行分块DCT变换,得到P个变换系数矩阵块,用Di,j(i∈{i|1
图2 二级小波变换频带分布及分块
(3)选取Di,j中的中频系数作为水印嵌入位置,通过修改两系数的大小关系,嵌入1位水印(图3为中频系数选取示例,图中灰色区域为中频系数部分,本算法选择序号为29和34两位置的系数Di,j(a,b)和Di,j(b,a)进行水印嵌入,a∈[1,8],b∈[1,8])。
图3 分块系数矩阵及中频系数选取
(4)逐位读取待嵌入水印WR,在LL2, LH2, HL2, HH2这4个频带中同时嵌入水印WR。嵌入规则如下:
若WR(i,j) = 0且Di,j(a,b) 或者,若WR(i,j)=0且Di,j(a,b) 其中t为水印嵌入强度,满足t>|Di,j(a,b)-Di,j(b,a)|,值越大,水印的鲁棒性越好,但不可见性越差。 (5)将LL2, LH2, HL2, HH2这4个频带的系数块进行反DCT变换,再对得到的系数矩阵进行反二级DWT变换,最后得到嵌入水印后的图像I′。 2.2.2 基于DWT-DCT的水印提取过程 基于DWT-DCT联合变换的文本图像水印提取算法分为以下4个步骤: (1)按照2.2.1(2)所述,读取待提取水印的文本图像I*,I*可能在传播过程中受到攻击,对I*进行二级DWT变换,得到LL2*,LH2*,HL2*,HH2*。对LL2*进行8*8分块及分块DCT变换,得到互不重叠、尺寸为8*8的系数矩阵Di,j*。确定嵌入过程中选取的中频系数的位置,选取相同位置系数Di,j*(a,b)和Di,j*(b,a),按照式(2)比较两者大小关系,得到提取的水印信息WR1*,对LH2*,HL2*,HH2*进行相同操作,得到对应水印信息WR2*,WR3*,WR4* (2) 式中:Di,j*(a,b)和Di,j*(b,a)为系数矩阵Di,j*中的两个中频系数;n为频带系数矩阵序号,n=1,2,3,4。 (2)读取WR1*,WR2*,WR3*,WR4*水印信息中相同位置的数据值,以数据值的众值作为提取水印对应信息位的数据,得到提取的水印信息WR*。 (3)对WR*进行汉明码解码,得到待解密水印WD*。 (4)按照2.1.2所述,将WD*进行水印信息的二次解密,得到解密水印W*。 本文将峰值信噪比(peak signal to noise ratio,PSNR)和归一化相关系数(normalized correlation,NC)作为对水印算法不可见性和鲁棒性的客观评价标准。 PSNR值反映水印嵌入前后图像的视觉差异。当PSNR值>30 dB时,水印已具备不错的不可见性[18]。PSNR的计算公式如下 (3) 式中:I(x,y)表示原始文本图像中坐标为(x,y)的像素点的灰度值;I′(x,y)表示嵌入水印后的文本图像中坐标为(x,y)的像素点的灰度值;H和G表示文本图像的高度和宽度,N表示文本图像的宽度。 NC值计算原始水印与提取水印的相似度,数值越接近于1,表示水印算法的鲁棒性也就越强。其计算公式如下 (4) 其中,W表示原始水印,W′表示提取出的水印。 实验在120幅1024*1024大小的文本图像和26*26的二值图像上进行,调整每幅文本图像的字号、行距、内容、字体、字体粗细使其均不相同。 以检测水印算法的安全性和鲁棒性为目的进行实验验证。 3.3.1 水印的不可见性 不可见性表示在文本图像中嵌入水印的不可感知程度,是水印算法的性能指标之一。为检验本文算法的不可见性,在120幅样本文本图像嵌入水印。图4(a)、图4(b)、图4(c)分别为原始文本图像、原始水印图像和含水印的文本图像。图4(d)为提取出的水印,NC值为1。文本图像经过DWT-DCT联合变换后在中频区域嵌入水印,保留文本图像主要内容的同时削弱水印对图像质量的影响。经实验,得到含水印的文本图像的平均PSNR值为38.36 dB,方差为1.327,数据表明本文算法在保证有效性的前提下,具有较高的不可见性。 图4 文本图像及水印(不加干扰) 3.3.2 水印的安全性 本文将待嵌入水印进行二次加密,以Arnold变换次数和特征向量个数作为加密、解密密钥。如图5所示,图5(a)为二次加密后的水印图像,获取正确解密密钥可以得到图5(b)。若含水印的文本图像未遭受攻击,可提取准确率为100%的水印图像,平均NC值为1,方差为0。一旦受到恶意攻击,因不能正确密钥,则无法获取有效水印。图5(c)和图5(d)为使用错误密码解密的模糊的水印图像,NC值均低于0.21,本文算法使水印的安全受到双重保护。 图5 加密、解密过程中水印图像 3.3.3 水印的鲁棒性 为体现本文算法的鲁棒性,将本文算法与文献[6]算法进行比较。文献[6]中提出基于图像分块和三级DWT的水印算法,在系数矩阵的低频系数部分嵌入水印,且采用与本文相同的水印嵌入规则(2.2.1-(4))。调整嵌入强度t=20,在PSNR相同的前提下进行实验对比,在公正的前提下验证本文算法的优越性,以下为实验结果。 (1)JPEG压缩 对含水印的文本数据实施不同压缩比的JPEG压缩,图6为本文算法与文献[6]算法经过JPEG压缩攻击之后的数据对比,纵轴为NC值,最大值为1,横轴表示压缩强度。由图6可见,压缩强度越大,提取的水印质量越高,本文算法抵抗JPEG压缩攻击的鲁棒性始终优于文献[6]。例如在压缩强度为40%的情况下,图像已出现马赛克现象,本文算法提取的水印的平均NC值仍然能够达到0.95,而文献[6]算法的NC值只有0.87。 图6 抵抗JPEG压缩的效果 (2)高斯噪声攻击 噪声干扰是文本图像传播过程中的一种常见攻击类型。对含水印的文本图像添加噪声方差为0.001到0.025的高斯噪声攻击操作。图7为本文算法与文献[6]算法受到高斯噪声攻击之后的结果对比。提取的水印质量随着噪声方差的增大而越来越低,本文算法保证在同等噪声干扰的情况下提取出更加准确的水印信息。例如,当噪声方差为0.005时,本文算法的NC可达到0.98,而文献[6]算法的NC值只有0.81。说明本文算法抵抗高斯噪声攻击的鲁棒性较好。 图7 抵抗高斯噪声攻击的效果 (3)椒盐噪声攻击 图8为本文算法与文献[6]算法受到椒盐噪声攻击之后的结果对比。由图中数据可以看出,当噪声能量为0.01时,本文算法的平均NC值为1.00。文献[6]算法的NC值为0.91。可以看出相比于文献[6],本文算法抵抗椒盐噪声攻击的鲁棒性有所提高。 图8 抵抗椒盐噪声攻击的效果 (4)中值滤波 对含水印的文本图像进行3*3的中值滤波处理,图9(a)、图9(b)分别为嵌入水印的文本图像和受到中值滤波攻击后的图像。图9(c)实际为从图9(b)中提取的水印信息,在保证主体内容完整的情况下,部分受到损坏。本文算法NC平均值为0.82,方差为0.000 057,文献[6]算法NC值为0.71。通过对比数据可知,本文算法抵抗中值滤波的鲁棒性较强。 图9 抵抗中值滤波干扰的效果 (5)剪切攻击 对含水印的文本图像进行1/4剪切,图10展示嵌入水印的文本图像抵抗剪切控制的效果,图10(c)为从受到剪切攻击的含水印的文本图像中恢复出的水印。本文算法NC平均为0.92,方差为0.000 069提取的水印较为准确。文献[6]算法的NC值为0.90。由对比数据可以看出,本文算法抵抗剪切攻击的能力更强。 图10 抵抗剪切攻击的效果 综上,可以看出相比于文献[6],本文算法抵抗JPEG压缩、高斯噪声、椒盐噪声、滤波、剪切等攻击的鲁棒性较强。文献[6]将水印嵌入在待嵌入图像的三级DWT系数矩阵中,对图像质量影响较大,单一加密算法无法有效保证水印信息的安全。本文算法结合两种变换域算法进行联合变换,将水印嵌入在文本图像的主要信息部分,使水印信息不易被篡改、获取,通过嵌入方法和嵌入位置的选择,降低水印图像对文本图像质量的影响。利用特征序列对水印进行第二次加密,获取的密钥可以唯一标识文本图像信息,具有代表性,采用二次加密算法,当攻击者得到加密方法时,仍无法破解密钥,从而提高了水印的安全性。 本文对文本图像版权保护的关键技术做出研究和改进。主要包括:水印二次加密、利用DWT-DCT联合变换的水印嵌入、提取算法和差错控制策略。为提高水印算法的安全性,本文提出结合置乱加密和特征序列的二次解密算法,提取文本图像的主要稳定信息,提出一种特征序列提取方案,将特征序列作为文本图像唯一标识,选取加密过程中的Arnold置乱次数与特征向量个数作为加密(解密)密钥,将特征序列融入水印图像,增加攻击者破解、篡改水印信息的难度,从而提高水印的安全性。针对文本图像特殊纹理分布规律,提出结合DWT-DCT联合变换的嵌入、提取算法,使水印信息不易被去除,并且降低对文本图像质量的影响。利用差错控制策略对提取的水印信息进行校验,完善水印处理流程。实验结果表明,本文算法抵抗JPEG压缩、高斯噪声、椒盐噪声、滤波、剪切等攻击的能量较强,在保证不可见性的基础上,有效提高了文本图像水印算法的安全性和鲁棒性。不足之处是水印容量较小,后续将继续研究,提出一种水印容量更高的文本图像水印算法。3 实验结果与分析
3.1 实验评价标准
3.2 实验环境及设计
3.3 结果分析
4 结束语