CN104899822A - 一种能定位pdf电子***篡改的水印嵌入与认证方法 - Google Patents

一种能定位pdf电子***篡改的水印嵌入与认证方法 Download PDF

Info

Publication number
CN104899822A
CN104899822A CN201510339156.7A CN201510339156A CN104899822A CN 104899822 A CN104899822 A CN 104899822A CN 201510339156 A CN201510339156 A CN 201510339156A CN 104899822 A CN104899822 A CN 104899822A
Authority
CN
China
Prior art keywords
file
measured
information
text
pdf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510339156.7A
Other languages
English (en)
Other versions
CN104899822B (zh
Inventor
陈帆
张旋
和红杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN201510339156.7A priority Critical patent/CN104899822B/zh
Publication of CN104899822A publication Critical patent/CN104899822A/zh
Application granted granted Critical
Publication of CN104899822B publication Critical patent/CN104899822B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)

Abstract

一种能定位PDF电子***篡改的水印嵌入与认证方法,包括A基于文件阅读页面的水印生成,具体包括阅读器页面分块、解析代码页面文件结构;生成认证信息、根据认证信息生成水印;B基于文件代码的水印嵌入;C交差索引表和文件尾的更新;D含水印PDF电子***文件生成;对待测的PDF电子文件进行E认证信息重构和认证信息提取和F篡改认证,篡改认证包括篡改真实性判定和篡改定位与标记。该方法在保证实现水印不可见的同时,文件增量小,控制在1%以内。其对篡改的检测准确性高,误检率低,能够有效抵抗替换、添加和删除等篡改。

Description

