APP下载

Schur分解的快速零水印算法*

2019-04-18刘万军孙思宇曲海成

计算机与生活 2019年3期
关键词:哈希鲁棒性密钥

刘万军,孙思宇,曲海成

辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105

1 引言

数字水印[1]本质上是将能够有效地追踪侵权行为或证明版权归属的信息合理地嵌入受到保护的数字对象,如静止图像、视频、音频等,主要应用于验证用户的版权信息以及解决版权纠纷问题。

嵌入式水印算法的核心问题是协调鲁棒性和不可见性之间的矛盾,常用矩阵分解法可以使水印算法的不可见性和鲁棒性得到明显提升。2011年,刘等人[2]首次将奇异值分解(singular value decomposition,SVD)应用在数字水印,将水印信息嵌入到奇异值(singular value)中得到最大奇异值,通过稳定性提高算法的鲁棒性,但存在严重的虚警问题,即在未嵌入水印的载体图像中同样也能够提取到水印信息。为解决该类虚警错误问题,熊等人[3]提出了一种改进的DWT-SVD域参考水印方案,虽然可缓解虚警错误,但算法的鲁棒性较低,且提取过程需要同时借助原始数据和密钥,属于非盲水印,实用价值不高。2016年,肖等人[4]提出了基于水印主成分的小波域数字水印算法,水印主成分是由水印的左奇异矩阵U和奇异值矩阵S作乘积构成,算法虽然解决了虚警问题,但奇异值分解在所提取水印信息图像的左上角会产生对角线失真弊端。文献[5]提出了增量奇异值分解方法(boost normed singular value decomposition,BNSVD),即在传统奇异值分解基础上奇异值矩阵里添加一个幂次数β,有效解决了对角线失真和虚警错误问题。以上算法虽均在SVD的基础上完善,但也增加了算法的复杂度。针对此类问题,Mohammad[6]在文献中对图像应用矩阵Schur分解法进行了理论分析,不仅具有较强的鲁棒性,且Schur分解可避免产生与SVD同样的虚警错误。文献[7]在对水印进行量化嵌入中比较SVD和矩阵Schur分解的性能,通过实验验证了Schur分解在计算速度和特征值稳定性要优于SVD。刘等人[8]在空域下将图像非重叠分块,使用密钥选择块进行Schur分解,并在分解后的上三角矩阵中的最大能量元素中进行量化水印嵌入,实现了彩色图像嵌入彩色图像算法。王等人[9]将QR码与Schur分解相结合,利用4×4非负矩阵Schur分解得到U矩阵中(2,1)和(3,1),提高了水印的容量和鲁棒性。为了平衡不可见性和鲁棒性不可兼容的矛盾关系,温等人[10]首次提出零水印算法,利用所提取的图像特征来构造零水印,而不改变载体图像,有效地解决了传统嵌入水印算法需在载体图像中嵌入水印的问题。因此,该类方法引起研究学者的广泛关注。文献[11]提出了一种将零水印与基于空间域的神经网络相结合的方案,其中,计算所选像素的强度值和神经网络模型的相应输出值以生成二进制图案。文献[12]中,通过混沌调制从原始图像中随机选择一些低频小波系数并用于字符提取实现了零水印过程。此外,Kalker等人[13]在数字水印的文章首次提及“感知哈希”,运用“感知”来强调感知哈希的关键是感知相似性,并明确指出感知哈希函数的特征,将感知近似的媒体对象映射为对应哈希值。与传统技术相比,图像感知哈希[14]理论与零水印中特征提取原理相同,在基本思想和应用模式上都有很大的优势。文献[15]提出了一种提取图像特征的方法,提取在图像信息中DCT低频系数中能代表图像特征的感知哈希值,该算法也具有较好的鲁棒性。

