APP下载

一种基于AES的图像篡改检测方案

2016-12-02张亦明崔杰

物联网技术 2016年8期
关键词:数字水印

张亦明 崔杰

摘 要:目前应用较为广泛的图像篡改检测技术一般为数字水印技术和单项散列函数。然而数字水印的安全往往建立在整个图像数据的安全上,对水印数据的修改和编辑往往会影响结果的判断;而散列函数潜在的碰撞威胁也影响检测的最终结果。针对这些问题,文中提出了一种将这两种技术优点相结合的图片篡改检测方案。其中,在使用数字水印算法的同时使用了AES等对称加密算法来加密水印。将水印隐藏在载体图像的同时,辅以安全性更高的单向散列函数来进一步提取图像特征。既利用了水印技术的不可见性特点,也利用了单向散列函数简单高效的特点,同时对称加密算法的使用进一步保证了方案的安全性。之后将给出方案的安全性分析,并测试方案的运行效率。实验结果验证了新方案的可行性,从效率和鲁棒性角度来看,新方案的优势更加明显。

关键词:篡改检测;对称加密算法;单向散列函数;数字水印

中图分类号:TP303 文献标识码:A 文章编号:2095-1302(2016)08-00-04

0 引 言

随着计算机和网络技术的飞速发展,图像、音频、视频等传统媒体产品的数字化也得以普及。这使得图像的准确获取、存储、传输和复制变成了一个简单的过程。然而,由此产生的问题却日益严重。由于网络的开放性和隐蔽性,图片数字化的特点也给了不法分子可趁之机。在网络上传播的图片很容易被他人非法侵权,盗版,甚至被恶意篡改,这使得图片的版权保护面临严峻考验。为此,人们提出了针对图片的篡改检测技术。目前应用较为广泛的图像篡改检测技术是数字水印技术和单项散列函数。两种技术具有各自的使用范围和优缺点。

数字水印技术是在不影响人们视觉感官的前提下向图像数据的冗余部分中嵌入隐蔽的信息,通过检测和提取图片中的水印信息来判断图片是否被篡改。而单向散列函数是为图片生成一个摘要,通过比对图片的摘要信息来判断图片是否被篡改。但对于数字水印技术来说,图像数据的安全性建立在水印数据的安全性基础上,一旦水印数据被恶意篡改,版权方往往无法借助水印得到正确的结果;对于单向散列函数来说,虽然一般只需要由相应的数据生成一个Hash值,从而可方便地检测出数据是否被篡改,但由于MD5,SHA-1等算法本身的薄弱因素,产生的摘要发生碰撞的概率较大,这个弱点一旦被不法分子掌握并被用来篡改原始数据,那么同样可能得不到正确的结果。这就给版权保护等带来了极大的挑战。

因此单纯使用以上两种技术都不能够较好地判断图片是否被篡改。本文力图将二者的优点相结合,使用的数字水印技术以EMD算法为例,先利用AES算法将水印图片加密,再将其转化为二进制流,通过一个魔方矩阵将水印嵌入到目标图片中。在处理水印之前使用一个安全性较高的Hash算法为载体图像生成一个摘要,将其与用户自设的口令异或,并以此结果作为加密密钥。当需要检测图片是否被篡改时,可以通过比对提取并解密图片中的水印加以判断,相比仅靠单一技术得到的结果,本方案得到的结果更加准确,且能应用于版权保护。

1 预备知识

1.1 数字水印技术

数字水印(Digital Watermarking)是指嵌入数字载体中的图像、文字、符号、数字等数字信号,是一种可作为标识的信息。数字水印可以嵌入到不同类型的载体中,这些载体可以是图像、音频、视频等多媒体文件,也可以是文档、软件等。数字水印的一个特点便是嵌入到载体中的水印不影响原始载体的正常使用及存在价值,也不容易被人感知。鉴于这个特点,数字水印技术被广泛运用于版权保护、数据防伪及篡改检测等领域。

国内外诸多学者都在数字水印这一领域做出了许多研究,并且提出各种数字水印算法。比较常见的便是LSB算法。LSB算法在认证时将从图像各像素点的最低位提取信息,并还原成水印,通过比对提取得到的水印信息来判断图像是否被篡改。这种方案的优点是实现较为简单,但其不足也很明显,即LSB只能提取像素最低位信息。一旦攻击者针对图像的高位进行篡改,那么将无法判断出图像是否被篡改。除此之外,攻击者也可以使用LSB算法来提取图像中的水印信息,由此得到水印并对水印本身进行篡改来伪造对整个图像的篡改。这样在检测篡改时便无法得知是水印被篡改还是原图像被篡改,从而无法通过认证。另外,LSB还是一种不可逆的水印提取算法,一旦对图像进行篡改检测,在提取水印之后将无法还原原有的载体图像,即无法还原原有的图像信息。故具有较大的弊端。相比LSB,Zhang和Wang提出的EMD(Exploiting Modification Direction)算法具有更大的藏量以及更好的鲁棒性[1],并且可以稍作修改后实现可逆的数字水印。在保证得到载体图像无损失的前提下提取水印,从而更好地满足图像篡改检测方案的要求。

