首页> 中国专利> 基于Unicode编码的文本水印嵌入及提取方法

基于Unicode编码的文本水印嵌入及提取方法

摘要

本发明公开了一种基于Unicode编码的文本水印嵌入及提取方法,嵌入方法包括:1)将水印信息的每个字符用Unicode编码表示,进而形成一个二进制码串;2)将二进制码串分组并用不可见的Unicode控制字符替换;3)将形成的Unicode控制字符串插入到文本中,实现水印的嵌入。提取方法包括:1)找出被检测文本中的特定Unicode控制字符,去除干扰后得到水印部分的Unicode字符串;2)按照一定规则将这些字符串还原为二进制代码;3)按照Unicode编码规则解码,得到纯文本,实现水印的提取。该方法对文本格式和可见内容不做任何改变,具有良好的隐蔽性和鲁棒性,同时本方法高效简单,易于实现。

著录项

  • 公开/公告号CN106570356A

    专利类型发明专利

  • 公开/公告日2017-04-19

    原文格式PDF

  • 申请/专利权人 南京理工大学;

    申请/专利号CN201610939806.6

  • 发明设计人 张震宇;李千目;戚湧;王印海;

    申请日2016-11-01

  • 分类号G06F21/16(20130101);G06F17/22(20060101);

  • 代理机构32203 南京理工大学专利中心;

  • 代理人薛云燕

  • 地址 210094 江苏省南京市玄武区孝陵卫200号

  • 入库时间 2023-06-19 01:56:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-31

    著录事项变更 IPC(主分类):G06F21/16 变更前: 变更后: 申请日:20161101

    著录事项变更

  • 2020-01-31

    授权

    授权

  • 2017-05-17

    实质审查的生效 IPC(主分类):G06F21/16 申请日:20161101

    实质审查的生效

  • 2017-04-19

    公开

    公开

说明书

技术领域

本发明涉及文本的版权保护、信息隐藏技术领域,特别是一种基于Unicode编码的文本水印嵌入及提取方法。

背景技术

现今,计算机网络的相关技术为人们提供了无穷无尽的资源,也方便了人们的日常生活。人们通过浏览相关的Web网页来获取信息已经成为当今社会的一种主旋律。相应地,在纷繁复杂的信息资源当中,版权的私自盗用、信息渠道的安全性等各类问题层不出穷。为此制定出一种新的文本版权保护、信息隐蔽方案迫在眉睫。

现如今的文本水印方法主要集中于两大类:基于文本格式的文本水印和基于自然语言的文本水印。前者通过修改行间距、字间距或者对字符字体的特征属性进行微调达到插入及隐蔽信息的目的,但其依赖文本的高级格式,易在拷贝过程中损失。后者是通过语法分析,进行语序变换以达到相应目的,相对于基于文本格式的水印嵌入方法更具鲁棒性与隐蔽性,但受制于目前有限的技术及中文句法的相对复杂性,使得此方法可能会破坏文本的内容和结构,使语句产生歧义。另外,由于水印信息受制于文本篇幅,这也让其嵌入信息容量受到限制。

发明内容

本发明目的在于提供一种具有不易损失且具有良好鲁棒性的基于Unicode编码的文本水印嵌入及提取方法。

实现本发明目的的技术解决方案为:一种基于Unicode编码的文本水印嵌入方法,包括

步骤1,将水印信息的每个字符用Unicode编码并替换,形成一个不可见Unicode码串;

步骤2,查找待嵌入文本中的句号“。”和“.”,将水印重复添加到句号“。”或“.”之前,实现水印的嵌入。

进一步地,步骤1中所述Unicode编码采用UTF-16格式,每个字符为4位十六进制数,形成一个十六进制的Unicode码串。

进一步地,步骤1中所述将水印信息的每个字符用Unicode编码并替换,形成一个不可见Unicode码串,包括如下步骤:

A)将版权人的版权信息转化为二进制数据,其长度为L bytes;

B)将版权信息的二进制数据转换为比特位串,长度为L*8bits;

C)将比特位串分成2bit一组的小组,共得到L*4组2bits比特位串;

D)将每组的比特位串以00,01,10,11对应Unicode字符串&#8234,‬&#8235,‬&#8237,‬&#8238,‬的规则进行编码;

E)将编码完成的字符串以原来二进制位的顺序,重新组合成一长串字符串,作为不可见水印。

一种基于Unicode编码的文本水印提取方法,根据所述的基于Unicode编码的文本水印嵌入方法,提取水印信息包括如下步骤:

步骤1,在文本中检索由值为0x202a、0x202b、0x202c、0x202d、0x202e的Unicode控制字符组成的长度为8的倍数的字符串;

