掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的文本水印嵌入方法、溯源方法及系统

文献发布时间:2023-06-19 18:37:28


一种基于区块链的文本水印嵌入方法、溯源方法及系统

技术领域

本申请涉及数据处理领域,尤其涉及一种基于区块链的文本水印嵌入方法、溯源方法及系统。

背景技术

随着数据高速增长和数字经济持续发展,数据的泄露、篡改、侵权问题日益严重。目前,海量文本数据占所有正利用数据的60%以上,其数据溯源和数据版权保护依赖数字水印技术。

目前的文本水印技术可通过对文本中特定的单词进行同义词替换,对同义的词使用不同词汇表述以进行编码从而加载水印信息,但是这种技术的缺点是难以为所有的词汇找到恰当的同义词,文本内容进行替换修改后,会改变语句的流畅性和表达习惯,最终影响语义理解,而且可能造成文本可嵌入水印信息的容量有限。有些文本水印技术还可通过改变行间距、字间距等来嵌入水印信息,虽然通过改变字间距嵌入水印可使得水印容量大,但鲁棒性较差。此外,现有的水印管理平台通常将水印文本存入数据库中进行管控,容易造成水印数据被攻击者篡改。

发明内容

本申请提供了一种基于区块链的文本水印嵌入方法、溯源方法及系统,用于提高文本水印的容量、隐蔽性、鲁棒性、安全性和可信度。

本申请第一方面提供了一种基于区块链的文本水印嵌入方法,包括:

认证平台生成原始文本的水印索引,并向数据持有端发送所述水印索引,所述水印索引为二进制编码;

所述数据持有端在不改变所述原始文本语义的前提下,对所述原始文本进行所述水印索引的循环嵌入,所述循环嵌入为对所述原始文本的段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与所述二进制编码对应,从而将所述水印索引循环嵌入至文本中得到水印文本,循环次数取决于所述水印索引的二进制编码长度和所述原始文本的段落数量;

所述认证平台接收所述数据持有端发送的所述水印文本,并生成所述水印文本的完整水印,所述完整水印包括所述水印索引、文本持有方特征信息和水印文本特征信息;

所述认证平台调用区块链接口,通过智能合约对所述完整水印进行区块链上链存证。

可选地,在所述数据持有端在不改变所述原始文本语义的前提下,对所述原始文本进行所述水印索引的循环嵌入之前,所述方法还包括:

所述认证平台统计所述原始文本的段落数量和每个段落对应的段落字符数,并确定所述每个段落的段落字符数的字符数量奇/偶性;

所述认证平台将所述二进制编码和所述原始文本中的所有段落进行比对,确定待修改段落编号序列,并向数据持有端发送所述待修改段落编号序列,所述待修改段落编号序列为段落字符数的字符数量奇/偶性与所述二进制编码不对应的段落编号所生成的序列;

所述循环嵌入为对所述原始文本的段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与所述二进制编码对应,从而将所述水印索引循环嵌入至文本中得到水印文本包括:

所述循环嵌入为根据所述待修改段落编号序列对所述原始文本的相应段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与所述二进制编码对应,从而将所述水印索引循环嵌入至文本中得到水印文本。

可选地,在所述认证平台生成原始文本的水印索引之前,所述方法还包括:

数据持有端向认证平台提出原始文本的注册申请,所述注册申请携带有文本持有端特征信息和原始文本;

所述认证平台生成原始文本的水印索引包括:

所述认证平台基于所述注册申请的注册编号生成原始文本的水印索引,所述注册编号为二进制编码形式,且所述注册编号为平台已注册最大二进制编码加1。

可选地,在所述数据持有端向认证平台提出原始文本的注册申请之后,所述方法还包括:

所述认证平台对所述原始文本进行注册查重;

所述认证平台基于所述注册申请的注册编号生成原始文本的水印索引包括:

当根据查重结果确定所述原始文本尚未注册时,所述认证平台基于所述注册申请的注册编号生成原始文本的水印索引。

可选地,所述认证平台对所述原始文本进行注册查重包括:

所述认证平台通过MD5哈希算法计算所述原始文本的第一MD5哈希值,以所述第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,所述MYSQL数据库中存储有已注册文本的MD5哈希值以及已注册文本对应的原始文本的MD5哈希值;

所述认证平台提取所述原始文本的段落统计特征,所述段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将所述段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断所述原始文本是否已注册;

所述认证平台通过MD5哈希算法计算所述原始文本的第一MD5哈希值,以所述第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,当查询未成功时,所述认证平台再提取所述原始文本的段落统计特征,所述段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将所述段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断所述原始文本是否已注册。

可选地,在所述认证平台接收所述数据持有端发送的所述水印文本之后,所述生成所述水印文本的完整水印之前,所述方法还包括:

所述认证平台通过MD5哈希算法计算所述原始文本的第一MD5哈希值和所述水印文本的第二MD5哈希值;

所述生成所述水印文本的完整水印包括:

基于所述水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称生成所述水印文本的完整水印,所述水印文本特征信息包括第一MD5哈希值和第二MD5哈希值。

可选地,在所述生成所述水印文本的完整水印之后,所述方法还包括:

所述认证平台将所述完整水印的内容按照键值对的形式存储至MYSQL数据库中。

本申请第二方面提供了一种基于区块链的文本水印溯源方法,所述水印文本通过第一方面所述的水印文本嵌入方法进行水印嵌入得到,所述方法包括:

数据持有端向认证平台提出溯源申请,并向所述认证平台发送待溯源文本和水印索引;

所述认证平台基于所述水印索引对所述待溯源文本进行水印检测,若检测成功,则调用区块链接口,通过智能合约读取区块链上的完整水印;

所述认证平台根据所述水印索引判断所述待溯源文件是否存在内容篡改;

若是,则向所述数据持有端反馈第一溯源结果,所述第一溯源结果包括篡改提示和完整水印;

若否,则向所述数据持有端反馈第二溯源结果,所述第二溯源结果包括完整水印。

可选地,在所述认证平台基于所述水印索引对所述待溯源文件进行水印检测之前,所述方法还包括:

所述认证平台根据MD5哈希算法计算所述待溯源文本的第三MD5哈希值,以所述第三MD5哈希值为查询关键字在MYSQL数据库中进行查询,若查询成功,则向所述数据持有端反馈第二溯源结果,所述第二溯源结果包括完整水印;

若查询未成功,则执行基于所述水印索引对所述待溯源文本进行水印检测的步骤。

本申请第三方面提供了一种基于区块链的文本水印嵌入与溯源系统,包括:

认证平台和数据持有端,所述认证平台和所述数据持有端通信连接;

认证平台用于生成原始文本的水印索引,并向数据持有端发送所述水印索引,所述水印索引为二进制编码;

所述数据持有端用于在不改变所述原始文本语义的前提下,对所述原始文本进行所述水印索引的循环嵌入,所述循环嵌入为对所述原始文本的段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与所述二进制编码对应,从而将所述水印索引循环嵌入至文本中得到水印文本,循环次数取决于所述水印索引的二进制编码长度和所述原始文本的段落数量;

所述认证平台还用于接收所述数据持有端发送的所述水印文本,并生成所述水印文本的完整水印,所述完整水印包括所述水印索引、文本持有方特征信息和水印文本特征信息;

所述认证平台还用于调用区块链接口,通过智能合约对所述完整水印进行区块链上链存证;

所述数据持有端还用于向认证平台提出溯源申请,并向所述认证平台发送待溯源文本和水印索引;

所述认证平台还用于基于所述水印索引对所述待溯源文本进行水印检测,若检测成功,则调用区块链接口,通过智能合约读取区块链上的完整水印;

所述认证平台还用于根据所述水印索引判断所述待溯源文件是否存在内容篡改;

若是,则向所述数据持有端反馈第一溯源结果,所述第一溯源结果包括篡改提示和完整水印;

若否,则向所述数据持有端反馈第二溯源结果,所述第二溯源结果包括完整水印。可选地,所述认证平台还用于统计所述原始文本的段落数量和每个段落对应的段落字符数,并确定所述每个段落的段落字符数的字符数量奇/偶性;

所述认证平台还用于将所述二进制编码和所述原始文本中的所有段落进行比对,确定待修改段落编号序列,并向数据持有端发送所述待修改段落编号序列,所述待修改段落编号序列为段落字符数的字符数量奇/偶性与所述二进制编码不对应的段落编号所生成的序列;

所述数据持有端具体用于在不改变所述原始文本语义的前提下,对所述原始文本进行所述水印索引的循环嵌入,所述循环嵌入为根据所述待修改段落编号序列对所述原始文本的相应段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与所述二进制编码对应,从而将所述水印索引循环嵌入至文本中得到水印文本,循环次数取决于所述水印索引的二进制编码长度和所述原始文本的段落数量。

可选地,数据持有端还用于向认证平台提出原始文本的注册申请,所述注册申请携带有文本持有端特征信息和原始文本;

所述认证平台具体用于基于所述注册申请的注册编号生成原始文本的水印索引,所述注册编号为二进制编码形式,且所述注册编号为平台已注册最大二进制编码加1。

可选地,所述认证平台还用于对所述原始文本进行注册查重;

当根据查重结果确定所述原始文本尚未注册时,基于所述注册申请的注册编号生成原始文本的水印索引。

可选地,所述认证平台具体用于通过MD5哈希算法计算所述原始文本的第一MD5哈希值,以所述第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,所述MYSQL数据库中存储有已注册文本的MD5哈希值以及已注册文本对应的原始文本的MD5哈希值;

所述认证平台具体用于提取所述原始文本的段落统计特征,所述段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将所述段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断所述原始文本是否已注册;

所述认证平台通过MD5哈希算法计算所述原始文本的第一MD5哈希值,以所述第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,当查询未成功时,所述认证平台再提取所述原始文本的段落统计特征,所述段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将所述段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断所述原始文本是否已注册。

可选地,所述认证平台还具体用于通过MD5哈希算法计算所述原始文本的第一MD5哈希值和所述水印文本的第二MD5哈希值;

基于所述水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称生成所述水印文本的完整水印,所述水印文本特征信息包括第一MD5哈希值和第二MD5哈希值。

可选地,所述认证平台还用于将所述完整水印的内容按照键值对的形式存储至MYSQL数据库中。

可选地,所述认证平台还用于根据MD5哈希算法计算所述待溯源文本的第三MD5哈希值,以所述第三MD5哈希值为查询关键字在MYSQL数据库中进行查询,并判断是否查询成功;

若查询成功,则向所述数据持有端反馈第二溯源结果,所述第二溯源结果包括完整水印;

若查询未成功,则执行基于所述水印索引对所述待溯源文本进行水印检测的步骤。

本申请第四方面提供了一种基于区块链的文本水印嵌入与溯源装置,所述装置包括:

