CN113505348B - 一种数据的水印嵌入方法、验证方法及装置 - Google Patents
一种数据的水印嵌入方法、验证方法及装置 Download PDFInfo
- Publication number
- CN113505348B CN113505348B CN202110833283.8A CN202110833283A CN113505348B CN 113505348 B CN113505348 B CN 113505348B CN 202110833283 A CN202110833283 A CN 202110833283A CN 113505348 B CN113505348 B CN 113505348B
- Authority
- CN
- China
- Prior art keywords
- data
- watermark
- text content
- target text
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000013524 data verification Methods 0.000 claims abstract description 3
- 238000012795 verification Methods 0.000 claims description 89
- 238000013507 mapping Methods 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims 2
- 230000006870 function Effects 0.000 description 46
- 230000008569 process Effects 0.000 description 39
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供了一种数据的水印嵌入方法、验证方法及装置,其中,所述水印嵌入方法包括:确定来自数据发布者的目标文本内容;将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥;将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;根据所述目标位置,嵌入所述水印信息。用于提高数据的水印验证的可靠性。
Description
技术领域
本发明涉及数据安全技术领域,特别涉及一种数据的水印嵌入方法、验证方法及装置。
背景技术
近年来,信息技术和计算机技术快速发展,所有的信息都网络化,用户的数据往往存储于数据库中,通过网络相互共享。但随之出现了数据丢失、拷贝窃取、泄露等一系列的问题,使得版权得不到很好的保护,甚至造成了数据原始拥有者的利益损失,隐私泄露等危害。为此可以在数据中嵌入代表所有权的水印信息,防止有价值的数据被非法盗用,实现版权保护。
如何嵌入数据水印并保证验证的可靠性成为急需解决的技术问题。
发明内容
本发明实施例提供了一种数据的水印嵌入方法、验证方法及装置,用于提高数据的水印验证的可靠性。
第一方面,本发明实施例提供了一种数据的水印嵌入方法,包括:
确定来自数据发布者的目标文本内容;
将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥;
将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
根据所述目标位置,嵌入所述水印信息。
在其中一种可能的实现方式中,所述将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息,包括:
根据所述私钥和所述类公钥,获得水印验证信息,所述水印验证信息用于验证所述数据接收者所接收的所述目标文本内容来自所述数据发布者;
将所述水印验证信息和所述目标文本内容中的各数据利用哈希函数进行处理,获得所述水印信息。
在其中一种可能的实现方式中,所述根据所述目标位置,嵌入所述水印信息,包括:
确定预先设置的水印嵌入判断位,其中,所述水印嵌入判断位用于表征数据损伤程度;
根据所述水印信息和所述水印嵌入判断位,确定嵌入数字;
确定与所述嵌入数字对应的比特位;
将所述水印嵌入判断位的比特位修改为所述嵌入数字所对应的比特位;其中,所述水印嵌入判断位的比特位为位于所述目标位置的候选字段的最后几位。
在其中一种可能的实现方式中,在所述根据所述水印信息和所述水印嵌入判断位,确定嵌入数字之后,所述方法还包括:
根据预先存储的嵌入数字与字符组合间的映射关系,确定所述嵌入数字对应的目标字符组合;
将所述目标字符组合嵌入到位于所述目标位置的候选字段的末尾,并设置所述目标字符组合不可见。
在其中一种可能的实现方式中,所述将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置,包括:
确定用于嵌入水印的候选属性以及所述候选属性所包括的属性个数;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中的目标位置。
第二方面,本发明实施例提供了一种数据的水印验证方法,包括:
确定数据发布者的私钥和数据接收者的类公钥;
根据所述私钥和所述类公钥,获得水印信息;
将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据。
在其中一种可能的实现方式中,所述将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,包括:
确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,其中,所述水印嵌入判断位用于表征数据损伤程度;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置;
确定所述水印嵌入判断位对应的目标比特位;其中,所述水印嵌入判断位为位于所述目标位置的候选字段的最后几位;
确定所述目标比特位对应的目标嵌入数字;
根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
在其中一种可能的实现方式中,在所述根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置之后,所述方法还包括:
确定所述候选属性中位于所述目标位置的候选字段的末尾的目标字符组合;
根据预先存储的嵌入数字与字符组合间的对应关系,确定所述目标字符组合对应的目标嵌入数字;
根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
在其中一种可能的实现方式中,若所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据,所述方法还包括:
确定所述数据接收者的公钥以及第一待验证中间值;
将所述第一待验证中间值利用哈希函数进行处理,获得第一哈希值;
根据所述私钥和所述类公钥,确定第二待验证中间值;
将所述第二待验证中间值利用哈希函数进行处理,得到第二哈希值;
若所述第一哈希值和所述第二哈希值相等,则将根据所述第一待验证中间值所确定的另一水印信息与所述目标文本内容中的所述待测水印信息进行比对,验证所述数据接收者所接收到的目标文本内容是否为所述数据发布者所发布的数据。
第三方面,本发明实施例还提供了一种数据的水印嵌入装置,包括:
第一确定单元,用于确定来自数据发布者的目标文本内容;
第二确定单元,将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
第三确定单元,用于确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥;
第一获得单元,用于将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
嵌入单元,用于根据所述目标位置,嵌入所述水印信息。
在其中一种可能的实现方式中,所述第一获得单元用于:
根据所述私钥和所述类公钥,获得水印验证信息,所述水印验证信息用于验证所述数据接收者所接收的所述目标文本内容来自所述数据发布者;
将所述水印验证信息和所述目标文本内容中的各数据利用哈希函数进行处理,获得所述水印信息。
在其中一种可能的实现方式中,所述嵌入单元用于:
确定预先设置的水印嵌入判断位,其中,所述水印嵌入判断位用于表征数据损伤程度;
根据所述水印信息和所述水印嵌入判断位,确定嵌入数字;
确定与所述嵌入数字对应的比特位;
将所述水印嵌入判断位的比特位修改为所述嵌入数字所对应的比特位;其中,所述水印嵌入判断位的比特位为位于所述目标位置的候选字段的最后几位。
在其中一种可能的实现方式中,在所述根据所述水印信息和所述水印嵌入判断位,确定嵌入数字之后,所述嵌入单元还用于:
根据预先存储的嵌入数字与字符组合间的映射关系,确定所述嵌入数字对应的目标字符组合;
将所述目标字符组合嵌入到位于所述目标位置的候选字段的末尾,并设置所述目标字符组合不可见。
在其中一种可能的实现方式中,所述第二确定单元用于:
确定所述目标文本内容的候选属性以及所述候选属性所包括的属性个数;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中的目标位置。
第四方面,本发明实施例还提供了一种数据的水印验证装置,包括:
第四确定单元,用于确定数据发布者的私钥和数据接收者的类公钥;
第二获得单元,用于根据所述私钥和所述类公钥,获得水印信息;
验证单元,用于将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据。
在其中一种可能的实现方式中,所述验证单元用于:
确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,其中,所述水印嵌入判断位用于表征数据损伤程度;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置;
确定所述水印嵌入判断位对应的目标比特位;其中,所述水印嵌入判断位为位于所述目标位置的候选字段的最后几位;
确定所述目标比特位对应的目标嵌入数字;
根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
第五方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面和/或第二方面所述的方法。
第六方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行如第一方面和/或第二方面所述的方法。
本发明的有益效果如下:
本发明实施例提供了一种数据的水印嵌入方法、验证方法及装置,将来自数据发布者的目标文本内容中各数据利用哈希函数进行处理,以此确定出目标文本内容中用于嵌入水印的目标位置,由此,在将数据发布者的私钥以及用于接收该目标文本内容的数据接收者的类公钥与该目标文本内容中的各数据利用哈希函数进行处理,获得水印信息之后,便可以根据该目标位置,将该水印信息嵌入该目标文本内容中。由于水印信息可以是基于数据发布者的私钥所得的信息,而私钥具有唯一性,这样的话,不同的数据发布者所生成水印信息将不同,如此一来,提高了数据的水印验证结果的可靠性。此外,由于水印信息还可以是基于数据接收者的类公钥所得的信息,这样的话,当验证水印时,如果数据接收者对验证结果产生异议,可以通过其类公钥来对水印信息进行验证,进一步提高了数据的水印验证结果的可靠性。而且,由于水印信息是根据数据发布者的私钥和数据接收者的类公钥所得的信息,从而可以对目标文本内容溯源到数据发布者和数据接收者,实现了水印溯源。
附图说明
图1为本发明实施例提供的一种数据的水印嵌入方法所适用的一种场景示意图;
图2为本发明实施例提供的一种数据的水印嵌入方法的其中一种方法流程图;
图3为本发明实施例提供的一种数据的水印嵌入方法中步骤S104的方法流程图;
图4为本发明实施例提供的一种数据的水印嵌入方法中步骤S105的第一种实现方式的方法流程图;
图5为本发明实施例提供的一种数据的水印嵌入方法中步骤S105的第二种实现方式的方法流程图;
图6为本发明实施例提供的一种数据的水印嵌入方法中步骤S102的方法流程图;
图7为本发明实施例提供的一种数据的水印验证方法的方法流程图;
图8为本发明实施例提供的一种数据的水印验证方法中步骤S603的方法流程图;
图9为本发明实施例提供的一种数据的水印验证方法中步骤S703的方法流程图;
图10为本发明实施例提供的一种数据的水印验证方法的另外一种方法流程图;
图11为本发明实施例提供的一种数据的水印嵌入装置的结构示意图;
图12为本发明实施例提供的一种数据的水印验证装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在现有技术中,数据的原始发布者可以将其拥有的数据授权给其他用户,为了保护数据版权,可以在数据中添加伪行、伪列,或者替换属性内容,或者嵌入隐藏字符,或者修改比特位,从而实现对原始发布者的数据的水印的嵌入,比如,在需要授权给其他用户的数据中嵌入固定的文本字符,并将该固定的文本字符作为水印信息,这样的话,当发生数据泄露时,可以通过在泄露的数据中对固定的文本字符进行查找,若查找出该固定的文本字符,则确定所泄露的数据为原始发布者的数据。然而,存在以下情况,不同的用户在需要授权的数据中嵌入的固定的文本字符可能会相同,或者任一用户需要授权的数据本身就包含有其他用户所嵌入的固定的文本字符,从而不能通过水印信息进行准确的验证,进而无法溯源到数据的原始发布者,更不用说溯源到数据的使用者了,导致数据的水印验证结果的可靠性较低。
鉴于此,本发明实施例提供了一种数据的水印嵌入方法、验证方法及装置,用于提高数据的水印验证的可靠性。
如图1所示为本发明实施例提供的一种数据的水印嵌入方法的应用场景,该应用场景包括多个终端设备1、服务器2和证书颁发结构(Certification Authority,CA)3,在实际应用中,可以根据需要设置终端设备1的数量,在此不做限定,图1中示意出了多个终端设备为三个的情况。其中,每个终端设备1可以为手机、平板电脑和台式电脑等,在此不做限定。服务器2可以是单个,还可以是若干台服务器组成的服务器集群或云计算中心。CA3可以是证书的签发机关,其可以采用任意的公钥加密算法生成每个终端用户的公钥并将相应的公钥存储起来。终端设备1、服务器2和CA3之间通过网络连接,网络可以是局域网、广域网或移动互联网等通信网络中的任意一种。
在一种可能的应用场景中,CA3使用EIGamal算法生成数据发布者A的公钥,并将数据发布者A的公钥存储起来,以及将数据接收者C的类公钥存储起来。服务器120将来自数据发布者A的目标文本内容中的各数据利用哈希函数进行处理,得到哈希值,进而根据该哈希值确定出该目标文本内容中用于嵌入水印的目标位置;然后,确定数据发布者A的私钥以及数据接收者C的类公钥,将数据发布者A的私钥以及数据接收者C的类公钥与该目标文本内容中的各数据利用哈希函数进行处理,从而获得水印信息。由于该水印信息可以是基于数据发布者A的私钥所得的信息,而私钥具有唯一性,从而保证了数据的水印验证结果的可靠性。此外,由于该水印信息还可以是基于数据接收者C的类公钥所得的信息,在对目标文本内容进行水印验证过程中,若数据接收者C对验证结果产生异议,可以通过数据接收者C的类公钥来对水印信息进行验证,进一步地保证了数据的水印验证结果的可靠性。而且,由于水印信息可以是根据数据发布者A的私钥和数据接收者C的类公钥所得的信息,在对目标文本内容进行水印验证过程中,可以溯源到目标文本内容的数据发布者和数据接收者,从而实现了水印溯源。
在执行本发明实施例中的水印嵌入方法或水印验证方法之前,需要对CA进行初始化,在设定CA所使用的公钥加密算法之后,可以根据相应的公钥加密算法计算出各个用户的公钥,可以将用户的公钥列表存储起来,便于后续进行水印验证。其中,公钥加密算法可以是EIGamal算法,还可以是椭圆曲线密码算法(ECC),在此不做限定。
下面以公钥加密算法是EIGamal算法为例来解释说明一下CA的初始化过程。首先,可以随机选择一个满足安全要求的大素数p,并生成有限域Zp的一个生成元公共参数为g,p;然后,针对水印管理系统中的每个用户(数据发布者),选一个随机数xi(1<xi<p-1),计算则该用户的公钥为yi,私钥为xi;如此一来,CA可以维护一个公钥列表,该列表中存储有每个用户的公钥,此外,CA还可以维护一个类公钥列表,该类公钥列表可以存储对数据发布者的目标文本内容进行水印嵌入过程中数据接收者所计算的类公钥Q。在对CA初始化之后,水印管理系统就可以进行相应的水印嵌入以及水印验证。
在本发明实施例中,如图2所示为数据的水印嵌入方法的其中一种方法流程图,具体来讲,包括:
S101:确定来自数据发布者的目标文本内容;
在具体实施过程中,所述目标文本内容可以是表格(excel)中的文本内容,还可以是word格式的文本内容,还可以是逗号分隔值(csv)格式的文本内容,还可以是非关系型数据库(NoSql)中的文本内容,在此不做限定。
S102:将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
可以设置所述目标文本内容中需要打水印的属性为Cq,Cq用于表征用于打水印的原始信息,所述目标文本内容中用于嵌入水印的属性为Cm,Cm用于表征候选属性,m为候选属性所包括的属性个数,其中每个属性可以是一个属性组,在此不做限定。可以将所述目标文本内容中各数据利用哈希函数进行处理,得到hash(Cq),所述目标文本内容中用于嵌入水印的目标位置可以是通过公式获得:
index=hash(Cq)mod m
其中,index用于表示所述目标位置。
需要说明的是,在数据发布者对目标文本内容嵌入水印之前,可以预先设置水印的嵌入配置,该嵌入配置除了包括对Cq和Cm的设置之外,还可以设置用于表征数据损失程度的水印嵌入判断位,可以用参数M表示水印嵌入判断位,M∈(1,7),其中,M所取的数值越小,相应地,数据损失程度越小。此外,还可以预先设置验证水印时的置信概率阈值,通过该置信概率阈值保证水印验证结果的可靠性。当然,还可以根据实际应用来设置其它的嵌入配置,在此不做详述。
S103:确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥;
首先,秘钥协商,通过秘钥进行hash加盐处理,以便于后续的水印溯源。比如,数据发布者A对数据接收者C进行水印嵌入,数据接收者C可以选择随机数r,计算Qc=gr(modp),还可以在本地秘密的保存好r,以及数据接收者C与数据发布者A的关系,该关系可以是随机数r为数据接收者C与数据发布者A交互时所生成的。如此一来,在后续验证水印出现争议时,可以通过随机数r进行验证。同时可以将数据接收者C计算所得的Qc作为类公钥参数保存在数据使用者C的公钥列表中,相应地,Qc具有公钥的计算能力,从而具有公钥验证的功能。可以将Qc存储至CA中的数据接收者C的类公钥列表中。这样的话,在后续数据发布者A对数据接收者C进行水印嵌入时,可以从CA所存储的数据接收者C的类公钥列表中确定数据接收者C的类公钥为Qc。
S104:将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
在数据发布者对数据接收者进行水印嵌入的过程中,可以根据数据发布者的私钥来获得水印信息,由于私钥的唯一性,从而提高了数据的水印验证结果的可靠性。此外,还可以根据数据接收者的类公钥来获得水印信息,当验证水印时,如果数据接收者对验证结果产生异议,还可以通过数据接收者的类公钥对水印信息进行验证,进一步地提高了数据的水印验证结果的可靠性。而且,由于水印信息是根据数据发布者的私钥和数据接收者的类公钥所得的信息,从而可以对目标文本内容溯源到数据发布者和数据接收者,实现了水印溯源。
S105:根据所述目标位置,嵌入所述水印信息。
在确定出用于嵌入水印的目标位置以及水印信息之后,可以根据该目标位置,在所述目标文本内容中嵌入水印信息,如此一来,可以根据用户的实际需要将所需的水印信息嵌入到数据发布者的目标文本内容中,保证了水印嵌入的精确度以及水印嵌入的灵活性。
在本发明实施例中,如图3所示,步骤S104:将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息,包括:
S201:根据所述私钥和所述类公钥,获得水印验证信息,所述水印验证信息用于验证所述数据接收者所接收的所述目标文本内容来自所述数据发布者;
S202:将所述水印验证信息和所述目标文本内容中的各数据利用哈希函数进行处理,获得所述水印信息。
在具体实施过程中,步骤S201至步骤S202的具体实现过程如下:
在确定数据发布者的私钥和数据接收者的类公钥之后,数据发布者可以根据该私钥和该类公钥采用以下公式来确定水印验证信息:
其中,k用于表示水印验证信息,Qc用于表示数据使用者的类公钥,xA用于表示数据发布者的私钥。在后续水印验证过程中,通过该水印验证信息可以验证数据接收者所接收的目标文本内容来自数据发布者。
在获得水印验证信息之后,可以将该水印验证信息和目标文本内容中的各数据利用哈希函数进行处理,获得水印信息。具体地,可以采用以下公式来获得水印信息:
W=hash(Cq||k)
其中,W表示水印信息。
在本发明实施例中,S105:根据所述目标位置,嵌入所述水印信息,可以有以下两种实现方式,但又不仅限于以下两种实现方式:
如图4所示为步骤S105的第一种实现方式的方法流程图,具体来讲,步骤S105:根据所述目标位置,嵌入所述水印信息,包括:
S301:确定预先设置的水印嵌入判断位,其中,所述水印嵌入判断位用于表征数据损伤程度;
S302:根据所述水印信息和所述水印嵌入判断位,确定嵌入数字;
S303:确定与所述嵌入数字对应的比特位;
S304:将所述水印嵌入判断位的比特位修改为所述嵌入数字所对应的比特位;其中,所述水印嵌入判断位的比特位为位于所述目标位置的候选字段的最后几位。
在具体实施过程中,步骤S301至步骤S304的具体实现过程如下:
首先,确定预先设置的用于表征数据损失程度的水印嵌入判断位,在水印嵌入过程中,数据发布者可以根据对数据损失长度的需求来设置水印嵌入判断位,比如,水印嵌入判断位设置为3。然后,可以根据水印信息和水印嵌入判断位,确定嵌入数字,具体地,可以按照以下公式来计算确定嵌入数字:
WD=WmodM
其中,WD表示嵌入数字。
在确定嵌入数字之后,可以确定与该嵌入数字对应的比特位,该嵌入数字可以是十进制,其对应的比特位为二进制,若WD=5,M=3,则其对应的比特位为“101”;然后,将水印嵌入判断位的比特位修改为该嵌入数字所对应的比特位,其中,该水印嵌入判断位的比特位为位于该目标位置的候选字段的最后几位。仍以上述例子为例,可以将位于该目标位置的候选字段的最后三位的比特位修改为“101”,从而通过修改比特位的方式实现了对水印信息的嵌入。由于用户可以根据实际需要来选择水印嵌入判断位,在选择较小的水印判断位时,只需对目标文本内容进行很小的改变,就可以实现水印嵌入,从而避免了水印嵌入过程中目标文本内容的损失,这种损失用户往往较难察觉,保证了数据的可用性。
如图5所示为步骤S105的第二种实现方式的方法流程图,具体来讲,在步骤S302:根据所述水印信息和所述水印嵌入判断位,确定嵌入数字之后,所述方法还包括:
S401:根据预先存储的嵌入数字与字符组合间的映射关系,确定所述嵌入数字对应的目标字符组合;
S402:将所述目标字符组合嵌入到位于所述目标位置的候选字段的末尾,并设置所述目标字符组合不可见。
在具体实施过程中,步骤S401至步骤S402的具体实现过程如下:
在确定嵌入数字之后,可以根据预先存储的嵌入数字与字符组合间的映射关系,确定该嵌入数字对应的目标字符组合;以选择一个隐藏字符为例,如表1所示为嵌入数字与字符组合间的映射关系表。需要说明的是,表1中的c(0)、c(1)、c(2)、c(3)、c(4)、c(5)、c(6)、c(7)只是表示一种隐藏字符。
嵌入数字 | 字符组合 |
0 | c(0) |
1 | c(1) |
2 | c(2) |
3 | c(3) |
4 | c(4) |
5 | c(5) |
6 | c(6) |
7 | c(7) |
表1
嵌入数字与字符组合间的映射关系还可以是如表2所示,需要说明的是,表2中的d(1)、d(2)、d(3)只是表示一种隐藏字符,比如,d(3)d(2)d(3)只是表示一种隐藏字符组合。当然,本领域技术人员可以根据实际应用需要来设置嵌入数字与字符组合间的映射关系,在此不做限定。
嵌入数字 | 字符组合 |
0 | 无 |
1 | d(1) |
2 | d(2) |
3 | d(2)d(1) |
4 | d(3) |
5 | d(3)d(1) |
6 | d(3)d(2) |
7 | d(3)d(2)d(1) |
表2
比如,在嵌入数字为5时,根据表1所示的映射关系表可知,嵌入数字为5时其所对应的目标字符组合为c(5)。然后,将该目标字符组合嵌入到位于目标位置的候选字段的末尾,并设置该目标字符组合不可见。仍以上述例子为例,可以将c(5)嵌入到位于目标位置的候选字段的末尾一位,并设置该字符c(5)不可见。如此一来,可以通过隐藏字符的方式实现了对水印信息的嵌入。由于用户可以根据实际需要来选择水印嵌入判断位,在选择较小的水印判断位时,只需对目标文本内容进行很小的改变,就可以实现隐藏字符嵌入,从而避免了水印嵌入过程中目标文本内容的损失,这种损失用户往往较难察觉,保证了数据的可用性。
需要说明的是,在数据发布者嵌入水印的过程中,可以根据实际需要选择修改比特位嵌入水印信息,还可以选择嵌入隐藏字符。比如,在目标文本内容为数据库中的文本内容时,如果数据库字段的长度限制为不能再插入数据,则可以选择第一种实现方式中的修改比特位的方式来嵌入水印信息。如果要求目标文本内容中的数据不能被更改,则可以选择第二种实现方式中的嵌入隐藏字符的方式来嵌入水印信息。当然,还可以根据其它需要来嵌入水印信息,在此不做限定。
在本发明实施例中,如图6所示,步骤S102:将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置,包括:
S501:确定用于嵌入水印的候选属性以及所述候选属性所包括的属性个数;
S502:将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
S503:根据所述哈希值和所述属性个数,确定所述候选属性中的目标位置。
在具体实施过程中,步骤S501至步骤S503的具体实现过程如下:
首先,确定用于嵌入水印的候选属性,比如Cm,以及该候选属性所包括的属性个数,比如,Cm所包括的属性个数为m,m为大于0的正整数。然后,将目标文本内容中各数据利用哈希函数进行处理,获得哈希值hash(Cq),然后,可以根据哈希值和属性个数,确定该候选属性中的目标位置,具体地,可以采用以下公式来确定候选属性中的目标位置:
index=hash(Cq)mod m
其中,index表示目标位置。
需要说明的是,用户在选择用于嵌入水印的候选属性时,可以选择对精确度要求不高的属性,如此一来,在数据发布者对目标文本内容进行水印嵌入的过程中,可以最大程度上降低其内数据的损失,提高了水印嵌入的可靠性。
基于同一发明构思,如图7所示,本发明实施例提供了一种数据的水印验证方法,包括:
S601:确定数据发布者的私钥和数据接收者的类公钥;
S602:根据所述私钥和所述类公钥,获得水印信息;
S603:将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据。
在具体实施过程中,步骤S601至步骤S603的具体实现过程如下:
首先,确定数据发布者的私钥和数据接收者的类公钥,然后,根据该公钥和该类公钥,获得水印信息,对于水印信息的获得过程具体地可以参照前述部分的描述,在此不再赘述。然后,将水印信息与目标文本内容中的待测水印信息进行比对,验证该目标文本内容是否为由数据发布者发布给数据接收者的数据。由于可以根据数据发布者的私钥和数据接收者的类公钥,获得水印信息,这样的话,在将所获得水印信息与目标文本内容中的待测水印信息进行比对之后,可以验证目标文本内容是否为由数据发布者发布给数据接收者的数据,从而水印溯源至数据发布者。
水印溯源是一个验证过程,为了避免水印嵌入过程中的数据损失,水印嵌入判断位可以设置为较小的数值,这样的话,水印嵌入过程中无需嵌入大量的信息,这样的话,不能是一个签名与验证签名的过程,水印的溯源验证,可以是一个正向的验证过程,在验证时加入了数据使用者的信息(比如,类公钥),从而可以有签名与验证签名的功能。可以是在水印管理系统中遍历的数据使用者的公钥列表,依次计算每个数据发布者的水印信息,相应地,将每个数据发布者的水印信息与目标文本内容中的待测水印信息进行比对,直到验证通过终止。
在本发明实施例中,若采用修改比特位的方式对目标文本内容嵌入水印时,如图8所示,步骤S603:将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,包括:
S701:确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,其中,所述水印嵌入判断位用于表征数据损伤程度;
S702:将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
S703:根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置;
S704:确定所述水印嵌入判断位对应的目标比特位;其中,所述水印嵌入判断位为位于所述目标位置的候选字段的最后几位;
S705:确定所述目标比特位对应的目标嵌入数字;
S706:根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
S707:将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
在具体实施过程中,步骤S701至步骤S707的具体实现过程如下:
首先,确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,比如,水印嵌入判断位设置为M,候选属性为Cm,候选属性Cm所包括的属性个数为m。可以遍历数据使用者的公钥列表,对每个数据发布者计算水印验证信息,获得相应的水印验证信息:
其中,k用于表示水印验证信息,Qc用于表示数据使用者的类公钥,xA用于表示数据发布者的私钥。
可以按照前述的水印嵌入方法中的相关计算,将目标文本内容中各数据利用哈希函数进行处理,获得哈希值,然后,根据该哈希值和属性个数,确定候选属性中用于嵌入水印信息的目标位置,具体地,可以根据前述的水印嵌入方法来确定该目标位置,该目标位置可以为index=hash(Cq)mod m。此外,还可以计算出水印信息:
W=hash(Cq||k)
其中,W表示水印信息。
还可以计算嵌入数字:
WD=WmodM
其中,WD表示嵌入数字。
在确定出用于嵌入水印信息的目标位置index之后,可以提取目标文本内容中位于index位的候选字段的最后「log2M]+1位比特位,然后,将该最后「log2M]+1位比特位转换为十进制数的目标嵌入数字,记为WDi。然后,比较WDi是否等于WD,如果二者相等,则返回“1”,否则返回“0”;依次验证,当样本数中返回为“1”的数据个数大于整个目标文本内容中数据的置信概率阈值(比如,90%),则表明验证通过的频率大于设定的阈值,水印验证通过,表明该目标文本内容为由数据发布者发布给数据接收者的数据,且数据也是数据发布者的,未改变过。
在本发明实施例中,若采用嵌入隐藏字符来实现对目标文本内容的嵌入时,如图9所示,步骤S703:根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置之后,所述方法还包括:
S801:确定所述候选属性中位于所述目标位置的候选字段的末尾的目标字符组合;
S802:根据预先存储的嵌入数字与字符组合间的对应关系,确定所述目标字符组合对应的目标嵌入数字;
S803:根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
S804:将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
在具体实施过程中,步骤S801至步骤S804的具体实现过程如下:
首先,可以直接取目标文本内容中位于index位的候选字段的最后「log2M]+1位隐藏字符,然后,根据隐藏字符与嵌入数字间的映射关系,确定该隐藏字符所对应的十进制的嵌入数字;然后,将该嵌入数字与水印计算过程中所得的待测嵌入数字进行比较,进一步地实现对目标文本内容的水印验证。详细的验证可以参照前述描述,在此不再详述。
在本发明实施例中,如图10所示,若所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据,所述方法还包括:
S901:确定所述数据接收者的公钥以及第一待验证中间值;
S902:将所述第一待验证中间值利用哈希函数进行处理,获得第一哈希值;
S903:根据所述私钥和所述类公钥,确定第二待验证中间值;
S904:将所述第二待验证中间值利用哈希函数进行处理,得到第二哈希值;
S905:若所述第一哈希值和所述第二哈希值相等,则将根据所述第一待验证中间值所确定的另一水印信息与所述目标文本内容中的所述待测水印信息进行比对,验证所述数据接收者所接收到的目标文本内容是否为所述数据发布者所发布的数据。
在具体实施过程中,步骤S901至步骤S905的具体实现过程如下:
在对数据发布者进行水印验证之后,若数据使用者发生争议,该数据使用者可以自行进行水印验证,可以是通过其秘密保存的随机数r来进行验证。可以是数据接收者在公钥列表中查找出数据发布者的公钥yA,通过公式来计算第一待验证中间值:k=yA r,其中,k表示第一待验证中间值,yA表示数据发布者的公钥。然后,将第一待验证中间值利用哈希函数进行处理,获得第一哈希值hash(k),然后,将hash(k)以及类公钥Qc传给数据发布者。这样的话,数据发布者接收到hash(k)以及Qc之后,使用自己的私钥sA可以计算出第二待验证中间值:k1=sAQc,其中,k1表示第二待验证中间值。然后,将第二待验证中间值利用哈希函数进行处理,得到第二哈希值:hash(k1),然后,验证hash(k)是否等于hash(k1),若相等,则为“True”,表明数据发布者接受数据接收者自己的验证结果;若不等,则为“False”,表明数据接收者没有正确计算数据发布者的k。
若相等,可以根据第一待验证中间值所确定的另一水印信息与目标文本内容中的待测水印信息进行比对,验证数据接收者所接收到的目标文本内容是否为数据发布者所发布的数据。
可以是按照水印嵌入计算中的相关步骤,计算出用于嵌入水印的目标位置:index=hash(Cq)mod m。还可以是计算出水印信息:W=hash(Cq||k),以及嵌入数字:WD=WmodM。
在确定出用于嵌入水印信息的目标位置index之后,可以提取位于index位的候选字段的最后「log2M]+1位比特位,然后,将该最后「log2M]+1位比特位转换为十进制数的目标嵌入数字,记为WDi。然后,比较WDi是否等于WD,如果二者相等,则返回“1”,否则返回“0”;依次验证,当样本数中返回为“1”的数据个数大于预先设置的置信概率阈值(比如,90%),则表明验证通过的频率大于设定的阈值,水印验证通过,表明该目标文本内容为由数据发布者发布给数据接收者的数据,且数据也是数据发布者的,未改变过。
此外,可以直接取index位的候选字段的最后「log2M]+1位隐藏字符,然后,根据隐藏字符与嵌入数字间的映射关系,确定该隐藏字符所对应的十进制的嵌入数字;然后,将该嵌入数字与水印计算过程中所得的待测嵌入数字进行比较,进一步地实现对目标文本内容的水印验证。当样本数中返回为“1”的数据个数大于预先设置的置信概率阈值(比如,90%),则表明验证通过的频率大于设定的阈值,水印验证通过,表明该目标文本内容为由数据发布者发布给数据接收者的数据,且数据也是数据发布者的,未改变过。
需要说明的是,本发明实施例中的水印验证中所涉及到的水印计算可以参照前述水印嵌入方法中的相关实现,在此不做详述了。此外,在水印验证中,对于修改比特位来嵌入水印来说,可能存在在水印嵌入前原始数据的最后n位比特位与水印计算的值一样的情况,即未嵌入水印。对于原始数据最后n位比特位与水印计算的值一样的情况,发生的概率为本发明实施例中,可以在一个大样本的情况下进行水印验证,如果m次验证都符合的概率为也就是说,极小的概率下水印验证的结果在预先设置的置信阈值内,既然小概率事件下都验证通过,那么所有样本通过验证的可能性就较高,从而保证了水印验证结果的可靠性。
基于同一发明构思,如图11所示,本发明实施例提供了一种数据的水印嵌入装置,包括:
第一确定单元10,用于确定来自数据发布者的目标文本内容;
第二确定单元20,将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
第三确定单元30,用于确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥;
第一获得单元40,用于将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
嵌入单元50,用于根据所述目标位置,嵌入所述水印信息。
在本发明实施例中,所述第一获得单元用于:
根据所述私钥和所述类公钥,获得水印验证信息,所述水印验证信息用于验证所述数据接收者所接收的所述目标文本内容来自所述数据发布者;
将所述水印验证信息和所述目标文本内容中的各数据利用哈希函数进行处理,获得所述水印信息。
在本发明实施例中,所述嵌入单元50用于:
确定预先设置的水印嵌入判断位,其中,所述水印嵌入判断位用于表征数据损伤程度;
根据所述水印信息和所述水印嵌入判断位,确定嵌入数字;
确定与所述嵌入数字对应的比特位;
将所述水印嵌入判断位的比特位修改为所述嵌入数字所对应的比特位;其中,所述水印嵌入判断位的比特位为位于所述目标位置的候选字段的最后几位。
在本发明实施例中,在所述根据所述水印信息和所述水印嵌入判断位,确定嵌入数字之后,所述嵌入单元50还用于:
根据预先存储的嵌入数字与字符组合间的映射关系,确定所述嵌入数字对应的目标字符组合;
将所述目标字符组合嵌入到位于所述目标位置的候选字段的末尾,并设置所述目标字符组合不可见。
在本发明实施例中,所述第二确定单元20用于:
确定所述目标文本内容的候选属性以及所述候选属性所包括的属性个数;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中的目标位置。
基于同一发明构思,如图12所示,本发明实施例还提供了一种数据的水印验证装置,包括:
第四确定单元100,用于确定数据发布者的私钥和数据接收者的类公钥;
第二获得单元200,用于根据所述私钥和所述类公钥,获得水印信息;
验证单元300,用于将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据。
在本发明实施例中,所述验证单元300用于:
确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,其中,所述水印嵌入判断位用于表征数据损伤程度;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置;
确定所述水印嵌入判断位对应的目标比特位;其中,所述水印嵌入判断位为位于所述目标位置的候选字段的最后几位;
确定所述目标比特位对应的目标嵌入数字;
根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
基于同一发明构思,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上面所述的数据的水印嵌入方法或水印验证方法。
基于同一发明构思,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行如上面所述的数据的水印嵌入方法或水印验证方法。
在一些可能的实施方式中,本发明提供的一种数据的水印嵌入方法与验证方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的数据库的水印添加与验证方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取计算机存储介质(RAM)、只读计算机存储介质(ROM)、可擦式可编程只读计算机存储介质(EPROM或闪存)、光纤、便携式紧凑盘只读计算机存储介质(CD-ROM)、光计算机存储介质件、磁计算机存储介质件、或者上述的任意合适的组合。
本发明的实施方式的数据库的水印添加与验证方法的程序产品可以采用便携式紧凑盘只读计算机存储介质(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据的水印嵌入方法,其特征在于,包括:
确定来自数据发布者的目标文本内容;
将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥,所述类公钥是根据所述数据接收者确定的随机数生成的,所述随机数用于指示所述数据接收者与所述数据发布者的关系,所述关系是所述数据接收者和所述数据发布者交互生成所述随机数时所带来的,所述类公钥具有公钥验证功能;
将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
根据所述目标位置,嵌入所述水印信息。
2.如权利要求1所述的方法,其特征在于,所述将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息,包括:
根据所述私钥和所述类公钥,获得水印验证信息,所述水印验证信息用于验证所述数据接收者所接收的所述目标文本内容来自所述数据发布者;
将所述水印验证信息和所述目标文本内容中的各数据利用哈希函数进行处理,获得所述水印信息。
3.如权利要求2所述的方法,其特征在于,所述根据所述目标位置,嵌入所述水印信息,包括:
确定预先设置的水印嵌入判断位,其中,所述水印嵌入判断位用于表征数据损伤程度;
根据所述水印信息和所述水印嵌入判断位,确定嵌入数字;
确定与所述嵌入数字对应的比特位;
将所述水印嵌入判断位的比特位修改为所述嵌入数字所对应的比特位;其中,所述水印嵌入判断位的比特位为位于所述目标位置的候选字段的最后几位。
4.如权利要求3所述的方法,其特征在于,在所述根据所述水印信息和所述水印嵌入判断位,确定嵌入数字之后,所述方法还包括:
根据预先存储的嵌入数字与字符组合间的映射关系,确定所述嵌入数字对应的目标字符组合;
将所述目标字符组合嵌入到位于所述目标位置的候选字段的末尾,并设置所述目标字符组合不可见。
5.如权利要求1-4任一项所述的方法,其特征在于,所述将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置,包括:
确定用于嵌入水印的候选属性以及所述候选属性所包括的属性个数;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中的目标位置。
6.一种数据的水印验证方法,其特征在于,包括:
确定数据发布者的私钥和数据接收者的类公钥,所述类公钥是根据所述数据接收者确定的随机数生成的,所述随机数用于指示所述数据接收者与所述数据发布者的关系,所述关系是所述数据接收者和所述数据发布者交互生成所述随机数时所带来的,所述类公钥具有公钥验证功能;
根据所述私钥和所述类公钥,获得水印信息;
将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,所述待测水印信息为所述目标文本内容在发送给所述数据接收者之前嵌入在所述目标文本内容中的水印信息。
7.如权利要求6所述的方法,其特征在于,所述将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,包括:
确定预先设置的水印嵌入判断位,用于嵌入水印的候选属性以及所述候选属性所包括的属性个数,其中,所述水印嵌入判断位用于表征数据损伤程度;
将所述目标文本内容中各数据利用哈希函数进行处理,获得哈希值;
根据所述哈希值和所述属性个数,确定所述候选属性中用于嵌入所述水印信息的目标位置;
确定所述水印嵌入判断位对应的目标比特位;其中,所述水印嵌入判断位为位于所述目标位置的候选字段的最后几位;
确定所述目标比特位对应的目标嵌入数字;
根据所述水印信息和所述水印嵌入判断位,确定待测嵌入数字;
将所述目标嵌入数字和所述待测嵌入数字进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,其中,若所述目标嵌入数字和所述待测嵌入数字相等,则表明所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据。
8.如权利要求6所述的方法,其特征在于,若所述目标文本内容为由所述数据发布者发布给所述数据接收者的数据,所述方法还包括:
确定所述数据接收者的公钥以及第一待验证中间值;
将所述第一待验证中间值利用哈希函数进行处理,获得第一哈希值;
根据所述私钥和所述类公钥,确定第二待验证中间值;
将所述第二待验证中间值利用哈希函数进行处理,得到第二哈希值;
若所述第一哈希值和所述第二哈希值相等,则将根据所述第一待验证中间值所确定的另一水印信息与所述目标文本内容中的所述待测水印信息进行比对,验证所述数据接收者所接收到的目标文本内容是否为所述数据发布者所发布的数据。
9.一种数据的水印嵌入装置,其特征在于,包括:
第一确定单元,用于确定来自数据发布者的目标文本内容;
第二确定单元,将所述目标文本内容中各数据利用哈希函数进行处理,确定目标位置;
第三确定单元,用于确定所述数据发布者的私钥以及用于接收所述目标文本内容的数据接收者的类公钥,所述类公钥是根据所述数据接收者确定的随机数生成的,所述随机数用于指示所述数据接收者与所述数据发布者的关系,所述关系是所述数据接收者和所述数据发布者交互生成所述随机数时所带来的,所述类公钥具有公钥验证功能;
第一获得单元,用于将所述私钥和所述类公钥与所述目标文本内容中的各数据利用哈希函数进行处理,获得水印信息;
嵌入单元,用于根据所述目标位置,嵌入所述水印信息。
10.一种数据的水印验证装置,其特征在于,包括:
第四确定单元,用于确定数据发布者的私钥和数据接收者的类公钥,所述类公钥是根据所述数据接收者确定的随机数生成的,所述随机数用于指示所述数据接收者与所述数据发布者的关系,所述关系是所述数据接收者和所述数据发布者交互生成所述随机数时所带来的,所述类公钥具有公钥验证功能;
第二获得单元,用于根据所述私钥和所述类公钥,获得水印信息;
验证单元,用于将所述水印信息与目标文本内容中的待测水印信息进行比对,验证所述目标文本内容是否为由所述数据发布者发布给所述数据接收者的数据,所述待测水印信息为所述目标文本内容在发送给所述数据接收者之前嵌入在所述目标文本内容中的水印信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833283.8A CN113505348B (zh) | 2021-07-22 | 2021-07-22 | 一种数据的水印嵌入方法、验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833283.8A CN113505348B (zh) | 2021-07-22 | 2021-07-22 | 一种数据的水印嵌入方法、验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505348A CN113505348A (zh) | 2021-10-15 |
CN113505348B true CN113505348B (zh) | 2024-07-26 |
Family
ID=78013548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833283.8A Active CN113505348B (zh) | 2021-07-22 | 2021-07-22 | 一种数据的水印嵌入方法、验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505348B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656825B (zh) * | 2021-10-21 | 2022-02-22 | 北京凯睿数加科技有限公司 | 文本水印嵌入方法、文本篡改检测方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488214A (zh) * | 2008-01-15 | 2009-07-22 | 中国科学院软件研究所 | 一种扩展防伪数字水印和电子印章信息量的方法 |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007140487A2 (en) * | 2006-06-01 | 2007-12-06 | Verifides Technology Corp. | Data access control systems and methods |
CN107330306B (zh) * | 2017-06-28 | 2020-07-28 | 百度在线网络技术(北京)有限公司 | 文本水印嵌入及提取方法、装置、电子设备及存储介质 |
CN109657426B (zh) * | 2019-01-30 | 2023-08-15 | 贵州大学 | 一种基于数字签名和数字水印的数据溯源方法 |
-
2021
- 2021-07-22 CN CN202110833283.8A patent/CN113505348B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488214A (zh) * | 2008-01-15 | 2009-07-22 | 中国科学院软件研究所 | 一种扩展防伪数字水印和电子印章信息量的方法 |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113505348A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001285623A (ja) | 埋め込み符号生成方法及び装置、埋め込み符号検出方法及び装置並びに電子透かし埋め込み装置及び電子透かし検出装置 | |
WO2021036086A1 (zh) | 交易数据处理方法、装置、系统及计算机可读存储介质 | |
EP3637674A1 (en) | Computer system, secret information verification method, and computer | |
CN109768866B (zh) | 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法 | |
EP3930252A1 (en) | Countermeasures for side-channel attacks on protected sign and key exchange operations | |
JPWO2007088716A1 (ja) | ブラインド署名方法及びそのシステム | |
KR20060113329A (ko) | 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법 | |
CN105721156A (zh) | 用于模幂加密方案的通用编码函数 | |
CN113505348B (zh) | 一种数据的水印嵌入方法、验证方法及装置 | |
CN111209577B (zh) | 添加水印数据的方法、装置、存储介质及电子设备 | |
EP2286610B1 (en) | Techniques for peforming symmetric cryptography | |
CN116260572B (zh) | 数据杂凑处理方法、数据验证方法及电子设备 | |
CN110381114B (zh) | 接口请求参数的处理方法、装置、终端设备及介质 | |
US20220407698A1 (en) | Digital watermark system, digital watermark method and program | |
CN112597456B (zh) | 数据库的水印添加与验证方法及装置 | |
CN112861189B (zh) | 签名的生成方法和验证方法、装置、设备和介质 | |
Borah et al. | Watermarking techniques for three dimensional (3D) mesh authentication in spatial domain | |
CN111447072B (zh) | 用于生成数据等价零知识证明的方法、设备及存储介质 | |
CN114007222A (zh) | 一种非法数据鉴别方法、装置、计算机设备及存储介质 | |
JP2007157021A (ja) | 耐タンパ証明携帯プログラム配信システム及びその方法 | |
JP4322849B2 (ja) | 電子透かし埋め込み方法と装置及び電子透かし検出方法と装置 | |
US20210319125A1 (en) | Software protection via keyed relational randomization | |
CN115296821B (zh) | 一种用于数字藏品管理的数据处理系统 | |
CN117909943B (zh) | 一种基于多节点的水印溯源处理方法和系统 | |
CN115344893B (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 |