一种能定位PDF电子***篡改的水印嵌入与认证方法
技术领域
本发明涉及一种能定位PDF电子***篡改的水印嵌入与认证方法,属于电子***认证领域。
背景技术
早在2012年,我国就启动了电子***试点工作,减少开具纸质***所造成的用纸浪费。国家税务总局出台的《网络***管理办法》从2013年4月1日起施行,要求所有开具***的单位和个人向消费者出具网络***。现阶段的网络***在用作财务记账凭证时,仍然需要将电子***打印在“特定纸质”上。也就是说,开具***的单位和个人仍然需要将打印的纸质***通过快递寄送给消费者,造成人力、物力的浪费。为此,2013年6月和12月,我国先后在北京、上海两地开始试点电子***。至今成功开具电子***超过5000万张。
2014年11月16日,国务院办公厅发布《关于促进内贸流通健康发展的若干意见》,明确提出要“加快推进电子***应用,完善电子会计凭证报销,登记入账及归档保管等配套措施”。这是国务院层面首次公开推广电子***,国家电子商务标准化总体组副组长邱月明表示,随着电子商务的快速发展,必然带动***业务的创新,电子***较传统***具有成本低、效率高的天然性优势,未来几年有望在全国大范围内得到推广。
而在今年两会期间,推广电子***、减少能源浪费,同样也成为委员们关注的焦点。而就目前多个省市的试点情况而言,推广电子***主要遇到“入账难、报销难”的问题。对此,两会委员,苏宁控股集团董事长张近东在《加快推进电子***报销入账》的提案中建议,优先从法律、制度层面解决电子***的合法效力问题、确立电子***作为合法入账凭证的法律地位,进而推进电子***在全国范围普及。而当电子***的法律地位被确认之后,随之而来要解决“入账难、报销难”的问题。由于PDF格式具有安全性高,可移植性好,存储容量小,因此现有的电子***大多采用PDF格式。
现有针对PDF电子***的保护算法大多是基于数字签名的方法,它能够判别***是否被篡改,但并不能实现篡改定位的功能,其判定结果说服力差。
采用水印嵌入的认证方法可以对PDF文件的篡改进行判定,也能对篡改进行定位。但其认证算法大多数是利用交叉引用表中冗余空间嵌入水印,若采用此方法对PDF格式的电子***进行信息嵌入,则水印容量很小而且安全性低,给其后面的篡改定位带来限制。
发明内容
本发明的目的是提供一种能定位PDF电子***篡改的水印嵌入与认证方法。该方法在保证实现水印不可见的同时,文件增量小,控制在1%以内。其对篡改的检测准确性高,误检率低,能够有效抵抗替换、添加和删除等篡改。
本发明解决其技术问题,所采用的技术方案为:一种能定位PDF电子***篡改的水印嵌入与认证方法,包括如下步骤:
A、基于文件阅读页面的水印生成
A1、页面分块:将原始PDF电子***文件的阅读器页面P,根据信息单元的固有的分布坐标分为I个页面块Pi,即P={Pi|i=1,2,…,I},i为页面块Pi的序号,I为整个阅读器页面P上的页面块Pi的总数;
A2、解析文件结构:对原始PDF电子***文件的代码页面S进行PDF文件结构解析,得到标明PDF文件版本信息的文件头SH,文件体SO,交叉引用表SX和文件尾ST四个部分,即:S={SH,SO,SX,ST};
其中,文件体SO由J个对象Oj(j=1,2,...,J)组成,即So={Oj|j=1,2,…J},j为对象号;
交叉引用表SX由J个索引信息Xj(j=1,2,...,J)组成,Xj={对象偏移地址xj,代表该对象所修改的次数,对象是否正在被使用的状态};
文件尾ST包括文件描述、密码信息及文件体SO中的根对象号、摘要对象号和对象总数;
A3、认证信息生成:
对每一个页面块Pi(i=1,2…,I),首先利用Itextsharp组件提取每个页面块Pi中的文本内容Ti,Ti={ti,q|q=1,2,..,zi},以及文本坐标Di,Di={di,q|q=1,2,..,zi},其中,ti,q为文本内容Ti中的第q个信息单元,zi为文本内容Ti包含的信息单元个数,di,q为信息单元ti,q对应的坐标信息,各信息单元ti,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成文本内容Ti与文本坐标Di的摘要信息Hi,Hi=Hash(k1,Ti||Di);其中,Hash(.)表示Hash函数,||代表连接操作;
最后将页面块Pi的文本内容Ti、文本坐标Di和摘要信息Hi连接起来构成页面块Pi的认证信息Ai,Ai=Ti||Di||Hi
A4、水印信息生成:对每个页面块Pi(i=1,2…,I),将A3步生成的认证信息Ai进行压缩并利用秘钥k2加密之后得到二进制压缩数据流Bi,并添加PDF格式信息Yi,生成待添加的PDF对象Wi,Wi={Bi,Yi},同时计算其字节长度,记为li
所述的PDF格式信息Yi包括:对象号i+J、对象修改次数、对象的关键词、换行符;
B、基于文件代码的水印嵌入
首先将A4步生成的I个待添加的PDF对象Wi作为页面块Pi的水印信息W={Wi|i=1,2,…I},将该水印信息W与A2步的文件体So={Oj|j=1,2,…J}合并,得到包含N=I+J个合并对象O′n的合并文件体S′o={O′n|n=1,2,…N},其中n为合并对象O′n的对象号, O n ′ = { O j , n ≤ J W n - J , n > J ; 同时根据偏移地址信息xj,计算得到每个合并对象O′n的长度 l n ′ , l n ′ = l J o , n ≤ J l n - J , n > J , 其中
然后,基于密钥k3生成长度为I+J的伪随机序列,对该序列进行从小到大排序,排序前的位置信息按排序后的位置排列,构成对象置乱序列V,V={vn|n=1,2,...,I+J},其中vn为合并对象O′n的新对象号,vn∈[1,I+J]的整数;据以进行置乱操作,即将合并对象O′n的对象号修改为vn,即令随即得到置乱后的含水印文件体 S o w = { O v n ′ | v n = 1 , 2 , ... , I + J } ;
C、交差索引表和文件尾的更新
根据B步中得到的含水印文件体和对象长度信息l′n计算出合并后的偏移地址信息 x v n w = a , n = 1 x v n - 1 w + l n - 1 ′ , n ∈ [ 2 , I + J ] , 其中:a为第一个对象O1的偏移地址,其具体值为PDF文件版本信息的文件头SH的字节长度;重新生成交差索引表同时更新文件尾ST中的根对象号、摘要对象号和对象总数,生成更新后的文件尾
D、含水印PDF电子***文件生成
将B步的含水印文件体和C步更新后的交差索引表和文件尾合并重构,即得到含水印的***文件Fw
E、认证信息重构和认证信息提取
E1、待检测文档的认证信息重构:
将待测PDF电子***文件F#的阅读器页面P#,根据信息单元的固有的分布坐标分为I个待测页面块Pi #,即P#={P# i|i=1,2,…,I};
对每一个待测页面块P# i(i=1,2…,I),首先利用Itextsharp组件提取每个待测页面块P# i中的待测文本内容T# i,T# i={t# i,q|q=1,2,..,zi},以及待测文本坐标D# i,D# i={d# i,q|q=1,2,..,zi},其中,t# i,q为待测文本内容T# i中的第q个待测信息单元,zi为待测文本内容T# i包含的信息单元个数,d# i,q为待测信息单元t# i,q对应的待测坐标信息,各待测信息单元t# i,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成待测文本内容T# i与待测文本坐标D# i的待测文本摘要信息H# i,H# i=Hash(k1,T# i||D# i);
E2、认证信息提取:对待测的PDF电子***文件F#代码页面S#进行解析得到待测文件体 根据秘钥k3和对象置乱序列V对I+J个待测对象进行反置乱,找到待测对象中对应的I个伪对象即待测水印信息Wi *(i=1,2,…,I),解压待测水印信息Wi *中的待测压缩数据Bi *,并利用秘钥k2解密得到待测认证信息Ai *
按照E1中待测文本内容T# i、待测文本坐标D# i和待测文本摘要信息H# i的长度,由左到右依次从待测认证信息Ai *分割出对应页面块Pi *的提取文本内容Ti *,提取文本坐标Di *,提取文本摘要信息Hi *,并根据行末标识符”\r\n”将提取文本信息Ti *分割出提取信息单元t* i,q,以及从提取文本坐标Di *分出对应的提取坐标单元d* i,q,即Ti *={t* i,q|q=1,2,..,zi},Di *={d* i,q|q=1,2,..,zi};
F、篡改认证
F1、篡改真实性判定:如果待测文本内容T# i和提取文本内容Ti *相等,且待测文本摘要信息Hi #和提取文本摘要信息Hi *相等,则判定待测的PDF电子***文件F#未被篡改,输出检测通过的结果,完成检测;否则,判定待测的PDF电子***文件已被篡改,进行F2步的操作;
F2、篡改定位与标记:对F1步中认定为篡改的***文件F#,找出与提取信息单元t* i,q不相等的待测信息单元t# i,q,即为被篡改信息单元t# i,q,输出检测不通过的结果;并根据其对应的坐标信息d# i,q,在被篡改信息单元t# i,q添加标识警示信息,使其对应的页面P#显示文字内容处显示出篡改标识信息。
与现有技术相比,本发明的有益效果是:
一、定位标记篡改:因本方法将信息单元的内容和其坐标值等作为水印信息,因此当检测出***被篡改后,***会利用***中被篡改信息单元对应的坐标信息将其精确标识,且通过设定的标识信息的属性,如添加带有颜色的标线、标识框等在阅读器上突出显示被篡改的信息单元。
二、大水印容量、高安全性:相比利用交叉引用表中冗余空间嵌入水印,其水印容量小,水印信息容易被发而导致安全性低,本方法根据PDF阅读器显示的***内容将页面信息分为5个块,将分块后的***块文本的内容信息、文本的坐标信息、人为添加的标记信息以及文本信息与坐标信息的Hash值作为水印信息,经过加密、压缩以及添加对象中必要的头尾部分,分别伪装成PDF合法对象嵌入PDF文件中,并利用秘钥置乱文件体中的所有对象,最后重构PDF文件,从而让嫌疑者很难发现已经嵌入的伪造对象,因此安全性高,同时每一个对象包含的水印信息远大于交叉引用表中的冗余空间,水印容量充足。
三、定位复杂度低、定位信息完整:本方法将***页面所有的文本信息和坐标信息直接进行预处理如加密、压缩等作为水印信息嵌入PDF源文件中,文件增控制在1%以内,因此需要的水印量少,文件增量较少,定位信息完整;定位时,找到含水印的对象经过解压缩、解密等步骤即可还原水印信息,因此定位复杂度低。
本发明所述A2步中对原始PDF电子***文件的代码页面S进行PDF文件结构解析,得到标明PDF文件版本信息的文件头SH,文件体SO,交叉引用表SX和文件尾ST。文件头SH在本发明中并没有实际意义,因此不做分析,而文件体SO的信息可以通过交叉引用表找到,因此只需分析交叉引用表SX和文件尾ST两个部分,其具体做法是:
将原始PDF电子***文件的代码页面S以字节的形式读到缓存区,找到文件尾ST唯一标识的关键字“trailer”(因本***为线性PDF文件,因此只存在一个关键字“trailer”)信息,即找到了文件尾ST,并记录文件尾ST中的“Size”关键字后面的根对象信息、摘要对象信息、对象总数等信息,即获取文件尾ST信息;
同时查找交叉引用表SX唯一标识的关键字“startxref”,其后即为交差引用表SX,记录交叉引用表SX中的每一条偏移地址xj,以及与其对应的对象号信息,即获取了文件尾SX信息。
下面结合附图和具体实施方式对本发明作进一步地详细说明。
附图说明
图1是为验证本发明方法对PDF电子***部分内容替换篡改认证效果所用的原始PDF电子***。
图2是对图1的PDF电子***嵌入水印后的含水印的***文件。
图3是对图2的含水印的***文件部分内容替换篡改后的PDF电子***。
图4是对图3的篡改后的PDF电子***进行篡改定位和标记的PDF电子***。
图5是为验证本发明方法对PDF电子***内容添加、删除篡改认证效果所用的原始PDF电子***。
图6是对图5的PDF电子***嵌入水印后的含水印的***文件。
图7是对图6的含水印的***文件内容添加、删除篡改后的PDF电子***。
图8是对图7的篡改后的PDF电子***进行篡改定位和标记的PDF电子***。
图9是为验证本发明方法对PDF电子***同时进行添加、删除和替换篡改认证效果所用的原始PDF电子***。
图10是对图9的PDF电子***嵌入水印后的含水印的***文件。
图11是对图10的含水印的***文件部分内容替换篡改后的PDF电子***。
图12是对图11的篡改后的PDF电子***进行篡改定位和标记的PDF电子***。
具体实施方式
实施例
本发明的一种具体实施方式是:一种能定位PDF电子***篡改的水印嵌入与认证方法,包括如下步骤:
A、基于文件阅读页面的水印生成
A1、页面分块:将原始PDF电子***文件的阅读器页面P,根据信息单元的固有的分布坐标分为I个页面块Pi,即P={Pi|i=1,2,…,I},i为页面块Pi的序号,I为整个阅读器页面P上的页面块Pi的总数;
A2、解析文件结构:对原始PDF电子***文件的代码页面S进行PDF文件结构解析,得到标明PDF文件版本信息的文件头SH,文件体SO,交叉引用表SX和文件尾ST四个部分,即:S={SH,SO,SX,ST};
其中,文件体SO由J个对象Oj(j=1,2,...,J)组成,即So={Oj|j=1,2,…J},j为对象号;
交叉引用表SX由J个索引信息Xj(j=1,2,...,J)组成,Xj={对象偏移地址xj,代表该对象所修改的次数,对象是否正在被使用的状态};
文件尾ST包括文件描述、密码信息及文件体SO中的根对象号、摘要对象号和对象总数;
A3、认证信息生成:
对每一个页面块Pi(i=1,2…,I),首先利用Itextsharp组件提取每个页面块Pi中的文本内容Ti,Ti={ti,q|q=1,2,..,zi},以及文本坐标Di,Di={di,q|q=1,2,..,zi},其中,ti,q为文本内容Ti中的第q个信息单元,zi为文本内容Ti包含的信息单元个数,di,q为信息单元ti,q对应的坐标信息,各信息单元ti,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成文本内容Ti与文本坐标Di的摘要信息Hi,Hi=Hash(k1,Ti||Di);其中,Hash(.)表示Hash函数,||代表连接操作;
最后将页面块Pi的文本内容Ti、文本坐标Di和摘要信息Hi连接起来构成页面块Pi的认证信息Ai,Ai=Ti||Di||Hi
A4、水印信息生成:对每个页面块Pi(i=1,2…,I),将A3步生成的认证信息Ai进行压缩并利用秘钥k2加密之后得到二进制压缩数据流Bi,并添加PDF格式信息Yi,生成待添加的PDF对象Wi,Wi={Bi,Yi},同时计算其字节长度,记为li
所述的PDF格式信息Yi包括:对象号i+J、对象修改次数、对象的关键词、换行符;
B、基于文件代码的水印嵌入
首先将A4步生成的I个待添加的PDF对象Wi作为页面块Pi的水印信息W={Wi|i=1,2,…I},将该水印信息W与A2步的文件体So={Oj|j=1,2,…J}合并,得到包含N=I+J个合并对象O′n的合并文件体S′o={O′n|n=1,2,…N},其中n为合并对象O′n的对象号, O n ′ = O j , n ≤ J W n - J , n > J ; 同时根据偏移地址信息xj,计算得到每个合并对象O′n的长度 l n ′ , l n ′ = l J o , n ≤ J l n - J , n > J , 其中
然后,基于密钥k3生成长度为I+J的伪随机序列,对该序列进行从小到大排序,排序前的位置信息按排序后的位置排列,构成对象置乱序列V,V={vn|n=1,2,...,I+J},其中vn为合并对象O′n的新对象号,vn∈[1,I+J]的整数;据以进行置乱操作,即将合并对象O′n的对象号修改为vn,即令随即得到置乱后的含水印文件体 S o w = { O v n ′ | v n = 1 , 2 , ... , I + J } ;
C、交差索引表和文件尾的更新
根据B步中得到的含水印文件体和对象长度信息l′n计算出合并后的偏移地址信息 x v n w = { a , n = 1 x v n - 1 w + l n - 1 ′ , n ∈ [ 2 , I + J ] , 其中:a为第一个对象O1的偏移地址,其具体值为PDF文件版本信息的文件头SH的字节长度;重新生成交差索引表同时更新文件尾ST中的根对象号、摘要对象号和对象总数,生成更新后的文件尾
D、含水印PDF电子***文件生成
将B步的含水印文件体和C步更新后的交差索引表和文件尾合并重构,即得到含水印的***文件Fw
E、认证信息重构和认证信息提取
E1、待检测文档的认证信息重构:
将待测PDF电子***文件F#的阅读器页面P#,根据信息单元的固有的分布坐标分为I个待测页面块Pi #,即P#={P# i|i=1,2,…,I};
对每一个待测页面块P# i(i=1,2…,I),首先利用Itextsharp组件提取每个待测页面块P# i中的待测文本内容T# i,T# i={t# i,q|q=1,2,..,zi},以及待测文本坐标D# i,D# i={d# i,q|q=1,2,..,zi},其中,t# i,q为待测文本内容T# i中的第q个待测信息单元,zi为待测文本内容T# i包含的信息单元个数,d# i,q为待测信息单元t# i,q对应的待测坐标信息,各待测信息单元t# i,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成待测文本内容T# i与待测文本坐标D# i的待测文本摘要信息H# i,H# i=Hash(k1,T# i||D# i);
E2、认证信息提取:对待测的PDF电子***文件F#代码页面S#进行解析得到待测文件体 根据秘钥k3和对象置乱序列V对I+J个待测对象进行反置乱,找到待测对象中对应的I个伪对象即待测水印信息Wi *(i=1,2,…,I),解压待测水印信息Wi *中的待测压缩数据Bi *,并利用秘钥k2解密得到待测认证信息Ai *
按照E1中待测文本内容T# i、待测文本坐标D# i和待测文本摘要信息H# i的长度,由左到右依次从待测认证信息Ai *分割出对应页面块Pi *的提取文本内容Ti *,提取文本坐标Di *,提取文本摘要信息Hi *,并根据行末标识符”\r\n”将提取文本信息Ti *分割出提取信息单元t* i,q,以及从提取文本坐标Di *分出对应的提取坐标单元d* i,q,即Ti *={t* i,q|q=1,2,..,zi},Di *={d* i,q|q=1,2,..,zi};
F、篡改认证
F1、篡改真实性判定:如果待测文本内容T# i和提取文本内容Ti *相等,且待测文本摘要信息Hi #和提取文本摘要信息Hi *相等,则判定待测的PDF电子***文件F#未被篡改,输出检测通过的结果,完成检测;否则,判定待测的PDF电子***文件已被篡改,进行F2步的操作;
F2、篡改定位与标记:对F1步中认定为篡改的***文件F#,找出与提取信息单元t* i,q不相等的待测信息单元t# i,q,即为被篡改信息单元t# i,q,输出检测不通过的结果;并根据其对应的坐标信息d# i,q,在被篡改信息单元t# i,q添加标识警示信息,使其对应的页面P#显示文字内容处显示出篡改标识信息。
本发明的效果可以通过以下性能分析及试验得到验证和说明:
其中,水印容量用单个文件中嵌入的字节数(Byte)来衡量,***增量用文件字节(Byte)变化的百分比做衡量。
一、水印容量与***大小增量的分析与统计
对同类的水印嵌入算法,水印容量越大,带来文件的增量也越大。
现有文献的文件增量多控制在5%以内,考虑到隐蔽性,防止被破解者嫌疑以及减少存储空间,本发明将水印容量设定在1%以内。水印容量根据对象块的内容大小不同而变化。表1给出了本发明对常用PDF格式的电子***原始文件大小、页面数、嵌入耗时、水印容量及增量的统计结果。由表1可以看出,本发明文件增量即为水印容量,在0.5%左右,能很好的保证文件的传输;在嵌入耗时一栏中计算了水印嵌入文件的时间和更新交叉引用表的时间,该时间基本在10ms以下,嵌入效率高,适于实际应用。
表1通过本发明方法对电子***嵌入水印的参数统计结果
注:表中***测试对象均来自本发明者自己开发的***制作***
二、篡改检测性能的测试
为验证算法在部分内容替换、添加、删除和混合篡改下的检测性能,用上述实施例的方法对PDF格式电子***文件进行了相关测试。
1、部分内容替换篡改
如图1所示,以文件大小98,458字节的PDF格式电子***为测试对象,利用本发明生成的含水印文件见图2,从图1和图2可以看出水印完全不可见;水印容量为458字节,其中嵌入耗时为5毫秒,含水印电子***大小增量为0.48%。对图2进行如下替换篡改:1)在商品编号1中的数量一栏中用“11”替换“1”;2)合计人民币(大写)一栏中用“拾元”替换“伍拾元”;3)***代码中用“1110013710715”替换“111001371071”;4)在日期一栏中用“2015-02-06”替换“2015-02-02”;2)小写一栏中用“¥10”替换“¥50”,图3是对图2篡改后的图像。
图4是用本发明方法对图3进行认证后的定位图像;定位精度为子块文字信息的长度,定位标记为一条红线。可以看到,由于本发明对可以获取***中的所有文字坐标信息,使得图4准确检测到了篡改。通过替换篡改结果可以看出,本发明对***进行准确定位,不存在漏检或虚检错误。
2、添加、删除篡改
如图5所示,以文件大小100,325字节的PDF格式电子***为测试对象,利用本发明生成的含水印文件见图6,水印容量为492字节其中的,嵌入耗时为6毫秒,含水印电子***大小增量为0.51%。对图6进行如下篡改:1)添加项目“小果耳机”,商品相应的单价“¥20”,商品相应的数量“1”,商品相应的金额“20”。图7是对图6进行篡改后的图像。
图8是用本发明方法对图7的篡改后的电子***进行认证后的篡改定位图像,定位精度同样为子块文字信息的长度,定位标记为一条红线。可以看到,本发明因为对文件信息分块之后进行逐一对比,并可以获取文件中文字的坐标信息,而在认证时的也是进行分块模式,这样为最终的准确定位提供了保障。测试结果表明本发明对添加、删除篡改拥有较好的认证能力。
3、同时进行添加、删除和替换篡改
以如图9所示的PDF原始电子***为测试对象,利用本发明生成的含水印文件见图10。对含水印电子***文件如图10进行以下篡改:1)添加项目“百雀羚洗面奶”,单价“¥30”,数量“1”,金额“¥30”;2)删除行业分类中的“商业”以及收款单位的全部信息;3)大写合计的“贰拾元”改为“五拾元”,小写合计“¥20”为“50”,开票时间由“2015-02-03”修改为“2015-02-17”,防伪码由“WbTPJuvt5Sj44bt8DM-N3”修改为“bPJbubvt5Sj44bt8DMN335”;得到包含三种篡改方式多个篡改区域的电子***文件如图11所示。图12是利用本发明方法对图11认证、篡改定位的图像,定位精度为子块文字信息的长度,定位标记为一条红线。综合以上测试结果可看出,当添加、删除和替换同时存在于一个PDF格式电子***文件中时,本发明算法依然具有精确的篡改定位能力。

