发明名称 一种基于同义词替换的文本可恢复水印方法和装置
摘要 本发明涉及一种基于同义词替换的文本可恢复水印方法和装置,属于计算机文本版权保护技术领域。文本可恢复水印是一种嵌入秘密信息到文本中,并且在提取相应水印信息的同时恢复原始文本的技术。本发明所述的方法及装置通过将文本中有同义词的词模拟成像素值对,利用整数可逆变换,嵌入或提取版权信息,并在提取版权信息的同时,恢复原始文本。本发明的优点是在提取版权信息的同时恢复原始文本。本发明能够在军事、法律和文学等对文本内容要求甚高的领域中,既保证文档的版权,又不会导致合法用户的歧义理解。
申请公布号 CN102194205B 申请公布日期 2013.05.22
申请号 CN201010127144.5 申请日期 2010.03.18
申请人 南京信息工程大学 发明人 付章杰;孙星明;刘志杰;刘玉玲
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 代理人
主权项 1.一种基于同义词替换的文本可恢复水印方法,其特征在于,发送方与接收方拥有共同的密钥,并且共享所需的同义词库和信息编码的对应关系;版权信息的隐藏方法是将文本中有同义词的词的同义词序号转换来的整数对,根据需要嵌入的版权信息,利用一个整数可逆变换转换成新的整数对,将转换而来的整数对再换成相应的以该整数对元素值为同义词序号的词;版权信息的提取方法是用隐藏信息时采用的整数可逆变换的逆变换将隐藏信息提取出来,提取出来的隐藏信息中包含版权信息和用于恢复原始文本的信息,利用用于恢复原始文本的信息,将原始文本恢复出来; 将文本中有同义词的词的同义词序号形成的整数列转换成像素值的方法如下: 输入:文本T,同义词库DB,嵌入层L; 输出:同义词列表synonyms;模拟的灰度级为L的像素值列表P; 步骤: 1.找到文本T中有同义词的词添加到synonyms; 2.对synonyms中的每个词w: 2.1.找到w的同义词序号,记为i; 2.2.找到w的同义词数量,记为n; 2.3.计算i的二进制表示,如果i的位数不等于<img file="FSB00001043845600011.GIF" wi="190" he="154" />在前面添’0’,记为binInd;2.4.将binInd添加到binList; 3.将binList的连接成一个字符串str; 4.以L为单位将str分裂,并取相应的十进制值添加到P; 将模拟而来的像素值恢复成相应的同义词序号为像素值的词的方法如下: 输入:同义词列表synonyms;模拟的灰度级为L的像素值列表P;同义词库DB,嵌入层L; 输出:嵌入水印的文本T<sub>w</sub>或者原始文本T; 步骤: 1.对P中的每个元素p: 1.1.计算p的二进制表示,记为binInd,如果binInd的位数不等于L,在前面添’0’; 1.2.将binInd连接成str; 2.对synonyms中的每个元素w: 2.1.找到w的同义词数量,记为n; 2.2.取str的头<img file="FSB00001043845600021.GIF" wi="131" he="84" />位作为同义词序号i;2.3.取w的同义词序号为i的同义词,并用它替换文本中的词w; 3.得到T<sub>w</sub>或者T; 整数可逆变换及其逆变换方式如下: 假设(x<sub>1</sub>,x<sub>2</sub>)是定义在D=[0,2<sup>L</sup>-1]×[0,2<sup>L</sup>-1]的整数对,其中L是控制嵌入单元长度的嵌入层;n是一个正整数常量,我们定义如下的整数变换: <img file="FSB00001043845600022.GIF" wi="1808" he="195" />为了保证(x<sub>1</sub>,x<sub>2</sub>)属于D,我们定义以下不等式组作为(1)的限制条件: <img file="FSB00001043845600031.GIF" wi="1640" he="155" />变换(1)的可逆变换定义如下: <img file="FSB00001043845600032.GIF" wi="1944" he="346" />这里<img file="FSB00001043845600033.GIF" wi="75" he="67" />是取整数下界函数;隐藏信息的嵌入方法如下: 输入:模拟的像素值列表P,同义词库DB,嵌入层L,水印信息W; 输出:更新的列表P; 步骤: 1.将P分为带2个元素的对,第i个对表示为p<sub>i</sub>=(x<sub>i</sub>,x<sub>i+1</sub>),<img file="FSB00001043845600034.GIF" wi="270" he="142" />其中N是P的元素数量;2.设p″<sub>i</sub>=(x″<sub>i</sub>,x″<sub>i+1</sub>)作为嵌入信息后的二进制对并初始化(″″,″″)→p″<sub>i</sub>; 3.设连续不可嵌入对的数量为c并初始化0→c; 4.对每个p<sub>i</sub>: 4.1.通过(1)将p<sub>i</sub>转换为p′<sub>i</sub>=(x′<sub>i</sub>,x′<sub>i+1</sub>); 4.2.如果<img file="FSB00001043845600036.GIF" wi="125" he="74" />:4.2.1.如果c%2=0,将LSB(x<sub>i</sub>)作为隐藏信息的一部分,并置<img file="FSB00001043845600035.GIF" wi="266" he="136" />和c+1→c;4.2.2.如果c%2=1,置c+1→c; 4.3.如果p<sub>i</sub>∈D: 4.3.1.如果LSB(x′<sub>i</sub>)+LSB(x′<sub>i+1</sub>)=0,用<img file="FSB00001043845600041.GIF" wi="541" he="182" />替换p<sub>i</sub>其中b是当前嵌入的比特位,并且置0→c;4.3.2.如果LSB(x′<sub>i</sub>)+LSB(x′<sub>i+1)</sub>≠0,用<img file="FSB00001043845600042.GIF" wi="488" he="143" />替换p<sub>i</sub>其中b是当前嵌入的比特位,并且置0→c;4.4.插入LSB(x<sub>i</sub>),LSB(x<sub>i+1)</sub>到x″<sub>i</sub>,x″<sub>i+1</sub>的开头, 并置(x<sub>i</sub>>>1,x<sub>i+1</sub>>>1)→(x<sub>i</sub>,x<sub>i+1</sub>); 4.5.置L-1→L;如果L≥1,继续步骤4.1; 5.取p″<sub>i</sub>的十进制表示添加到P; 提取水印和恢复原始文本的方法如下: 输入:模拟的像素值列表P,同义词库DB,嵌入层L; 输出:提取的水印信息W和更新的列表P; 步骤: 1.将P分为带2个元素的对,第i个对表示为p″<sub>i</sub>=(x″<sub>i</sub>,x″<sub>i+1</sub>),<img file="FSB00001043845600043.GIF" wi="388" he="246" />其中N是P的元素数量;2.设p<sub>i</sub>=(x<sub>i</sub>,x<sub>i+1</sub>)是相应的原始对并且初始化(MSB(x″<sub>i</sub>),MSB(x″<sub>i+1</sub>))→p<sub>i</sub>,其中MSB(x)表示取x的最高有效位; 3.设连续不可嵌入对的数量为c并初始化0→c; 4.设当前嵌入层为1并且初始化0→1; 5.对每个p″<sub>i</sub>: 5.1.如果LSB(x<sub>i</sub>)≠0: 5.1.1.如果c≠0,取LSB(x<sub>i+1</sub>)作为W一位并且置0→c; 5.1.2.如果c≠0,置c+1→c; 5.2.如果LSB(x<sub>i</sub>)=0,置<img file="FSB00001043845600051.GIF" wi="668" he="159" />5.2.1.如果(x′<sub>i</sub>,x′<sub>i+1</sub>)∈D,取LSB(x<sub>i+1</sub>)作为W一位并且用(x′<sub>i</sub>,x′<sub>i+1</sub>)作为输入从(3)中更新(xi<sub>,</sub>x<sub>i+1</sub>)并置0→c; 5.2.2.如果<img file="FSB00001043845600052.GIF" wi="361" he="111" />5.2.2.1.如果c%2=0,从W中恢复xi并恢复x<sub>i+1</sub>为x<sub>i+1</sub>和置c+1→c; 5.2.2.2.如果c%2=1,置c+1→c; 5.3.置l+1→l; 5.4.如果l≤L,置(x″<sub>i</sub><<1, x″<sub>i+1</sub><<1)→(x″<sub>i</sub>,x″<sub>i+1</sub>)和<img file="FSB00001043845600053.GIF" wi="874" he="108" />并继续步骤5.1;6.将P={p<sub>i</sub>}作为输出。 
地址 210044 江苏省南京市宁六路219号南京信息工程大学