处理器、存储器、输入输出单元以及总线;

所述处理器与所述存储器、所述输入输出单元以及所述总线相连;

所述存储器保存有程序,所述处理器调用所述程序以执行第一方面以及第一方面中任一项可选的文本水印嵌入方法或第二方面以及第二方面中任一项可选的文本水印溯源方法。

本申请第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面以及第一方面中任一项可选的文本水印嵌入方法/第二方面以及第二方面中任一项可选的文本水印溯源方法。

从以上技术方案可以看出,本申请具有以下优点:

本申请方法中,首先,为原始文本的完整水印生成一个水印索引,该水印索引为二进制编码。然后在原始文本中重复嵌入多个水印索引,具体地,可将二进制编码中的数值“0/1”表征为文本段落的段落字符数量为偶数/奇数。数据持有端在不改变文本语义的前提下,通过对原始文本的段落进行增加或删除一个字符或奇数个字符,以使得修改后的文本中每个段落的段落字符数的奇偶性与水印索引的二进制编码对应,且多次循环直至文本末尾,从而最终得到多次嵌入了水印索引的水印文本,其中,循环次数根据水印索引的二进制编码和原始文本的段落数量确定。最后,根据该水印索引、原始文本的文本持有方特征信息和水印文本特征信息生成一个完整水印,并将该完整水印存入区块链中。

本申请中,通过上述方法,文本的水印嵌入通过增加或删除任何一个字符或奇数个字符来修改完成,修改更灵活、易用,使得可在文本语义不变的基础上保持文本语句完整性、流畅性。同时水印索引的嵌入利用文本段落的段落字符数量的奇偶性特征,在水印索引嵌入时不需要占用额外的冗余空间。在文本上嵌入水印索引,而在区块链上存储对应的完整水印,不仅突破了水印容量的限制,还可使得攻击者无处搜寻水印,提高水印的隐蔽性。此外,本方法通过在文本中循环多次嵌入水印索引,即使文本被严重篡改,只要存在少量未被篡改的连续段落以形成一个完整水印索引就能进行文本水印检测,提高了水印的鲁棒性。同时,还将与水印索引对应的完整水印上传至区块链进行存储,利用区块链的防篡改、可追溯性,提高了水印的可信度和安全性。

附图说明

为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的基于区块链的文本水印嵌入方法一个实施例流程示意图;

图2为本申请提供的基于区块链的文本水印嵌入方法另一个实施例流程示意图;

图3为本申请提供的基于区块链的文本水印溯源方法一个实施例结构示意图;

图4为本申请提供的基于区块链的文本水印溯源方法另一个实施例结构示意图;

图5为本申请提供的基于区块链的文本水印嵌入与溯源系统一个实施例结构示意图;

图6为本申请提供的基于区块链的文本水印嵌入与溯源装置一个实施例结构示意图。

具体实施方式

本申请提供了一种基于区块链的文本水印嵌入方法、溯源方法及系统,用于提高文本水印容量、隐蔽性、鲁棒性、安全性和可信度。

需要说明的是,本申请提供的基于区块链的文本水印嵌入方法和文本水印溯源方法应用于包括认证平台和数据持有端的系统,该系统可为分布式B/S系统,即位于客户端的数据持有端可通过浏览器访问位于云端服务器上的可信第三方认证管理平台(简称认证平台)。其中,该数据持有端可为文本数据的数据拥有方/版权方或数据使用方/购买方,该数据持有端可为终端,例如终端可以是智能手机或电脑、平板电脑、智能电视、智能手表、便携计算机终端也可以是台式计算机等固定终端。该认证平台可与数据库、区块链平台进行交互,例如该认证平台通过读写区块链接口,调用智能合约来对文本文件进行上链存证。或者,系统也可为C/S系统,此处不做限定。为方便阐述,本申请中以数据持有端和认证平台为执行主体进行举例说明。

首先,在原始文本正式流通前,数据持有端与认证平台进行交互,对原始文本进行确权,包括水印生成、水印嵌入等。

请参阅图1,图1为本申请提供的基于区块链的文本水印嵌入方法的一个实施例,该方法包括:

101、认证平台生成原始文本的水印索引,并向数据持有端发送水印索引,该水印索引为二进制编码;

本实施例中,在确定需要对原始文本进行水印嵌入后,认证平台生成该原始文本的水印索引,将该水印索引分配给该原始文本,即该水印索引为针对该原始文本生成的唯一、永久的二进制编码,例如,二进制编码011。或该水印索引也可为二进制编码对应的同长度变换编码。例如,二进制反码、补码或存在唯一性的同长度的等长码。然后,认证平台将该水印索引发送给数据持有端。其中,该数据持有端可为原始文本的数据拥有方/版权方。

102、数据持有端在不改变原始文本语义的前提下,对原始文本进行水印索引的循环嵌入,该循环嵌入为对原始文本的段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与二进制编码对应,从而将水印索引循环嵌入至文本中得到水印文本,循环次数取决于水印索引的二进制编码长度和原始文本的段落数量;