1.2 单向散列函数

单向散列函数(Hash函数)指的是由一串长度不定的消息来生成固定长度数值的算法。输出数值也称为“散列值”或“消息摘要”,其长度通常在128~256位之间。其单向性保证了在已知一个消息散列值的基础上,要找到另一个不同消息的散列值等于已知的散列值在计算上是不可行的。这使得单向散列函数可运用于数字签名及完整性校验等领域中。

一个较安全的单项散列函数f要满足以下三个条件:

(1)已知任意一个摘要值y,要寻找一个消息x,使得f(x)=y,在计算上是不可行的。

(2)给定一个消息x1,且x1属于信息域A,即x1∈A。要找到x2∈B,使得f(x1)=f(x2),在计算上是不可能的。这也叫弱抗碰撞性条件。

(3)寻找x1,x2,使得f(x1)=f(x2),在计算上也是不可行的。这也叫强抗碰撞性条件。

由于单向散列函数是将一个无穷域上的消息映射到一个有穷域中产生一个固定长度的摘要,因而对于同一摘要必然存在无穷多不同的消息,因此碰撞必然存在。而一般的单项散列函数都可以满足前两个条件。但针对已知Hash函数的破解基本上是对于第三个条件来进行的。

目前较为常用的Hash函数便是MD5函数以及SHA-1函数。通过文献[2]和文献[3]可看出,MD5算法以其较为简单、迭代次数较少的特点具有较为广泛的应用前景,经常运用到消息完整性验证等场景中。然而由于这些单项散列函数本身具有的缺陷,攻击者可以在保证散列值不变的前提下,利用生日攻击来大大提高发生碰撞的概率,从而篡改相应的原始消息。在实际运用中往往会在两个文件后填充这些特定的数据从而使得修改后的文件具有相同的MD5。文献[4]和文献[5]指出了MD系Hash算法的迭代式结构的不足。攻击者可以通过 “生日”攻击方式实验不同的随机数值直至找到碰撞。然后在已有一对碰撞消息的前提下,在其后接上任意消息串,所得的摘要值仍不变。同时,根据对MD5-Hash的研究,文章也指出,攻击者可以在MD5算法的前几步中对原有消息做相应的修改,通过构造2-block碰撞差分链来提高发现碰撞的效率,从而能在较短时间内找出一个与原有消息摘要值相同,仅需由原有消息做出相应修改的消息。类似MD5的单向散列函数具有的这种弱点,往往会给攻击者可乘之机。对于使用了Hash算法的篡改检测方案而言,一旦攻击者对原始图像做出相应的修改,那么相应的方案便无法检测出正确的测试结果。

1.3 对称加密算法

对称加密算法也称为对称密钥,单密钥算法,它使用一串数据作为密钥,这串密钥同时能用于数据加密和解密。它将一段明文加密为密文,从而使未授权用户无法得到明文中的信息。对称加密算法经过不断地演变和漫长的发展,已成为现今密码学的核心内容。

如今常用的对称加密算法便是高级加密标准(Advanced Encryption Standard,AES)算法,相比其前辈数据加密标准算法(Data Encryption Standard,DES)而言,AES在GF(2n)上的运算及其本身具有的很强的扩散和混淆功能保证了算法的安全性。作为一种由Rijndael密码体系发展而来的算法,AES算法具有安全、快速的优点,能够较好地抵御差分攻击。

AES算法主要有字节替换(SubByte)、行移位(ShiftRow)、列混淆(MixColumn)和轮密钥加(AddRoundKey)四个步骤。字节替换过程中引入S-盒保证明文的非线性变换,能够使明文抵御代数攻击;行移位和列混淆保证了整个系统的扩散程度,使得到的密文的每一位都受到明文中许多位的影响;而轮密钥加进一步增加了密文的混乱程度,使得系统的安全性得以保证。

作为现今主流的一种加密算法,AES的运算效率很高,并且被广泛运用于各种设备当中。根据文献[6,7]的论证结果,对于128 b的AES算法来说,仅对明文做出1 b的修改,加密得到的密文发生变化的比特数就已经趋近于64 b。这表明AES算法具有很好的雪崩效应特性。所以将AES算法运用到篡改检测的方案中,可以更有效地防止信息被篡改,提高方案的安全性。

1.4 图像篡改检测技术

