一种基于多块依赖结构的安全脆弱水印方法转让专利

申请号 : CN201110188252.8

文献号 : CN102270336B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王蕴红李春雷张兆翔马彬柳立宁张广鹏胡懋地

申请人 : 北京航空航天大学

摘要 :

本发明公开了一种基于多块依赖结构的安全脆弱水印方法,包括水印嵌入和篡改定位两部分,水印嵌入具体包括以下几个步骤:步骤1.图像文件的分割,步骤2.水印生成,步骤3.水印嵌入,步骤4.经过上述三个步骤,得到含有水印的图像Y。图像认证具体包括以下几个步骤:步骤1.水印生成,步骤2.水印提取,步骤3.完整性认证。本发明能够准确地验证图像的完整性,并能实现篡改的精确定位。特别,对于传统算法检测不到的孤立块篡改,具有很好的检测及定位效果,而且,本发明对生成水印进行了加密,并且嵌入位置是通过密钥生成的混沌序列进行选取,提高了本发明的安全强度。

权利要求 :

1.一种基于多块依赖结构的安全脆弱水印方法,其特征在于,包括水印嵌入和图像认证两部分,具体为:一:水印嵌入

具体包括以下几个步骤:

步骤1.图像文件的分割

将大小为M×N的原始图像X的最低有效位清零,得到图像 将图像 分割成互不重叠的尺寸为m×n的图像块,共(M/m)×(N/n)个,如公式(1)所示:式中: 表示第个i图像块,i为图像块的序号,x,y表示像素在图像块中的位置,Nb为分割后的图像块个数;

步骤2.水印生成

具体为:

采用安全Hash函数,将每一个图像块 映射为一个长度为m×n的Hash码,公式如(2):式中:Ci表示对图像块 执行Hash函数,生成的Hash码; 表示Hash函数;

c1,c2,...cL表示Hash码Ci中的每一位,L为Hash码的码长;

使用密钥k1生成随机二进制序列B,使用异或操作对Hash码进行加密,如公式(3)所示:式中:wi,j表示生成的第i块中第j位水印信息,Ci,j表示第i块中第j位Hash码,Bj表示随机序列的第j位;对于第i个图像块生成的水印,表示为Wi=Wi,j,1≤i≤Nb,j=

1,2,...,L,然后将水印信息Wi等分为K组,每一组表示为步骤3.水印嵌入

通过密钥k2生成K个随机位置序列 每一个图像块的K组水印信息按照随机位置序列选择其它K个待嵌入图像块,其中第i块第k组水印 将对应着第si个图像块中的第k部分,然后将水印信息嵌入到对应图像块的最低有效位;

步骤4.经过上述三个步骤,得到含有水印的图像Y;

二、图像认证

包括以下几个步骤:

步骤1.水印生成

*

将大小为M×N的测试图像Y 的最低有效位清零,得到图像 将图像 分割成互不重叠的尺寸为m×n的图像块 采用安全Hash函数,将每一个图像块 映射为一个长度为L的Hash码 使用密钥k1生成随机二进制序列B,如公式(3)使用异或操作对Hash码加密后生成水印信息 然后将 等分为K组,每一个为 1≤i≤Nb,k=1,2,...,K;

步骤2.水印提取

将大小为M×N的测试图像Y*分割成互不重叠的尺寸为m×n的图像块 根据密钥k2生成K个随机位置序列 k=1,2,...,K;每一个图像块 分别对应K个随机位置 根据K个位置,选取对应的其它K个含水印图像块,从K个含水印图像中,分别提取K组水印 1≤i≤Nb,k=1,2,...,K,则任意图像块 都对应着一个提取水印Wi′,该水印由K部分组成,每一个部分为 1≤i≤Nb,k=1,2,...,K;

步骤3.完整性认证

步骤1中每一个图像块 得到K组水印信息,每一组为 步骤2中每一个图像块 得到提取水印Wi′,包括K组水印 对于相同位置的图像块 和图像块 对 和 进行比较,则对于每一个位置的测试图像块,得到K个篡改标志,如公式(4)所示:式中:表示第i个图像块中第k部分是否相等;则对于每一个测试图像块,如果K部分生成水印与对应的K个提取水印对应相等,则图像块保持完整,否则认为遭到篡改;篡改结果由如下公式(5)得到:式中:Di表示第i个图像块是否遭到篡改,如果为0,说明测试图像块保持完整,如果为