Claims (1)

1.一种能定位PDF电子***篡改的水印嵌入与认证方法,包括如下步骤:
A、基于文件阅读页面的水印生成
A1、页面分块:将原始PDF电子***文件的阅读器页面P,根据信息单元的固有的分布坐标分为I个页面块Pi,即P={Pi|i=1,2,…,I},i为页面块Pi的序号,I为整个阅读器页面P上的页面块Pi的总数;
A2、解析文件结构:对原始PDF电子***文件的代码页面S进行PDF文件结构解析,得到标明PDF文件版本信息的文件头SH,文件体SO,交叉引用表SX和文件尾ST四个部分,即:S={SH,SO,SX,ST};
其中,文件体SO由J个对象Oj(j=1,2,...,J)组成,即So={Oj|j=1,2,...J},j为对象号;
交叉引用表SX由J个索引信息Xj(j=1,2,...,J)组成,Xj={对象偏移地址xj,代表该对象所修改的次数,对象是否正在被使用的状态};
文件尾ST包括文件描述、密码信息及文件体SO中的根对象号、摘要对象号和对象总数;
A3、认证信息生成:
对每一个页面块Pi(i=1,2…,I),首先利用Itextsharp组件提取每个页面块Pi中的文本内容Ti,Ti={ti,q|q=1,2,..,zi},以及文本坐标Di,Di={di,q|q=1,2,..,zi},其中,ti,q为文本内容Ti中的第q个信息单元,zi为文本内容Ti包含的信息单元个数,di,q为信息单元ti,q对应的坐标信息,各信息单元ti,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成文本内容Ti与文本坐标Di的摘要信息Hi,Hi=Hash(k1,Ti||Di);其中,Hash(·)表示Hash函数,||代表连接操作;
最后将页面块Pi的文本内容Ti、文本坐标Di和摘要信息Hi连接起来构成页面块Pi的认证信息Ai,Ai=Ti||Di||Hi
A4、水印信息生成:对每个页面块Pi(i=1,2…,I),将A3步生成的认证信息Ai进行压缩并利用秘钥k2加密之后得到二进制压缩数据流Bi,并添加PDF格式信息Yi,生成待添加的PDF对象Wi,Wi={Bi,Yi},同时计算其字节长度,记为li
所述的PDF格式信息Yi包括:对象号i+J、对象修改次数、对象的关键词、换行符;
B、基于文件代码的水印嵌入
首先将A4步生成的I个待添加的PDF对象Wi作为页面块Pi的水印信息W={Wi|i=1,2,...I},将该水印信息W与A2步的文件体So={Oj|j=1,2,...J}合并,得到包含N=I+J个合并对象O′n的合并文件体S′o={O′n|n=1,2,...N},其中n为合并对象O′n的对象号, O n ′ = O j , n ≤ J W n - J , n > J ; 同时根据偏移地址信息xj,计算得到每个合并对象O′n的长度l′n l n ′ = l J o , n ≤ J l n - J , n > J , 其中
然后,基于密钥k3生成长度为I+J的伪随机序列,对该序列进行从小到大排序,排序前的位置信息按排序后的位置排列,构成对象置乱序列V,V={vn|n=1,2,...,I+J},其中vn为合并对象O′n的新对象号,vn∈[1,I+J]的整数;据以进行置乱操作,即将合并对象O′n的对象号修改为vn,即令随即得到置乱后的含水印文件体 S o w = { O v n ′ | v n = 1 , 2 , ... , I + J } ;
C、交差索引表和文件尾的更新
根据B步中得到的含水印文件体和对象长度信息l′n计算出合并后的偏移地址信息 x v n w = a , n = 1 x v n - 1 w + l n - 1 ′ , n ∈ [ 2 , I + J ] , 其中:a为第一个对象O1的偏移地址,其具体值为PDF文件版本信息的文件头SH的字节长度;重新生成交差索引表同时更新文件尾ST中的根对象号、摘要对象号和对象总数,生成更新后的文件尾
D、含水印PDF电子***文件生成
将B步的含水印文件体和C步更新后的交差索引表和文件尾合并重构,即得到含水印的***文件Fw
E、认证信息重构和认证信息提取
E1、待检测文档的认证信息重构:
将待测PDF电子***文件F#的阅读器页面P#,根据信息单元的固有的分布坐标分为I个待测页面块Pi #,即P#={P# i|i=1,2,…,I};
对每一个待测页面块P# i(i=1,2…,I),首先利用Itextsharp组件提取每个待测页面块P# i中的待测文本内容T# i,T# i={t# i,q|q=1,2,..,zi},以及待测文本坐标D# i,D# i={d# i,q|q=1,2,..,zi},其中,t# i,q为待测文本内容T# i中的第q个待测信息单元,zi为待测文本内容T# i包含的信息单元个数,d# i,q为待测信息单元t# i,q对应的待测坐标信息,各待测信息单元t# i,q之间需添加行末标识符“\r\n”;
然后,基于秘钥k1生成待测文本内容T# i与待测文本坐标D# i的待测文本摘要信息H# i,H# i=Hash(k1,T# i||D# i);
E2、认证信息提取:对待测的PDF电子***文件F#代码页面S#进行解析得到待测文件体 S o w * = { O v n * | v n = 1 , 2 , ... , I + J } , 根据秘钥k3和对象置乱序列V对I+J个待测对象进行反置乱,找到待测对象中对应的I个伪对象即待测水印信息Wi *(i=1,2,…,I),解压待测水印信息Wi *中的待测压缩数据Bi *,并利用秘钥k2解密得到待测认证信息Ai *
按照E1中待测文本内容T# i、待测文本坐标D# i和待测文本摘要信息H# i的长度,由左到右依次从待测认证信息Ai *分割出对应页面块Pi *的提取文本内容Ti *,提取文本坐标Di *,提取文本摘要信息Hi *,并根据行末标识符”\r\n”将提取文本信息Ti *分割出提取信息单元t* i,q,以及从提取文本坐标Di *分出对应的提取坐标单元d* i,q,即Ti *={t* i,q|q=1,2,..,zi},Di *={d* i,q|q=1,2,..,zi};
F、篡改认证
F1、篡改真实性判定:如果待测文本内容T# i和提取文本内容Ti *相等,且待测文本摘要信息Hi #和提取文本摘要信息Hi *相等,则判定待测的PDF电子***文件F#未被篡改,输出检测通过的结果,完成检测;否则,判定待测的PDF电子***文件已被篡改,进行F2步的操作;
F2、篡改定位与标记:对F1步中认定为篡改的***文件F#,找出与提取信息单元t* i,q不相等的待测信息单元t# i,q,即为被篡改信息单元t# i,q,输出检测不通过的结果;并根据其对应的坐标信息d# i,q,在被篡改信息单元t# i,q添加标识警示信息,使其对应的页面P#显示文字内容处显示出篡改标识信息。
CN201510339156.7A 2015-06-17 2015-06-17 一种能定位pdf电子***篡改的水印嵌入与认证方法 Expired - Fee Related CN104899822B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510339156.7A CN104899822B (zh) 2015-06-17 2015-06-17 一种能定位pdf电子***篡改的水印嵌入与认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510339156.7A CN104899822B (zh) 2015-06-17 2015-06-17 一种能定位pdf电子***篡改的水印嵌入与认证方法