通过对上述问题方法的研究,本文在矩阵Schur分解理论基础上结合斐波那契变换、混沌映射和图像分块原理,提出一种基于矩阵Schur分解的双重加密快速鲁棒零水印算法。将原始载体图像的低频系数划分成大小4×4的矩阵块并进行Schur分解,提取图像特征,得到图像的感知哈希序列。由于矩阵Schur分解具有快速、稳定和低虚警的特点,使得低频块数值稳定,有效地避免虚警错误。双重加密提高了算法的安全性,整体提升了鲁棒性。此法同样适用于彩色图像,为了减少色度通道包含的大量冗余信息,照比灰度图载体图像步骤处理,需另进行从RGB空间到YCbCr空间的色彩空间变换,即颜色转换,然后对Y分量进行零水印构建与水印提取。

2 相关理论

2.1 双加扰策略

2.1.1 斐波那契变换

斐波那契变换具有变换周期长和运算速度快的特点,其变换周期为Arnold变换周期的两倍,且运算速度不足Arnold变换的1/5[16],可为水印提供更加复杂的密钥空间和更高效率。其变换公式如下:

其中,(x,y是)指原始图像的行列坐标,(x′,y′)是指经过斐波那契变换后图像的行列坐标,N为矩阵的阶数。Fibonacci变换的均匀性使水印信息均匀地分散开来,即使载体图像受损,所提取到的受损水印信息也能够均匀地分散在图像中,从而提高了水印的鲁棒性。综合以上分析,本文将斐波那契变换作为水印信息的置乱函数,并保存其置乱的次数用于提取零水印信息。

2.1.2 混沌映射

为提高水印算法的安全性,本文将混沌映射应用在特征矩阵提取之后的加密过程函数,进一步提高算法的安全性,使有意破坏者在正确提取到特征矩阵时,也无法得到正确的水印信息。与Arnold加密算法相比,混沌映射没有周期性,不易被人破解,而且所使用的密钥更为复杂,密钥的形式是小数点后面4位有效数字,当人为行为欲对其进行破解,破解难度更大,打破了Arnold采用整数作为密钥的局限。除此之外,混沌映射序列具有初值敏感依赖性和非周期性,且存在着奇异吸引子。因此,被广泛用于图像加密过程。需要用户提供密钥(key和)混沌映射程度(µ,)使得安全系数升级。

混沌映射加密过程算法如下:

使用密钥和混沌映射程度来产生混沌序列m,具体如下:

其中,该系统对初值敏感,所生成混沌序列具有非周期性和不收敛性,当3.569 945 6<μ≤4时,Logistic映射处于混沌状态,在不清楚初值及映射参数时很难通过遍历进行破解,进一步增强了水印安全性。

2.2 矩阵Schur分解

定理 1(Schur引理) 设矩阵 A∈Rn×n,则存在酉矩阵U∈Rn×n及上三角矩阵T∈Rn×n,使 得A=U*T*UT,并且T的主对角线元素是A的特征值[15],其中UT表示U的共轭转置。

推论设A∈Rn×n为实对称矩阵,则矩阵A的n个特征值λ1,λ2,…,λn都为实数,且 A正交相似于对角阵T=diag(λ1,λ2,…,λn),即存在 n 阶正交矩阵 P ∈Rn×n,使得A=PTPΤ=PTP-1。

定理2(矩阵分裂理论)对于任意一个实方阵A均可唯一地表示成一个对称矩阵B和一个反对称矩阵 C 之 和 ,即 A=B+C。其 中 ,B=(A+A′)/2;C=(A-A′)/2。

矩阵Schur分解理论具有以下四个性质,如下:

(1)Schur向量的子空间具有不变性。若U=[u1,u2,…,un]是U矩阵的列向量,则称ui为Schur向量。从AU=UT可得出上述结论。

(2)算法时间复杂度较低。相对于SVD分解,矩阵Schur分解作为SVD分解的主要中间步骤,其时间复杂度为O(8N3/3),而SVD分解的时间复杂度为O(11N3),显然Schur分解不到1/3的SVD分解所需要的计算量[17],这表明Schur分解在数字水印将会有更为广泛的应用[18]。