1,则测试图像块遭到篡改。

说明书 :

一种基于多块依赖结构的安全脆弱水印方法

技术领域

[0001] 本发明涉及数字图像的完整性认证方法,具体涉及使用脆弱水印方法对数字图像进行完整性验证及篡改定位,属于信息隐藏及安全领域。

背景技术

[0002] 随着计算机信息技术的飞速发展,使人们可以经济、方便、高效的存储和传输数字媒体。然而通过专门的计算机软件,可以很轻易更改数字媒体的内容,并不被人所发现。一旦被不法分子利用,将带来不必要的损失。所以,信息安全及数字媒体的内容安全性问题变得日益突出。人们需要研究相关技术,实现对信息内容的真实性、完整性进行有效的保护,从而避免攻击者对数字媒体的伪造、篡改等非法操作,保护合法用户的利益。 [0003] 数字签名是一种较为成熟的解决方案、被广泛应用于信息安全领域。可以实现传输信息的完整性认证及发送者的身份验证,并且具有不可抵赖性。该方案首先是发送方用一个哈希函数从报文文本中生成报文摘要(散列值)。发送方用自己的私人密钥对这个散列值进行加密。然后,这个加密后的散列值将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先用与发送方相同的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的,从而实现对数字文件的完整性、来源的可靠性进行认证。然而该方案具有以下不足:1)该方案将摘要附加在报文后面和报文一起发送,增加了文件的数据量,相应地增添了网络传输的负担;2)对密钥的管理提出了较高的要求。一旦密钥泄漏,攻击者就能够对非法数据生成合法摘要,容易引起抵赖和否认行为;3)系统的容错性较低。传输过程中,摘要信息或文件数据经受任何程度的失真,均会导致认证端摘要匹配的失败,因而被误判为非法数据。譬如,数字媒体传输过程中,经过合法的压缩或受网络轻微噪声的污染,数字媒体内容并未发生改变,但会被误判为非法数据而舍弃。
4)只能判别数据的完整性,并不能给出破坏原因及定位篡改位置。
[0004] 作为密码学一种有效的补充,数字水印技术的出现在一定程度上很好的解决了上述问题。数字水印是上世纪90年代提出的一种信息安全技术,可被应用于版权保护、完整性认证、指纹追踪、拷贝控制等多个领域。该技术是以不可见的方式嵌入水印位,既不会占用额外的带宽,也不会引起攻击者的注意,并且攻击者很难去除这种隐秘的水印信息,具有数字签名所没有的优势。主要分为鲁棒水印及认证水印两个分支:鲁棒水印主要用于数字媒体的版权保护,该方法利用密钥在数字媒体中添加版权信息,以证明该媒体的所有者,即使数字媒体 经过压缩、旋转、缩放等合法操作,仍能有效提取出正确的版权信息;认证水印方法主要用于数字媒体的完整性验证,通过自身特征生成认证水印位,利用密钥嵌入到数字媒体中,认证时,按同样的方法生成认证水印位,并与提取的水印进行比较,从而定位篡改位置。对于数字图像认证水印根据定位精度可以分为基于单像素和图像块的方法。基于单像素脆弱水印方法由每一个像素生成认证水印位,然后嵌入其它像素的最低有效位。对于每一个像素,仅生成一位认证水印信息,安全性较低,利用黑盒攻击很容易伪造一幅合法的图像。对于基于图像块的水印方法,首先将图像分为互不重叠的图像块,对每个图像块,利用密码学的方法生成一定长度的加密Hash码,嵌入到图像块的最低有效位,实现对图像的完整性认证(参考文献[1]:Wong P.A public key watermark for image verification and authentication.International Conference on Image Processing,1,PP:455-459,1998.)。但是该方法是分块独立的,易受量化攻击(参考文献[2]:Holliman,H.,Memon,N..Counterfeiting attacks on oblivious block-wise independent invisible watermarking schemes.IEEE Trans.Image Process,9(3):432-441,2000.)和合谋攻击(参考文献[3]:Fridrich J,Goljan M,Memon N.Cryptanalysis of the Yeung-Mintzer fragile watermarking technique,Journal of Electronic Imaging,11:262-274,
2002.)。随后研究者通过引入块依赖策略用于抵抗量化攻击及合谋攻击,将每块生成的认证水印位,嵌入到由密钥选择的其他块的最低有效位,从而建立块依赖关系。其中,He et al.(2008)基于Block-chain方法提出一种安全的脆弱水印方法(参考文献[4]:He H J,Zhang J S,Tai H M.Block-Chain Based Fragile Watermarking Scheme with Superior Localization,IH 2008,LNCS 5284,pp:147-160,2008.)。该方案将图像块根据密钥形成一个链,对于每一个图像块生成的水印嵌入到它的下一块中,建立了块之间的依赖关系,提高了方法的安全性,并具有很好的定位效果。对于此类基于块依赖关系的脆弱水印方案,在认证时,通过比较生成水印与对应块提取的水印进行篡改检测,然而水印不相等并不能确定两者之中,哪一个块真正遭受到了篡改,而是同时被标记。基于篡改区域是连续的假设,根据它们的邻域篡改情况进而确定真正遭受到的篡改块。但是,该类方法并不能检测孤立块的篡改,事实上在有些情况下,该操作可能改变图像的内容,如指纹图像的细节点信息。 发明内容
[0005] 本发明的目的是为了解决上述现有技术的存在的问题,提出一种基于多块依赖的结构安全脆弱水印方法,实现对图像的完整性认证及篡改定位,并具有较高的安全强度。 [0006] 本发明的一种基于多块依赖的结构安全脆弱水印方法,包括两个阶段,具体为: [0007] 一:水印嵌入
[0008] 具体包括以下几个步骤:
[0009] 步骤1.图像文件的分割
[0010] 将大小为M×N的原始图像X的最低有效位清零,得到图像 将图像 分割成互不重叠的尺寸为m×n的图像块,共(M/m)×(N/n)个,如公式(1)所示:
[0011]
[0012] 式中: 表示第个i图像块,i为图像块的序号,x,y表示像素在图像块中的位置,Nb为分割后的图像块个数;
[0013] 步骤2.水印生成
[0014] 具体为:
[0015] 采用安全Hash函数,将每一个图像块 映射为一个长度为m×n的Hash码,公式如(2):
[0016]
[0017] 式中:Ci表示对图像块 执行Hash函数,生成的Hash码; 表示Hash函数;c1,c2,...cL表示Hash码Ci中的每一位,L为Hash码的码长;
[0018] 使用密钥k1生成随机二进制序列B,使用异或操作对Hash码进行加密,如公式(3)所示:
[0019]
[0020] 式中:wi,j表示生成的第i块中第j位水印信息,Ci,j表示第i块中第j位Hash码,Bj表示随机序列的第j位;对于第i个图像块生成的水印,表示为Wi=wi,j,1≤i≤Nb,j=1,2,...,L,然后将水印信息Wi等分为K组,每一组表示为
[0021] 步骤3.水印嵌入
[0022] 通过密钥k2生成K个随机位置序列 每一个图像块的K组水印信息按照随机位置序列选择其它K个待嵌入图像块,其中第i块第k组水印 将对应着第si个图像块中的第k部分,然后将水印信息嵌入到对应图像块的最低有效位; [0023] 步骤4.经过上述三个步骤,得到含有水印的图像Y;
[0024] 二、图像认证
[0025] 包括以下几个步骤:
[0026] 步骤1.水印生成
[0027] 将大小为M×N的测试图像Y*的最低有效位清零,得到图像 将图像 分割成互不重叠的尺寸为m×n的图像块 采用安全Hash函数,将每一个图像块 映射为一个长度为L的Hash码 使用密钥k1生成随机二进制序列B,使用异或操作对Hash码加密后生成水印信息 然后将 等分为K组,每一个为 1≤i≤Nb,k=1,2,...,K; [0028] 步骤2.水印提取*
[0029] 将大小为M×N的测试图像Y 分割成互不重叠的尺寸为m×n的图像块 根据密钥k2生 成K个随机位置序列 k=1,2,...,K;每一个图像块 分别对应K个随机位置 根据K个位置,选取对应的其它K个含水印图像块,从K个含水印图像中,分别提取K组水印 1≤i≤Nb,k=1,2,...,K,则任意图像块 都对应着一个提取水印W′i,该水印由K部分组成,每一个部分为 1≤i≤Nb,k=1,2,...,K; [0030] 步骤3.完整性认证
[0031] 步骤1中每一个图像块 得到K组水印信息,每一组为 步骤2中每一个图像块 得到提取水印W′i,包括K组水印 对于相同位置的图像块 和图像块 对 和 进行比较,则对于每一个位置的测试图像块,得到K个篡改标志,如公式(4)所示:
[0032]
[0033] 式中: 表示第i个图像块中第k部分是否相等;则对于每一个测试图像块,如果K部分生成水印与对应的K个提取水印对应相等,则图像块保持完整,否则认为遭到篡改;篡改结果由如下公式(5)得到:
[0034]
[0035] 式中:Di表示第i个图像块是否遭到篡改,如果为0,说明测试图像块保持完整,如果为1,则测试图像块遭到篡改。
[0036] 本发明的优点在于:
[0037] (1)能够准确地验证图像的完整性,并能实现篡改的精确定位。特别,对于传统算法检测不到的孤立块篡改,具有很好的检测及定位效果;
[0038] (2)对生成水印进行了加密,并且嵌入位置是通过密钥生成的混沌序列进行选取,提高了本发明的安全强度;
[0039] (3)认证水印信息嵌入到图像的最低有效位,对图像质量几乎没有影响,很好的保持了图像的质量。