随着信息媒体的数字化不断普及,针对图片、视频、软件等数据的恶意篡改问题也日益严重,使版权保护面临着越来越严峻的挑战。针对这一问题,研究人员提出了各种不同的篡改检测算法。其中,数字水印以其简单、快捷的优点得以流行。文献[8-10]验证了使用数字水印算法来进行篡改验证的可能性。文章给出了各种不同的基于数字水印的检测方案,在特定的环境下具有较好的检测性能。然而不可忽视的是,数字水印技术也有其不足。由于数据的安全性建立在水印的安全性基础上,而水印本身的脆弱性使得攻击者能够轻易将水印提取并篡改。因此现有的使用数字水印的篡改检测方案无法很好地判断篡改结果,这也意味着这一技术还有很大的发展空间。

2 预处理

2.1 Hash函数构造

方案共分为图片预处理部分及篡改检测部分。预处理部分的流程框图如图1所示。

已知有一张载体图片P和一张水印图片W。在方案的预处理部分,将使用Hash算法为载体图片P生成一个摘要值H。此处使用一种混沌Hash算法来构造摘要值。根据文献[11],混沌具有初值敏感性、伪随机性和遍历性。这些特点决定了混沌系统可以适用于Hash函数的构造。由于混沌系统本身的复杂性,在已知当前状态值的情况下,计算前一状态值十分困难,因而这种Hash函数相比传统的MD5、SHA-1等算法具有较好的安全性。这种基于时空混沌系统的Hash函数使得明文信息通过系统的关键参数来间接作用于混沌系统,因而与混沌系统的状态更加难以预测。基于此,本方案将使用这种基于时空混沌系统的Hash函数。具体的过程描述为:

(1)设置16个8 b初始变量,并将其转化为16进制,产生一列初始变量IV[1…16]=[01,23,45,67,89,AB,CD,EF,FE,DC,BA,98,76,54,32,10]。按照公式(1)将其变换为区间[0,1]上的数,得到序列x0。

(4)将最终得到的x2N变为二进制形式,并从x2N (i), i=1,2…,16中各取8比特(即小数点后8到16位的数),合并在一起构成128位的摘要值H。这个摘要值H将用于对原图像本身进行篡改检测,同时,它也将作为AES加密算法的密钥,对水印进行加密。

2.2 AES加密

在这一过程中,方案将对水印图片W进行加密,并将上一步得到的原图像摘要值H和用户自行设定的口令C做异或操作,得到AES算法的密钥K,使用AES算法对W加密。经过这一过程最终将得到已被加密的水印W'。W'将作为下一步数字水印算法所要嵌入的内容。

2.3 水印嵌入

将原图像P作为载体图像,同时将已经加密的水印W'作为水印算法要隐藏的信息。此时将图片P复制为2张。使用水印算法将已加密的水印W'分别隐藏到两张图片中,最终得到结果图片P1和P2。本方案基于文献[1]对其算法进行改进,使EMD算法满足可逆水印算法的要求,从而在检测时能够无损地提取原图信息。此处规定P1对外公开,作为待测图片;P2作为模板图片,只用于篡改检测。

水印嵌入的具体步骤为:

(1)将已加密的水印W'转化为一个二进制串B。

(2)将载体图像P复制一份,分别为P00和P01。并将图片P,P00和P01的像素值排成一列,得到像素数组D[1,2...n],D0[1,2...n],D1[1,2...n]。n为图像P的像素个数。

(3)预先设置一个如图2所示的魔术矩阵,也可对该魔术矩阵做相应的更改。

(4)对二进制串B进行分段处理,再将其转化为一个五进制串F[1,2..k],k为该五进制串的长度。

(5)此时隐藏水印,共需进行k次操作。在第i步(i∈[1,k])时,取D(i)的R通道和G通道的值,记为r(i)和g(i),将其作为魔术矩阵的坐标,找到对应的权值w。针对w的值做相应操作。

(6)若w=0或w=255,则不对D0(i)或D1(i+1)做任何修改;除此之外,则以w为中心,向上或下,左或右,找到权值等于F(i)的坐标。若此时i(mod2)=1,则将D0[i]的R通道与G通道的值修改为r(i)和g(i);若i(mod2)=0,则将D1[i+1]的R通道与G通道的值修改为r(i)和g(i)。重复执行步骤(5)直至i=k。此时整个水印嵌入工作完成。

3 图片篡改检测方案

该检测方案的具体步骤为:

(1)已知待测图片P1和模板图片P2,将其排列为像素数组D00和D01。由D00序号为奇数的像素和D01序号为偶数的像素经EMD水印算法还原成疑似加密水印W1;由D01序号为奇数的像素和D00序号为偶数的像素来还原成疑似载体图片P'。

(2)使用与图片预处理时相同的Hash算法来对P'进行处理,得到其摘要值H'。

(3)将H'与用户口令C做异或操作,所得结果将作为AES算法的密钥K'。