Publications (2)

Publication Number Publication Date
CN104899822A true CN104899822A (zh) 2015-09-09
CN104899822B CN104899822B (zh) 2018-04-27

Family

ID=54032470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510339156.7A Expired - Fee Related CN104899822B (zh) 2015-06-17 2015-06-17 一种能定位pdf电子***篡改的水印嵌入与认证方法

Country Status (1)

Country Link
CN (1) CN104899822B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229879A (zh) * 2017-06-05 2017-10-03 北京网证科技有限公司 基于安全二维码的电子询证函自动生成方法及***
CN109948123A (zh) * 2018-11-27 2019-06-28 阿里巴巴集团控股有限公司 一种图像合并方法及装置
CN110288755A (zh) * 2019-05-21 2019-09-27 平安银行股份有限公司 基于文本识别的***检验方法、服务器及存储介质
CN111209577A (zh) * 2019-12-31 2020-05-29 航天信息股份有限公司 添加水印数据的方法、装置、存储介质及电子设备
CN111680987A (zh) * 2020-06-03 2020-09-18 中国银行股份有限公司 基于票据的交易处理方法、装置、设备及可读存储介质
CN112733095A (zh) * 2020-12-25 2021-04-30 山东浪潮通软信息科技有限公司 一种自动生成文档水印的实现方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100324748A1 (en) * 2006-11-16 2010-12-23 Keith Voysey Building Optimization Platform And Web-Based Invoicing System
US20120205445A1 (en) * 2011-02-10 2012-08-16 Ariel Inventions, Llc Electronic payment using optically readable symbols
CN102842189A (zh) * 2011-06-23 2012-12-26 张翼 一种电子***
CN104036447A (zh) * 2014-03-12 2014-09-10 西南交通大学 基于块分类的png电子***图像水印嵌入与认证方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100324748A1 (en) * 2006-11-16 2010-12-23 Keith Voysey Building Optimization Platform And Web-Based Invoicing System
US20120205445A1 (en) * 2011-02-10 2012-08-16 Ariel Inventions, Llc Electronic payment using optically readable symbols
CN102842189A (zh) * 2011-06-23 2012-12-26 张翼 一种电子***
CN104036447A (zh) * 2014-03-12 2014-09-10 西南交通大学 基于块分类的png电子***图像水印嵌入与认证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王甜甜 等: "关键字符双重验证的Word文档脆弱水印方法", 《光电子.激光》 *
霍耀冉 等: "基于邻域比较的JPEG脆弱水印算法及性能分析", 《软件学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229879A (zh) * 2017-06-05 2017-10-03 北京网证科技有限公司 基于安全二维码的电子询证函自动生成方法及***
CN109948123A (zh) * 2018-11-27 2019-06-28 阿里巴巴集团控股有限公司 一种图像合并方法及装置
CN109948123B (zh) * 2018-11-27 2023-06-02 创新先进技术有限公司 一种图像合并方法及装置
CN110288755A (zh) * 2019-05-21 2019-09-27 平安银行股份有限公司 基于文本识别的***检验方法、服务器及存储介质
CN110288755B (zh) * 2019-05-21 2023-05-23 平安银行股份有限公司 基于文本识别的***检验方法、服务器及存储介质
CN111209577A (zh) * 2019-12-31 2020-05-29 航天信息股份有限公司 添加水印数据的方法、装置、存储介质及电子设备
CN111680987A (zh) * 2020-06-03 2020-09-18 中国银行股份有限公司 基于票据的交易处理方法、装置、设备及可读存储介质
CN112733095A (zh) * 2020-12-25 2021-04-30 山东浪潮通软信息科技有限公司 一种自动生成文档水印的实现方法及设备