(3)Schur向量具有缩放变换不变性。当矩阵A扩大倍数时,Schur向量保持不变,变化的是其特征值被扩大相同倍数。因此,在水印领域Schur向量可以有效地抵抗缩放攻击[19]。

(4)扰动相对稳定。根据文献[8]的研究,且由定理2可知,由于灰度图像可以看作一个实矩阵,且矩阵经过Schur分解得到的上三角矩阵T的对角元素与图像矩阵A的扰动也相对稳定。

由于具备上述性质,故Schur分解理论具有快速、稳定和低虚警的特点。另外,文献[8]主要利用Schur分解提取T的主对角上最大能量元素完成嵌入,而本文构造过渡矩阵是通过提取T的主对角元素的能量最大的元素绝对值,这样就可以避免由于正负而错选能量最大值元素的问题。因此,将矩阵Schur分解理论应用于数字水印领域中,算法不仅鲁棒性强,且运算速度快。

2.3 感知哈希

感知哈希,又可叫作“感知杂凑”或“内容杂凑”,为多媒体数据集到感知摘要集的一类单向映射,即将具有相同感知内容的多媒体数字表示成唯一的映射为一段数字摘要,并满足感知鲁棒性和安全性。数字图像水印技术,借鉴了多媒体认证领域与传统密码学中哈希(Hash)[14]的概念和理论。图像感知哈希算法可将图像数据转换为二值序列,形成图像的感知哈希序列,构建特征矩阵;也可用于图像认证,极大地缩短检索时间,提高检索效率,同时给管理和维护带来了方便。内容杂凑是数字多媒体的稳定特征,在不显著改变内容的情况下,违法者难以更改其信息,因此安全性相对高。另外,感知哈希序列是二值序列,基于数字水印所得的水印信息,既可来源于载体图像,也可是与载体图像没有任何关系的纯认证信息。而基于感知哈希技术所得的感知哈希特征矩阵均来源于载体图像本身的不变特征,适用于零水印的特征提取阶段。

本文提出的获取感知哈希序列方法,如下:

(1)将原始载体图像经过2级离散小波变换提取到低频逼近子图P。

(2)将其按照4×4大小的图像块进行划分,得到若干小子图 Bi,j,其中i,j=1,2,…,(N/16)。

(3)根据式(5)对Bi,j进行矩阵Schur分解,并根据式(4)提取上三角矩阵T中含有最大能量元素值的绝对值tt,然后将tt存储在矩阵当中构造过渡矩阵S。

(4)根据式(6)将过渡矩阵S中的每个元素值与其矩阵的平均值比较大小,生成的二值序列即为感知哈希序列。

3 Schur分解的双重加密快速零水印算法

算法步骤共分为零水印的构建和水印的检测。在构建零水印的过程中,需要将载体图像低频分块,并进行矩阵Schur分解,提取到其稳定的特征矩阵并与加密后的水印信息共同构建零水印,完成第三方认证中心机构(intellectual property rights,IPR)注册。版权认证中心IPR作为第三方认证机构,是由欧洲委员会理事会计划制定的网络数字产品的版权保护认证中心,而非自建立的数据信息库。水印检测的过程与构建过程类似,同样地,虽可提取到图像稳定的特征矩阵,但特征矩阵需要与零水印进行逻辑运算才能提取到水印信息。

3.1 预处理

本文采用Fibonacci变换对水印信息置乱,另外通过混沌映射置乱方式将3.2节所得的特征矩阵进行加密。

3.2 零水印生成的过程

载体图像为大小N×N的灰度图像,水印图像为(N/16)×(N/16)的带有“辽宁工大”字样的二值图像。零水印的构建具体过程如下:

步骤1根据式(6)获取载体图像的感知哈希序列,构建特征矩阵Y,构造公式如下:

步骤2使用混沌置乱将得到的特征矩阵进行加密,记为Y_en,并保存密钥K1以便准确提取水印;使用Fibonacci变换对水印信息置乱,得到加密后的水印信息watermark_en,保存密钥K2。