本实施例中,数据持有端将从认证平台接收到的水印索引嵌入到原始文本中。具体地,数据持有端打开原始文本的文本文件,在不改变原始文本语义的前提下,根据水印索引中二进制编码的0/1字符对原始文本的段落进行增加或删除字符修改,具体地,可以增加/删除一个或奇数个字符,以使得修改后的文本中每个段落的字符总数的奇偶性和水印索引的二进制编码对应,而且循环重复至文件末尾,从而在修改后的文本中连续嵌入了多个水印索引得到最终的水印文本。例如,若原始文本共有9个段落,认证平台为该原始文本生成的水印索引为011,则可设置水印索引中的数值“0”对应某一段落的字符数量为偶数,数值“1”对应某一段落的字符数量为奇数。则数据持有端根据该水印索引011对原始文本的段落进行增加或删除字符,将原始文本的1至9段的段落奇偶性设置为偶奇奇偶奇奇偶奇奇,则相当于在修改后的文本中嵌入了3个水印索引011。比如,若原本的原始文本的第一段落、第二段落和第三段落的字符数量分别为奇数、奇数和偶数,由于水印索引011的第一位为0、第二位为1、第三位为1,则数据持有端在不改变文本语义的前提下,对第一段落进行增加或删除一个字符,使其字符数量为偶数,对第三段落进行增加或删除一个字符,使其字符数量为奇数,从使得第一段落至第三段落的字符数量的奇偶性变更为偶奇奇,与二进制编码对应,从而在修改后的文本文件的第一段落至第三段落中嵌入了水印索引011。然后在后续的第四段落至第九段落中采用上述方法,对段落进行字符删除或增加,以使得在修改后的文本文件中重复嵌入3个水印索引。需要注意的是,在对原始文本的段落字符数量进行更改时,增加或删除的字符可以是标点符号、空格或文字。此外,对段落字符数量进行更改时,除了对段落字符进行增加或删除,还可以进行文本替换,例如将段落中出现的文本字符“喜欢”替换为“爱”,从而对字符段落数量进行更改。

需要说明的是,本实施例中,也可设置水印索引的二进制编码中的数值“1”对应文本段落的段落数量为偶数,数值“0”对应文本段落的段落数量为奇数。此外,该水印索引在原始文本中嵌入的循环次数取决于水印索引的二进制编码长度和原始文本的段落数量。例如,若水印索引的二进制编码长度为3位,原始文本段落数量为9段,则循环次数为3次;若二进制编码长度为4位,段落数据为9段,则循环次数为2次,以此类推。

103、认证平台接收数据持有端发送的水印文本,并生成水印文本的完整水印,该完整水印包括水印索引、文本持有方特征信息和水印文本特征信息;

本实施例中,数据持有端将已嵌水印的水印文本和基本信息发送给认证平台,其中该基本信息包括文本持有方特征信息和水印文本特征信息。具体地,该文本持有方特征信息可包括个人姓名/单位名称、身份证号/统一社会信用代码、个人电话/单位电话等信息。该水印文本特征信息可包括文本题目、内容摘要、字符数、文本嵌入的水印索引数量等信息,还可根据现实实际需要包括其他信息,具体此处不做限定。认证平台接收到该水印文本和基本信息后,生成该水印文本的完整水印,该完整水印为针对于该水印文本的唯一永久的水印。需要说明的是,该完整水印包括上述信息,还可包括其他信息,例如水印文本,具体此处不做限定。

104、认证平台调用区块链接口,通过智能合约对完整水印进行区块链上链存证。

本实施例中,认证平台通过读写区块链接口,调用智能合约将该水印文本的完整水印存储到区块链平台的区块链节点中,以将该完整水印进行上链存证。

本实施例中,通过将文本水印设置为水印索引和完整水印的方式,在文本中利用文本段落间的段落字符数量特征,在不改变文本语义的基础上,针对文本内容做小量化的增加/删改,例如可以通过增删一个或奇数个字符,使得文本的段落间奇偶性与水印索引的二进制编码相对应,修改更灵活、易用,适用于简单的语义修改和符号增减,也适用于任何语言文字,同时还可以保持文本语句的完整性、流畅性,另外,还相当于在修改后的文本中嵌入了水印索引,可使得攻击者无处搜寻水印,提高水印文本的隐蔽性。同时,水印索引在水印文本中循环多次重复,即使文本被篡改,只要存在少量未被篡改的连续段落,就会存在完整水印,提高了水印文本的鲁棒性。此外,在区块链上存储了与水印索引对应的完整水印,利用区块链技术的防篡改机制和可追溯机制,可对完整水印进行保护和追溯,提高了水印文本的安全性和可信任度。

为使本申请提供的基于区块链的文本水印嵌入方法更加的明显易懂,下面对本申请提供的基于区块链的文本水印嵌入方法进行详细说明:

请参阅图2,图2为本申请提供的基于区块链的文本水印嵌入方法另一个实施例,该方法包括:

201、数据持有端向认证平台提出原始文本的注册申请,该注册申请携带有文本持有端特征信息和原始文本;

本实施例中,数据持有端向认证平台提出注册申请,在提出的注册申请内容中包括文本持有端特征信息和原始文本。需要注意的是,该数据持有端即为原始文本的文本数据拥有方或版权方。文本持有端特征信息即数据拥有方的特征信息,具体可包括个人姓名/单位名称、身份证号/统一社会信用代码、个人电话/单位电话、验证口令等信息。

202、认证平台对原始文本进行注册查重;

可选地,认证平台接收到原始文本后,对原始文本进行查重,以避免重复注册。具体地,认证平台可以通过MD5哈希算法计算该原始文本的第一MD5哈希值,然后以此第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,若在数据库中查询到该第一MD5哈希值,则确认该原始文本已注册,终止后续流程;若未搜索到,则确定该原始文本尚未注册,执行步骤203。需要说明的是,如何通过MD5哈希算法计算文本哈希值的计算方法为现有技术,具体此处不做赘述。此外,该MYSQL数据库中存储有已注册文本或者已嵌入水印文本的哈希值以及已嵌入水印文本所对应的原始文本的哈希值。