Also Published As

Publication number Publication date
CN104899822B (zh) 2018-04-27

Similar Documents

Publication Publication Date Title
CN104899822A (zh) 一种能定位pdf电子***篡改的水印嵌入与认证方法
CN110457957B (zh) 电子票据的信息处理方法、装置、电子设备及介质
CN104036447B (zh) 基于块分类的png电子***图像水印嵌入与认证方法
CN104077624A (zh) 带防伪二维码的电子票据的生成方法、校验方法及其***
WO2022001096A1 (zh) 一种面向人脸识别设备检测的人脸测试数据库管理***及方法
CN103164515B (zh) 计算机***涉密文件知识库搜索方法
CN108363929B (zh) 一种存储设备信息消除报告生成和防篡改***及方法
CN101763394B (zh) 计算机***涉密文件搜索方法
CN103150679B (zh) 一种票据信息安全保护方法
Bartoletti et al. A journey into bitcoin metadata
CN111444275A (zh) 基于区块链的数据安全确权方法与***
CN103366247A (zh) 标准有效性判断***及方法
CN102831570B (zh) 可在浏览器上定位篡改位置的网页水印生成与认证方法
CN106951743A (zh) 一种软件代码侵权检测方法
CN106033543A (zh) 文档修改检测方法、文档原稿提供装置、文档复制件检测装置、以及文档修改检测***
Khadam et al. Advanced security and privacy technique for digital text in smart grid communications
CN111984734A (zh) 一种基于区块链的数据处理方法、装置、设备及存储介质
CN104050400A (zh) 一种基于控制符编码隐写的网页链接保护方法
CN102013088A (zh) 基于数字档案资源综合特征的数字水印生成与嵌入方法
CN111490870B (zh) 一种基于区块链的***注册方法、验证方法及防伪***
JP5788681B2 (ja) 手書き署名取得装置、手書き署名取得プログラム、手書き署名取得方法
CN101226578B (zh) 一种文件信息隐藏与识别追踪的方法及装置
CN102495881B (zh) 基于基因字的文档处理方法及装置
CN102063739A (zh) 国境口岸传染病监测体检单证制证查验***及方法
CN201804367U (zh) 便携式票据验伪装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180427

Termination date: 20200617