(4)使用K'来解密W1得到结果为W2,根据W2的情况来判断图片是否被篡改。若W2正常显示,则待测图片P1未被篡改;若W2不能正常显示,则待测图片P1已被篡改。

4 实验结果

4.1 不可见性分析

实验将使用Visual Studio 2013对方案进行仿真。使用了30张大小为520×800的载体图片以及大小为128×128的水印图片。经图片预处理后原图片与最终获得的待测图片的部分对比如图4所示。

4.2 效率分析

实验将基于Visual Studio 2013来对整个方案进行仿真。测试了方案的图片预处理部分以及图片篡改检测部分所要运行的时间。结果发现,在主频为2.6 GHz的机器中运行时,选择了30张大小为520×800的载体图片和大小为128×128的水印图片,在图片预处理部分运行了水印加密、特征值提取以及水印嵌入这几个步骤,其平均共耗时为18 s,而在图片篡改检测部分对未篡改图片进行检测,平均耗时21 s即可获得正常的水印图像及原图像。综上所述,本方案的运行时间在可接受的范围内。

4.3 安全性分析

由于整个方案使用了安全性较高的单向散列函数——基于时空混沌的Hash函数,所以攻击者无法通过对原图片做特定的篡改来使其摘要值保持不变;将待测图片与模板图片分开,仅公开待测图片和模板图片,使用模板图片来代替原有Hash值的地位,由于用户口令不公开,即使攻击者同时获取待测图片和模板图片也无法提取并置换图片中的水印,保证了水印的安全性;另一方面,对水印使用AES算法,并用原图片的摘要值和用户水印异或后得到的结果来对其加密。由于AES算法本身具有雪崩效应,可进一步保证方案能够检测到攻击者对待测图片的篡改。

5 结 语

相比现有常用的几种图像篡改检测方案,本方案将现有较为常用的几种图像篡改检测方案的优点相结合。相比使用单一的检测方案,该方案将会更加可靠。除此之外,本方案的实现过程较为简单,且运行效率较高,耗费较短的时间就可完成检测。在数字水印技术中引入对称加密算法,保障了水印的安全性,防止其被恶意篡改。同时,相比仅仅使用MD5,SHA-1等常用的单向散列函数检测方案,本方案选用安全性更高的Hash算法,进一步减小了发生碰撞的概率,同时较为有效地检测出攻击者对图像的恶意篡改。相比传统的方案,本方案具有简单、高效的特点,更适合用于快速的篡改检测场景中。如果将方案使用的魔术矩阵、模板图片和用户口令由版权方保管,那么本方案同样也可以运用到相应的版权保护场景中。当采用安全性更高的对称加密算法和鲁棒性更佳的可逆水印算法来取代本方案所使用的算法时,整个方案的安全性将进一步得到保证。

参考文献

[1] Zhang Xinpeng, Wang Shuozhong. Efficient Steganographic Embedding by Exploiting Modification Direction[J]. IEEE Communications Letters, 2006, 10(11): 781-783

[2]魏晓玲.MD5加密算法的研究及应用[J].信息技术,2010(7):145-147.

[3]张裔智,赵毅,汤小斌.MD5算法研究[J].计算机科学.2008,35(7):295-297.

[4]梁杰. MD5-Hash函数的安全性分析[D].上海:上海交通大学,2007.

[5]张绍兰.几类密码Hash函数的设计和安全性分析[D].北京:北京邮电大学,2011.

[6]何明星,林昊.AES算法原理及其实现[J].计算机应用研究,2002 (12):61-63.

[7]邓元庆, 谢涛, 石会,等. AES算法的密钥雪崩效应特性研究[C].中国电子教育学会高教分会,2011.

[8]郑二功.基于图像内容的隐写分析与篡改检测[D].郑州:解放军信息工程大学,2011.

[9]杨群亭.基于数字水印的图像篡改检测与版权保护技术研究[D].天津:南开大学,2012.

[10]蒋铭.多媒体数字版权保护水印算法研究及应用[D].北京:北京邮电大学,2012.

[11]王永.混沌加密算法和Hash函数构造研究[D].重庆:重庆大学,2007.

[12]赵翔,郝林.数字水印综述[J].计算机工程与设计,2006,27(11):1946-1950.

猜你喜欢

数字水印
基于遗传优化的自然语言文本数字水印方法
基于网屏编码的数字水印技术
分形压缩在数字水印技术中的应用研究
基于小波变换的数字水印技术
基于数字水印的人脸与声纹融合识别算法
一种多传感器图像融合与数字水印技术
基于图像纹理复杂度的小波域数字水印算法
Haar小波在数字图像水印算法上的探究
多重加密的数字水印生成方法
基于矩阵分解和混沌置乱的数字水印算法