基于DCT-SVD和标记矩阵的鲁棒可逆数字水印算法
来源:用户上传
作者:
摘要:为解决数字水印不可感知性与鲁棒性之间的矛盾,提出基于DCT-SVD变换域上的数字水印算法,充分利用图像压缩标准提升不可感知性,利用SVD变换提升鲁棒性。采用求模量化方法进行嵌入,实现数字水印信息盲提取,采用同步生成标记矩阵方式,实现可逆图像生成。仿真实验表明,算法可逆性好,抵抗几何攻击、平滑滤波等攻击能力强,算法实现了鲁棒性与可逆性的统一。
关键词:数字水印;离散余弦变换;混沌加密;奇异值分解
中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2020)07-0116-05
0 引言
近年来,数字水印技术广泛应用于保护数字产品的版权,证明产品的真实可靠性,跟踪盗版或提供产品附加信息等。数字水印算法的很多特性是相互制约的,如不可感知性和空间效率、鲁棒性之间,安全性、可逆性和时间效率、空间效率之间都是相互制约的。为了提升算法特性,变换域嵌入算法成为研究的主流方向。其中,DCT变换能量集中,实现简单,为图像压缩标准使用,利于提升不可感知性。SVD变换具有唯一确定性、改动幅度小、空间复杂度低等优势,利于提升鲁棒性。基于DCT-SVD混合域嵌入算法,受到不少研究者青睐。
对当前各类数字水印算法进行了综述,概括总结了各类算法优缺点,对研究领域前景进行了展望[1-3]。对载体图像进行三级DWT变换,由低频子带提取特征构造图像哈希水印,在DCT-SVD域最大奇异值上加性嵌入水印信息,算法不可感知性和鲁棒性性能优异,但未能实现盲提取[4]。对图像子块的DCT系数矩阵进行SVD分解,通过三角函数修改左正交矩阵实现数字水印嵌入,算法抵抗JPEG压缩与椒盐噪声能力更强,提取数字水印的正确率更高,但文中未对抵抗其他攻击能力进行验证[5]。充分利用彩色图像的冗余空间,提出一种新颖的基于三维离散余弦变换和奇异值分解的彩色图像数字水印算法,具有较好透明性的同时,能够抵抗常规信号处理和模糊、扭曲及锐化等攻击,但由于在不同区域两次嵌入了同一二值水印图像,嵌入容量事实上并未增加,算法抵抗噪声攻击能力较差[6]。提出基于果蝇优化算法和DWT-SVD的数字水印算法,对载体图像进行二级小波变换,在直流子带中分块奇异值分解,选取最大奇异值,确定最佳适应度函数,用果蝇优化算法寻找最佳嵌入强度,算法同时满足不可见性与鲁棒性要求,但对于512×512的载体图像来说,选取的水印图像为32×32,嵌入容量较小[7]。提出基于果蝇优化与DCT的数字水印技术,生成两个八位随机矩阵嵌入中频系数中,实现了水印信息盲提取,能够有效抵抗各种类型攻击,但算法不可感知性较差[8]。提出基于奇异值分解的鲁棒零水印算法,利用小波变换与奇异值分解生成零水印,保存至版权保护中心(CA),算法未对原始图像进行更改,安全性高,实现了广义的“可逆性”,但使用过程依赖于CA,适用范围受到限制[9]。在DCT-SVD域直接加性嵌入数字水印信息,算法不可感知性和鲁棒性好,但未能实现盲提取[10]。先对载体图像进行小波变换,将数字水印嵌入低频区域中,将嵌入鲁棒数字水印的图像与原载体图像的残差作为可逆数字水印嵌入高频区域,仿真实验表明,两次嵌入相互影響小,算法鲁棒性较高,并实现了可逆性,缺点是时空效率低,安全性受到一定程度影响[11]。
综合分析上述算法,大多数在混合域上实现水印嵌入,鲁棒性较好,但未涉及可逆性研究,有的算法未能实现盲提取。零水印算法,适用性受到限制[9]。实现了鲁棒性与可逆性的统一,但是采用的分别嵌入鲁棒信息和可逆信息的方法,空间效率受到影响,不利于安全性[11]。为综合实现数字水印鲁棒性、不可感知性、盲提取、可逆性,本文拟研究的重点为:提出基于标记矩阵的可逆水印算法,嵌入鲁棒信息的同时实现可逆性;使用Arnold置乱和Logistic混沌序列加密,生成多密钥,提升安全性;使用求模量化技术实现水印信息嵌入,实现盲提取。
1 关键技术
1.1 DCT变换
离散余弦变换(DCT)是离散傅里叶变换(DFT)的一种特殊形式,二维DCT变换公式如下:
通过DCT变换,图片像素矩阵被分为直流DC分量(低频分量)和交流AC(中高频)分量,直流分量集中的能量较多,多为纹理和背景部分,交流分量集中的能量较少,多为突变或者细节部分。
1.2 SVD分解
根据奇异值分解定理[12],设给定A,令q=min(m,n)并假设rank(A)=r,则存在酉矩阵V与W,以及一个对角方阵=[]使得……=以及
U为左正交矩阵,V为右正交矩阵,S为对角矩阵,满足对角线的值从左上到右下递减的规律。对角元素称为A的奇异值,由AA*的特征值唯一的确定。S称为A的奇异值矩阵。
经验证,由于所有非零元素集中于对角线上,按照递减顺序排列,因此能量大多集中于左上角区域的奇异值。通过改变奇异值矩阵来嵌入数字水印信息,具有改动幅度小,空间复杂度低等优势。
2 算法步骤
2.1 置乱加密预处理
为提升算法安全性,在嵌入之前对数字水印图像进行置乱加密预处理,本文选用Arnold置乱和Logistic混沌加密方法。
当图像置乱k(k=1,2,3,4……)次,k不是T的倍数时,图像变成杂乱无章的,k是T的倍数时,图像没有变化,即当图像做k次Arnold变换(k<T)时,图像被置乱,当图像再做T-k次变换时,图像恢复成原图像。因此将图像做Arnold变换的次数k作为密钥key1,解密时将图像做(T-key1)次Arnold变换即可。
置乱之后,再对载体图像进行加密处理,使用Logistic混沌序列异或的方法进行,公式如式(5)所示。
当u位于3.5至4之间时,序列满足混沌序列条件,本文取u为3.975。初值x(0)理论上取0到1之间所有值即可,本文取为0.75。混沌序列往往在前面一些数中特性表现不明显,因此需要舍去最前面n个值,u,x(0),n构成了混沌序列的三个密码,任何一个密码即使相差极其微小,也会造成“差之毫厘谬以千里”的影响。 具体步骤为:将Logistic混沌序列舍去前面n个值,从第n+1个开始选取c×d个数字(c为水印图像行数,d为列数),选取合适阈值二值化处理,数字水印图像降维后依次与混沌序列异或操作,升为二维后所代表的图像即为加密后的图像。
2.2 数字水印图像嵌入算法
为实现盲提取,采用求模量化方式进行数字水印信息嵌入,公式如式(6)所示。
上面的q是关键参数,代表了数字水印嵌入强度。算法具体步骤如下:
Step1:生成数字水印图像,将数字水印图像进行Arnold变换和Logistic混沌加密,得到待嵌入的图像J。
Step2:对载体图像I进行分块DCT变换(分块的大小由I,J尺寸比值确定),得到I-dct。
Step3:在每个分块内进行奇异值分解[U,S,V]=svd(I-dctblk),得到奇异值矩阵S,取最大奇异值,根据式(6)嵌入数字水印信息,代替原最大值,矩阵记为S1。同步保存z。
Step4:进行奇异值分解逆变换,得到嵌入数字水印信息后的分块DCT域矩阵,I-dctblk1=U×S1×。
Step5:将每一个改变后的I-dctblk1组合成I-dct1,进行分块IDCT变换,即得到嵌入数字水印图像后的图像I-watermark。
水印嵌入算法流程见图1。
2.3 数字水印图像提取及可逆图像生成算法
提取数字水印信息时只需比较mod(S,q)与q/2的关系,无需原载体图像的参与,实现盲提取。
具体步骤为:
Step1:将嵌入水印信息的载体图像I-wmk进行分块DCT变换,得到I-wmkdct。
Step2:在I-wmkdct各分块内进行奇异值分解,分别取奇异值矩阵S的最大奇异值Smax,利用式(7)提取数字水印信息w,并组合成矩阵W。
Step3:在Step2进行的同时,利用式(8)还原出嵌入之前的分块最大奇异值,进行奇异值分解逆变换后,进行IDCT变换得到原始载体图像,即可逆图像。
Step4:将W依次进行Logistic解密与Arnold反变换,得到提取的数字水印图像W。水印提取流程和可逆图像生成流程如图2、图3所示。
3 实验仿真
载体图像:选用256×256的uint8格式灰度图像I=rice.png。
数字水印图像:选用256×256的logical格式二值图像circles.png,生成32×32的logical格式二值图像II=circles.png。
将II进行Aronld置乱k次,k=8,进行Logistic混沌加密,u=3.975,x(0)=0.75,舍入值n=100,嵌入强度q=70,这五个数作为密钥对,混沌加密二值化阈值为0.5。使用Matlab2016a软件进行实验仿真。
3.1 安全性测试
运行水印嵌入提取算法,改变密钥值,得到结果如图4所示。
通过测试提取算法,当所有密钥均正确时,方能提取出正确的水印信息。当其中任何一个密钥改变及其微小的量,得到的水印图像完全杂乱无章。算法具有很高的安全性。
3.2 不可感知性及可逆性测试
对含水印图像、可逆图像使用峰值信噪比(PSNR),提取水印图像使用归一化互相关系数(NC)进行测试,公式分别为式(8),式(9)。
经仿真实验,嵌入水印后图像PSNR值35.6860,可逆图像PSNR值288.1840,提取水印图像NC值1。不可感知性和可逆性性能良好,能够完全提取出数字水印信息。
3.3 鲁棒性测试
分别对含水印图像进行椒盐噪声、高斯噪声、剪切攻击、中值滤波攻击,按上述方法实现数字水印图像提取,计算提取水印图像与原水印图像相似度值(NC)。结果如图6所示,从上到下分别代表遭受0.005的椒盐噪声攻击、0.001高斯噪声攻击、左上角1/16剪切攻击、左上角1/4剪切攻击、[3,3]中值滤波攻击,从左到右分别代表嵌入水印后图像,受攻击后图像,受攻击后提取的水印图像,结果如图6所示。
在遭受以上攻击时,NC值均能达到0.92以上,算法能很好抵抗滤波、剪切攻击及一定程度的噪声攻击,算法的鲁棒性较好,具体数值见表1。
4 结论与展望
本文提出基于DCT-SVD变换的数字水印算法,采用标记矩阵方法实现可逆性,采用求模量化法实现数字水印信息盲提取,采用Arnold置乱和Logistic混沌加密方法,设置多密钥提升安全性。仿真实验表明,算法在安全性、不可感知性、鲁棒性、可逆性放方面性能较好。
本文数字水印图像为二值图像,载体图像为灰度图像,一定程度上影响了嵌入容量。下步将在彩色图像数字水印算法进行研究,进一步提升空间效能。另外,本算法無法抵抗旋转攻击,当高斯噪声和椒盐噪声密度提升时,NC值下降明显,因此鲁棒性的进一步提升也是下一步研究工作的重点。
参考文献
[1] Mahbuba Begum,Mohammad Shorif Uddin.Digital Image Watermarking Techniques:A Review[J].Information,2020,11(2):386-401.
[2] 蒋天发.数字水印技术及其应用[M].北京:科学出版社,2015.
[3] 舒慧.数字图像水印加密算法比较分析[J].北京印刷学院学报,2013,21(4):43-49.
[4] 徐伟,刘颖.朱婷鸽.基于DCT和SVD的图像哈希水印算法[J].计算机工程与设计,2020,41(1):145-149.
[5] 吕东岳,徐贵力,李开宇,等.基于DCT与SVD相结合的图像水印新算法[J].电子科技,2011,24(5):112-115.
[6] 熊祥光,韦立,谢刚.基于3D-DCT和SVD的鲁棒彩色图像水印算法[J].计算机工程与科学,2015,37(6):1093-1100.
[7] 张帅,贾有,杨雪霞.基于果蝇优化算法和DWT-SVD的数字水印方法[J].太原科技大学学报,2019,40(6):423-429.
[8] 张帅,贾有,杨雪霞.基于果蝇优化与DCT的数字水印技术[J].轻工科技,2019,35(12):78-80.
[9] 刘昶,孙劲光,张永库,等.基于奇异值分解的鲁棒零水印算法[J].辽宁工程技术大学学报(自然科学版),2019,38(4):372-376.
[10] 于帅珍,谢道平.基于Arnold置乱的DCT-SVD联合数字水印算法[J].牡丹江大学学报,2019,28(10):116-121.
[11] 李骁.鲁棒可逆水印技术的研究[D].西安:西安电子科技大学,2016.
[12] Roger A.Horn,Charles R.Johnson.Matrix Analysis(Second Edition)[M].China Machine Press,2018.
转载注明来源:https://www.xzbu.com/8/view-15300114.htm