CN108665403A - 数字水印嵌入方法、提取方法、装置及数字水印系统 - Google Patents
数字水印嵌入方法、提取方法、装置及数字水印系统 Download PDFInfo
- Publication number
- CN108665403A CN108665403A CN201710196907.3A CN201710196907A CN108665403A CN 108665403 A CN108665403 A CN 108665403A CN 201710196907 A CN201710196907 A CN 201710196907A CN 108665403 A CN108665403 A CN 108665403A
- Authority
- CN
- China
- Prior art keywords
- watermark
- sub
- carrier
- digital watermarking
- file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 239000000203 mixture Substances 0.000 claims abstract description 113
- 239000000969 carrier Substances 0.000 claims abstract description 43
- 238000004422 calculation algorithm Methods 0.000 claims description 66
- 238000000605 extraction Methods 0.000 claims description 51
- 238000003860 storage Methods 0.000 claims description 37
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 18
- 238000003780 insertion Methods 0.000 claims description 15
- 230000037431 insertion Effects 0.000 claims description 15
- 238000005194 fractionation Methods 0.000 claims description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000003786 synthesis reaction Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000000694 effects Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 30
- 230000015654 memory Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- 230000002452 interceptive effect Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000006854 communication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 102220183183 rs770312290 Human genes 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/0042—Fragile watermarking, e.g. so as to detect tampering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1063—Personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/005—Robust watermarking, e.g. average attack or collusion attack resistant
- G06T1/0071—Robust watermarking, e.g. average attack or collusion attack resistant using multiple or alternating watermarks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/0092—Payload characteristic determination in a watermarking scheme, e.g. number of bits to be embedded
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/278—Subtitling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0062—Embedding of the watermark in text images, e.g. watermarking text documents using letter skew, letter distance or row distance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0065—Extraction of an embedded watermark; Reliable detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种数字水印嵌入方法、提取方法、装置及数字水印系统,属于数字水印技术领域。所述方法包括:获取组合文件的数字水印;根据所述组合文件的载体数N,将数字水印拆分为N个子水印,每个子水印对应数字水印的部分内容;将第i个子水印嵌入组合文件的第i个载体,得到第i个目标载体;将N个目标载体合成目标文件。本发明解决了现有技术中的数字水印技术对不能保证订单文件的完整性的问题,达到了对组合文件的各个载体进行保护,保证了组合文件的安全性和完整性的效果。
Description
技术领域
本发明实施例涉及数字水印技术领域,特别涉及一种数字水印嵌入方法、提取方法、装置及数字水印系统。
背景技术
数字水印技术是指在不影响载体的正常使用的前提下,将数字水印嵌入载体中的技术,载体可以是图像、文档、视频、软件中的至少一种,数字水印可以是秘钥、防伪信息等标识信息。数字水印不容易被探知和再次修改,但可以被嵌入方识别出来,通过识别隐藏在载体中的数字水印,可以判断出载体是否被篡改。
对于已嵌入有数字水印的载体,通过在提取到该载体中的数字水印之后验证该数字水印的合法性,可以判断出该载体是否为盗用或伪造的。随着数字水印技术的发展,越来越多的数字水印嵌入算法随之出现。一种典型的数字水印嵌入算法包括:将预设秘钥嵌入水印图像(比如:位图文件、二值图像等),得到图像格式的水印信息;然后将图像格式的水印信息重新编码及加密,得到二进制格式的水印信息,最后将二进制格式的水印信息嵌入到载体中。
订单文件是通过网络平台在发送发和接收方之间传递的文件,订单文件在传递过程中,订单的源文件内容可能会被恶意篡改,订单的签名图像可能会被恶意窃取。由于源文件和签名图像的格式不同,使用的数字水印嵌入算法也不同,现有技术中的数字水印嵌入算法只针对单独一种格式进行嵌入,因此一个数字水印只能保护源文件或签名图像中的一个,若需要对源文件和签名图像均进行保护,需要用到两个数字水印,然后将一个数字水印嵌入源文件,另一个数字水印嵌入签名图像;在对数字水印进行验证时,需要对源文件和签名图像中的数字水印分别进行验证,使得数字水印的嵌入过程和验证过程中的计算量和交互操作均成倍地增加。
发明内容
为了解决现有技术中采用两个相互独立的水印嵌入机制和水印验证机制,不能保证订单文件的完整性,且随着组合文件的载体数的增加,数字水印的嵌入过程和验证过程中的计算量和交互操作均成倍地增加的问题,本发明实施例提供了一种数字水印嵌入方法、提取方法、装置及数字水印系统。所述技术方案如下:
第一方面,提供了一种数字水印嵌入方法,所述方法包括:
获取组合文件的数字水印,所述组合文件至少包括两个载体;
根据所述组合文件的载体数N,将所述数字水印拆分为N个子水印,每个所述子水印对应所述数字水印的部分内容,N为正整数,N>1;
将第i个所述子水印嵌入所述组合文件的第i个所述载体,得到第i个目标载体,i为正整数,1≤i≤N;
将N个所述目标载体合成目标文件。
第二方面,提供了一种数字水印提取方法,所述方法包括:
在获取到目标文件后,从所述目标文件包括的各个载体中分别提取出对应的子水印;
将提取到的各个所述子水印合并成数字水印;
对所述数字水印进行验证;
其中,所述目标文件至少包括两个载体,所述数字水印是所述目标文件中嵌入的隐式标识,所述子水印是对应的载体中嵌入的隐式标识,每个所述子水印对应所述数字水印的部分内容。
第三方面,提供了一种数字水印嵌入装置,所述装置包括:
获取模块,用于获取组合文件的数字水印,所述组合文件至少包括两个载体;
拆分模块,用于根据所述获取模块获取的所述组合文件的载体数N,将所述数字水印拆分为N个子水印,每个所述子水印对应所述数字水印的部分内容,N为正整数,N>1;
嵌入模块,用于将所述拆分模块拆分的第i个所述子水印嵌入所述组合文件的第i个所述载体,得到第i个目标载体,i为正整数,1≤i≤N;
合成模块,用于将N个所述目标载体合成目标文件。
第四方面,提供了一种数字水印提取装置,所述装置包括:
提取模块,用于在获取到目标文件后,从所述目标文件包括的各个载体中分别提取出对应的子水印;
合并模块,用于将所述提取模块提取到的各个所述子水印合并成数字水印;
验证模块,用于对所述合并模块得到的所述数字水印进行验证;
其中,所述目标文件至少包括两个载体,所述数字水印是所述目标文件中嵌入的隐式标识,所述子水印是对应的载体中嵌入的隐式标识,每个所述子水印对应所述数字水印的部分内容。
第五方面,提供了一种数字水印系统,所述数字水印系统包括:数字水印嵌入装置和数字水印提取装置;
所述数字水印嵌入装置包括如第三方面所述的装置;
所述数字水印提取装置包括如第四方面所述的装置。
本发明实施例提供的技术方案带来的有益效果是:
通过根据组合文件的载体数,将数字水印拆分为与载体数相等的若干个子水印,然后将第i个子水印嵌入组合文件的第i个载体中,得到第i个目标载体,在子水印全部嵌入完毕后,将各个目标载体合成目标文件;对于包含至少两个载体的组合文件,在每个载体上分别嵌入数字水印的一部分,使得组合文件的各个载体均受到保护,由于只需要生成一个数字水印,各个载体中嵌入的子水印是关联的,从而对组合文件的各个载体均能进行保护,并且保证了组合文件的完整性,减少了数字水印嵌入过程中的计算量和交互操作。
通过从组合文件的各个载体中分别提取出对应的子水印,然后将子水印合并成数字水印进行验证,可以检测出组合文件是否被篡改,或者可以检测出组合文件的一部分是否被篡改;解决了现有技术中需要对各个载体中的数字水印分别进行验证,不能保证组合文件的完整性的问题;由于各个子水印之间是关联的,只需要对最后组合得到的数字水印进行验证,就能快速确定出组合文件或组合文件的一部分是否被篡改,从而保证了组合文件的完整性,并且减少了对组合文件中的数字水印进行验证时的计算量和交互操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的实施场景的示意图;
图2是本发明一个实施例提供的数字水印嵌入方法的方法流程图;
图3是本发明一个实施例提供的数字水印嵌入方法的示意图;
图4是本发明另一个实施例提供的数字水印嵌入方法的方法流程图;
图5是本发明一个实施例提供的在图像中的水印嵌入算法的流程图;
图6是本发明一个实施例提供的在PDF文档中的水印嵌入算法的流程图;
图7是本发明一个实施例提供的订单文件中的数字水印嵌入方法的流程图;
图8是本发明一个实施例提供的数字水印提取方法的方法流程图;
图9是本发明一个实施例提供的数字水印提取方法的示意图;
图10是本发明另一个实施例提供的数字水印提取方法的方法流程图;
图11是本发明一个实施例提供的在图像中的数字水印提取算法的流程图;
图12是本发明一个实施例提供的在PDF文档中的数字水印提取算法的流程图;
图13是本发明一个实施例提供的订单文件中的数字水印提取方法的流程图;
图14是本发明一个实施例提供的用于处理订单文件的系统结构示意图;
图15是本发明一个实施例提供的数字水印嵌入装置的结构方框图;
图16是本发明一个实施例提供的数字水印提取装置的结构方框图;
图17是本发明一个实施例提供的数字水印系统的结构方框图;
图18是本发明一个实施例提供的终端的结构方框图;
图19是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明一个实施例提供的实施场景的示意图,如图1所示,该实施场景主要包括终端110、网站服务器120、业务服务器130、数据库服务器140、文件服务器150。
终端110具备网页浏览的能力,用户通过终端110能够打开网页页面,在网页页面中输入与文件相关的信息,网页页面根据与文件相关的信息生成文件请求,终端110用于将文件请求发送给网站服务器120。
可选的,终端110中可以安装文件处理类应用程序,用户通过终端110运行文件处理类应用程序,文件处理类应用程序生成文件请求,终端110将文件请求发送给网站服务器120。
可选的,终端110包括:台式计算机、膝上型便携计算机、平板电脑、智能手机等。
可选的,文件为独立文件或组合文件,独立文件只包括一种文件类型的载体,比如:文档、图像、视频、音频等,组合文件包括至少两种不同类型的载体,比如:订单文件(文档格式的源文件+签名图像)、合同文件(文档格式的合同文本+签名图像+指纹图像)等。
网站服务器120是用于提供数据接收与数据转发的平台。网站服务器120在接收到终端110发送的文件请求后,将文件请求转发给业务服务器130进行处理。
业务服务器130用于对文件进行数字水印的嵌入与验证。数字水印是指在不影响文件的正常使用的前提下,用于嵌入文件中的隐式标识。可选的,数字水印根据文件的标识信息采用预定数字加密规则生成,根据预定嵌入规则嵌入到文件中。标识信息是用于唯一标识文件的显式标识,比如:文件名、文件编号。以订单文件为例,订单文件的标识信息可以为订单号,预定数字加密规则为信息-摘要算法5(英文:Message-Digest Algorithm 5,简称:MD5算法),MD5算法在进行加密时,订单号加上随机数后经过MD5算法生成数字水印,或者,订单号加上全局唯一标识符(英文:Globally Unique Identifier,简称:GUID)后经过MD5算法生成数字水印,这里的随机数或GUID均与订单号对应,通过MD5算法生成的数字水印通常为32位的字符串。预定嵌入规则包括数字水印的嵌入位置、嵌入方式等。
数据库服务器140用于存储数字水印的相关信息,数字水印的相关信息包括数字水印与文件的对应关系、数字水印的生成规则、数字水印的嵌入规则等。存储数字水印与文件的对应关系是指将数字水印与文件的标识信息对应存储;数字水印的生成规则包括包括数字水印的加密算法,加密过程中用到的数据(随机数、GUID);数字水印的嵌入规则包括数字水印的嵌入方式、嵌入位置等。
可选的,数据库服务器140中包括数据库请求队列、数据库处理模块和数据库,数据库服务器140根据接收到的请求,按照先后顺序将接收到的各个请求放入数据库请求队列中,数据库处理模块从数据库请求队列中依次提取出各个请求,并为每一个请求创建对应的任务,创建的任务包括在数据库中的读操作、写操作、删除操作等,数据库用于存储数据。
文件服务器150用于存储嵌入数字水印后的文件。当用户需要获取某个文件时,通过终端110发送获取请求,网站服务器120根据获取请求调用文件服务器150,获取对应的文件。
可选的,上述各种服务器可以是一台服务器,或者由若干服务器组成的服务器集群,服务器集群中的各个服务器之间的数据可以共享。
可选的,该实施场景中还包括负载均衡设备160。负载均衡设备160设置在终端110与网站服务器120之间,终端110将文件请求先发送给负载均衡设备160,负载均衡设备160将文件请求随机分配给一台网站服务器120,或者,负载均衡设备160根据网站服务器120的负载情况,将文件请求分配给负载较少的网站服务器120。
下面以订单文件为例,结合该实施场景分别对订单文件的生成过程和验证过程进行说明。
订单文件的生成过程如下:
终端110打开网页页面,网页页面根据输入的订单的源文件和签名图像生成订单文件生成请求,网页页面将订单文件生成请求发送给负载均衡设备160,负载均衡设备160将订单文件生成请求分配给其中一个网站服务器120,网站服务器120接收订单文件生成请求,将订单文件生成请求发送给业务服务器130进行处理,业务服务器130接收到订单文件生成请求后,获取订单的源文件和签名图像,生成数字水印并嵌入数字水印,然后将源文件和签名图像合成订单文件,将合成的订单文件存储至文件服务器150,将数字水印的相关信息存储至数据库服务器140。
订单文件的验证过程如下:
终端110打开网页页面,网页页面根据输入的订单文件的相关信息(比如:订单号)生成订单文件验证请求,网页页面将订单文件验证请求发送给负载均衡设备160,负载均衡设备160将订单文件验证请求分配给其中一个网站服务器120,网站服务器120接收订单文件验证请求后,调用文件服务器150,根据订单文件验证请求获取到对应的订单文件,将获取到的订单文件发送给业务服务器130进行验证,业务服务器130从数据库服务器140中获取该订单文件对应的数字水印的相关信息,根据数字水印的相关信息从订单文件中提取出数字水印,将提取出的数字水印和存储的数字水印进行比较,确定出订单文件是否被篡改过。
现有技术中针对各种文档、图像、音频、视频等均有各自对应的数字水印嵌入算法,但对于订单文件或合同文件这类包含至少两个载体的组合文件,现有技术只能将数字水印嵌入其中一个载体中,对组合文件不能起到很好的保护作用。本发明各实施例涉及的数字水印嵌入方法和数字水印提取方法主要应用在组合文件中,下面通过本发明各实施例对组合文件中的数字水印嵌入方法和数字水印提取方法进行说明。
图2是本发明一个实施例提供的数字水印嵌入方法的方法流程图,该数字水印嵌入方法以应用在图1所示的业务服务器130中进行举例说明。如图2所示,该数字水印嵌入方法可以包括:
步骤201,获取组合文件的数字水印,组合文件至少包括两个载体。
可选的,载体是文档、图像、音频、视频中的一种。
组合文件是由至少两个载体组成的,比如:订单文件可以由订单的源文件和签名图像组成,订单的源文件是订单的内容,至少包括订单号、订单数量、订单类型、订单时间、订单产品等,在订单的源文件上签名表示对源文件确认生效。在网络平台上传递的订单文件,通常不是对每一份源文件签名,而是将同一个签名图像与订单的多个源文件合成订单文件。
数字水印是在不影响文件的正常使用的前提下,用于嵌入文件中的隐式标识。数字水印具有安全性和隐蔽性,安全性是指数字水印不易被篡改或伪造,隐蔽性是指数字水印不容易被非嵌入方或第三方感知,不影响被保护数据(被嵌入的载体)的正常使用。
数字水印是与被嵌入的组合文件相对应的,也就是说,数字水印用于唯一标识被嵌入的组合文件。
步骤202,根据组合文件的载体数N,将数字水印拆分为N个子水印,每个子水印对应数字水印的部分内容,N为正整数,N>1。
为了使组合文件的每个载体都嵌入数字水印,因此将数字水印拆分成与组合文件的载体数相等的子水印。比如一个数字水印由10位字符串组成,表示为S56FHY8SJ2,当组合文件的载体数为3时,数字水印被拆分为3个子水印,第1个子水印为S56F,第1个子水印为HY8,第3个子水印为SJ2。
数字水印的N个子水印按照拆分的顺序能够重新拼接成完整的数字水印。
步骤203,将第i个子水印嵌入组合文件的第i个载体,得到第i个目标载体,i为正整数,1≤i≤N。
假设组合文件为合同文件,分别由合同文本、签名图像、指纹图像三个载体组成,对应步骤202中对数字水印的举例,将第1个子水印S56F嵌入合同文本,将第2个子水印HY8嵌入签名图像,将第3个子水印SJ2嵌入指纹图像。
在将子水印嵌入不同类型的载体中时,业务服务器130针对不同类型的载体进行分析,确定出对应的水印嵌入算法。
目标载体是指携带有子水印的载体。
步骤204,将N个目标载体合成目标文件。
在步骤203将各个子水印分别嵌入对应的载体中后,按照组合文件的生成方式将各个目标载体合成目标文件。
目标文件是指携带有数字水印的组合文件。
下面通过图3所示的数字水印嵌入的示意图对图2所涉及的实施例进行说明。如图3所示,组合文件210包括第一个载体211、第二个载体212、第三个载体213,数字水印220被拆分成第一个子水印221、第二个子水印222、第三个子水印223,第一个子水印221嵌入第一个载体211,第二个子水印222嵌入第二个载体212,第三个子水印223嵌入第三个载体213,最后合成目标文件230。
综上所述,本发明实施例提供的数字水印嵌入方法,通过根据组合文件的载体数,将数字水印拆分为与载体数相等的若干个子水印,然后将第i个子水印嵌入组合文件的第i个载体中,得到第i个目标载体,在子水印全部嵌入完毕后,将各个目标载体合成目标文件;对于包含至少两个载体的组合文件,在每个载体上分别嵌入数字水印的一部分,使得组合文件的各个载体均受到保护,由于只需要生成一个数字水印,各个载体中嵌入的子水印是关联的,从而对组合文件的各个载体均能进行保护,并且保证了组合文件的完整性,减少了数字水印嵌入过程中的计算量和交互操作。
图4是本发明另一个实施例提供的数字水印嵌入方法的方法流程图,该数字水印嵌入方法以应用在图1所示的业务服务器130中进行举例说明,如图4所示,该数字水印去嵌入方法可以包括:
步骤301,根据组合文件的标识信息和随机数,通过MD5算法生成数字水印。
组合文件是由至少两个载体组成的,可选的,载体是文档、图像、音频、视频中的一种。比如:订单文件可以由订单的源文件和签名图像组成,订单的源文件是订单的内容,至少包括订单号、订单数量、订单类型、订单时间、订单产品等,在订单的源文件上签名表示对源文件确认生效。在网络平台上传递的订单文件,通常不是对每一份源文件签名,而是将同一个签名图像与订单的源文件合成订单文件。
标识信息是用于唯一标识组合文件的显式标识。以订单文件为例,订单文件的标识信息可以为订单文件的订单号。
随机数与组合文件的标识信息对应。随机数为任意长度的整数序列,由业务服务器130随机生成。
可选的,随机数允许被替换成GUID。
标识信息与随机数进行拼接后,通过MD5算法对拼接后的数据进行加密,得到定长的字符串,通常MD5算法得到的是32位的字符串。
数字水印是在不影响文件的正常使用的前提下,用于嵌入文件中的隐式标识。数字水印具有安全性和隐蔽性,安全性是指数字水印不易被篡改或伪造,隐蔽性是指数字水印不容易被非嵌入方或第三方感知,不影响被保护数据(被嵌入的载体)的正常使用。
数字水印是与被嵌入的组合文件相对应的,也就是说,数字水印用于唯一标识被嵌入的组合文件。
可选的,在通过MD5算法得到数字水印之后,业务服务器130将组合文件的标识信息、随机数、数字水印对应存储至数据库服务器140中。
步骤302,根据组合文件的载体数N,将数字水印拆分为N个子水印,每个子水印对应数字水印的部分内容,N为正整数,N>1。
为了使组合文件的每个载体都嵌入数字水印,因此将数字水印拆分成与组合文件的载体数相等的子水印。
可选的,在将数字水印拆分为N个子水印之后,业务服务器130将数字水印的拆分规则、组合文件的标识信息对应存储至数据库服务器140中。数字水印的拆分规则至少包括拆分的个数、每个子水印对应的位数。
可选的,数字水印在拆分后,得到的各个子水印的位数之间的关系包括:
每个子水印的位数相同;或者,在N个子水印中,存在至少两个子水印的位数相同,存在至少两个子水印的位数不同;或者,N个子水印的位数各不相同。
步骤303,根据第i个载体的格式,确定与第i个载体的格式对应的水印嵌入算法。
在将子水印嵌入不同类型的载体中时,业务服务器130针对不同类型的载体进行分析,确定出对应的水印嵌入算法。
由于不同格式的载体具有不同的特性,因此不同格式的载体的水印嵌入算法不同。
步骤304,按照与第i个载体的格式对应的水印嵌入算法,将第i个子水印嵌入组合文件的第i个载体。
当第i个载体为图像时,请参见图5所示出的水印嵌入算法;当第i个载体为便携式文档格式(英文:Portable Document Format,简称:PDF)文档时,请参见图6所示出的水印嵌入算法。
如图5所示,当第i个载体为图像时,将第i个子水印嵌入图像可以包括如下步骤:
步骤304a,将第i个子水印转换为第一二进制比特流。
通过MD5算法加密得到的数字水印是32位的字符串,因此拆分得到的子水印也是字符串,通过将子水印进行二进制转换得到第一二进制比特流。
第一二进制比特流的位数为n,n为正整数,所述第一二进制比特流中的第j位数据为数据Sj,数据Sj的取值为0或1,j为正整数,1≤j≤n。
比如:第一二进制比特流为1101,则第一位数据S1为1,第二位数据S2为0,第三位数据S3为1,第四位数据S4为1。
步骤304b,按照预定划分顺序,将图像中的像素点依次划分为各组像素点对,每组像素点对包含相邻的两个像素点的灰度值。
可选的,预定划分顺序为针对相同的像素行从左往右,针对不同的像素行从上往下的顺序;或者,预定划分顺序为针对相同的像素列从上往下,针对不同的像素列从左往右的顺序。除了以上两种划分顺序,在实际实现时,预定划分顺序可以依据需求由技术人员进行确定。
以针对相同的像素行从左往右,针对不同的像素行从上往下的顺序为例,将第一行的第一个像素点和第二个像素点作为第一组像素点对,将第一行的第三个像素点和第四个像素点作为第二组像素点对,依次类推。若第一行的像素点个数为奇数,则将第一行最后一个像素点和第二行第一个像素点作为一组像素点对。
按照预定划分顺序,将图像中的相邻的两个像素点划分为一组像素点对,每组像素点对用像素点的灰度值来表示。灰度值是指像素点的颜色深度,范围通常在0至255。比如,一组像素点对表示为(x,y),则x表示这一组像素点对中前一个像素点的灰度值,y表示这一组像素点对中后一个像素点的灰度值。
步骤304c,随机确定出第i个子水印的嵌入位置k,k为正整数。
嵌入位置k与像素点对的组序号对应。
在实际应用中,通常会根据第一二进制比特流的长度确定嵌入位置k,以确保第一二进制比特流中的每位数据能够全部嵌入到图像中。
步骤304d,以第k组像素点对为起点,将第一二进制比特流中的数据Sj嵌入第k+j-1组像素点对。
在一种可能的实现方式中,当第一二进制比特流中的数据嵌入到最后一组像素点对后,第一二进制比特流中还有几位数据没有嵌入,其余的几位数据按照顺序依次从第一组像素点对开始嵌入。
可选的,将第一二进制比特流中的数据Sj嵌入第k+j-1组像素点对,包括如下步骤:
S1,计算第k+j-1组像素点对的第一灰度值和第二灰度值的均值和差值。
每组像素点对中的前一个像素点的灰度值为第一灰度值,每组像素点对中的后一个像素点的灰度值为第二灰度值。
当第一灰度值为x,第二灰度值为y时,按照公式(1)计算第一灰度值和第二灰度值的均值和差值:
其中,l表示第一灰度值和第二灰度值的均值,h表示第一灰度值和第二灰度值的差值,floor为向下取整函数,比如:Z=floor(z),当z为3.2时,Z等于3。
S2,将差值乘以2,加上第一二进制比特流的数据Sj,得到目标差值。
目标差值的计算请参照公式(2):
h′=h×2+Sj 公式(2)
其中,h表示差值,h′表示目标差值。
S3,根据均值和目标差值计算第k+j-1组像素点对的第一目标灰度值和第二目标灰度值,得到第k+j-1组目标像素点对。
将S2中计算得到的目标差值h′代入公式(1),均值l保持不变,根据公式(1)中的两个等式得到二元一次方程组,通过解二元一次方程组,得到x′和y′,x′为第一目标灰度值,y′为第二目标灰度值,目标像素点对为(x′,y′)。
在实际实现时,对于每组目标像素点对的计算都是根据图5所示的步骤。
在实际实现时,可以按照串行执行的顺序依次计算各组目标像素点对,也可以按照并行执行的顺序同时计算各组目标像素点对。
如图6所示,当第i个载体为PDF文档时,将第i个子水印嵌入图像可以包括如下步骤:
步骤304e,读取PDF文档。
读取PDF文档是将PDF文档读入内存流中,能够读取到PDF文档的各个组成部分。
PDF文档由四部分组成:文件头、文件体、交叉引用表、文件尾。
文件头用于指明该PDF文件所遵从PDF规范的版本号,出现在PDF文件的第一行。
文件体由一系列的PDF间接对象组成,这些间接对象构成PDF文档的具体内容,包括字体、页面、图像等。
交叉引用表是为了对间接对象进行随机存取而设立的间接对象地址索引表。
文件尾用于声明交叉引用表的地址,指明文件体的根对象。
通常一个PDF文档由一个文件头、一个文件体、一个交叉引用表和一个文件尾构成。
步骤304f,查找PDF文档的交叉引用表,从交叉引用表中查找到最后一个交叉引用节。
PDF文档被修改时采用的是增量的方式,PDF文档在生成时,具有一套文件头+文件体+交叉引用表+文件尾,若PDF文档被修改,则在第一套文件尾下面会增加一套文件体+交叉引用表+文件尾,若PDF文档再次被修改,则继续在第二个文件尾下面增加一套文件体+交叉引用表+文件尾,依次类推。由此可知,PDF文档的最后一套文件体+交叉引用表+文件尾对应的是最后一次修改后得到的PDF文档内容。
从交叉引用表中查找最后一个交叉引用节,即查找最后一次修改后得到的PDF文档,最后一个交叉引用节即PDF文档的最后一套文件体+交叉引用表+文件尾中的交叉引用表。
步骤304g,将第i个子水印依次嵌入最后一个交叉引用节中的空白符,每个空白符嵌入第i个子水印中的一位数据。
交叉引用表由若干条交叉引用条目组成,每条交叉引用条目具备固定格式:nnnnnnnnnn ggggg n,由三部分组成:偏移地址(nnnnnnnnnn)、代号(ggggg)、是否使用的标记(n,其中,n表示在使用,f表示空闲),偏移地址和代号之间有一个空白符,代号和是否使用的标记之间有一个空白符。空白符的特点是在交叉引用条目的空白符上写任何信息都不会影响PDF文档的显示。
在实际应用中,拆分得到的字符串格式的子水印可以直接将每一位字符嵌入空白符位置,比如子水印为gj65y6,从最后一个交叉引用节中的第一个交叉引用条目中的第一个空白符开始,依次将g写入第一个空白符,将j写入第二个空白符,将6写入第三个空白符,将5写入第四个空白符,将y写入第五个空白符,将6写入第六个空白符。
可选的,将第i个子水印依次嵌入最后一个交叉引用节中的空白符,包括如下步骤:
S4,将第i个子水印转换为第二二进制比特流。
S5,将第二二进制比特流依次嵌入最后一个交叉引用节中的空白符,每个空白符嵌入第二二进制比特流中的一位数据。
作为步骤304g的另一种可能的实现方式,将第i个子水印先进行二进制转换,得到第二二进制比特流,再将第二二进制比特流中的每一位数据依次嵌入空白符位置。
步骤305,将N个目标载体合成目标文件。
将各个子水印分别嵌入对应的载体中后,按照组合文件的生成方式将各个目标载体合成目标文件。
目标文件是指携带有数字水印的组合文件。
步骤306,将数字水印的相关信息进行存储。
数字水印的相关信息至少包括数字水印与组合文件的对应关系、数字水印的生成规则、数字水印的拆分规则、数字水印的嵌入规则。
以订单文件为例,存储数字水印与组合文件的对应关系,是指将订单号与数字水印对应存储。
存储数字水印的生成规则,对应上述MD5算法,是指将用于生成数字水印的随机数或GUID进行存储。
存储数字水印的拆分规则,是指将拆分得到的子水印的个数、每一位子水印的位数、子水印在数字水印中对应的先后顺序进行存储。
存储数字水印的嵌入规则,对应上述步骤304c,是指将嵌入位置k进行存储。可选的,将子水印进行二进制转换后,对转换得到的二进制比特流的位数进行存储。
当组合文件为订单文件,订单文件包含源文件和签名图像时,本实施例提供的数字水印嵌入算法还表示为图7所示的流程图。如图7所示,首先执行310,订单号+随机数,MD5算法生成密文作为数字水印;然后执行320,将数字水印拆分的第一部分作为第一水印;继续执行330,将第一水印嵌入订单的源文件;作为310后面的另一个分支,执行340,将数字水印拆分的第二部分作为第二水印;继续执行350,将第二水印嵌入签名图像;最后根据330和350,执行360,生成嵌入数字水印的订单文件。
需要说明的是,本实施例中提供了将数字水印嵌入图像和PDF文档的算法,对于其他格式的载体,可以根据载体的格式,具体分析出适合的水印嵌入算法,本实施例就不在赘述。
综上所述,本发明实施例提供的数字水印嵌入方法,通过根据组合文件的载体数,将数字水印拆分为与载体数相等的若干个子水印,然后将第i个子水印嵌入组合文件的第i个载体中,得到第i个目标载体,在子水印全部嵌入完毕后,将各个目标载体合成目标文件;对于包含至少两个载体的组合文件,在每个载体上分别嵌入数字水印的一部分,使得组合文件的各个载体均受到保护,由于只需要生成一个数字水印,各个载体中嵌入的子水印是关联的,从而对组合文件的各个载体均能进行保护,并且保证了组合文件的完整性,减少了数字水印嵌入过程中的计算量和交互操作。
通过步骤304a至步骤304d中将子水印嵌入图像的方法,可以将二进制格式的子水印嵌入图像中的部分像素点,改变部分像素点的灰度值,将这种方法应用在签名图像中,可以有效避免正确的签名图像被窃取的问题。
通过步骤304e至步骤304g中将子水印嵌入PDF文档的方法,利用了PDF文档的交叉引用表中空白符的特点,可以将字符串格式或二进制格式的子水印嵌入到交叉引用表的空白符中,但不影响PDF文档的显示,保持了PDF文档中的内容的正确性。
通过步骤306将数字水印的相关信息进行存储,可以保存数字水印与组合文件的对应关系,使得在对数字水印进行验证时,能够根据组合文件查找到正确的数字水印;另外,通过存储数字水印的的生成规则、拆分规则、嵌入规则,使得在对数字水印进行验证时,能够将嵌入在各个载体中的子水印恢复为完整的数字水印,然后与正确的数字水印进行比对。
图8是本发明一个实施例提供的数字水印提取方法的方法流程图,该数字水印提取方法以应用在图1所示的业务服务器130中进行举例说明,如图8所示,该数字水印提取方法可以包括:
步骤401,在获取到目标文件后,从目标文件包括的各个载体中分别提取出对应的子水印。
网站服务器120调用文件服务器150获取目标文件,将目标文件发送给业务服务器130,业务服务器130从而能够获取到目标文件。
目标文件是指携带有数字水印的组合文件,目标文件至少包括两个载体。
子水印是对应的载体中嵌入的隐式标识。
步骤402,将提取到的各个子水印合并成数字水印。
数字水印是目标文件中嵌入的隐式标识,每个子水印对应数字水印的部分内容。
由于目标文件包含多个载体,每个载体中均嵌入子水印,因此需要将各个载体中的子水印提取出来,才能得到嵌入目标文件中的完整的数字水印。
步骤403,对数字水印进行验证。
业务服务器130将提取到的数字水印与数据库服务器140中存储的与目标文件对应的正确的数字水印进行比对,确定出提取的数字水印是否正确,从而判断出目标文件是否被篡改。
下面通过图9所示的数字水印提取的示意图对图8所涉及的实施例进行说明。如图9所示,目标文件410包括第一个载体411、第二个载体412、第三个载体413,第一个载体411中提取到第一个子水印421,第二个载体412中提取到第二个子水印422,第三个载体413中提取到第三个子水印423,第一个子水印421、第二个子水印422、第三个子水印423经过拼接得到数字水印420。
综上所述,本发明实施例提供的数字水印提取方法,通过从组合文件的各个载体中分别提取出对应的子水印,然后将子水印合并成数字水印进行验证,可以检测出组合文件是否被篡改,或者可以检测出组合文件的一部分是否被篡改;解决了现有技术中需要对各个载体中的数字水印分别进行验证,不能保证组合文件的完整性的问题;由于各个子水印之间是关联的,只需要对最后组合得到的数字水印进行验证,就能快速确定出组合文件或组合文件的一部分是否被篡改,从而保证了组合文件的完整性,并且减少了对组合文件中的数字水印进行验证时的计算量和交互操作。
图10是本发明另一个实施例提供的数字水印提取方法的方法流程图,该数字水印提取方法以应用在图1所示的业务服务器130中进行举例说明,如图10所示,该数字水印提取方法可以包括:
步骤501,在获取到目标文件后,根据第i个载体的格式,确定与第i个载体的格式对应的水印嵌入算法的逆算法。
目标文件包括N个载体,N为正整数,N>1,i为正整数,1≤i≤N。
网站服务器120调用文件服务器150获取目标文件,将目标文件发送给业务服务器130,业务服务器130从而能够获取到目标文件。
由于载体的类型不同,即载体的格式不同,不同格式的载体对应不同的水印嵌入算法,因此从不同格式的载体中提取水印时,需要根据载体的格式确定对应的水印嵌入算法的逆算法。
步骤502,按照与第i个载体的格式对应的水印嵌入算法的逆算法,从第i个载体中提取出第i个子水印。
当第i个载体为图像时,请参见图11所示的水印提取算法;当第i个载体为PDF文档时,请参见图12所示的水印提取算法。
如图11所示,当第i个载体为图像时,从图像中提取出第i个子水印可以包括如下步骤:
502a,按照预定划分顺序,将目标文件中的目标图像依次划分为各组像素点对,每组像素点对包含相邻的两个像素点的灰度值。
可选的,预定划分顺序为针对相同的像素行从左往右,针对不同的像素行从上往下的顺序;或者,预定划分顺序为针对相同的像素列从上往下,针对不同的像素列从左往右的顺序。除了以上两种划分顺序,在实际实现时,预定划分顺序可以依据需求由技术人员进行确定。
需要说明的是,在数字水印嵌入过程中的预定划分顺序与数字水印提取过程中的预定划分顺序相同。
502b,获取第i个子水印的嵌入位置k和第一二进制比特流的位数n。
第一二进制比特流是根据第i个子水印转换得到的,嵌入位置k是随机确定的,k为正整数,n为正整数。
由于数据库服务器140中存储了数字水印的相关信息,因此业务服务器130可以从数据库服务器150中获取数字水印的相关信息,其中包括第i个子水印的嵌入位置k和第一二进制比特流的位数n。
502c,根据嵌入位置k和第一二进制比特流的位数n,将第k组像素点对至第k+n-1组像素点对分别确定为第1组目标像素点对至第n组目标像素点对。
由于划分像素点对的预定划分顺序相同,获取到嵌入位置k后,业务服务器130根据嵌入位置k可以找到对应的第k组像素点对,然后根据第一二进制比特流的位数n,能够找到嵌入有第i个子水印的各组目标像素点对。
502d,根据第j组目标像素点对,确定对应的数据Sj。
数据Sj是第一二进制比特流中的第j位数据,j为正整数,1≤j≤n。
在嵌入过程中,第一二进制比特流的每一位数据分别嵌入到一组像素点对中,因此,从一组目标像素点对中业务服务器130能够提取到第一二进制比特流的一位数据。
可选的,根据第j组目标像素点对,确定对应的数据Sj,可以包括如下步骤:
S6,计算第j组目标像素点对的第一目标灰度值和第二目标灰度值的差值。
假设确定的第j组目标像素点对中的第一目标灰度值为x,第二目标灰度值为y,第一目标灰度值和第二目标灰度值的差值h=x-y。
S7,将差值的二进制表示的最低一位数据确定为对应的数据Sj。
将差值h转换为二进制表示,若最后一位数据为0,则确定出的数据Sj=0,若最后一位数据为1,则确定出的数据Sj=1。
可选的,由于在嵌入过程中,目标差值是通过乘以2再加上Sj,因此,若差值h为奇数,则表明数据Sj=1,若差值为偶数,则表明数据Sj=0。
可选的,若需要将目标图像恢复成嵌入数字水印之前的图像,根据公式(1),先计算x和y的均值l,然后将差值h除以2,并向下取整,得到差值h′,将差值h′和均值l代入公式(1)解二元一次方程组,得到第一灰度值x′和第二灰度值y′,(x′,y′)即为第j像素点对在嵌入数字水印之前的灰度值。
502e,将确定出的各个数据Sj按照顺序组成第一二进制比特流。
按照提取到的各个数据Sj对应的像素点对的顺序,将各个数据Sj拼成一个由0和1组成的数字序列,这个数字序列为第一二进制比特流。
502f,将第一二进制比特流转换得到第i个子水印。
由于第一二进制比特流是第i个子水印经过二进制转换得到的,因此步骤502f是一个逆运算的过程。
如图12所示,当第i个载体为PDF文档时,从图像中提取出第i个子水印可以包括如下步骤:
步骤502g,读取目标文件的目标PDF文档。
读取目标PDF文档是将目标PDF文档读入内存流中,能够读取到目标PDF文档的各个组成部分。
步骤502h,查找目标PDF文档的交叉引用表,从交叉引用表中查找最后一个交叉引用节。
最后一个交叉引用节中对应的是PDF文档最后一次修改的内容。
在一种可能的实现中,若PDF文档在子水印嵌入后被修改,且最后一个交叉引用节中的空白符位置没有被替换,则快速确定出PDF文档被篡改过。
步骤502i,获取第i个子水印的位数n,n为正整数。
业务服务器130从数据库服务器140中存储的数字水印的相关信息中能够获取到第i个子水印的位数n。
可选的,若第i个子水印是在转换为第二二进制比特流之后嵌入的,则获取第二二进制比特流的二位数n。
步骤502j,从最后一个交叉引用节中的第1个空白符位置至第n个空白符位置中,依次读取与各个空白符位置对应的数据。
可选的,若子水印是从第1个空白符位置开始写入,则业务服务器130在提取时直接从第1个空白符位置读取。
可选的,若子水印是从指定位置开始写入的,则业务服务器130从数据库服务器140获取指定位置,从指定位置开始读取。
步骤502k,将与各个空白符位置对应的数据组合成第i个子水印。
业务服务器130按照各个数据提取的先后顺序,或者按照各个数据对应的空白符位置的先后顺序,将提取到的数据合成第i个子水印。
可选的,若第i个子水印是在转换为第二二进制比特流之后嵌入的,则将与各个空白符位置对应的数据组合成第i个子水印包括如下步骤:
S8,将与各个空白符位置对应的数据组合成第二二进制比特流。
在获取到第二二进制比特流的位数n后,业务服务器130一次从对应的空白符位置获取各个数据,组成第二二进制比特流。
S9,将第二二进制比特流转换得到第i个子水印。
由于第二二进制比特流是第i个子水印经过二进制转换得到的,在得到第二二进制比特流之后需要进行逆运算。
步骤503,将提取到的各个子水印合并成数字水印。
业务服务器130根据数据库服务器140中存储的数字水印的相关信息,将从各个载体中提取的子水印按照预定顺序组合成完整的数字水印。
步骤504,根据存储的数字水印的相关信息对提取的数字水印进行验证。
数字水印的相关信息至少包括数字水印与目标文件的对应关系、数字水印的生成规则、数字水印的拆分规则、数字水印的嵌入规则。
可选的,在对提取的数字水印进行验证时,有以下两种方式:
s1,根据存储的数字水印与目标文件的对应关系,查找与获取的目标文件对应的存储的数字水印,验证存储的数字水印与提取的数字水印是否相同。
以订单文件为例,在数字水印嵌入过程中,将数字水印与订单号对应存储,则业务服务器130在对数字水印进行验证时,根据订单号到数据库服务器140中查找对应的数字水印,然后比较提取的数字水印与存储的数字水印是否相同。
s2,获取存储的数字水印的生成规则,根据获取的目标文件生成对应的数字水印,验证生成的数字水印与提取的数字水印是否相同。
对于MD5算法,仍以订单文件为例,业务服务器130根据订单文件的订单号以及存储的随机数或GUID经过MD5算法生成一段字符串,将这段字符串作为生成的数字水印,与提取到的数字水印进行比对,确认是否相同。
当提取的数字水印与存储的数字水印相同时,或当提取的数字水印与生成的数字水印相同时,表明目标文件没有被篡改过。
当提取的数字水印与存储的数字水印不同时,或当提取的数字水印与生成的数字水印不同时,表明目标文件被篡改过。
当目标文件为订单文件,订单文件包含源文件和签名图像时,本实施例提供的数字水印提取算法还表示为图13所示的流程图。如图13所示,首先执行510,读取订单文件;然后执行520,从订单的源文件中提取出第一水印,同时执行530,从签名图像中提取出第二水印;继续执行540,将第一水印和第二水印拼接成数字水印;最后执行550,将拼接得到的数字水印与数据库中存储的数字水印比对,判断订单文件是否被篡改。
综上所述,本发明实施例提供的数字水印提取方法,通过从组合文件的各个载体中分别提取出对应的子水印,然后将子水印合并成数字水印进行验证,可以检测出组合文件是否被篡改,或者可以检测出组合文件的一部分是否被篡改;解决了现有技术中需要对各个载体中的数字水印分别进行验证,不能保证组合文件的完整性的问题;由于各个子水印之间是关联的,只需要对最后组合得到的数字水印进行验证,就能快速确定出组合文件或组合文件的一部分是否被篡改,从而保证了组合文件的完整性,并且减少了对组合文件中的数字水印进行验证时的计算量和交互操作。
通过步骤502a至步骤502f中从图像中提取子水印的方法,可以将嵌入在图像中的数字水印的一部分提取出来,并且还可以根据水印嵌入算法的逆算法将目标图像恢复为嵌入子水印之前的图像,既保护了图像在文件的传递过程中不被窃取,同时还可以将目标图像恢复为原来的图像,避免了图像失真。
通过步骤502g至步骤502k中从PDF文档中提取子水印的方法,可以将嵌入在PDF中的数字水印的一部分提取出来。另外,由于子水印嵌入在PDF文档的交叉引用表的最后一个交叉引用节中,当PDF文档被修改过,则最后一个交叉引用节中提取不到子水印,从而快速确定该PDF文档被篡改过。
通过步骤504中对提取到的数字水印进行验证,可以确定出提取到的数字水印与存储的数字水印是否相同,从而确定出目标文件是否被篡改过,保证了目标文件的有效性,另外,通过根据存储的数字水印的生成规则,根据目标文件中不易被更改的标识信息生成数字水印,然后将提取的数字水印与生成的数字水印进行比对,也能确定出目标文件是否被篡改过。
结合上述实施例,以订单文件为例,用于对订单文件的进行处理的系统如图14所示,图14是本发明一个实施例提供的用于处理订单文件的系统结构示意图。如图14所示,在数字水印嵌入过程中,应用程序10将请求发送给数字水印生成模块20,数字水印生成模块20生成数字水印之后,将数字水印发送给数字水印嵌入模块30,数字水印嵌入模块30包括源文件水印嵌入模块31和签名图像水印嵌入模块32,数字水印嵌入模块30将对数据库的操作请求发送到数据库请求队列40,数据库处理模块50为数据库请求队列40中的请求创建对应的任务51,任务51是对数据库60进行写操作;在数字水印提取过程中,应用程序10将请求发送给数字水印提取模块70,数字水印提取模块70包括源文件水印提取模块71和签名图像水印提取模块72,数字水印提取模块70在提取到数字水印之后,将提取到的数字水印发送给数字水印验证模块80,数字水印验证模块80将对数据库的操作请求发送到数据库请求队列40,数据库处理模块50为数据库请求队列40中的请求创建对应的任务51,任务51是对数据库60进行读操作。
图15是本发明一个实施例提供的数字水印嵌入装置的结构方框图,该数字水印嵌入装置600以应用在图1所示的业务服务器130中进行举例说明。如图15所示,该数字水印嵌入装置600可以包括:获取模块610、拆分模块620、嵌入模块630和合成模块640。
获取模块610,用于实现上述步骤201、步骤301以及其他任意隐含或公开的与获取相关的功能。
拆分模块620,用于实现上述步骤202、步骤302以及其他任意隐含或公开的与拆分相关的功能。
嵌入模块630,用于实现上述步骤203以及其他任意隐含或公开的与嵌入相关的功能。
合成模块640,用于实现上述步骤204、步骤305以及其他任意隐含或公开的与合成相关的功能。
可选的,嵌入模块630包括:确定单元和嵌入单元。
确定单元,用于实现上述步骤303以及其他任意隐含或公开的与确定相关的功能。
嵌入单元,用于实现上述步骤304、步骤304a、步骤304b、步骤304c、步骤304d、步骤304e、步骤304f、步骤304g、步骤S1、步骤S2、步骤S3、步骤S4、步骤S5以及其他任意隐含或公开的与嵌入相关的功能。
可选的,该数字水印嵌入装置600还包括:存储模块。
存储模块,用于实现上述步骤306以及其他任意隐含或公开的与存储相关的功能。
综上所述,本发明实施例提供的数字水印嵌入装置,通过根据组合文件的载体数,将数字水印拆分为与载体数相等的若干个子水印,然后将第i个子水印嵌入组合文件的第i个载体中,得到第i个目标载体,在子水印全部嵌入完毕后,将各个目标载体合成目标文件;对于包含至少两个载体的组合文件,在每个载体上分别嵌入数字水印的一部分,使得组合文件的各个载体均受到保护,由于只需要生成一个数字水印,各个载体中嵌入的子水印是关联的,从而对组合文件的各个载体均能进行保护,并且保证了组合文件的完整性,减少了数字水印嵌入过程中的计算量和交互操作。
需要说明的是:上述实施例中提供的数字水印嵌入装置在嵌入数字水印时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将业务服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数字水印嵌入装置与数字水印嵌入方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图16是本发明一个实施例提供的数字水印提取装置的结构方框图,该数字水印提取装置700以应用在图1所示的业务服务器130中进行举例说明。如图16所示,该数字水印提取装置700可以包括:提取模块710、合并模块720和验证模块730。
提取模块710,用于实现上述步骤401以及其他任意隐含或公开的与提取相关的功能。
合并模块720,用于实现上述步骤402、步骤503以及其他任意隐含或公开的与合并相关的功能。
验证模块730,用于实现上述步骤403、步骤504以及其他任意隐含或公开的与验证相关的功能。
可选的,提取模块710,包括:确定单元和提取单元。
确定单元,用于实现上述步骤501以及其他任意隐含或公开的与确定相关的功能。
提取单元,用于实现上述步骤502、步骤502a、步骤502b、步骤502c、步骤502d、步骤502e、步骤502f、步骤502g、步骤502h、步骤502i、步骤502j、步骤502k、步骤S6、步骤S7、步骤S8、步骤S9以及其他任意隐含或公开的与提取相关的功能。
可选的,验证模块730,包括:第一验证单元和第二验证单元。
第一验证单元,用于实现上述步骤s1以及其他任意隐含或公开的与验证相关的功能。
第二验证单元,用于实现上述步骤s2以及其他任意隐含或公开的与验证相关的功能。
综上所述,本发明实施例提供的数字水印提取装置,通过从组合文件的各个载体中分别提取出对应的子水印,然后将子水印合并成数字水印进行验证,可以检测出组合文件是否被篡改,或者可以检测出组合文件的一部分是否被篡改;解决了现有技术中需要对各个载体中的数字水印分别进行验证,不能保证组合文件的完整性的问题;由于各个子水印之间是关联的,只需要对最后组合得到的数字水印进行验证,就能快速确定出组合文件或组合文件的一部分是否被篡改,从而保证了组合文件的完整性,并且减少了对组合文件中的数字水印进行验证时的计算量和交互操作。
需要说明的是:上述实施例中提供的数字水印提取装置在提取数字水印时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将业务服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数字水印提取装置与数字水印提取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图17是本发明一个实施例提供的数字水印系统的结构方框图,如图17所示,数字水印系统90包括数字水印嵌入装置600和数字水印提取装置700。
数字水印嵌入装置600包括如图15所示的结构,数字水印提取装置700包括如图16所示的结构。
请参见图18所示,其示出了本发明部分实施例中提供的终端的结构方框图。该终端800用于实施上述实施例提供的数字水印嵌入方法和数字水印提取方法。本发明中的终端800可以包括一个或多个如下组成部分:用于执行计算机程序指令以完成各种流程和方法的处理器,用于信息和存储程序指令随机接入存储器(英文:random access memory,简称:RAM)和只读存储器(英文:read-only memory,简称:ROM),用于存储数据和信息的存储器,I/O设备,界面,天线等。具体来讲:
终端800可以包括射频(英文:Radio Frequency,简称:RF)电路810、存储器820、输入单元830、显示单元840、传感器850、音频电路860、无线保真(英文:wireless fidelity,简称:WiFi)模块870、处理器880、电源882、摄像头890等部件。本领域技术人员可以理解,图18中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图18对终端800的各个构成部件进行具体的介绍:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器880处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文:Low NoiseAmplifier,简称:LNA)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文:Global System of Mobile communication,简称:GSM)、通用分组无线服务(英文:General Packet Radio Service,简称:GPRS)、码分多址(英文:Code Division MultipleAccess,简称:CDMA)、宽带码分多址(英文:Wideband Code Division Multiple Access,简称:WCDMA)、长期演进(英文:Long Term Evolution,简称:LTE)、电子邮件、短消息服务(英文:Short Messaging Service,简称:SMS)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行终端800的各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元830可用于接收输入的数字或字符信息,以及产生与终端800的用户设置以及功能控制有关的键信号输入。具体地,输入单元830可包括触控面板831以及其他输入设备832。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种菜单。显示单元840可包括显示面板841,可选的,可以采用液晶显示器(英文:LiquidCrystal Display,简称:LCD)、有机发光二极管(英文:Organic Light-Emitting Diode,简称:OLED)等形式来配置显示面板841。进一步的,触控面板831可覆盖显示面板841,当触控面板831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图18中,触控面板831与显示面板841是作为两个独立的部件来实现终端800的输入和输入功能,但是在某些实施例中,可以将触控面板831与显示面板841集成而实现终端800的输入和输出功能。
终端800还可包括至少一种传感器850,比如陀螺仪传感器、磁感应传感器、光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与终端800之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一终端,或者将音频数据输出至存储器820以便进一步处理。
WiFi属于短距离无线传输技术,终端800通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图18示出了WiFi模块870,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变公开的本质的范围内而省略。
处理器880是终端800的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行终端800的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器880可包括一个或多个处理单元;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
终端800还包括给各个部件供电的电源882(比如电池),优选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
摄像头890一般由镜头、图像传感器、接口、数字信号处理器、CPU、显示屏幕等组成。其中,镜头固定在图像传感器的上方,可以通过手动调节镜头来改变聚焦;图像传感器相当于传统相机的“胶卷”,是摄像头采集图像的心脏;接口用于把摄像头利用排线、板对板连接器、弹簧式连接方式与电子设备主板连接,将采集的图像发送给所述存储器820;数字信号处理器通过数学运算对采集的图像进行处理,将采集的模拟图像转换为数字图像并通过接口发送给存储器820。
尽管未示出,终端800还可以包括蓝牙模块等,在此不再赘述。
图19是本发明一个实施例提供的服务器的结构示意图。该服务器可以是图1所示的网站服务器120、业务服务器130、数据库服务器140、文件服务器150。具体来讲:服务器900包括中央处理单元(英文:Central Processing Unit,简称:CPU)901、包括随机存取存储器(RAM)902和只读存储器(ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。
所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入/输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(英文:erasable programmable read-only memory,简称:EPROM)、电可擦除可编程只读存储器(英文:electrically erasable programmableread-only memory,简称:EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。
根据本发明的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行上述数字水印嵌入方法和/或数字水印提取方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种数字水印嵌入方法,其特征在于,所述方法包括:
获取组合文件的数字水印,所述组合文件至少包括两个载体;
根据所述组合文件的载体数N,将所述数字水印拆分为N个子水印,每个所述子水印对应所述数字水印的部分内容,N为正整数,N>1;
将第i个所述子水印嵌入所述组合文件的第i个所述载体,得到第i个目标载体,i为正整数,1≤i≤N;
将N个所述目标载体合成目标文件。
2.根据权利要求1所述的方法,其特征在于,所述将第i个所述子水印嵌入所述组合文件的第i个所述载体,包括:
根据第i个所述载体的格式,确定与第i个所述载体的格式对应的水印嵌入算法;
按照与所述第i个所述载体的格式对应的所述水印嵌入算法,将第i个所述子水印嵌入所述组合文件的第i个所述载体。
3.根据权利要求2所述的方法,其特征在于,所述载体为图像;
所述按照与所述第i个所述载体的格式对应的所述水印嵌入算法,将第i个所述子水印嵌入所述组合文件的第i个所述载体,包括:
将第i个所述子水印转换为第一二进制比特流,所述第一二进制比特流的位数为n,n为正整数,所述第一二进制比特流中的第j位数据为数据Sj,数据Sj的取值为0或1,j为正整数,1≤j≤n;
按照预定划分顺序,将所述图像中的像素点依次划分为各组像素点对,每组所述像素点对包含相邻的两个像素点的灰度值;
随机确定出第i个所述子水印的嵌入位置k,k为正整数;
以第k组所述像素点对为起点,将所述第一二进制比特流中的数据Sj嵌入第k+j-1组所述像素点对。
4.根据权利要求3所述的方法,其特征在于,每组所述像素点对中的前一个像素点的灰度值为第一灰度值,每组所述像素点对中的后一个像素点的灰度值为第二灰度值;
所述以第k组所述像素点对为起点,将所述第一二进制比特流中的数据Sj嵌入第k+j-1组所述像素点对,包括:
计算第k+j-1组所述像素点对的第一灰度值和第二灰度值的均值和差值;
将所述差值乘以2,加上所述第一二进制比特流的数据Sj,得到目标差值;
根据所述均值和所述目标差值计算第k+j-1组所述像素点对的第一目标灰度值和第二目标灰度值,得到第k+j-1组目标像素点对。
5.根据权利要求2所述的方法,其特征在于,所述载体为PDF文档;
所述按照与所述第i个所述载体的格式对应的所述水印嵌入算法,将第i个所述子水印嵌入所述组合文件的第i个所述载体,包括:
读取所述PDF文档;
查找所述PDF文档的交叉引用表,从所述交叉引用表中查找到最后一个交叉引用节;
将第i个所述子水印依次嵌入最后一个所述交叉引用节中的空白符,每个所述空白符嵌入第i个所述子水印中的一位数据。
6.根据权利要求1至5任一所述的方法,其特征在于,所述将N个所述目标载体合成目标文件之后,还包括:
将所述数字水印的相关信息进行存储,所述数字水印的相关信息至少包括所述数字水印与所述组合文件的对应关系、所述数字水印的生成规则、所述数字水印的拆分规则、所述数字水印的嵌入规则。
7.一种数字水印提取方法,其特征在于,所述方法包括:
在获取到目标文件后,从所述目标文件包括的各个载体中分别提取出对应的子水印;
将提取到的各个所述子水印合并成数字水印;
对所述数字水印进行验证;
其中,所述目标文件至少包括两个载体,所述数字水印是所述目标文件中嵌入的隐式标识,所述子水印是对应的载体中嵌入的隐式标识,每个所述子水印对应所述数字水印的部分内容。
8.根据权利要求7所述的方法,其特征在于,所述目标文件包括N个载体,N为正整数,N>1;
所述从所述目标文件包括的各个载体中分别提取出对应的子水印,包括:
根据第i个所述载体的格式,确定与第i个所述载体的格式对应的水印嵌入算法的逆算法;
按照与第i个所述载体的格式对应的所述水印嵌入算法的逆算法,从第i个所述载体中提取出第i个子水印,i为正整数,1≤i≤N。
9.根据权利要求8所述的方法,其特征在于,所述载体为图像;
所述按照与第i个所述载体的格式对应的所述水印嵌入算法的逆算法,从第i个所述载体中提取出第i个子水印,包括:
按照预定划分顺序,将所述目标文件中的目标图像依次划分为各组像素点对,每组所述像素点对包含相邻的两个像素点的灰度值;
获取第i个子水印的嵌入位置k和第一二进制比特流的位数n,所述第一二进制比特流是根据第i个所述子水印转换得到的,所述嵌入位置k是随机确定的,k为正整数,n为正整数;
根据所述嵌入位置k和所述第一二进制比特流的位数n,将第k组像素点对至第k+n-1组像素点对分别确定为第1组目标像素点对至第n组目标像素点对;
根据第j组所述目标像素点对,确定对应的数据Sj,所述数据Sj是所述第一二进制比特流中的第j位数据,j为正整数,1≤j≤n;
将确定出的各个数据Sj按照顺序组成所述第一二进制比特流;
将所述第一二进制比特流转换得到第i个所述子水印。
10.根据权利要求9所述的方法,其特征在于,每组所述目标像素点对中的前一个像素点的灰度值为第一目标灰度值,每组所述目标像素点对中的后一个像素点的灰度值为第二目标灰度值;
所述根据第j组所述目标像素点对,确定对应的数据Sj,包括:
计算第j组所述目标像素点对的第一目标灰度值和第二目标灰度值的差值;
将所述差值的二进制表示的最低一位数据确定为对应的所述数据Sj。
11.根据权利要求8所述的方法,其特征在于,所述载体为PDF文档;
所述按照与第i个所述载体的格式对应的所述水印嵌入算法的逆算法,从第i个所述载体中提取出第i个子水印,包括:
读取所述目标文件的目标PDF文档;
查找所述目标PDF文档的交叉引用表,从所述交叉引用表中查找最后一个交叉引用节;
获取第i个所述子水印的位数n,n为正整数;
从最后一个所述交叉引用节中的第1个空白符位置至第n个空白符位置中,依次读取与各个所述空白符位置对应的数据;
将与各个所述空白符位置对应的数据组合成第i个所述子水印。
12.根据权利要求7至11任一所述的方法,其特征在于,所述对所述数字水印进行验证,包括:
根据存储的数字水印的相关信息对提取的所述数字水印进行验证。
13.一种数字水印嵌入装置,其特征在于,所述装置包括:
获取模块,用于获取组合文件的数字水印,所述组合文件至少包括两个载体;
拆分模块,用于根据所述获取模块获取的所述组合文件的载体数N,将所述数字水印拆分为N个子水印,每个所述子水印对应所述数字水印的部分内容,N为正整数,N>1;
嵌入模块,用于将所述拆分模块拆分的第i个所述子水印嵌入所述组合文件的第i个所述载体,得到第i个目标载体,i为正整数,1≤i≤N;
合成模块,用于将N个所述目标载体合成目标文件。
14.一种数字水印提取装置,其特征在于,所述装置包括:
提取模块,用于在获取到目标文件后,从所述目标文件包括的各个载体中分别提取出对应的子水印;
合并模块,用于将所述提取模块提取到的各个所述子水印合并成数字水印;
验证模块,用于对所述合并模块得到的所述数字水印进行验证;
其中,所述目标文件至少包括两个载体,所述数字水印是所述目标文件中嵌入的隐式标识,所述子水印是对应的载体中嵌入的隐式标识,每个所述子水印对应所述数字水印的部分内容。
15.一种数字水印系统,其特征在于,所述数字水印系统包括:数字水印嵌入装置和数字水印提取装置;
所述数字水印嵌入装置包括如权利要求13所述的装置;
所述数字水印提取装置包括如权利要求14所述的装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710196907.3A CN108665403B (zh) | 2017-03-29 | 2017-03-29 | 数字水印嵌入方法、提取方法、装置及数字水印系统 |
PCT/CN2018/080148 WO2018177201A1 (zh) | 2017-03-29 | 2018-03-23 | 数字水印嵌入方法、提取方法、装置及数字水印系统 |
US16/377,565 US10977761B2 (en) | 2017-03-29 | 2019-04-08 | Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710196907.3A CN108665403B (zh) | 2017-03-29 | 2017-03-29 | 数字水印嵌入方法、提取方法、装置及数字水印系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108665403A true CN108665403A (zh) | 2018-10-16 |
CN108665403B CN108665403B (zh) | 2022-06-24 |
Family
ID=63675188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710196907.3A Active CN108665403B (zh) | 2017-03-29 | 2017-03-29 | 数字水印嵌入方法、提取方法、装置及数字水印系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10977761B2 (zh) |
CN (1) | CN108665403B (zh) |
WO (1) | WO2018177201A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474418A (zh) * | 2019-01-22 | 2019-03-15 | 网易(杭州)网络有限公司 | 文档加密方法、文档解密方法、装置、介质和计算设备 |
CN109522684A (zh) * | 2018-11-27 | 2019-03-26 | 中国联合网络通信集团有限公司 | 数据处理方法、设备及存储介质 |
CN109784006A (zh) * | 2019-01-04 | 2019-05-21 | 平安科技(深圳)有限公司 | 水印嵌入和提取方法及终端设备 |
CN111247785A (zh) * | 2018-11-30 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种拍摄图像处理方法及相关设备 |
CN111836054A (zh) * | 2020-07-24 | 2020-10-27 | 上海连尚网络科技有限公司 | 视频防盗版方法、电子设备及计算机可读存储介质 |
CN111932432A (zh) * | 2020-10-14 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 盲水印的植入方法、检测方法、装置、设备及存储介质 |
US10977761B2 (en) | 2017-03-29 | 2021-04-13 | Tencent Technology (Shenzhen) Company Limited | Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system |
CN112948895A (zh) * | 2019-12-10 | 2021-06-11 | 航天信息股份有限公司 | 数据的水印嵌入方法、水印溯源方法及装置 |
CN113032742A (zh) * | 2021-01-26 | 2021-06-25 | 北京安华金和科技有限公司 | 数据脱敏方法和装置、存储介质及电子装置 |
CN113190806A (zh) * | 2021-04-25 | 2021-07-30 | 北京丁牛科技有限公司 | 数据处理方法 |
CN113221194A (zh) * | 2021-06-07 | 2021-08-06 | 云尖(北京)软件有限公司 | 篡改网页混合检测技术 |
WO2021169502A1 (en) * | 2020-02-27 | 2021-09-02 | Changsha Pixel Code Technology Co. Ltd | A pixel image as well as its processing method and application system |
CN113434710A (zh) * | 2021-06-29 | 2021-09-24 | 平安普惠企业管理有限公司 | 文档检索方法、装置、服务器以及存储介质 |
CN114186252A (zh) * | 2021-12-06 | 2022-03-15 | 上海观安信息技术股份有限公司 | 数据水印生成方法及装置、数据溯源方法及装置 |
CN114913050A (zh) * | 2022-05-30 | 2022-08-16 | 南京数睿数据科技有限公司 | 水印嵌入方法、装置、电子设备和计算机可读介质 |
CN115883923A (zh) * | 2023-02-21 | 2023-03-31 | 北京瑞博星航科技有限公司 | 基于时间贯序光谱指纹的终端播放状态监测系统和方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210203994A1 (en) * | 2015-06-12 | 2021-07-01 | Shaoher Pan | Encoding data in a source image with watermark image codes |
CN111435384B (zh) * | 2019-01-14 | 2022-08-19 | 阿里巴巴集团控股有限公司 | 数据安全处理和数据溯源方法、装置及设备 |
CN112750065B (zh) * | 2019-10-31 | 2022-12-09 | 阿里巴巴(中国)网络技术有限公司 | 载体对象处理和水印嵌入方法、装置及电子设备 |
CN112927119B (zh) * | 2019-12-06 | 2024-02-09 | 富士施乐实业发展(中国)有限公司 | TrueType字库的防盗信息嵌入方法及使用方法 |
CN112581549B (zh) * | 2020-12-16 | 2023-08-01 | 合肥图溯信息技术有限公司 | 图片溯源方法、存储介质、电子设备和主机设备 |
CN115329293B (zh) * | 2022-10-11 | 2023-02-03 | 新泰市中医医院 | 一种智能中医康复管理系统的数据安全存储方法 |
CN117056877A (zh) * | 2023-07-18 | 2023-11-14 | 深圳有方信息技术有限公司 | 电子文档脱密后防篡改处理方法、终端设备及存储介质 |
CN117057969B (zh) * | 2023-08-28 | 2024-04-19 | 天津大学 | 跨模态图像-水印联合生成与检测装置及方法 |
CN117034220B (zh) * | 2023-10-10 | 2024-01-05 | 北京安华金和科技有限公司 | 一种数字水印处理方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000151984A (ja) * | 1998-11-18 | 2000-05-30 | Sony Corp | 付随情報付加装置および方法、付随情報検出装置および方法、ならびに不正利用防止システム |
CN1658235A (zh) * | 2004-02-17 | 2005-08-24 | 株式会社东芝 | 用于嵌入和检测图像中数字水印的装置和方法 |
CN102122385A (zh) * | 2011-02-28 | 2011-07-13 | 北京工业大学 | 一种能同时抵抗多种攻击的数字水印方法 |
CN102270336A (zh) * | 2011-07-06 | 2011-12-07 | 北京航空航天大学 | 一种基于多块依赖结构的安全脆弱水印方法 |
CN102402780A (zh) * | 2011-12-05 | 2012-04-04 | 昆明理工大学 | 一种bmp图像的数字水印处理的方法 |
CN102855425A (zh) * | 2012-08-13 | 2013-01-02 | 贵州大学 | 基于门限数字签章的电子证据保全方法 |
CN104850765A (zh) * | 2014-02-19 | 2015-08-19 | 中国移动通信集团福建有限公司 | 一种水印处理方法、装置及系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7913087B2 (en) * | 1996-07-02 | 2011-03-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digital data |
US7107451B2 (en) * | 1996-07-02 | 2006-09-12 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digital data |
US5915027A (en) * | 1996-11-05 | 1999-06-22 | Nec Research Institute | Digital watermarking |
US6594373B1 (en) * | 2000-07-19 | 2003-07-15 | Digimarc Corporation | Multi-carrier watermarks using carrier signals modulated with auxiliary messages |
US6965683B2 (en) * | 2000-12-21 | 2005-11-15 | Digimarc Corporation | Routing networks for use with watermark systems |
US6891958B2 (en) * | 2001-02-27 | 2005-05-10 | Microsoft Corporation | Asymmetric spread-spectrum watermarking systems and methods of use |
WO2004066206A1 (en) * | 2003-01-23 | 2004-08-05 | Koninklijke Philips Electronics N.V. | Embedding multiple watermarks |
CN101401429B (zh) * | 2006-03-07 | 2012-06-27 | 日本电信电话株式会社 | 电子水印嵌入方法、装置以及电子水印检测方法、装置 |
RU2427905C2 (ru) * | 2006-04-25 | 2011-08-27 | Конинклейке Филипс Электроникс Н.В. | Возобновляемый водяной знак для аудиовизуальной информации |
JP5015540B2 (ja) * | 2006-09-28 | 2012-08-29 | 富士通株式会社 | 電子透かし埋め込み装置および検出装置 |
US8509474B1 (en) * | 2009-12-11 | 2013-08-13 | Digimarc Corporation | Digital watermarking methods, apparatus and systems |
US8611531B2 (en) * | 2010-04-23 | 2013-12-17 | The Directv Group, Inc. | Method and apparatus for remotely inserting watermark into encrypted compressed video bitstream |
CN102340669A (zh) * | 2011-09-13 | 2012-02-01 | 海南大学 | 一种基于三维小波和余弦变换在视频中嵌入大水印的方法 |
CN103237271B (zh) * | 2013-04-02 | 2016-04-06 | 北京中视广信科技有限公司 | 大容量视频数字水印的嵌入和检测方法及其系统 |
CN108665403B (zh) | 2017-03-29 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 数字水印嵌入方法、提取方法、装置及数字水印系统 |
-
2017
- 2017-03-29 CN CN201710196907.3A patent/CN108665403B/zh active Active
-
2018
- 2018-03-23 WO PCT/CN2018/080148 patent/WO2018177201A1/zh active Application Filing
-
2019
- 2019-04-08 US US16/377,565 patent/US10977761B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000151984A (ja) * | 1998-11-18 | 2000-05-30 | Sony Corp | 付随情報付加装置および方法、付随情報検出装置および方法、ならびに不正利用防止システム |
CN1658235A (zh) * | 2004-02-17 | 2005-08-24 | 株式会社东芝 | 用于嵌入和检测图像中数字水印的装置和方法 |
CN102122385A (zh) * | 2011-02-28 | 2011-07-13 | 北京工业大学 | 一种能同时抵抗多种攻击的数字水印方法 |
CN102270336A (zh) * | 2011-07-06 | 2011-12-07 | 北京航空航天大学 | 一种基于多块依赖结构的安全脆弱水印方法 |
CN102402780A (zh) * | 2011-12-05 | 2012-04-04 | 昆明理工大学 | 一种bmp图像的数字水印处理的方法 |
CN102855425A (zh) * | 2012-08-13 | 2013-01-02 | 贵州大学 | 基于门限数字签章的电子证据保全方法 |
CN104850765A (zh) * | 2014-02-19 | 2015-08-19 | 中国移动通信集团福建有限公司 | 一种水印处理方法、装置及系统 |
Non-Patent Citations (3)
Title |
---|
AQIANIYANQE: "数字内容安全原理与应用复习资料", 《HTTPS://WWW.DOCIN.COM/P-1800645489.HTML》 * |
CHE SHENGBING 等: "Software Watermark Research Based", 《2010 5TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION》 * |
钟征燕 等: "基于PDF文档结构的数字水印算法", 《计算机应用》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977761B2 (en) | 2017-03-29 | 2021-04-13 | Tencent Technology (Shenzhen) Company Limited | Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system |
CN109522684A (zh) * | 2018-11-27 | 2019-03-26 | 中国联合网络通信集团有限公司 | 数据处理方法、设备及存储介质 |
CN109522684B (zh) * | 2018-11-27 | 2020-07-28 | 中国联合网络通信集团有限公司 | 数据处理方法、设备及存储介质 |
CN111247785A (zh) * | 2018-11-30 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种拍摄图像处理方法及相关设备 |
CN109784006A (zh) * | 2019-01-04 | 2019-05-21 | 平安科技(深圳)有限公司 | 水印嵌入和提取方法及终端设备 |
CN109474418A (zh) * | 2019-01-22 | 2019-03-15 | 网易(杭州)网络有限公司 | 文档加密方法、文档解密方法、装置、介质和计算设备 |
CN112948895A (zh) * | 2019-12-10 | 2021-06-11 | 航天信息股份有限公司 | 数据的水印嵌入方法、水印溯源方法及装置 |
WO2021169502A1 (en) * | 2020-02-27 | 2021-09-02 | Changsha Pixel Code Technology Co. Ltd | A pixel image as well as its processing method and application system |
CN111836054A (zh) * | 2020-07-24 | 2020-10-27 | 上海连尚网络科技有限公司 | 视频防盗版方法、电子设备及计算机可读存储介质 |
CN111932432A (zh) * | 2020-10-14 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 盲水印的植入方法、检测方法、装置、设备及存储介质 |
CN111932432B (zh) * | 2020-10-14 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 盲水印的植入方法、检测方法、装置、设备及存储介质 |
CN113032742A (zh) * | 2021-01-26 | 2021-06-25 | 北京安华金和科技有限公司 | 数据脱敏方法和装置、存储介质及电子装置 |
CN113032742B (zh) * | 2021-01-26 | 2022-02-22 | 北京安华金和科技有限公司 | 数据脱敏方法和装置、存储介质及电子装置 |
CN113190806A (zh) * | 2021-04-25 | 2021-07-30 | 北京丁牛科技有限公司 | 数据处理方法 |
CN113221194A (zh) * | 2021-06-07 | 2021-08-06 | 云尖(北京)软件有限公司 | 篡改网页混合检测技术 |
CN113221194B (zh) * | 2021-06-07 | 2024-03-08 | 云尖(北京)软件有限公司 | 篡改网页混合检测技术 |
CN113434710A (zh) * | 2021-06-29 | 2021-09-24 | 平安普惠企业管理有限公司 | 文档检索方法、装置、服务器以及存储介质 |
CN114186252A (zh) * | 2021-12-06 | 2022-03-15 | 上海观安信息技术股份有限公司 | 数据水印生成方法及装置、数据溯源方法及装置 |
CN114913050A (zh) * | 2022-05-30 | 2022-08-16 | 南京数睿数据科技有限公司 | 水印嵌入方法、装置、电子设备和计算机可读介质 |
CN114913050B (zh) * | 2022-05-30 | 2023-09-12 | 南京数睿数据科技有限公司 | 水印嵌入方法、装置、电子设备和计算机可读介质 |
CN115883923A (zh) * | 2023-02-21 | 2023-03-31 | 北京瑞博星航科技有限公司 | 基于时间贯序光谱指纹的终端播放状态监测系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US10977761B2 (en) | 2021-04-13 |
WO2018177201A1 (zh) | 2018-10-04 |
US20190236747A1 (en) | 2019-08-01 |
CN108665403B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108665403A (zh) | 数字水印嵌入方法、提取方法、装置及数字水印系统 | |
WO2021114918A1 (zh) | 完整性校验方法、装置、终端设备及验证服务器 | |
CN111601115B (zh) | 一种视频检测的方法、相关装置、设备及存储介质 | |
CN106575290A (zh) | 在基于表单的视图中呈现电子表格的数据集 | |
CN109445894A (zh) | 一种截图方法及电子设备 | |
CN104618415A (zh) | 信用账户创建方法、装置及系统 | |
CN107766747A (zh) | 校验应用程序安装包完整性的方法、移动终端及服务器 | |
CN112035897A (zh) | 区块链存证方法和相关装置 | |
CN108089977A (zh) | 一种应用程序的异常处理方法、装置及移动终端 | |
CN107391587A (zh) | 链接分享及访问方法、服务器、终端及计算机存储介质 | |
CN111209377B (zh) | 基于深度学习的文本处理方法、装置、设备及介质 | |
CN109257336A (zh) | 一种基于区块链的密码信息处理方法、终端设备 | |
CN107786569A (zh) | 一种验证码发送方法、接收方法及相关设备 | |
CN108170723A (zh) | 一种网页资源获取方法、终端设备、服务器及系统 | |
CN110825863A (zh) | 一种文本对融合方法及装置 | |
CN107766505A (zh) | 一种文件管理方法及终端 | |
CN110634095A (zh) | 水印添加方法、水印识别方法、装置和电子设备 | |
CN107995151A (zh) | 登录验证方法、装置及系统 | |
CN111460180B (zh) | 信息显示方法、装置、电子设备及存储介质 | |
KR20220034787A (ko) | 연성 워터마킹을 통한 미디어 출처 인증 | |
CN105354506B (zh) | 隐藏文件的方法和装置 | |
CN110166461A (zh) | 用户统一标识处理方法、装置、设备及存储介质 | |
CN111192027B (zh) | 榜单处理方法、装置及计算机可读存储介质 | |
CN114143042A (zh) | 漏洞模拟方法、装置、计算机设备和存储介质 | |
CN109544170B (zh) | 一种交易快照验证方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |