吴宗灵,李 翔,王士林
(上海交通大学 信息安全工程学院,上海 200240)
随着网络信息技术的飞速发展和互联网的普及,多媒体信息的使用达到了空前的广度和深度。包括图像、音频、视频和各种以网络电子版方式传播的知识产品在给人们带来信息共享和商业利润的同时,也面临着严重的问题,这些问题包括有意无意的篡改、盗版等。例如 2007年的“华南虎事件”、近来闹得沸沸扬扬的各类热门视频网站频频被告上法庭。对知识产权的所有者造成损害,普通使用者则产生各种困扰。使得人们在使用它们时,对它们的真实性和完整性等产生怀疑。由于传统的密码技术对保护多媒体信息的真实性、完整性等存在缺陷,数字水印技术作为加密技术的补充,在多媒体信息的版权保护和完整性验证方面得到迅猛的发展。
图像完整性是指图像在存储和传输的过程中,不被非法授权修改和破坏,保证图像数据的一致性。用于图像完整性保护的数字水印技术除了具有一般水印的基本特征如不可感知性、一定的鲁棒性外,还应能够可靠地检测篡改并根据具体场合的不同具有不同的鲁棒性,同时属于公开水印算法。好的算法还应具备定位篡改和一定的篡改修复手段。用于图像完整性保护的水印主要是脆弱性数字水印和半脆弱性水印。按检测出水印后是否能够恢复原始图像,水印分为无损(可逆)水印和有损(不可逆)水印。无损水印指检测到含认证的水印内容为真后,水印能够完全从加水印的图像中移出,并无失真地恢复原图像。反之,不可无失真的恢复原图像则称为有损水印。通常情况下,大多数水印都是有损水印。现重点是从无损和有损水印技术两个方面来介绍用于图像完整性保护的典型算法并展望该技术的发展方向。
在一些特殊的场合,对媒体的真实性和完整性有着非常苛刻的要求,甚至不允许因为加入水印而带来的丝毫失真,数字媒体还必须是完整的原始数据。比如医学应用、军事应用、政府部门的一些应用等。在这种需求下,无损数字水印被提出来了,它不仅能够判断图像是否真实和完整,而且还能在认证通过的同时,让图像和水印完整的分离,从而得到毫无失真的原始媒体。国际上最早出现无损图像数字水印是1999年柯达公司发表的一个专利,但它所能嵌入的图像数据很少,经过多年的研究,已经产生了各种各样的无损数字水印技术,这里讨论了几类比较典型的方法。
在文献[1]的著者提出了一种基于直方图的无损水印算法(算法一)。首先在整幅图像的直方图中找到零值点和峰值点,再遍历整幅图像,将像素值在峰值和零值点之间的部分向零值点方向移动一个单位(增加或减少1像素),这样在峰值后面(或前面)出现了一个空位可用于嵌入信息,最后再次遍历整幅图像,当遇到峰值时,如果要嵌入的二值水印值为1,则像素值加 1(或减 1),否则保持不变。水印检测时检查遇到峰值时,如果未被改变则提取0,否则为1,得到水印,最后遍历整幅图像,将像素值在峰值和零值点之间的部分向峰值方向移动一个单位,从而恢复出原始图像。该方法的优点是简单,容易实现,但如果一幅灰度值分布较为集中则可以嵌入较多水印,否则嵌入信息有限,另外存在像素值溢出的问题。
在文献[2]的著者提出了一种基于无损压缩和位平面加密的无损水印算法(算法二)。算法中使用的是联合二值图像专家组(JBIG)无损压缩方法,水印信息为图像的哈希值采用消息摘要(MD5)算法,嵌入水印的位平面采用的加密算法是二维混沌映射,而不是要对数据进行分块处理的数据加密标准(DES)或者国际数据加密算法(IDEA)。首先通过一个计算冗余的公式(冗余=原信息比特数-压缩后的信息比特数)找到能嵌入至少128比特信息的最低有效位(LSB)位平面(从5th LSB平面开始)。找到这个嵌入水印的位平面之后,用压缩算法将其压缩(C),将原图像的哈希(Hash)值跟在压缩得到的序列上,如果有必要的话要填充一些随机的比特得到B(B=C+Hash+Pad)。将B加密后替换原来位平面得到含水印的图像。水印检测时先找出嵌入水印的位平面,解密后提取出Hash值后C’,将C’解压缩之后替换嵌入水印的位平面得到原始图像,并计算Hash’如果与Hash相等说明没有被篡改过,否则被篡改过。该算法的有较好安全性性。能够检测出图像被修改的概率很高,但不能对篡改位置进行定位。
在文献[3]的著者提出了一种基于无损压缩和整数小波的大容量数据嵌入的并具有无损图像恢复性能的数字水印算法(算法三)。该算法采用算术编码进行压缩。为了防止小波反变换时的溢出,首先进行灰度直方图的前处理。再对图像进行整数提升小波变换,采用算术编码进行无损压缩最高分辨率区域的较低位平面,水印数据嵌入到最高分辨率区域的较低位平面,使用哈希函数置乱整数,最后进行整数提升小波反变换,无损恢复,并进行直方图后处理得到含水印图像。水印检测时,首先也是进行灰度直方图处理后,对含水印图像进行整数提升小波变换,再从嵌入方法相应的位平面提取数据,使用哈希函数恢复置乱,采用算术编码对提取出来的数据进行无损解压缩,最后进行整数提升小波反变换,无损恢复,并进行直方图变换后处理恢复原图。该算法与空域的算法相比,因为它是是基于小波域的,可以嵌入更多的数据。
在文献[4]的著者提出了一种基于差分扩散的无损水印算法(算法四)。该算法基于一个可逆的整数变换对。将图像中邻近的灰度值对记为为 ),( yx ,则定义它们的均值为l和它们差值h分别为:
式(1)对应的反变换为:
定义可逆的数据嵌入操作为差分扩散(ED):
其中b为要嵌入的数据比特1或者0。
首先将原图像每两个相邻的像素值进行配对(水平方向或垂直方向均可),并用式(1)求出均值 L和差值 H。将这些差值分成四类(h=0,-1为EZ,其它可扩散的h值即满足公式'≤ min(2 × ( 255 - l ) , 2 × l +1)为EN,不可扩散记为NC,其余为CN),并建立一个可以位置表用于标识那些满足扩散条件的差值,将水印信息(P)和位置表(T)嵌入用式(3)进行嵌入也即计算一系列H’值,最后将L和H’用式(2)进行运算得到含水印的图像。水印检测的时候,将含水印图像每两个相邻的像素值进行配对(同嵌入时一致),并用式(1)求出均值L和差值H。将H分为两类(CH和NC),再提取CH中的LSB得到嵌入的信息(P’和T’),通过位置表(T’)中的标记将进行过嵌入的式子进行变换恢复出原始图像,并比较P’和P判断是否被篡改。该方法有很好的不可见性,并具有低失真特性。但是,算法在相邻的像素点差分上只能嵌入一位水印,水印容量受限。
上述比较详细地介绍了典型的用于完整性保护的无损算法,现对各种算法进行比较,如表1所示。
表1 无损技术各种算法比较
这里主要介绍几种典型的空间域和变换域的有损水印算法。空间域方法通过改变原始图像的像素值来嵌入水印。早期的脆弱水印技术大多由空间域LSB水印算法演变而来,且算法简单,易于硬件实现。改进后的脆弱水印算法有了新的特性,算法本身不但可以实现对篡改位置的定位,甚至有的还可以用于篡改部位的复原。变换域方法是通过改变变换系数来嵌入水印,常见的变换域方法有离散余弦变换(DCT)、离散小波变换(DWT)等。
在文献[5]的著者提出的算法是最早的脆弱水印算法之一(算法五)。该算法将所有像素值的高7位的校验和作为水印信息嵌入到随机挑出的一定数目的像素的最低有效位(LSB),检测时只需要提取这些像素的LSB,与待检测图像的校验和比较是否一致。该算法实现简单,嵌入水印的像素在嵌入后平均只有半数像素的LSB发生改变,对图像视觉效果影响很小,但不能对篡改进行定位,无法检测到像素间的交换,安全性较差。
在文献[6]中的著者提出的利用Hash函数的块认证脆弱水印算法是比较典型的算法(算法六)。该方法采用二值图像作为水印信息,水印没有要求与原图像一样大小,但在算法中将其扩充为与原图像一样大。并且将图像和水印分成同样大小的图像块,对每个图像块,将其LSB平面清零之后的图像和图像的尺寸信息(宽度和高度)一起计算Hash值,将Hash值与水印信息异或得到的结果经过私密加密后替换原始图像的LSB平面,得到含水印图像。认证的时候,将每块的LSB平面值提取出来用公钥解密,与嵌入水印的过程一样的方法得到的Hash值进行异或运算,如果得到水印信息则认证通过,否则说明图像被人篡改过。此算法因为用到了公钥体制进行保护,安全性好,且能够标识篡改位置,但虚警率高,另外图像各块的Hash 值仅依赖块自身的内容,即块独立,容易遭受矢量量化(VQ)攻击。
在文献[7]的著者描述了一种基于像素内容的图像认证系统(算法七)。以灰度图为例,该算法首先采用与图像无关的密钥 K,通过伪随机序列发生器产生一个查询表(LUT),用于把灰度值0 到255 映射为0 或1。采用与图像尺寸相同的二值水印。水印的嵌入过程就是逐一修改原始图像的每个像素灰度值,以使其对应 LUT的映射值与二值水印标识中相应的比特相同。检测水印时,只要将收到的含有水印的图像灰度值反向查询 LUT表,就可以求出嵌入的水印,与原始水印相比即可知道图像中哪一部分被修改。该算法对图像的篡改定位可以精确到像素级,但可能会遭到已知水印图像攻击和拼贴攻击[10]。文献[8]在详细的分析了该算法的基础之上,提出了一种改进的方法能够有效的对抗这些攻击。
在文献[9]的著者提出了一种基于DCT的压缩兼容脆弱篡改检测脆弱算法(算法八)和一种基于扩频图像隐秘技术的半脆弱水印算法(算法九)。
第一个算法首先定义了一个用于嵌入水印的隐秘-联合图像专家小组Stego-JPEG方案。具体过程如下:先对8×8大小的图像块进行DCT变换得到DCT系数矩阵Y,对Y进行Z字形扫描重排形成一维序列Y,并结合量化矩阵对Y进行运算并求和,再对求和结果进行奇偶性量化来选取合适的嵌入点并进行嵌入。具体嵌入过程为:将原图分成N个8×8的DCT块,利用伪随机序列发生器选取H个DCT块用于数据嵌入,并对剩余的N-H个DCT块结合密钥构造H(使用MD5则H=128)比特的信息认证码(MAC),再将认证码通过Stego-JPEG方案嵌入到选定的图像块中。完整性认证时,仅需提取量化后的DCT块系数和的奇偶性即可完成认证。此种算法对基于DCT的压缩较为稳健。但是因为一个数据块只能嵌入1个比特,嵌入数据有限,且不能对篡改进行定位。
第二个算法由于SSIS中引入了DWT变换和差错控制编码(ECC),使得该算法具有较强的鲁棒性,能容忍压缩和信道噪声等对图像的影响,但是当对图像的篡改达到一定程度时,将验证出图像被篡改过,并能标识出哪些区域被篡改过。
以上比较详细地介绍了空间域和变换域中用于图像完整性保护的典型算法,现对各种算法进行比较,如表2所示。
表2 有损技术各种算法比较
通过介绍的各种典型的用于图像完整性保护的数字水印算法,及对各种算法的比较。可以看出尽管人们一直在努力发展和完善用于图像完整性保护的数字水印技术,使该技术从实验阶段走向实用阶段。但许多水印算法无法抵抗攻击,而且目前水印技术还缺少相关的标准。妨碍了该技术的进一步发展,但是,由于它的应用价值,已经吸引了相当多一流的各国学者对该领域进行深入研究。除了要重视数字水印的基本理论和算法研究之外,未来值得关注的研究领域有水印的安全性问题,水印技术与混沌理论等先进技术相结合以及水印的标准化建设。相信通过各国学者对水印技术的深入研究和技术交流的进一步扩大,不久的将来会出现各种性能更好的水印算法满足各种应用要求。
[1] NI ZHICHENG, SHI YUN Q, ANSARI N,et al. Reversible Data Hiding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2006,16(03): 354-362.
[2] FRIDDCH J, GOLJAN M, DU RUI. Invertible Authentication Watermark for JPEG images[C].//IEEE. Proceedings of the IEEE International Conference on Information Technology: Coding and Computing 2001.USA: IEEE Publications,2001:223-227.
[3] 陈继东, 宣国荣. 基于整数小波的无损数字水印技术[J]. 计算机工程,2003, 29(14):27-29.
[4] JUN TIAN. Reversible Data Embedding Using a Difference Expension[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(08): 890-896.
[5] WALTON S. Information Authentication for a Slippery New Age[J].Dr.Dobbs Journal, 1995, 20(04): 18-26.
[6] WONG PW. A Public Key Watermark for Image Verification and Authentication[C].//IEEE. Proceedings of the IEEE International Conference on Image Processing 1998, USA: IEEE Publications.1998: 455-459.
[7] YEUNG M, MINTZER F C. An Invisible Watermarking Technique for Image Verification[C].//IEEE. Proceedings of the IEEE International Conference on Image Processing 1997.USA: IEEE Publications, 1997: 680-683.
[8] 任峥慧, 王颖, 李象霖. 基于水印结构的脆弱性数字水印技术[J].微电子学与计算机,2005, 22(10): 162-164,167.
[9] MARVEL LM, HARTWIG G. BONCELET JR CG. Compression-compatible Fragile and Semi-Fragile Tamper Detection[C].//SPIE.Proceedings of SPIE Conference on Security and Watermarking of Multimedia Contents II. USA: SPIE Press, 2000: 140-151.
[10] 黄天云, 张传武, 谢静. 数字图像水印算法及攻防手段研究[J].信息安全与通信保密,2007(08): 202-204, 207.