步骤3将加密后的特征矩阵Y_en与置乱后的水印信息watermark_en进行异或操作,得到零水印信息C,并移至第三方版权认证机构(IPR)中认证注册并保存唯一的ID号,用于作为水印提取的依据。

零水印的构建过程如图1所示。

3.3 零水印检测认证的过程

Fig.1 Zero watermarking construction diagram图1 零水印的构建流程图

选取大小为N×N大小的灰度图像和原始的二值水印图像进行零水印的检测认证。

零水印检测认证的过程:

步骤1对于零水印检测认证与零水印的构建过程一样,提取待检测图像的感知哈希序列,得到加密后的特征矩阵Y_en′。

步骤2通过ID号获取第三方认证中心所保存的零水印信息,与Y_en′进行异或操作,得到加密的水印信息。

步骤3利用密钥K2,使用逆Fibonacci变换提取正确的水印信息。

零水印检测认证的过程如图2所示。

Fig.2 Zero watermarking certification diagram图2 零水印检测认证的流程图

4 实验与结果分析

本文算法主要在MATLAB R2014a的环境下仿真,将Lena作为原始的载体图像,载体图像的标准为512×512灰度图像,水印图像为32×32带有“辽宁工大”标识的二值图像。一般地,水印算法的评价指标通常为不可见性和鲁棒性,但本文为零水印算法,不需要将水印信息嵌入在载体图像当中,即只需要鲁棒性作为评价指标。因此,本文实验测试部分采用误码率BER(bit error ratio)和归一化相关系数NC(normalized cross-correlation)来衡量提取到的水印图像与原始水印图像之间相近程度。

BER是指所提取水印错误的比特数占水印全部比特数的比例,这个值介于0与1之间,显然BER越接近于0,水印的鲁棒性越好。NC值的范围也在0~1之间,该值越接近于1,则表示数字水印算法的鲁棒性越好。由于本文算法主要特点之一是速度快,且文献[20]在实验部分提出了将运行时间作为水印的评价指标,因此本文也将算法运行的时间列为水印的评价标准。

其中NC定义为:

其中,w(i,j)为原始水印图像,w*(i,j)为提取的水印图像,M为水印图像的长或宽。

BER定义为:

Nerror表示同原始水印相比较,提取的水印信息中错误的比特值的个数,Nbits表示水印中总比特数。

实验所用的载体图像、原始水印信息、零水印信息和正确提取到的水印信息如图3所示。其中图像(b)与图像(d)之间的NC值为1.0,BER值为0。由此可见,在载体图像未受到攻击时,本文算法能够正确地提取到水印信息,并且零水印构建的时间仅为0.235 1 s,水印的提取时间仅为0.061 1 s,体现了本文算法速度快。

Fig.3 Original and watermark images图3 原始图像和使用图像

4.1 算法安全性分析

在目前的认证领域,安全性是绝对不容忽视的问题,尤其是对整个算法过程的重视。

一方面,本文算法对所提取的特征矩阵进行混沌映射加密,加密参数K1被保存起来,在提取待检测图像的特征矩阵时,需要正确的密钥K1对其进行相同加密操作,有效提升了算法的安全性。另一方面,对有意义的水印图像进行Fibonacci变换加密后与加密后的特征矩阵相结合,存入认证中心,同时保存密钥K2和用于水印提取的唯一ID。此外,在对待检测图像进行水印提取时注意,需要合法用户通过唯一的ID号从认证中心提取零水印信息图像,再使用密钥进行解密,这样做的目的在于即使是零水印信息泄露,没有密钥,也无法恢复出水印信息,提高算法的安全性。

在不同密钥错误下提取到的水印信息如图4所示。图4(a)是在密钥K1正确,K2错误的情况下提取到的水印信息;图4(b)是在密钥K2正确,K1错误的情况下提取到的水印信息;图4(c)是在密钥K2和K1均错误的情况下提取到的水印信息。从三幅图像的内容可以明显地看出,在密钥错误的情况下提取到的水印信息与密钥正确情况下提取到的水印信息没有任何的关联,由此可以表明本文算法具有较高的安全性。