或者,认证平台提取原始文本的段落统计特征,该段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征。然后,认证平台将该段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断原始文本是否已注册。具体地,可在MYSQL数据库中存储有已嵌入水印索引的水印文本及其水印索引。由于已嵌文本的水印索引在水印文本中循环嵌入,因此认证平台在MYSQL数据库中查询存储的水印索引,并将该水印索引与原始文本的段落统计特征中的段落奇偶性进行比对,若比对结果为水印索引与段落统计特征全部匹配成功或比对结果为水印索引与段落统计特征大部分匹配成功且多次重复,仅存在部分编码不连续,则确定该原始文本已注册,终止后续流程,若确定该原始文本未注册,则执行步骤203。

或者,认证平台也可以通过MD5哈希算法计算该原始文本的第一MD5哈希值,然后以此第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,若在数据库中查询到该第一MD5哈希值,则确认该原始文本已注册,终止后续流程;若未搜索到,则认证平台提取原始文本的段落统计特征,该段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征。然后,认证平台将该段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断原始文本是否已注册,若比对成功,则确定该原始文本已注册,终止后续流程,若比对未成功,则确定该原始文本未注册,执行步骤203。通过MD5哈希值和水印索引双重注册查重,进一步确保该原始文件未注册,降低重复注册的可能性。

203、当根据查重结果确定原始文本尚未注册时,认证平台基于注册申请的注册编号生成原始文本的水印索引;

本实施例中,当根据查重结构确定该原始文本尚未注册时,认证平台根据该注册申请生成一个注册编号,完成注册流程。然后认证平台根据该注册编号生成原始文本的水印索引。具体地,该注册编号为二进制编码形式,且该注册编号的生成方式为历史上已注册过的最大注册编号+1。从而该注册编号即为原始文本的水印索引,即该水印索引的二进制编码为平台已注册最大二进制编码+1。例如,若该平台已注册最大二进制编码为011,则该原始文本的水印索引为100(即011+1)。需要注意的是,该注册编号可从1位二进制码按顺序递增,例如,若当前已注册的最大注册编号为三位,比如111,则当需要为新原始文本生成水印索引时,该水印索引为最大注册编号+1,即该水印索引的注册编号对应二进制码为四位,即111+1=1000,依次类推。或者,也可设置该注册编号的二进制编码不为最大历史注册编号+1,利用数据库的强大计算功能,为新注册的原始文本生成一个独一无二的注册编号,该注册编号即为新注册的原始文本的水印索引。或者还可以根据其他方式生成水印索引,具体此处不做限定。

204、认证平台统计原始文本的段落数量和每个段落对应的段落字符数,并确定每个段落的段落字符数的字符数量奇/偶性;

本实施例中,认证平台打开原始文本文件,计算并记录原始文本的段落数量总数以及每个段落对应的段落字符数。然后根据每个段落的段落字符数确定该段落的字符数量奇偶性。

205、认证平台将二进制编码和原始文本中的所有段落进行比对,确定待修改段落编号序列,并向数据持有端发送该待修改段落编号序列,该待修改段落编号序列为段落字符数的字符数量奇/偶性与二进制编码不对应的段落编号所生成的序列;

本实施例中,认证平台将水印索引的二进制编码和原始文本中的所有段落进行依次比对,凡是某段落的段落字符数的奇偶性与水印索引的二进制编码不一致的,该段落编号记录下来,最后汇总这些段落编号,形成不一致段落的待修改段落编号序列,返回给数据持有端。例如,设置段落字符数量偶数对应二进制编码数值“0”,段落字符数量奇数对应数值“1”。若确定原始文本有9个段落,当原始文本9个段落的奇偶性分别为偶奇偶偶偶奇偶奇奇,水印索引为011,则确定与水印索引不对应的段落为第3段落,第5段落,确定待修改段落编号序列为3/5。

206、数据持有端在不改变原始文本语义的前提下,对原始文本进行水印索引的循环嵌入,该循环嵌入为根据待修改段落编号序列对原始文本的相应段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与二进制编码对应,从而将水印索引循环嵌入至文本中得到水印文本,循环次数取决于水印索引的二进制编码长度和原始文本的段落数量;

本实施例中,数据持有端接收到待修改段落编号序列后,打开原始文本文件,根据该待修改段落编号序列,在不改变文本语义的前提下,依次对待修改段落编号序列中的段落增加或删除一个字符或奇数个字符,以使得文本中每个段落的段落字符数量的奇偶性与水印索引的二进制编码一致,而且多次循环重复直至文本段落末尾,从而在文本中连续嵌入多个水印索引。例如,若确定与水印索引不对应的待修改段落编号序列为3/5,则根据该待修改段落编号序列3/5和水印索011将第3段的段落字符数量奇偶性通过增/删修改为奇数,第5段修改为奇数,以使得9个段落都对应上水印索引的二进制编码011,即9个段落的奇偶性为偶奇奇偶奇奇偶奇奇,相当于循环嵌入了3个水印索引011。其中,循环次数取决于水印索引的二进制编码长度和原始文本的段落数量。

207、认证平台接收数据持有端发送的水印文本,并通过MD5哈希算法计算原始文本的第一MD5哈希值和水印文本的第二MD5哈希值;