步骤2,检查检索到的字符串,去除重复的字符串,得到水印部分的Unicode字符串;

步骤3,将步骤2所得到的水印部分的Unicode字符串,按照0x202a 0x202c对应00;0x202b 0x202c对应01;0x202d 0x202c对应10;0x202e 0x202c对应11的规则进行替换,得到一个二进制序列;

步骤4,将水印数据以Unicode编码方式解码,即可得到原始水印数据。

进一步地,步骤2所述检查检索到的字符串,去除重复的字符串,得到水印部分的Unicode字符串,具体如下:

位置序号从0开始,检查字符串内奇数位置上的Unicode字符是否为U+202C:

如果不是,则丢弃该字符串;如果是,则保留该字符串;

检查字符串内偶数位置上的Unicode字符是否为U+202C:

如果是,则丢弃该字符串;如果不是,则保留该字符串。

进一步地,步骤3所述将步骤2所得到的水印部分的Unicode字符串,按照0x202a0x202c对应00;0x202b 0x202c对应01;0x202d 0x202c对应10;0x202e 0x202c对应11的规则进行替换,得到一个二进制序列,具体为:

将步骤2所得到的水印部分的Unicode字符串,从前往后每8个字符为一组,每个组内根据0x202a 0x202c对应00;0x202b 0x202c对应01;0x202d 0x202c对应10;0x202e0x202c对应11的规则进行替换,还原成二进制位序列,再以由高位到低位的顺序拼接为一个字节,将每个组得出的字节按从前往后的顺序拼接成一段二进制数据。

本发明与现有技术相比,其显著优点为:(1)利用不可见Unicode控制字符来嵌入水印,对文本格式与可见内容不产生任何改变,对原文本的显示不会产生丝毫影响,水印嵌入没有任何痕迹,不易被察觉和发现,有很好的隐蔽性;(2)对文本进行格式改变、段落调整、部分修改都不会影响水印的正确提取,具有良好的鲁棒性;(3)嵌入与提取的方法简单高效,易于实现。

附图说明

图1是本发明水印信息用Unicode编码并替换的过程示意图。

具体实施方法

下面对本发明方案进行详细说明。

因为生成和提取时使用的是不同的Unicode表示方式,为了便于理解html中Unicode表示形式、Unicode编码和Unicode对应的十六进制数的关系,给出表1。

表1不可见Unicode控制字符

名称Unicode编号HTML代码十六进制数Left-To-Right EmbeddingU+202A‪0x202aRight-To-Left EmbeddingU+202B‫0x202bPop Directional FormattingU+202C‬0x202cLeft-To-Right OverrideU+202D‭0x202dRight-To-Left OverrideU+202E‮0x202e

本发明基于Unicode编码的文本水印嵌入方法,包括以下步骤:

步骤1,将水印信息的每个字符用Unicode编码并替换,形成一个不可见Unicode码串;

所述Unicode编码采用UTF-16格式,每个字符为4位十六进制数,最终形成一个不可见的Unicode码串,包括如下步骤:

A)将版权人的版权信息转化为二进制数据,其长度为L bytes;

B)将版权信息的二进制数据转换为比特位串,长度为L*8bits;

C)将比特位串分成2bit一组的小组,共得到L*4组2bits比特位串;

D)将每组的比特位串以00,01,10,11对应Unicode字符串&#8234,‬&#8235,‬&#8237,‬&#8238,‬的规则进行编码;

即00对应‪‬01对应‫‬10对应‭‬11对应‮‬的规则进行替换形成新的字符串,该字符串在Unicode编码格式中不可见;

E)将编码完成的字符串以原来二进制位的顺序,重新组合成一长串字符串,作为不可见水印。

步骤2,查找待嵌入文本中的句号“。”和“.”,将水印重复添加到句号“。”或“.”之前,实现水印的嵌入。

一种基于Unicode编码的文本水印提取方法,根据所述的基于Unicode编码的文本水印嵌入方法,提取水印信息包括如下步骤:

步骤1,在文本中检索由值为0x202a、0x202b、0x202c、0x202d、0x202e的Unicode控制字符组成的长度为8的倍数的字符串。

步骤2,检查检索到的字符串,去除重复的字符串,得到水印部分的Unicode字符串,具体如下:位置序号从0开始,检查字符串内奇数位置上的Unicode字符是否为U+202C:如果不是,则丢弃该字符串;如果是,则保留该字符串;检查字符串内偶数位置上的Unicode字符是否为U+202C:如果是,则丢弃该字符串;如果不是,则保留该字符串。