4.2 算法虚警率实验测试

Fig.4 Extracted watermark information under different key errors图4 在不同密钥错误下提取到的水印信息

基于传统SVD分解的数字水印算法存在一定的虚警错误[4],即在未嵌入水印信息或者其他随机图像中也可以提取所需的水印信息。图5(a)是本文算法在含有水印载体图像中提取的水印信息,其中提取到水印NC值为1,BER=0,而图5(b)、图5(c)右侧是在非原始载体图像和随机图像中提取的水印信息,从提取的水印图像内容上并不能够看出与图5(a)中的水印信息有何关联,即不能够从未嵌入水印的载体图像和随机图像提取到水印信息。

Fig.5 Different to be detected carrier image watermark information map图5 不同待检测载体图像中的水印信息图

表1中,同样采用离散小波低频分块的策略,区别在于矩阵分解过程中所使用的不同分解方式,其中BN-SVD为肖等人[21]所提出的方法。由表1可得,采用矩阵分解Schur提取的水印信息图像与原始水印信息图像的NC值均在0.5以下,SVD算法的虚警问题明显居高,而BN-SVD算法NC值虽均在0.4以下,显然本文算法处理虚警问题的能力不如BNSVD,但是矩阵Schur分解的速度不足SVD的1/3,且BN-SVD算法是在SVD算法的基础上添加一个幂次数,其矩阵分解所用的时间高于SVD算法,换言之,BN-SVD的时间复杂度远远高出本文算法的时间复杂度。因此,综上所述,本文算法的实用性更强。

Table 1 Comparison of NC values of 3 methods表1 三种算法的NC值比较

4.3 算法鲁棒性分析

为了验证本文算法的鲁棒性,本文采用NC和BER作为算法鲁棒性的评价标准。在未攻击的情况下,对6幅纹理不同的载体图像分别进行零水印的构建和水印的提取。对不同纹理信息的图像进行零水印的构建后,均能在未受到攻击情况下准确无误地提取到水印信息,NC均为1,BER值均为0,可见本文算法的应用范围广。

以Lena为例,在不同的攻击情况下测试本文算法的鲁棒性。在待检测Lena载体图像受到常规攻击下的NC值和BER值见表2。部分表2中Lena图像受到不同类型攻击后的实验效果如图6所示。

从表2可见,本文算法可以有效地抵抗各种非几何攻击,NC值的平均值高于0.988 8,BER的平均值低于1.600%。当高斯噪声参数达到0.5时,提取到水印的NC值为0.950 8,BER为7.421 9%。由此可见,本文算法能够有效抵抗高强度的高斯噪声攻击。同样对于0.5的椒盐噪声攻击和乘积噪声攻击,提取到的水印NC值在0.95以上。从受到高斯低通滤波、中值滤波和维纳滤波攻击的情况考虑,当强度达到7×7时,提取到的水印信息NC值均在0.99以上,BER值均在1.2%以下。当载体图像受到直方图均值化、图像增强、图像变暗等攻击时,提取到的水印NC值仍在0.945 0以上。对于不同参数的剪切和旋转的几何攻击,本文算法同样也表现出了良好的性能。

然而,在实际生活中,由于图像目前绝大多数以JPEG存储,实际实验中只有JPEG压缩后的版本才是有实际意义的。对于JPEG压缩攻击,本文算法表现出了优异的鲁棒性,具体NC值及误码率见表2。当图像压缩比为100∶1(质量因子为1)时,提取到的水印NC值高达0.976 3,误码率仅为3.613 3%。由此可表明,提取到的水印仅从图像的内容上与原始水印图像具有极大的相似性。因此,在JPEG压缩攻击质量因子为10的基础攻击下,混合攻击鲁棒性NC值见表3。

Table 2 Attacked robust experimental test chart表2 受攻击后的鲁棒性实验测试表

Fig.6 Results of Lena under different attacks图6 Lena受到各类攻击的实验效果图