可选地,本实施例中,认证平台接收数据端发送的已嵌入水印索引的水印文本。然后通过MD5哈希算法计算该水印文本的第二MD5哈希值。该第二MD5哈希值可作为水印文本的特征标识,用于识别水印文本。同时,认证平台还通过MD5哈希算法计算原始文本的第一MD5哈希值。该第一MD5哈希值可用于识别原始文本。

208、认证平台基于水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称生成水印文本的完整水印,水印文本特征信息包括第一MD5哈希值和第二MD5哈希值;

本实施例中,认证平台根据水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称生成该水印文本的完整水印。其中,该水印文本特征信息包括文本题目、内容摘要、段落数量、字符数量、第二MD5哈希值、第一MD5哈希值以及水印索引数量等。

209、认证平台将完整水印的内容按照键值对的形式存储至MYSQL数据库中;

可选地,本实施例中,认证平台将完整水印中的内容按键值对的形式保存在数据库中。例如,当完整水印包括水印索引、文本持有方特征信息和水印文本特征信息时,将水印索引、文本持有方法特征信息和水印文本特征信息按键值对的形式保存在数据库中。又例如,当完整水印包括水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称时,将该即水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称按照键值对的形式保存在数据库中。需要说明的是,该MYSQL数据库为设置在认证平台上的数据库。在按照键值对形式对上述内容进行存储时,本实施例中,对上述内容的存储顺序不做限定。

通过在数据库中保存水印索引、第一MD5哈希值和第二MD5哈希值,可以提升认证平台的整体查询效率,无需调用区块链接口查询区块链。且认证平台不保存原始文件本身,只保存文件的MD5哈希值,缓解了存储压力,同时降低了文本文件在认证平台上泄露的可能性。

210、认证平台调用区块链接口,通过智能合约对完整水印进行区块链上链存证。

本实施例中的步骤210与前述图1所示实施例中的步骤104类似,具体此处不做赘述。

本实施例中,水印索引的嵌入利用了原始文本的段落统计特征,通过段落间的奇偶性关系表征水印索引的嵌入,无需占用额外的水印空间,且攻击者无处搜寻水印,提高了水印的隐蔽性。且水印文本的水印索引嵌入通过数据持有端在不改变语义的前提下,对字符的增加/删除一个或奇数个便能完成,修改更灵活、易用,适用于任何国家的语言和方言。而且水印索引为简短的二进制编码,同时文本中循环多次嵌入水印索引,即使文本被严重篡改,只要存在少量未被篡改的连续段落以形成一个完整水印索引就能进行文本水印检测,提高了水印的鲁棒性。最后,还将与水印索引对应的完整水印上传至区块链进行存储,利用区块链的防篡改、可追溯性,提高了水印的安全性和可信度。

上述对本申请提供的基于区块链的文本水印嵌入方法进行了说明,下面对本申请提供的基于区块链的文本水印溯源方法进行说明:

在水印文本流通后,即在对原始文本进行水印嵌入得到水印文本后,数据持有端可与认证平台进行通信,对待溯源文本进行水印检测、溯源。其中,水印文本的水印嵌入可通过前述文本水印嵌入方法嵌入。

请参阅图3,图3为本申请提供的基于区块链的文本水印溯源方法一个实施例,该方法包括:

301、数据持有端向认证平台提出溯源申请,并向认证平台发送待溯源文本和水印索引;

本实施例中,当需要对待溯源文本进行溯源时,数据持有端向认证平台提出溯源申请,并将获取到的待溯源文件和注册时留存的水印索引发送到认证平台。

302、认证平台基于水印索引对待溯源文本进行水印检测,若检测成功,则调用区块链接口,通过智能合约读取区块链上的完整水印;

本实施例中,认证平台根据数据持有端提供的水印索引对待溯源文件进行水印检测。具体地,将水印索引与待溯源文件的段落字符数量奇偶性依次进行对应匹配,若匹配且多次重复,则检测成功,认证平台读取区块链接口,通过智能合约读取区块链上该水印索引对应的完整水印。进一步地,在水印检测成功后,还可根据第三MD5哈希值在区块链上进行查询,从而进一步确定该待溯源文本的完整水印。例如,若该待溯源文本有6个段落,当根据段落奇偶性确定二进制编码为011011时,若不确定其对应的是循环两次的水印索引011还是单个水印索引011011时,还可根据待溯源文件的第三MD5哈希值进行查询,确定最终的完整水印。

303、认证平台根据水印索引判断该待溯源文件是否存在内容篡改,若是,则执行步骤304,若否,则执行步骤305;

本实施例中,认证平台还可根据水印索引判断该待溯源文件是否存在内容篡改,具体地,将该水印索引与待溯源文件的段落奇偶性进行依次对比,若存在二进制编码与段落奇偶性对应不上的段落,换句话说,当存在部分二进制编码不连续时,则确定该待溯源文件存在内容篡改,执行步骤304;若二进制编码与段落奇偶性完全对应,则确定该待溯源文件不存在内容篡改,执行步骤305。

304、认证平台向数据持有端反馈第一溯源结果,该第一溯源结果包括篡改提示和完整水印;