步骤3,将步骤2所得到的水印部分的Unicode字符串,按照0x202a 0x202c对应00;0x202b 0x202c对应01;0x202d 0x202c对应10;0x202e 0x202c对应11的规则进行替换,得到一个二进制序列,具体为:将步骤2所得到的水印部分的Unicode字符串,从前往后每8个字符为一组,每个组内根据0x202a 0x202c对应00;0x202b 0x202c对应01;0x202d 0x202c对应10;0x202e 0x202c对应11的规则进行替换,还原成二进制位序列,再以由高位到低位的顺序拼接为一个字节,将每个组得出的字节按从前往后的顺序拼接成一段二进制数据。

步骤4,将水印数据以Unicode编码方式解码,即可得到原始水印数据。

所述的文本水印嵌入方法将水印信息编码为不可见的Unicode控制字符串,并将该字符串添加到文本中,文本显示不受任何影响。

根据所述文本水印嵌入方法,提出一种相应的水印提取方法,将带有水印信息的编码找出,并还原为二进制码串,按照Unicode编码规则得到水印信息。

实施例1

本实施例提供基于不可见Unicode编码的文本水印嵌入方法,包括如下步骤:1)将水印信息的每个字符用UTF-16格式的Unicode编码表示,每个字符为4位十六进制数,形成一幅十六进制的Unicode码串。2)将Unicode码串中的每个4位十六进制以从高位到低位的顺序分为8组2bit的二进制序列。3)将每组2bit二进制序列以一定对应规则替换为相应的不可见Unicode控制字符串。4)将替换后组合成的不可见Unicode控制字符串插入到目标文本所有“。”和“.”之前。

进一步地,步骤2)的具体实现步骤如下:将4位十六进制数转换为2进制数,高位用0填充形成长度为16的01序列,按照高位在前,低位在后的顺序排列为只有01组成的字符串。最后按照十六进制数的顺序将这些01字符串连接起来,形成表示全部水印数据的01字符串。步骤3)的具体步骤如下:将步骤2)所得的01字符,从前往后以2个字符一组进行分组。再以映射规则00-‪‬01-‫‬10-‭‬11-‮‬将每组的01序列进行替换,组成一个长串的不可见Unicode控制字符串。步骤2)和步骤3)的编码和替换过程如图1所示。

以下给出生成不可见水印字符串的代码和注释:

为了表示简单,易于理解,下面使用js脚本生产在html环境下能正确显示的水印,函数传入参数为待处理的文本水印,返回值为处理完毕的不可见水印字符串。核心代码如下:

将水印添加到“。”和“.”之前,可以采用简单的查找并插入的方式实现。最后可得到嵌入水印的文本文件。

根据上述基于不可见Unicode编码的文本水印嵌入方法,提出一种基于不可见Unicode编码的文本水印的提取方法,其具体实施方法为:A)在文本中搜索由值为0x202a、0x202b、0x202c、0x202d、0x202e的Unicode控制字符组成的连续的长度为8的倍数的字符串。B)检查A)得到的字符串集合中串的合法性,并去除重复的串。C)将步骤B)处理后剩下的字符串,按相应的映射规则还原为二进制数据。D)将二进制数据则以Unicode编码方式解码,得到原始水印数据。

进一步的,步骤B)的具体实施步骤如下:针对集合中的每个字符串,首先检查字符串偶数位置上(位置序号从0开始)的字符,若为U+202C,则丢弃该字符串,其次检查字符串奇数位置上的字符,若不为U+202C,则丢弃该字符串。最后去除字符串集合中重复的串。步骤C)的具体实施步骤如下:针对B)步骤处理过的集合中的每个字符串,从前往后每2个字符一组,以映射规则0x202a 0x202c-00;0x202b 0x202c-01;0x202d 0x202c-10;0x202e0x202c-11,将Unicode控制字符串转化为只包含01的字符串。从前往后以8个01字符为一组,以高位在前低位在后的顺序还原为1byte的二进制数据,最后以原有顺序拼接为一条二进制数据。

由于本方法设计的水印具有可加性,一篇文本中可以添加多次水印,后加的水印将以字符串拼接的方式显示在之前的水印之后,水印的提取方法考虑到了这种情况。

一下将给出实现水印校验解码的主要操作的代码和注释:

上述函数实现了水印解码的核心步骤,如果解码成功则返回水印字符串,不成功则返回null。

综上所述,本发明利用不可见Unicode控制字符来嵌入水印,对文本格式与可见内容不产生任何改变,对原文本的显示不会产生丝毫影响,水印嵌入没有任何痕迹,不易被察觉和发现,有很好的隐蔽性;其次,对文本进行格式改变、段落调整、部分修改都不会影响水印的正确提取,具有良好的鲁棒性;并且,嵌入与提取的方法简单高效,易于实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号