数字图书馆中的文档图像真实性的认证方法,本文主要内容关键词为:数字图书馆论文,图像论文,真实性论文,文档论文,方法论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
(来稿时间:2007年3月)
〔分类号〕 G250.76
1 引言
随着数字图书馆的兴起与发展,许多图书、期刊、报纸等资料需要扫描成数字文档图像,以便存贮和检索,如何确保文档图像不被篡改和伪造是数字图书馆领域中的关键问题。为此,文档图像的认证方法成为了学术界新的研究热点。本文研究二值黑白文档图像的认证方法。
目前,人们提出了许多基于数字水印的灰度图像认证方法[1]。这种方法通过在图像中嵌入一个水印,认证时,再从图像中提取水印,并根据水印的变化来判断图像的完整性。与传统的数字签名技术相比,它具有两点优势:一是,所隐藏的认证信息不会随图像文件格式的转换而丢失;二是,可以识别被篡改的位置,即实现局部认证。基于数字水印的图像认证方法可分为脆弱水印和半脆弱水印两类,在脆弱水印方面,Wong[2] 提出了一种基于块的图像认证方法,首先,将图像和二值图案水印分割成8*8小块,并将每小块图像的最低有效位清零;然后,用哈希杂凑函数计算小块的摘要信息,并将摘要信息与水印进行异或运算而得到含水印的摘要;接着,再用私钥对含水印的摘要加密生成数字签名;最后,将数字签名嵌入到该小块图像像素的最低有效位。相应的验证过程为:先从图像的每一8*8小块图像像素的最低有效位中提取数字签名,并用公钥解密之得到含水印的摘要信息;再将小块的最低有效位清零,并用相同的哈希杂凑函数计算小块图像的摘要信息,将它与提取的含水印摘要信息进行异或运算而得到水印图案;最后比较原始水印与提取水印的差异来判断该块是否被篡改。由于该方法是块独立的认证,因此,它不能抵抗伪认证攻击(拼贴攻击)。为此,Celik等[3] 提出了一种分层分块的改进方案,将每一层的四个子块组合而成为上一层的一块,直到最上层为整个图像,对每层中的每块图像按Wong方法生成摘要信息并嵌入到最低层小块图像的最低有效位。这样,每一小块图像的最低有效位就含有图像的局部和整体摘要信息,当某小块图像被替换以后,图像的整体信息就会被破坏。由此,这种方法在保持局部认证性能的同时,还可以有效抵抗块拼贴的伪认证攻击。在半脆弱水印方面,Kundur等[4] 提出了一种基于小波系数量化的图像认证方法,在不同的小波分解层,给定一个量化区间长度,如果小波系数被量化到偶数区间则使其对应0,否则对应1,嵌入水印时,通过修改小波系数值使之对应的0或1与水印比特一致。这种方法能定位篡改的空间位置和频域位置,同时也能容许一些高质量的图像处理算子所造成的影响。张军等[5] 用神经网络建立像素点与其邻域中的其它像素点之间的关系模型,然后通过调整被选像素点与模型输出值之间的大小关系来嵌入水印图案,根据提取的水印图案,可以判断被检测的图像是否真实以及被篡改的位置。显然,这些方法也同样适宜于一般的灰度文档图像。然而,这些方法均不适合于二值黑白图像的认证,因为它的每个像素仅为0或1。
二值黑白图像的认证面临很大的困难,相关的研究文献较少。虽然人们提出了许多关于二值黑白图像的信息隐藏方法,但这些方法不能直接用于认证,特别是安全局部认证。由于在二值黑白图像中隐藏信息是通过对黑白像素取反来实现的,因此,如果要达到安全局部认证的目的,需要在局部范围内隐藏足够多的认证信息,这必然会降低二值黑白图像的视觉质量,甚至会改变图像的语义。Kim等[6] 提出了一种二值黑白图像的局部认证方法,该方法将图像分割成许多子图,每个子图又分成3部分,将其中一部分的摘要信息嵌入另一部分,同时采用两层水印机制以抵抗块拼贴攻击。但这种方法存在两个缺点:一是,每个子图的大小为128*128,其局部认证的精度太大;二是,它采用了基于块中的白色像素个数的奇偶性来代表摘要信息的比特,如果同时更改块中的两个像素,则奇偶性不变,从而使得这种篡改通过认证,因此它不能抵抗这种所谓的“奇偶”攻击。朱从旭等[7] 提出了一种基于混沌映射的局部认证方法,该方法将每个9*9区域中非嵌入水印点的像素值映射成混沌初值,经过混沌迭代生成1个水印比特,然后将水印比特嵌入到该区域的最不重要像素块(3*3)的中心像素。显然该方法存在极大的安全隐患:首先,该方法是基于区域独立的,不能抵抗区域拼贴攻击;其次,假设敌手拥有认证软件,他可以很容易地伪造一个文本图像通过认证,因为9*9区域的认证信息只有1比特,如果该区域不能通过认证,只需简单地将认证比特取反即可。由此可见,为了确保认证方法的安全性,需要在局部区域嵌入足够多的认证信息。然而,Niladri等[8] 指出,在一个足够小的局部(如32*32)隐藏足够多的认证信息(如128比特)面临很大的困难,因此,他们认为不可感知水印方法不适合二值黑白图像的安全局部认证。为此,他们去掉不可感知性的限制,提出了一种新的认证方法。首先,将图像分割成子块(32*40),借鉴可擦除水印思想,将每个子块进行无损压缩,在压缩后的冗余空间中嵌入子块的摘要信息,为了抵抗块拼贴攻击,将子块以及图像的编号也用于计算摘要信息。该方法造成了文档图像的背景噪声,但由于视觉的特性,这种背景噪声并不影响文字的识别,而且在认证以后,可以擦除背景噪声,精确恢复原始文档图像。该方法显著提高了局部认证的精度,而且可以抵抗“奇偶”和块拼贴攻击。但该方法中的图像和块的编号的维护和管理会带来巨大的负担,因此其实用性受限。本文根据二值文档图像的特点,提出一种新的基于可擦除数字签名的安全局部认证方法。
2 安全局部认证方法
前述方法均将二值黑白文档图像看作一般的图像,而忽略了其所具有的独特性,因而这些方法在用于文档图像认证时缺乏针对性和有效性。首先,文档图像认证的对象是文字而非像素点,其根本目的是确保文档中的文字内容的真实性和完整性,这与一般图像认证的目的不同。其次,二值黑白文档图像具有一种独特的结构:图像中由若干文字段组成,每一段又由若干文字行组成,行与行之间有一定的空白行距。因此,它与一般图像有着明显不同的结构。针对这些独特性,我们认为二值黑白文档图像认证方法应满足以下4个需求特征:
·敏感性,能感知对任何文字内容的篡改,如,能识别对文字的修改与替换;
·局部性,能够判定被篡改的位置,如,能确定某行是否被篡改;
·安全性,具有完全的安全性,认证算法完全公开,安全性仅依赖密钥,能抵抗各种攻击,如:“奇偶”攻击、块拼贴攻击,特别是能识别对文字行以及段落的替换;
·可擦除性,允许认证信息的嵌入带来一定的背景噪声,由于视觉的特性,这种背景噪声并不影响文字的识别,认证以后,可擦除背景噪声,精确恢复原始文档。
基于以上特点及需求特征,我们提出的认证方法思路为:用公钥加密机制计算文字行、段落以及整个图像的文字区域的数字签名,将他们嵌入文字行之间的空白处,认证结束以后,可将数字签名擦除,我们称之为可擦除数字签名。具体算法如下:
2.1 嵌入算法
第一步,计算行、段落、文档的文字区域。从上向下实施行扫描,当行中首次出现黑色像素时,表示这是文字行区域的开始,直到行中全部是白色像素时,意味着这是文字行之间的空白,从而计算出行中的文字所在的像素区域,记为,表示第i段落中第j行的文字像素区域。当遇到段落后面的空白行时,将前面各行所在的文字像素区域合并,得到第i段落的文字像素区域Ti。最后,合并全部段落的Ti,得到整个文档图像的文字像素区域T。需要指出的是,区域及T并不连续。与此同时,计算相应的行间、段间以及文档尾部的空白区域,分别记为:。
第二步,计算行、段落、文档的文字像素区域的数字签名。
其中,k为私钥、H为哈希杂凑函数、D为加密算子,、分别表示第i段中的第j行、第i段落以及整个文档的文字像素区域的数字签名。
第三步,嵌入数字签名。将数字签名依次嵌入行间、段间以及文档尾部的空白行。为了便于提取数字签名,我们分别在行、段以及文档的数字签名前添加一个识别标志前缀。
2.2 认证算法
第一步,根据标志前缀,分别提取各行、段落以及整个文档图像文字区的数字签名,并用公钥解密之,获得相应的数字摘要。最后将数字签名所在的行恢复为空白行;
第二步,重新计算各行、段落、文档的文字区域,并用同样的哈希杂凑函数计算它们的数字摘要。
第三步,将提取和重新计算的数字摘要进行比较,如果,文档的数字摘要匹配则通过认证,否则,通过比较段落和行的数字摘要可以确定被篡改文字所在的段落及行。
上述方法可有效抵抗文字行以及段落替换攻击。假设攻击者拥有几千篇已嵌入同一机构的数字签名的文档图像,他用某篇文档图像的某行及其数字签名替换当前文档图像的一行及其数字签名,这时,虽然,该行通过认证,但该行所在段落的数字签名将不再匹配。同理,如果某段及其数字签名被替换,则整个图像文字区的数字签名将不再匹配。
上述方法的关键是利用了二值黑白文档图像的特殊结构,特别是在空白行处嵌入认证信息。如果某段中的文字行之间没有空白像素行,则算法会将该段文字所在的区域看作一个文字行的区域,进而,如果段落之间也没有空白像素行,则整个文档的文字区域被看做一个行的文字区域。这样,虽然本方法可以识别任何文字的篡改,但缺失了局部定位的能力。事实上,这种文档图像已经完全退化成为普通的图像,幸运的是,这种毫无结构的文档图像在现实中很少。
3 实验结果
试验中采用MD5计算数字摘要,产生128比特认证信息,在行、段落以及文档的数字摘要前分别添加1010101010、110011001100和1110001110等10位标志前缀,再用私钥对138比特的摘要加密获得数字签名。将数字签名嵌入文档图像以后的结果见图1。虽然,在文本行之间出现了一些类似于虚线的噪声,但它不影响文字的识别,认证后可以删除这些虚线,完全恢复原始文档。
图1 嵌入认证信息后的二值黑白文档图像
下面从性能上与Niladri方法[8] 进行对比。图2给出了Niladri方法的结果,图3是本文方法的结果。从视觉效果看,Niladri方法嵌入数字签名信息后带来了较强的背景噪声,有可能影响文字的笔画,造成识别困难。而本文方法只是将数字签名信息嵌入文本行之间的空白处,因而有着更好的视觉效果;在对篡改的敏感性方面,两种方法具有同样的功效,任何对文字像素或数字签名信息的修改均会被感知,由数字签名的特点,可确保文档图像内容的完整性和来源的合法性;在局部定位方面,Niladri方法可以判定32*40的区域是否被篡改,而本文方法只能确定某行是否被篡改,虽然前者具有更好的定位精度,但如果在32*40区域内的非文字所在的空白处改变一个像素,它也会误判该区域已经被篡改。例如,假设该区域恰好包含两个文字行之间的空白像素,该空白像素的改变并不影响文字内容,但Niladri方法会判定该区域的文字已经被篡改。而本文方法仅当文字像素区域被篡改时,才给出相应的篡改信息。因此,本文方法更适合于文本图像的认证;在安全性方面,由于两种方法不是通过小块中某种颜色像素个数的“奇偶”性来编码认证信息比特,而是通过直接替换像素来嵌入数字签名的比特,所以它们均能抵抗“奇偶”攻击。另外,两种方法还能抵抗块拼贴攻击,特别是,本文方法可以抵抗文档中某行或某段被替换的攻击;在实用性方面,由于Niladri方法在认证时需要图像及其每块的编号等附加信息,这些附加信息的存储和检索等给认证带来极大的不便。而本文方法在认证时,只要知道作者的公钥,任何人均可实施认证,是完全建立于PKI架构下的实用认证方法。
图2 Niladri方法嵌入认证信息后的二值黑白文本图像
图3 本文方法嵌入认证信息后的二值黑白文本图像
4 结论
在数字图书馆建设过程中,许多资料被转换成二值黑白文档图像,为了保证这些数字文档图像的真实性,本文提出了一种新的的安全局部认证方法。由于在二值黑白图像局部区域很难隐藏足够多的认证信息,所以不可见水印不适宜二值黑白图像的安全局部认证。考虑到二值黑白文档图像的特殊结构以及认证的对象是文字而非像素,本文方法采用可擦除数字签名的机制,该方法具有以下几个特点:1)可擦除性,嵌入在二值黑白文档图像的行间、段间空白处的认证信息不会影响文字的识别,而且认证后可以擦除认证信息,精确恢复原始文档图像;2)敏感性,任何对文字的修改均不能通过认证;3)局部性,可以确定图像中的哪一段的哪一行的文字区域被篡改。4)安全性,认证算法可以完全公开,其安全性仅依赖加密方法,只要拥有公钥,均可实施认证,而且还可有效抵抗文字行、段落的替换等攻击。实验结果表明本文方法优于文献中的相关方法。