本实施例中,认证平台确定被篡改的段落,并向数据持有端反馈相应的篡改提示和完整水印。具体地,向数据持有端反馈篡改提示、文本持有端特征信息(个人姓名/单位名称,身份证号/统一社会信用代码,个人电话/单位电话,验证口令等信息)、水印文本特征信息(文本题目、内容摘要、字符数、段落数、水印索引数量、第一MD5哈希值、第二MD5哈希值等信息)、注册日期、水印索引和认证平台名称等信息。以使得数据持有端可根据上述信息对待溯源文本进行溯源确认,为后续维权、定责等提供依据。

305、认证平台向数据持有端反馈第二溯源结果,该第二溯源结果包括完整水印。

本实施例中,认证平台向数据持有端反馈待溯源文本的完整水印,包括文本持有端特征信息(个人姓名/单位名称,身份证号/统一社会信用代码,个人电话/单位电话,验证口令等信息)、水印文本特征信息(文本题目、内容摘要、字符数、段落数、水印索引数量、第一MD5哈希值、第二MD5哈希值等信息)、注册日期、水印索引和认证平台名称等信息,以使得数据持有端可根据上述信息对待溯源文本进行溯源确认,为后续维权、定责等提供依据。

本实施例中,基于水印索引对待溯源文本进行水印检测,对待溯源文本进行快速溯源,同时还可判断该待溯源文本的内容是否被篡改,对后续水印文本在流通后的溯源和维权提供了有效依据和保障,提高了用户体验。

为使本申请提供的基于区块链的文本水印溯源方法更加的明显易懂,下面对本申请提供的基于区块链的文本水印溯源方法进行详细说明:

请参阅图4,图4为本申请提供的基于区块链的文本水印溯源方法一个实施例,该方法包括:

401、数据持有端向认证平台提出溯源申请,并向认证平台发送待溯源文本和水印索引;

本实施例中的步骤401与前述图3所示实施例中的步骤301类似,具体此处不做赘述。

402、认证平台根据MD5哈希算法计算待溯源文本的第三MD5哈希值,以第三MD5哈希值为查询关键字在MYSQL数据库中进行查询,并判断是否查询成功;若查询成功,则执行步骤406;若查询未成功,则执行步骤403;

本实施例中,认证平台根据该待溯源文本的第三MD5哈希值在MYSQL数据库中进行快速查询,其中,MYSQL数据库中存储有已注册文本或者已嵌入水印文本的哈希值以及已嵌入水印文本所对应的原始文本的哈希值。判断是否在数据库中查询到第三MD5哈希值,若查询成功,则执行步骤406,若查询未成功,则执行步骤403。

本实施例中,通过在数据库中进行MD5哈希值查询,当查询成功时,直接根据查询结果向数据持有端反馈待溯源文本的完整水印,以使得数据持有端可根据上述信息对待溯源文本进行溯源确认,为后续维权、定责等提供依据,可加快查询速度,从而提高认证平台的查询效率。

403、认证平台基于水印索引对待溯源文本进行水印检测,若检测成功,则调用区块链接口,通过智能合约读取区块链上的完整水印;

404、认证平台根据水印索引判断该待溯源文件是否存在内容篡改,若是,则执行步骤405,若否,则执行步骤406;

405、认证平台向数据持有端反馈第一溯源结果,该第一溯源结果包括篡改提示和完整水印;

406、认证平台向数据持有端反馈第二溯源结果,该第二溯源结果包括完整水印。

本实施例中的步骤403-406与前述图3所示实施例中的步骤302-305类似,具体此处不做赘述。

本实施例中,在需要对待溯源文本进行溯源时,先从数据库中进行MD5哈希值查询,以加快查询进度。当在数据库中未查询到相应的MD5哈希值时,再基于水印索引对待溯源文本进行水印检测,对待溯源文本进行快速溯源,同时还可判断该待溯源文本的内容是否被篡改,对后续水印文本在流通后的溯源和维权提供了有效依据和保障,提高了用户体验。

上述对本申请提供的基于区块链的文本水印嵌入方法、溯源方法进行了说明,下面对本申请提供的基于区块链的文本水印嵌入与溯源系统进行说明:

请参阅图5,图5为本申请提供的基于区块链的文本水印嵌入与溯源系统一个实施例,该系统包括:

认证平台501和数据持有端502,认证平台501和数据持有端502通信连接;

认证平台501用于生成原始文本的水印索引,并向数据持有端502发送水印索引,该水印索引为二进制编码;

数据持有端502用于在不改变原始文本语义的前提下,对原始文本进行水印索引的循环嵌入,该循环嵌入为对原始文本的段落进行增加/删除字符修改,以使得修改后的的文本段落的字符数量奇/偶性与二进制编码对应,从而将水印索引循环嵌入至文本中得到水印文本,循环次数取决于水印索引的二进制编码长度和原始文本的段落数量;

认证平台501还用于接收数据持有端502发送的水印文本,并生成水印文本的完整水印,该完整水印包括水印索引、文本持有方特征信息和水印文本特征信息;

认证平台501还用于调用区块链接口,通过智能合约对完整水印进行区块链上链存证;

数据持有端502还用于向认证平台501提出溯源申请,并向认证平台501发送待溯源文本和水印索引;

认证平台501还用于基于水印索引对待溯源文本进行水印检测,若检测成功,则调用区块链接口,通过智能合约读取区块链上的完整水印;

认证平台501还用于根据水印索引判断待溯源文件是否存在内容篡改;

若是,则向数据持有端502反馈第一溯源结果,该第一溯源结果包括篡改提示和完整水印;

若否,则向数据持有端502反馈第二溯源结果,该第二溯源结果包括完整水印。