附图说明

[0040] 图1是本发明的水印嵌入流程;
[0041] 图2是本发明的多块依赖水印嵌入结构;
[0042] 图3是本发明的完整性认证及篡改定位流程;
[0043] 图4a为原始Trunk图像;
[0044] 图4b为含水印图像;
[0045] 图4c为无篡改时的认证结果;
[0046] 图4d为遭受区域篡改的图像;
[0047] 图4e为篡改检测及定位结果;
[0048] 图5a为原始指纹图像;
[0049] 图5b为较少孤立块篡改的含水印图像;
[0050] 图5c为较少孤立块篡改检测结果;
[0051] 图5d为较多孤立块篡改的含水印图像;
[0052] 图6a为原始指纹图像;
[0053] 图6b为较多孤立块篡改的含水印图像;
[0054] 图6c为较多孤立块篡改检测及定位结果;
[0055] 图6d为较多孤立块基准检测图。
[0056] 具体实施方式
[0057] 下面将结合附图和实施例对本发明作进一步的详细说明。
[0058] 本发明给出一种基于多块依赖结构的安全脆弱水印方法,首先将初始图像划分成互不重叠的图像块,使用安全Hash函数对每个图像块生成安全Hash码,加密后等分成多个部分,通过密钥嵌入到其它几块中,从而建立多块依赖关系。认证时,对每一个图像块自身生成水印与提取水印进行比较,进而验证图像的完整性并实现篡改定位。具体包括水印嵌入和篡改定位两个部分,如下所示:
[0059] 一:水印嵌入
[0060] 流程如图1所示,具体包括以下几个步骤:
[0061] 步骤1.图像文件的分割
[0062] 为了实现对篡改区域的精确定位及安全性考虑,将图像分割成互不重叠大小为m×n像素的图像块。对每块进行单独生成认证水印信息及嵌入到其它随机选择的图像块中,才能实现篡改精确定位。具体为:
[0063] 对于一幅M×N大小的原始图像X,将最低有效位清零后得到图像 然后,将图像 分割成互不重叠的尺寸为m×n的图像块。因此,图像 共包括(M/m)×(N/n)个图像块,如公式(1)所示:
[0064]
[0065] 式中: 表示第个i图像块,i为图像块的序号,x,y表示像素在图像块中的位置,Nb为分割后的图像块个数。
[0066] 步骤2.水印生成
[0067] 对于每一个图像块,生成长度为L位的水印信息,为了使生成的水印信息对篡改敏感,本发明采用安全Hash函数MD5生成Hash码,并对其进行加密。当图像块中遭受任何改动都能造成认证水印信息发生改变,进而检测到篡改。为了建立多块依赖结构,将每个图像块的L位的水印信息等分为(L/K)组,分别嵌入到其它K个图像块中(K取值最好为4,8,16中的一个)。具体为:
[0068] 采用安全Hash函数,将每一个图像块 映射为一个长度为m×n的Hash码。计算公式如(2):
[0069]
[0070] 式中:Ci表示对图像块 执行Hash函数,生成的Hash码; 表示Hash函数;c1,c2,...cL表示Hash码Ci中的每一位,L为Hash码的码长。然后使用密钥k1生成随机二进制序列B,使用异或操作对Hash码进行加密。如公式(3)所示: [0071]
[0072] 式中:wi,j表示生成的第i块中第j位水印信息,Ci,j表示第i块中第j位Hash码,Bj表示随机序列的第j位。那么对于第i个图像块生成的水印,可以表示为Wi=wi,j,1≤i≤Nb,j=1,2,...,L,然后将水印信息Wi等分为K组,每一组表示为 [0073] 步骤3.水印嵌入
[0074] 如图2所示,为了提高安全强度,通过密钥k2生成K个随机位置序列 然后利用生成的随机序列,为每一个图像块的K组水印信息选择其它K个待嵌入图像块,其中第i块第k组水印 将对应着第si个图像块中的第k部分,然后将水印信息嵌入到对应图像块的最低有效位,较好的保持了图像的质量。 [0075] 步骤4.经过上述三个步骤,得到含有水印的图像Y。
[0076] 二、图像认证
[0077] 图像认证流程如图3所示,包括以下几个步骤:
[0078] 步骤1.水印生成
[0079] 认证阶段水印生成方法与水印嵌入阶段的生成方法相同。对一幅M×N大小的*测试图像Y,将最低有效位清零后得到图像 然后将图像 分割成互不重叠的尺寸为m×n的图像块 采用安全Hash函数,将每一个图像块 映射为一个长度为L的Hash码 使用密钥k1生成随机二进制序列B,使用异或操作对Hash码加密后生成水印信息 然后将 等分为K组,每一个为 1≤i≤Nb,k=1,2,...,K。
[0080] 步骤2.水印提取*
[0081] 将大小为M×N的测试图像Y 分割成互不重叠的尺寸为m×n的图像块 水印提取同水印嵌入过程中随机序列生成方法,根据密钥k2生成 k=1,2,...,K。则对于每一个图像块 分别对应着K个随机位置 根据这K个位置,选取对应的其它K个含水印图像块,从这K个含水印图像中,分别提取K组水印 1≤i≤Nb,k=1,2,...,K。那么对任意图像块Yi都对应着一个提取水印W′i,该水印由K部分组成,每一个部分为 1≤i≤Nb,k=1,2,...,K。
[0082] 步骤3.完整性认证
[0083] 为了测试图像的完整性,对每一个图像块 将自身生成的水印 等分为K部分,分别与从其它K个图像块中提取的水印 进行比较,则对于每一个测试图像块,得到K个篡改标志,如公式(4)所示:
[0084]
[0085] 式中: 表示第i个图像块中第k部分是否相等。则对于每一个测试图像块,如果K部分生成水印与对应的K个提取水印对应相等,则图像块保持完整,否则认为遭到篡改。则篡改结果可由如下公式(5)得到:
[0086]
[0087] 式中:Di表示第i个图像块是否遭到篡改,如果为0,说明该测试图像块保持完整,如果为1,说明该测试图像块遭到篡改。
[0088] 实施例:
[0089] 实施例中采用512×512大小的Trunk图像,如图4a,分块大小为8×8,对每一块生成64位水印,等分为8部分后,嵌入到由随机位置选择的其它8块中。图4b为含水印图像,与原始图像的峰值信噪比(PSNR)为54.17dB。图4c是没有篡改时的检测结果(其中黑色区域表示未检测到篡改,白色区域为检测到篡改),图4c显示全为黑,说明图像保持完整。然后通过在底部复制两个Trunk,实现对原图的篡改,如图4d,则使用本发明得到的篡改检测结果如图4e,通过图示的白色区域可以看出本发明能够精确定位出篡改区域。 [0090] 另一实施例采用大小为560×296指纹图像,如图5a,首先篡改较少数量的孤立块,篡改结果如图5b,其中图中“ ”表示两图中相同的指纹细节点,而“△”表示两幅指纹图像中不匹配的细节点。原始图像与篡改图像不匹配点的存在,说明篡改改变了指纹的特征。如图5c为篡改检测结果,其中5d为基准检测图,两者基本相同,说明本发明能实现对孤立块的检测及精确定位。
[0091] 图6给出当孤立块较多时的情况,图6a为原始指纹图像。图6b是当较多孤立块遭到篡改时的情况。图6a和图6b大部分为“△”标志点,说明提取出的细节点大部分都不匹配,则指纹图像特征完全被改变。图6c为本发明的篡改检测及定位结果,图6d为基准图,两者基本相同,说明本发明在孤立块较多的情况下仍然适用。