为了进一步验证本文算法的优越性,本文选择Lena作为载体图像,在不同形式和不同强度的攻击下,将较新的文献[22-23]与本文算法进行比较。本文算法构建与文献[22]构建零水印的方式类似,但也有不同之处。文献[22]是将载体图像进行整数小波变换,再提取低频部分进行分块,从每个块的均值与低频均值进行比较构建特征矩阵,而本文算法在离散小波低频分块后使用矩阵Schur分解,提取到更加稳定的能量值最大元素。因此,本文算法优于文献[22]。文献[23]则是在时域上使用非均匀矩形NURP(nonuniform rectangular partition)构建特征矩阵和使用SURF(speed-up robust features)来进行图像的几何校正,显然文献[23]在理论上具有抵抗几何攻击的优势,但是算法运行时间长且在时域内抵抗非几何攻击没有在频域内的效果明显。具体实验对比结果见表4。

由表4可得,本文算法在噪声攻击方面要明显优于文献[23],略优于文献[22]。当高斯噪声强度达到0.5时,使用本文算法提取到的水印NC值高于文献[23]提取水印NC值的21.1%,高于文献[22]提取水印NC值的5.1%;在抵抗滤波方面,本文算法在抵抗中值滤波3×3上显著优于文献[23],其NC值高于其6.64%;但在抵抗旋转攻击上本文算法与文献[22]相比略高,但不如文献[23]。

此外,当载体图像受到不同程度JPEG压缩攻击时,不同算法提取到水印信息图像与原始水印图像之间的NC值如图7所示。从比对的数据中明显看出,在压缩比为100∶10(质量因子为10)时,本文算法所提取水印的NC值要明显优于文献[22]和文献[23]。因此,本文算法抵抗JPEG压缩攻击具有较强的鲁棒性。

Table 3 Robustness results for testing NCvalues under mixed attacks表3 混合攻击下鲁棒性实验测试NC值

Table 4 Data chart of experimental comparison表4 对比实验数据表

Fig.7 WatermarkNCvalue comparison chart under JPEG compression attack图7 JPEG压缩攻击后提取的水印NC值对比图

为了更加全面地验证本文算法的性能,以Lena图像为载体针对不同类型的攻击,将算法的运行时间与文献[22-23]进行比较,而文献[23]需要校正阶段,需要更长的时间,因此在这里不详细与文献[23]进行比较。本文算法在构建零水印所需要的时间比文献[22]提升了34.48%,而在多类型的攻击下,本文算法提取水印信息的速度均优于文献[22],具体对比数据见表5。

Table 5 Contrast of run time between this paper and Ref.[22]表5 本文算法与文献[22]的运行时间对比 s

通过上述对比实验分析,本文算法不仅具有较好的安全性、强鲁棒性和高效率,而且有效地解决了传统SVD水印算法的高虚警错误。

5 结束语

本文算法针对传统SVD水印算法存在严重虚警、鲁棒性不强和时效性长的问题,提出了一种基于矩阵Schur分解的快速零水印算法。通过利用Fibonacci变换和Logistic混沌映射方法分别对初始水印和构建的特征矩阵共同进行双重加扰,可消除水印图像像素之间的关联性以便在进行嵌入过程后所得的加密图像更加安全,提高了水印的安全性;采用矩阵Schur分解具有快速、稳定和低虚警的特点,使得低频块数值稳定,有效地避免虚警错误;此外选取了矩阵Schur分解提取T的主对角元素的能量最大的元素的绝对值,如此可避免由于正负而错选能量最大值的元素,进而实现了低时间复杂度。然而在抵抗大强度的几何攻击如旋转等方面仍需要进一步的探索。

猜你喜欢

哈希鲁棒性密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
武汉轨道交通重点车站识别及网络鲁棒性研究
密码系统中密钥的状态与保护*
文件哈希值处理一条龙
创建KDS根密钥
一种基于三维小波变换的鲁棒视频水印方案
电子节气门非线性控制策略