可选地,认证平台501还用于统计原始文本的段落数量和每个段落对应的段落字符数,并确定每个段落的段落字符数的字符数量奇/偶性;

认证平台501还用于将二进制编码和原始文本中的所有段落进行比对,确定待修改段落编号序列,并向数据持有端502发送该待修改段落编号序列,该待修改段落编号序列为段落字符数的字符数量奇/偶性与二进制编码不对应的段落编号所生成的序列;

数据持有端502具体用于在不改变原始文本语义的前提下,对原始文本进行水印索引的循环嵌入,该循环嵌入为根据待修改段落编号序列对原始文本的相应段落进行增加/删除字符修改,以使得修改后的文本段落的字符数量奇/偶性与二进制编码对应,从而将水印索引循环嵌入至文本中得到水印文本,循环次数取决于水印索引的二进制编码长度和原始文本的段落数量。

可选地,数据持有端502还用于向认证平台501提出原始文本的注册申请,该注册申请携带有文本持有端特征信息和原始文本;

认证平台501具体用于基于注册申请的注册编号生成原始文本的水印索引,该注册编号为二进制编码形式,且该注册编号为平台已注册最大二进制编码加1。

可选地,认证平台501还用于对原始文本进行注册查重;当根据查重结果确定原始文本尚未注册时,基于注册申请的注册编号生成原始文本的水印索引。

可选地,认证平台501具体用于通过MD5哈希算法计算原始文本的第一MD5哈希值,以第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,该MYSQL数据库中存储有已注册文本的MD5哈希值以及已注册文本对应的原始文本的MD5哈希值;

认证平台501具体用于提取原始文本的段落统计特征,该段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将该段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断该原始文本是否已注册

认证平台501通过MD5哈希算法计算原始文本的第一MD5哈希值,以第一MD5哈希值为查询关键字在MYSQL数据库中进行查询,当查询未成功时,认证平台501再提取原始文本的段落统计特征,段落统计特征为由原始文本每个段落的字符数量奇偶性组合形成的特征;将段落统计特征与已注册文本的水印索引进行比对,根据比对结果判断原始文本是否已注册。

可选地,认证平台501还具体用于通过MD5哈希算法计算原始文本的第一MD5哈希值和水印文本的第二MD5哈希值;

基于水印索引、文本持有方特征信息、水印文本特征信息、注册日期以及认证平台名称生成水印文本的完整水印,该水印文本特征信息包括第一MD5哈希值和第二MD5哈希值。

可选地,认证平台501还用于将完整水印的内容按照键值对的形式存储至MYSQL数据库中。

可选地,认证平台501还用于根据MD5哈希算法计算待溯源文本的第三MD5哈希值,以第三MD5哈希值为查询关键字在MYSQL数据库中进行查询,并判断是否查询成功;若查询成功,则向数据持有端502反馈第二溯源结果,该第二溯源结果包括完整水印;若查询未成功,则执行基于所述水印索引对所述待溯源文本进行水印检测的步骤。

本实施例系统中,各单元所执行的功能与前述图1、图2、图3或图4所示方法实施例中的步骤对应,具体此处不再赘述。

本实施例中,通过认证平台501和数据持有端502的交互,文本的水印嵌入可通过增加或删除任何一个字符或奇数个字符来修改完成,修改更灵活、易用,适用于语义修改和简单的符号增减,也适用于任何语言文字,使得可在文本语义不变的基础上保持文本语句完整性、流畅性。同时水印索引的嵌入利用文本段落的段落字符数量的奇偶性特征,在水印索引嵌入时不需要占用额外的冗余空间。在文本上嵌入水印索引,而在区块链上存储对应的完整水印,不仅突破了水印容量的限制,还可使得攻击者无处搜寻水印,提高水印的隐蔽性。此外,本实施例中,在文本中循环多次嵌入了水印索引,即使文本被严重篡改,只要存在少量未被篡改的连续段落以形成一个完整水印索引就能进行文本水印检测,提高了水印的鲁棒性。同时,认证平台501还将与水印索引对应的完整水印上传至区块链进行存储,利用区块链的防篡改、可追溯性,提高了水印的安全性和可信度。

此外,认证平台501还可基于水印索引对待溯源文本进行水印检测,对待溯源文本进行快速溯源,同时判断该待溯源文本的内容是否被篡改,对后续水印文本在流通后的溯源和维权提供了有效依据和保障,提高了用户体验。

本申请还提供了一种基于区块链的文本水印嵌入与溯源装置,请参阅图6,图6为本申请提供的基于区块链的文本水印嵌入与溯源装置一个实施例,该装置包括:

处理器601、存储器602、输入输出单元603、总线604;

处理器601与存储器602、输入输出单元603以及总线604相连;

存储器602保存有程序,处理器601调用程序以执行如上任一基于区块链的文本水印嵌入方法。

本申请还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,当程序在计算机上运行时,使得计算机执行如上任一基于区块链的文本水印嵌入方法或文本水印溯源方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 一种基于多链互联区块链网络的食品快速溯源系统及方法
  • 一种基于区块链的酒类产品溯源防伪系统和方法
  • 一种基于区块链的食品药品溯源系统及方法
  • 一种基于区块链技术的动力电池梯次利用溯源方法及其系统
  • 一种基于实体及文本联合嵌入的实体关联度衡量方法、系统及存储介质
  • 一种基于字符间距编码的双重水印嵌入的文本水印方法
  • 一种基于字符间距编码的双重水印嵌入的文本水印方法
技术分类

06120115630328