CN102902929A - 自然语言水印鲁棒性测试方法及其系统 - Google Patents
自然语言水印鲁棒性测试方法及其系统 Download PDFInfo
- Publication number
- CN102902929A CN102902929A CN2012102847992A CN201210284799A CN102902929A CN 102902929 A CN102902929 A CN 102902929A CN 2012102847992 A CN2012102847992 A CN 2012102847992A CN 201210284799 A CN201210284799 A CN 201210284799A CN 102902929 A CN102902929 A CN 102902929A
- Authority
- CN
- China
- Prior art keywords
- attack
- text
- watermark
- paragraph
- carrier
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种自然语言水印鲁棒性测试方法,读取系统运行所需参数;利用待测水印嵌入算法,向原始载体文本中嵌入水印信息,生成水印文本;利用主动攻击方法对水印文本进行主动攻击,生成攻击后文本;利用待测水印提取算法,从攻击后文本中提取出新的水印信息;计算误比特率。本发明依据水印算法的敌手模型得到不同的主动攻击方法,利用主动攻击方法对水印文本进行攻击,然后从攻击后的水印文本中提取出新的水印信息,最终得到误比特率。经试验验证,本发明能够有效、客观地评价待测的自然语言水印算法的鲁棒性。
Description
技术领域
本发明涉及自然语言水印领域,特别涉及一种自然语言水印鲁棒性测试方法及其系统。
背景技术
随着计算机技术的发展和互联网的普及,人们一方面享受着科技发展带来的便捷,一方面却越来越担心信息的安全传递。无论是国家军事信息、文学作品或者是个人隐私,人们都希望这些信息能够在网络上安全的传输,所以数字水印这项技术也越来越受到人们的关注和重视。1993年Tirkel首次正式提出了数字水印的概念,数字水印旨在通过给图像、音频视频等作品中嵌入水印来保护数字作品的版权。
图像水印是较成熟的一项数字水印技术,它将一段标志版权所有者的信息嵌入图像中,并使该信息不被人感知。但利用图像水印保护文字作品却面临着如下问题:(1)作品必须以图片的形式保存、传播,导致最终用户无法进行正常的编辑;(2)OCR能够去除水印,导致保护失效;(3)图片的传播形式容易引起敌手的怀疑,增大了水印被破坏的可能性。因此,图像水印技术并不适于文字作品的版权保护。
自然语言水印为文字作品的保护开辟了新的思路,它使用自然语言文本作为水印载体,利用保留语义的变换方法改写文字,从而在语法语义结构中嵌入秘密信息,因此水印不会因为排版、OCR等操作而被破坏或去除,更能有效的保护文字作品。水印算法的鲁棒性体现在含水印文本在遭受恶意攻击或者经过正常操作后,依然能够从中正确的提取出水印信息的特性。恶意攻击是指为破坏水印而采取的具有攻击性的处理方法,如删除关键语句、打乱语句顺序;正常操作是用户对于文本进行的不可避免的操作,如复制粘贴、字体更改、排版。由于互联网上的文字作品能够轻易的被复制、修改,因此,一个好的水印系统必须具备良好的鲁棒性,才能对版权信息进行有效保护。
目前还没有针对自然语言水印鲁棒性的统一评测方案,因此多种水印算法无法进行公平的比较,这导致:(1)用户无法得知自己的基本需求是否得到了满足;(2)研究人员无法通过比较不同的算法来对自己的算法提出改进措施。除此之外,研究人员对于自己提出的水印算法的评测并不一定全面客观,很多声称安全的算法都已经被攻破。
综上所述,虽然自然语言水印可以保护文字作品的版权,但是目前缺乏对自然语言水印鲁棒性的统一评测方案,导致自然语言水印技术的应用与科学评测受到制约。因此,本 发明所研究的自然语言水印鲁棒性评测系统对于自然语言水印技术的发展具有重大意义。
发明内容
针对上述现有技术存在的缺陷或不足,本发明的目的在于,提供一种自然语言水印鲁棒性测试方法及其系统,本发明使用待测水印算法对载体文本嵌入水印信息,并针对水印算法的敌手模型得到不同的主动攻击方法,利用主动攻击方法对水印文本进行攻击,然后从攻击后的水印文本中提取出新的水印信息,最终得到误比特率。经试验验证,本发明能够有效地评价待测的自然语言水印算法的鲁棒性。
为了达到上述目的,本发明采用如下的技术解决方案:
一种自然语言水印鲁棒性测试方法,具体包括如下步骤:
1)读取系统运行所需参数;
2)利用待测水印嵌入算法,向原始载体文本中嵌入水印信息,生成水印文本;
3)利用主动攻击方法对水印文本进行主动攻击,生成攻击后文本;
4)利用待测水印提取算法,从攻击后文本中提取出新的水印信息;
5)计算误比特率,将从攻击后文本中提取出的新的水印信息和原始水印信息逐比特比较,不相同的比特数和水印信息比特总数之比即为误比特率。
进一步的,所述主动攻击方法采用替换攻击方法、删除攻击方法或者排序攻击方法,所述替换攻击方法是指使用与待测水印嵌入算法相同的NLP工具对载体文本中的载体单元进行语义不变的变换的方法;所述删除攻击方法为SAI删除攻击方法、SAII删除攻击方法或SAIII删除攻击方法,其中,所述SAI删除攻击方法是指利用自动摘要工具对整篇水印文本进行压缩比为c的自动摘要,其攻击力度为被删除的载体单元个数和水印文本中载体单元总数的比值;所述SAII删除攻击方法是指利用自动摘要工具,对水印文本中的每个段落分别进行给定压缩比的自动摘要;所述SAIII删除攻击方法是指利用自动摘要工具,对水印文本中的每个段落分别进行给定压缩比的摘要,其攻击力度为删除的单词个数和水印文本单词总数的比值;所述排序攻击方法是指调整段落在载体文本中的顺序,以期破坏水印信息同步的方法。
进一步的,所述替换攻击方法具体包括如下步骤:
步骤1:利用与待测水印算法相同的NLP工具分析载体得到所有载体单元,并将所有载体单元加入集合AllUnits;
步骤2:令当前攻击力度a=minstrength;
步骤3:若a<=maxstrength,计算需要攻击的载体单元个数an,其中a为当前攻击力 度,n为载体文本AllUnits中载体单元的个数;否则,攻击结束;
步骤4:从AllUnits中随机挑选an个载体单元;对于每个载体单元,随机选取它的一个可行变换对其进行替换;
步骤5:a=a+step,转至步骤3。
进一步的,所述SAII删除攻击方法具体包括如下步骤:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取下一个段落,统计该段落中载体单元个数i,转至步骤2;
步骤2:对该段落进行给定压缩比c的自动摘要,生成攻击后的文本段落attackedPar;
步骤3:统计attackedPar中的载体单元个数j;
步骤4:计算攻击前后载体单元减少的数目unitNum=i-j。若unitNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和unitNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1;
步骤5:令当前攻击力度a=minstrength;
步骤6:若a<=maxstrength,计算水印文本中需要删除的载体单元个数an,n是载体文本中载体单元的个数;否则,攻击结束;
步骤7:利用背包算法从AllUnits中选择需要攻击的段落;此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段对应的unitNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案;
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落的内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本;
步骤9:a=a+step,转至步骤6。
进一步的,所述SAIII删除攻击方法的具体步骤如下:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取一个未检测段落,统计该段落中单词个数i,转至步骤2;
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的段落attackedPar;
步骤3:统计attackedPar中的单词个数j;
步骤4:计算攻击前后单词减少的数目wordNum=i-j。若wordNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和wordNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1;
步骤5:令当前攻击力度a=minstrength;
步骤6:若a<=maxstrength,计算水印文本中需要删除的单词个数an,n是载体文本中单词总和;否则,攻击结束;
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一个段落相当于一个物品,an相当于背包容量,每段落对应的wordNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案;
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落内容,然后对照相应的loc,生成攻击后文本;
步骤9:a=a+step,转至步骤6。
进一步的,所述排序攻击方法的具体步骤如下:
步骤1:若载体文本中所有段落都处理完毕,转至步骤3;否则,选取下一段,利用Traverse函数统计该段载体单元的个数i;
步骤2:若i≠0,将该段对应的i和该段在载体文本中的位置序号loc加入集合Rec;否则,转至步骤1;
步骤3:令当前攻击力度a=minstrength;
步骤4:若a<=maxstrength,计算需要攻击的载体单元个数an,n为载体文本中载体单元总数;否则,攻击结束;
步骤5:利用背包算法从集合Rec中选择需要攻击的段落位置序号。每一段相当于一个物品,an相当于背包容量,每一段对应的i相当于物品体积,-1为每个物品的价值;
步骤6:所选的段落位置序号构成序列R,将R重排,要求每一个段落的位置都发生变化,生成排序后位置序列Q;
步骤7:遍历集合Rec,将loc对应的段落移动到序列Q中记录的相应位置,生成攻击后文本;
步骤8:a=a+step,转至步骤4。
实现上述自然语言水印鲁棒性检测方法的系统,其特征在于,包括依次连接的参数配置模块、嵌入模块、攻击模块、提取模块和计算模块;所述模块分别实现如下功能:
参数配置模块:读取系统运行所需参数,并为嵌入模块、提取模块和攻击模块提供必要的参数;
嵌入模块:利用待测水印嵌入算法,向原始载体文本中嵌入水印信息,生成水印文本,并为攻击模块提供水印文本;
攻击模块:利用主动攻击方法对水印文本进行主动攻击,生成攻击后文本,并将攻击后文本提供给提取模块;
提取模块:利用待测水印提取算法,从攻击后文本中提取出新的水印信息;
计算模块:计算误比特率BER。
进一步的,所述替换模块通过如下流程实现其功能:
步骤1:利用与待测水印算法相同的NLP工具分析载体得到所有载体单元,并将所有载体单元加入集合AllUnits。
步骤2:令当前攻击力度a=minstrength。
步骤3:若a<=maxstrength,计算需要攻击的载体单元个数an,其中a为当前攻击力度,n为载体文本AllUnits中载体单元的个数;否则,攻击结束。
步骤4:从AllUnits中随机挑选an个载体单元。对于每个载体单元,随机选取它的一个可行变换对其进行替换。
步骤5:a=a+step,转至步骤3。
进一步的,所述删除攻击模块包括SAI删除攻击模块、SAII删除攻击模块和SAIII删除攻击模块,其中,所述SAII删除攻击模块通过如下流程实现其功能:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取下一个段落,统计该段落中载体单元个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的文本段落attackedPar。
步骤3:统计attackedPar中的载体单元个数j。
步骤4:计算攻击前后载体单元减少的数目unitNum=i-j。若unitNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和unitNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<=maxstrength,计算水印文本中需要删除的载体单元个数an,n是载体文本中载体单元的个数;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段对应的unitNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落的内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本。
步骤9:a=a+step,转至步骤6。
进一步的,所述SAIII删除攻击模块通过如下流程实现其功能:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取一个未检测段落,统计该段落中单词个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的段落attackedPar。
步骤3:统计attackedPar中的单词个数j。
步骤4:计算攻击前后单词减少的数目wordNum=i–j。若wordNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和wordNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<=maxstrength,计算水印文本中需要删除的单词个数an,n是载体文本中单词总和;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段落对应的wordNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本。
步骤9:a=a+step,转至步骤6。
附图说明
图1为本发明的总体流程图。
图2为本发明中替换攻击流程图。
图3为本发明中SAII删除攻击流程图。
图4为本发明中SAIII删除攻击流程图。
图5为本发明中排序攻击流程图。
图6为删除攻击位置和误比特的关系示意图。
图7为在删除攻击下,空域编码算法的误比特率曲线。
图8为在删除攻击下,变换域扩频编码算法的误比特率曲线。
以下结合附图和具体实施方式对本发明进一步解释说明。
具体实施方式
首先,将本发明涉及的术语定义如下:
1、载体单元:文本中可被一种特定NLP(自然语言处理)技术处理并生成语义不变变 换的最小语言片段。
2、可行变换:在给定载体单元所处的上下文中,与载体单元语义相同的不同表达形式称为可行变换。
3、可行变换集合:一个载体单元和它的所有可行变换构成的集合,称为可行变换集合。例如,对于基于同义词替换的水印算法,载体文本中具有同义词的单词是载体单元,它的同义词都是它的可行变换,该单词以及它的同义词构成可行变换集合;而对于基于句式变换的水印算法,载体文本中可以做句式变换的句子就是载体单元,它的各种变换句式是可行变换,这些句子构成可行变换集合。对于一个给定的载体文本以及该文本中的一个载体单元,可行变换集合中的每个元素,在该语境中均可以互相替换,而不影响语义。
4、嵌入率(e):e=l/n。其中,l为水印比特长度,n为载体文本中载体单元的个数。目前大部分自然语言水印算法均采用比特串作为水印,所以本文采用误比特率作为衡量水印算法鲁棒性的指标。
5、误比特率(BER):将从攻击后文本中提取出的新的水印信息和原始水印信息逐比特比较,不相同的比特数和水印信息比特总数之比即为误比特率。
6、压缩比(c):通过摘要软件提取出来的词数占原始文档词数的百分比称为压缩比。
7、攻击力度(a):a=k/n,k是水印文本中被攻击的单元数量,n为水印文本中载体单元个数或单词个数。例如,替换攻击时,n被替换的载体单元数量;删除攻击时,n根据不同的删除方式来确定。
本发明的自然语言水印鲁棒性测试方法,具体包括如下步骤:
1、从用户配置文件scheme.xml中读取系统运行所需参数:
a)originalPath:原始文本所在文件夹路径。
b)embededPath:水印文本所在文件夹路径。如果已有水印文本,可将它们放在该文件夹中,选择跳过系统中的嵌入模块,直接进入攻击模块。
c)attackedPath:攻击后文本所在的文件夹路径。
d)resultPath:误比特率输出文本路径。
e)key:密钥。要求同一篇文本的嵌入和提取所用的密钥是相同的。
f)m:水印信息。
g)e:嵌入率(实验证明嵌入率对于攻击效果影响很小,一般选择e=0.5)。
h)attackModel:用户选择的主动攻击方法。主动攻击方法有如下几种:SA0,SAI,SAII,SAIII和SAIV。其中,SA0表示替换攻击;SAI,SAII,SAIII都表 示删除攻击,他们之间的差异将在主动攻击部分进行说明;SAIV表示排序攻击。
i)c:压缩比(建议值:0.5)。
j)maxstrength代表攻击力度上限,minstrength代表攻击力度下限,step代表攻击力度变化步长。
2、利用待测水印嵌入算法,向原始载体文本中嵌入水印信息m,生成水印文本。为了使本发明能够用于各种水印算法鲁棒性的测试,本发明为水印嵌入提供如下接口:
●public void Traverse(string cover,UnitCollection AllUnits)
本函数用于对载体文本cover进行分析,将cover中所有的载体单元添加到集合AllUnits中,AllUnits是cover中所有载体单元的集合。UnitCollection继承System.Collection.CollectionBase,是由本系统提供的一个统一的数据结构。
●public string Embedding(UnitCollection AllUnits,string m,char[]key)
本函数用于根据密钥key,将水印信息m嵌入到cover中,AllUnits由Traverse得到。
3、根据用户配置参数,对水印文本进行主动攻击,生成攻击后文本;
4、从攻击后文本中提取出新的水印信息。本发明为水印提取提供如下接口:
●public char[]Extracting(string cover,UnitCollection AllUnits,char[]key)
本函数用于从cover中提取出新的水印信息。其中,AllUnits是由Traverse函数对cover进行分析得到。
5、计算误比特率(BER)。
参见图1,一种实现本发明的自然语言水印鲁棒性测试方法的系统,具体包括依次相连接的参数配置模块、嵌入模块、攻击模块、排序模块和计算模块,所述模块分别实现如下功能:
(1)参数配置模块:
该模块与嵌入模块、提取模块和攻击模块交互,用于从用户配置文件scheme.xml中读取系统运行所需参数,并为嵌入模块、提取模块和攻击模块提供必要的参数。
k)originalPath:原始文本所在文件夹路径。
l)embededPath:水印文本所在文件夹路径。如果已有水印文本,可将它们放在该文件夹中,选择跳过系统中的嵌入模块,直接进入攻击模块。
m)attackedPath:攻击后文本所在的文件夹路径。
n)resultPath:误比特率输出文本路径。
o)key:密钥。要求同一篇文本的嵌入和提取所用的密钥是相同的
p)m:水印信息。
q)e:嵌入率(实验证明嵌入率对于攻击效果影响很小,一般选择e=0.5)。
r)attackModel:用户选择的主动攻击方法。主动攻击方法有如下几种:SA0,SAI,SAII,SAIII和SAIV。其中,SA0表示替换攻击;SAI,SAII,SAIII都表示删除攻击,他们之间的差异将在主动攻击部分进行说明;SAIV表示排序攻击。
s)c:压缩比(建议值:0.5)。
t)maxstrength代表攻击力度上限,minstrength代表攻击力度下限,step代表攻击力度变化步长。
(2)嵌入模块:该模块与参数配置模块和攻击模块交互,用于利用待测水印嵌入算法,向原始载体文本中嵌入水印信息m,生成水印文本,并为攻击模块提供水印文本。为了使本发明能够用于各种水印算法鲁棒性的测试,本发明为水印嵌入提供如下接口:
●public void Traverse(string cover,UnitCollection AllUnits)
本函数用于对载体文本cover进行分析,将cover中所有的载体单元添加到集合AllUnits中,AllUnits是cover中所有载体单元的集合。UnitCollection继承System.Collection.CollectionBase,是由本系统提供的一个统一的数据结构。
●public string Embedding(UnitCollection AllUnits,string m,char[]key)
本函数用于根据密钥key,将水印信息m嵌入到cover中,AllUnits由Traverse得到。
(3)攻击模块:该模块与参数配置模块和提取模块交互,用于根据参数配置模块提供的用户配置参数,对水印文本进行主动攻击,生成攻击后文本,并将攻击后文本提供给提取模块。
(4)提取模块:该模块与参数配置模块和攻击模块交互,用于利用待测水印提取算法,从攻击后文本中提取出新的水印信息。本发明为水印提取提供如下接口:
●public char[]Extracting(string cover,UnitCollection AllUnits,char[]key)
本函数用于从cover中提取出新的水印信息。其中,AllUnits是由Traverse函数对cover进行分析得到。
(5)计算模块:该模块与提取模块交互,用于计算误比特率(BER)。
在Atallah等人提出的针对句子级水印算法的敌手模型的基础上,我们提出针对自然语言水印攻击的通用敌手模型:
1、根据Kerckhoffs原则,攻击者可以使用与水印算法相同的NLP工具对载体文本中的同义词或句子等进行语义不变的变换,以期擦除水印;
2、改变语义的同义词替换、句子变换等,以期破坏水印同步。但攻击的地方不能过多,否则影响文本的原意;
3、插入或删除少量或不重要的句子以期破坏水印同步:
3.1插入新的句子。插入的句子不可能是任意的,因为要保证语义的流畅,所以只能是在语义上是重复性的或透明性的句子;
3.2删除不重要的句子。人类语言具有一定冗余,比如重要的信息往往会在文本中重复出现;需要强调的信息也会通过不同表达方式重复叙述。从载体文本中摘除少量重复性的句子不会对载体文本的使用价值造成明显影响。
4、调整段落的顺序。相当于打乱水印比特的顺序。
其中,第2条相当于删除原有语义后再插入新语义,效果相当于3.1和3.2同时使用,但造成语义改变较3.1和3.2大,而且NLP工具难以自动实现。
第3条中,考虑到要保证语义的流畅,3.1也难以实现:因为要找到合适的位置可以插入重复性或透明性的句子,根据目前的NLP技术还难以做到。而3.2可以利用自动摘要软件实现。3.1和3.2的效果分别来看是相同的,两种攻击从效果上看都是相当于同步攻击,即使得嵌入时和提取时水印比特序列错位造成秘密信息无法正确提取。因此,只须考虑3.2即可。
由此可见,评估自然语言水印算法时,实际上需要考虑的敌手模型只有第1条,第3.2条和第4条。
依据上述敌手模型,本发明提供三种主动攻击方法:
第一种:替换攻击:使用与待测水印嵌入算法相同的NLP工具对载体文本中的载体单元进行语义不变的变换,这种攻击方法称为替换攻击。由于该攻击方法使用与待测水印嵌入算法相同的变换,因此对水印文本语义的破坏较其他攻击算法小。
如图2所示,替换攻击流程的步骤如下:
步骤1:利用待测水印嵌入算法中Traverse函数分析载体文本,将所有载体单元加入集合AllUnits。
步骤2:令当前攻击力度a=minstrength。
步骤3:若a<maxstrength,计算需要攻击的载体单元个数an,其中a为当前攻击力度,n为载体文本AllUnits中载体单元的个数;否则,攻击结束。
步骤4:从AllUnits中随机挑选an个载体单元。对于每个载体单元,随机选取它的一个可行变换对其进行替换。
步骤5:a=a+step,转至步骤3。
第二种:删除攻击:利用Microsoft Office Word 2007的自动摘要工具,从载体文本中删除少量语义上不重要的句子,这种攻击方法称为删除攻击。虽然删除攻击对水印文本语义的破坏较替换攻击大,但是这种攻击方式使用摘要工具进行攻击,操作简单,无需进行繁琐复杂的自然语言处理过程。删除攻击方法有以下三种,用户可以根据需要进行选择:
1)SAI:利用自动摘要工具(Microsoft Office Word 2007自动摘要工具)对整篇水印文本进行压缩比为c的自动摘要。攻击力度的计算方式是:被删除的单词个数和载体文本中单词总数的比值。SAI方式只能控制被删除的单词总数,而无法控制被删除的单词在水印文本中的分布,所以效率不高,但是该方式操作简单、速度快,并且基本能够反映水印算法的鲁棒性。在想要迅速了解某种水印算法鲁棒性大体趋势的情况下,可选择该种攻击方式。
由于在该种方式中,攻击力度和压缩比存在以下关系:c=1-a,因此只需对载体文本进行压缩比为c的自动摘要即可完成SAI删除攻击。
2)SAII:利用自动摘要工具(如Microsoft Office Word 2007的自动摘要工具),对水印文本中的每个段落分别进行给定压缩比的自动摘要,使得被删除的载体单元均匀分布在水印文本中。SAII方法中攻击力度的计算方式是:被删除的载体单元个数和水印文本中载体单元总数的比值。大量实验表明,SAII攻击方法产生的误比特率和理论误比特率最接近,也即是说,该方法较其他攻击方法更为准确,但该方法非常耗时。因此,在需要准确知晓某种水印算法鲁棒性,而无需考虑时间代价的情况下,用户可选择SAII删除攻击方法。
如图3所示,SAII删除攻击方法的具体步骤如下:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取下一个段落,统计该段落中载体单元个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的文本段落attackedPar。
步骤3:统计attackedPar中的载体单元个数j。
步骤4:计算攻击前后载体单元减少的数目unitNum=i-j。若unitNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和unitNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<maxstrength,计算水印文本中需要删除的载体单元个数an,n是载体文 本中载体单元的个数;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段对应的unitNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落的内容,然后对照相应的loc,生成攻击后文本。
步骤9:a=a+step,转至步骤6。
3)SAIII:和SAII一样,利用自动摘要工具,对水印文本中的每个段落分别进行给定压缩比的摘要,唯一不同之处在于攻击力度的计算方式。SAIII方法中攻击力度计算方式:删除的单词个数和水印文本单词总数的比值。由于无需分析和统计载体文本中的载体单元,SAIII的效率比SAII高,但攻击效果不如SAII。
如图4所示,SAIII删除攻击方式的具体步骤如下:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取一个未检测段落,统计该段落中单词个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的段落attackedPar。
步骤3:统计attackedPar中的单词个数j。
步骤4:计算攻击前后单词减少的数目wordNum=i–j。若wordNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和wordNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<maxstrength,计算水印文本中需要删除的单词个数an,n是载体文本中单词总和;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一个段落相当于一个物品,an相当于背包容量,每一个段落对应的wordNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落内容,然后对照相应的loc,生成攻击后文本。
步骤9:a=a+step,转至步骤6。
第三种:排序攻击:调整段落在载体文本中的顺序,以期破坏水印信息同步,此类攻 击称为排序攻击。这种攻击方式一般针对说明书、手册之类的文本,因为该类文本中包含大量并行结构,段落顺序的调整对语义逻辑的影响较小。排序攻击中攻击力度的计算方式是:被乱序的载体单元个数和水印文本中载体单元总数的比值。
排序攻击的具体步骤如下:
步骤1:若载体文本中所有段落都处理完毕,转至步骤3;否则,选取下一段,利用Traverse函数统计该段载体单元的个数i。
步骤2:若i≠0,将该段对应的i和该段在载体文本中的位置序号loc加入集合Rec;否则,转至步骤1。
步骤3:令当前攻击力度a=minstrength。
步骤4:若a<maxstrength,计算需要攻击的载体单元个数an,n为载体文本中载体单元总数;否则,攻击结束。
步骤5:利用背包算法从集合Rec中选择需要攻击的段落位置序号。每一个段落相当于一个物品,an相当于背包容量,每一个段落对应的i相当于物品体积,-1为每个物品的价值。利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤6:所选的段落位置序号构成序列R,将R重排,要求每一个段落的位置都发生变化,生成排序后位置序列Q。
步骤7:遍历集合Rec,将loc对应的段落移动到序列Q中记录的相应位置,生成攻击后文本。
步骤8:a=a+step,转至步骤4。
本发明中攻击算法的攻击效果理论分析:
一、现有的自然语言水印编码算法主要分为以下三种:
(1)空域技术
空域算法的一般模型:首先找出载体文本中所有载体单元S={s1,s2,…,sn}其中,si代表一个载体单元。每个si的可行变换集合为Ti={ti1,ti2,…,tim},其中,tim代表一个可行变换。根据密钥从Ti选择一个可行变换tij作为代表元(选择代表元是为了防止嵌入时选择不同的可行变换可能会造成嵌入前排序的结果与提取时排序的结果不一致)。然后根据密钥和tij计算出一个秘密数字,按照这个秘密数字的大小把S中的元素排序。接下来根据密钥从S中随机选出部分元素准备嵌入,记作S′={s1′,s2′,…,sl′}。把S′中的元素si′的可行变换集合Ti′用密钥分成两个子集,分别代表0和1。嵌入时对比水印比特与si′表示的比特是否相同,如果不同则使用相应的可行变换对其进行替换以生成含密文章。
(2)变换域技术
自然语言不像图像,缺乏变换域。现有的变换域算法一般都是以载体单元的某些特征出现的频次作为变换域来嵌入信息的。
(3)扩频技术
扩频编码模型:首先根据密钥和载体单元的代表元计算秘密值。然后根据秘密值把S划分成l个组。每组包含的载体单元数量记作x。最后利用组内包含规定特征的载体单元的数量进行编码。当组代表的比特与目标水印比特不同时,对组内的载体单元进行替换使规定的特征出现的次数正好表达水印的比特。
二、现有的自然语言水印编码算法的鲁棒性分析
针对上述不同的编码技术,我们从理论角度分析替换攻击和删除攻击对其产生的误比特率:
引理1.在替换攻击中,si被成功攻击的概率至少为0.5。
证明:按照编码算法的不同,Ti可以被划分成两个子集Ti′和Ti″。设Ti′表示“0”;Ti″表示“1”。若集合Ti中元素个数为m,则集合Ti′和Ti″中元素个数有表1中的几种情况:
表1
设任意一个载体单元si被编码为“0”,则在上述情况中si被成功攻击的概率如表1中第3列。
因为集合Ti中的载体单元编码的方式是随机的,所以每一个载体单元被编码为“1”或者“0”的概率是相同的,即上表中每一行情况出现的概率是相同的。因此si被成功攻击的平均概率为:
其中n≥2,n为整数。
f(x)在定义域内有下界1/2。
因此可知,在替换攻击中,每一个载体单元被成功攻击的概率至少为0.5。
证毕。
(1)空域算法的鲁棒性分析
1)替换攻击下空域算法鲁棒性分析
对一个载体单元si进行替换攻击时,因为根据密钥挑选的代表元并不会改变,所以S’中的元素序列也不会改变。显然,只有si被成功攻击时才会产生1比特误码。载体文本中的载体单元个数为n,嵌入秘密信息时的嵌入率为e,攻击力度为a,根据引理1,空域算法在替换攻击下的理论BER为:
由此可见,空域算法抵御替换攻击的效果较好,通过降低嵌入率可以进一步降低替换攻击造成的误比特率。
2)删除攻击下空域算法鲁棒性分析
i.e=1
设载体文本D,D中共含有n个载体单元,记作S={s1,s2,…,sn}。
首先考虑攻击只造成一个载体单元被删除的情况:设删除第i个载体单元(为了计算方便i是在S’中从后往前的计数,即sl′为1,s1′为l,下同),在提取过程中,第i-1个载体单元会被错误的识别成第i个载体单元,而第i-2个载体单元会被错误的识别成第i-1个载体单元,以此类推,排在第i个载体单元后面的i-1个载体单元将全部错位,因此BER=i/l。
现在考虑攻击k个载体单元被删除的情况:由第一种情况可知,删除某一个载体单元,则其后所有的载体单元将错位,因此当多个载体单元删除时,造成的误比特率仅由秘密排序中最靠前的载体单元的位置决定(也就是最大的i)。设攻击力度为a,则需要攻击an个载体单元。设最靠前的载体单元的位置为i,此时产生的误比特率为i/l。而剩下的an-1个载体单元的攻击位置都在i之后,总共有 种可能。所有可能的误比特率构成了一个离散型随机变量X,X的所有的可能取值为Xi(an≤i≤n)。公式(2)给出在攻击力度为a 的删除攻击下BER的期望。
ii.e<1
可以将n个载体单元分成l组,每一组有x=n/l个载体单元,但只有1个载体单元承载水印比特。设被删除攻击删除的最靠前的载体单元的位置是i(从后向前计数),那么平均来看,这个载体单元处于从后往前计数的第 组。当删除攻击删除的载体单元处于本组中承载水印比特的载体单元之前时,那么本组中的承载水印比特的载体单元就会发出错位,反之则不会。如图6所示,黑色圆圈代表被删除攻击删除的载体单元,虚线圆圈代表承载水印比特的载体单元。
组内承载水印比特的载体单元处于i之后的概率是 此时被攻击到的比特个数的期望是 反之,组内的承载水印的词处于i之前的概率是 此时被攻击到的比特个数的期望是 又每个i的发生概率是 所有可能的误比特率构成了一个离散型随机变量X,X的所有的可能取值为Xi(an≤i≤n),公式(2)给出在攻击力度为a的删除攻击下BER的期望。
3)排序攻击下空域算法鲁棒性分析
排序攻击打乱了载体单元之间的物理顺序,但是由于根据密钥挑选的代表元不会改变,载体单元之间的逻辑顺序不会改变,因此空域算法是可以抵抗排序攻击的。
(2)变换域算法的鲁棒性
变换域算法差异较大,难以用一个统一的模型进行分析,因此只能针对具体的算法进行分析,这里不做详述。
(3)扩频算法的鲁棒性
扩频算法可以根据载体单元的排序方法分为两类:空域扩频算法和变换域扩频算法。
1)替换攻击下扩频算法鲁棒性分析
因为对载体单元si进行替换攻击,根据密钥挑选的代表元并不会改变,所以载体单元序列不会改变。因此空域和变换域的扩频算法抵抗替换攻击的性能是等价的。以下讨论不区分空域或变换域:
若要使误码率为t/l,则被成功攻击的组就要有t个。设r为一个组被攻击成功需要攻击的载体单元数量占组包含的载体单元数量的比例,攻击力度为a,则被攻击的载体单元个数k=a*n。设恰有t个组被成功攻击,从l个组中选择t个组的组合数为 将l个组按照是否被成功攻击划分为集合W1和W2。
W1={α1,α2,…,αt}
W2={β1,β2,…,βl-t}
其中,αi是被成功攻击的组;βi是未被成功攻击的组。用xi表示αi中被攻击的载体单元数,用yi表示βi中被攻击的载体单元数。
根据引理1,要成功攻击某一组,则该组内至少需要攻击2rx个载体单元。则有:
x1+x2+L+xt+y1+y2+L+yl-t=n (4)
其中,2rx≤xi≤x,0≤yi≤2rx-1。
设zi=xi-2rx,则xi=zi+2rx,带入公式(4),得:
z1+z2+…+zt+2trx+y1+…+yl-t=n
即
z1+z2+…+zt+y1+…+yl-t=n-2trx
其中0≤zi≤x-2rx,0≤yi≤2rx-1。
设P1代表该组内攻击的载体单元个数至少为x-2rx+1个的性质;P2代表该组内攻击的载体单元个数至少为2rx个的性质。A1,A2,…,At是满足性质P1集合;At+1,At+2,…,Al是满足性质P2的集合。根据容斥原理,式(5)给出了恰有t组被攻击成功的组合数。
其中,
若不考虑被成功攻击的组的个数,设每一组内攻击的载体单元个数为ki,则有
k1+k2+…+kl=n
其中,0≤ki≤x。
设P3表示该组内攻击的载体单元个数至少为x+1个的性质。B1,B2,…Bl是满足性质P3的集合。根据容斥原理,式(6)给出其组合数。
(6)
其中,
因此可以得到,恰好有t组攻击成功的概率Pt:
在对分成l组的n个载体单元进行攻击力度为a的攻击时,所有可能产生的误比特率构成一个离散型随机变量X,设X的所有可能取值为xt(1≤t≤l且t为整数),X的分布律为:P{X=xt}=pt,(1≤t≤l且t为整数)。公式(7)给出随机变量X的数学期望E(X)。
(7)
2)删除攻击下扩频算法鲁棒性分析
由于在变换域的扩频算法分组不是按载体单元的序列关系,所以删除载体单元不会影响其它分组。因此,变换域的扩频算法抵御删除攻击的性能与抵抗替换攻击的性能是等价的。
下面分析空域扩频算法在删除攻击下的鲁棒性。
显然至少要删除2rx个载体单元才有可能造成1比特误码。所以当多个载体单元删除时,造成的误比特率仅由秘密排序中第2rx个被攻击的载体单元所处的分组决定,设这个分组为i(i是从最后一个分组开始计数的)。其后的分组错位的比特超过2rx也都会出现误比特。设攻击力度为a,则总共攻击an个载体单元。此时产生的误比特率为。如第2rx个被攻击的载体单元处在i=l组,则它所在组的第2rx到x之间;如果第2rx个被攻击的载体单元处在其它组,则它所在组的第1到x之间。所以它的平均位置近似为 在第2rx个被攻击的载体单元之前有2rx-1个载体单元被攻击,总共有
种可能。而剩下的an-2rx个载体单元都处在第2rx个被攻击的载体单元之后,总共有
种可能。由于空域扩频算法是在载体单元排序后按水印长度分组的,随着攻击力度的增加,必然造成每个分组包含的载体单元变少,所以pp和pn中的x不是固定的,但由于删除攻击一般攻击力度不大,所以可以忽略。因此,所有可能的误比特率构成了一个离散型随机变量X,X的所有的可能取值为Xi(an≤i≤n)。公式(8)给出在攻击力度为a的删除攻击下的BER。
本发明中提出的测试方法及系统能够达到现有攻击方式的攻击效果,同时顾全了攻击力度的不同定义引入的差异。因此本发明是一种公正、客观、全面的,针对自然语言水印算法鲁棒性的测试方案。
3)排序攻击下扩频算法鲁棒性分析
排序攻击旨在破坏水印的同步信息,在空域扩频算法中,载体单元的顺序由代表元和密钥计算出的秘密数字决定,由于排序攻击没有改变代表元,因此载体单元之间的逻辑顺序不会改变,分组也不会改变;在变换域扩频算法中,分组和顺序无关,因此排序攻击也无法破坏水印的同步信息。所以,无论是空域扩频算法还是变换域扩频算法,都可以抵抗排序攻击。
本发明的有益效果:
1、本发明在Atallah等人提出的针对句子级水印算法的敌手模型的基础上提出敌手模型,并对该敌手模型进行分析得到不同的主动攻击方法,从理论上保证了本发明的测试方法及其测试系统对于现有自然语言水印鲁棒性测试的有效性。
2、多种选择、使用灵活。本发明提供了3种对水印算法的攻击方案:替换攻击、删除攻击和排序攻击,删除攻击又可以细分为3种不同的攻击方式:SAI、SAII和SAIII。这些攻击方案/方式各有优劣:替换攻击隐蔽性较好,对于水印文本语义影响较小,但是需要使用和水印算法相同的NLP工具,比较麻烦;SAI删除攻击方式操作简单、速度快,但是攻击效率不高,并且只能从大体上判断水印算法的鲁棒性;SAII删除攻击方式效率高,和理论值最接近,但是非常耗时;SAIII删除攻击方法效率较SAII高,但是攻击效果却不如SAII;排序攻击应用范围小,但是针对性强,只用于手册、说明书之类的文体。用户可以结合自己的实际应用,选择相应的攻击方式。
3、标准统一,易于比较。本发明虽然提供多种攻击方式,但是最终都是以误比特率来 衡量水印算法的鲁棒性,因此,用户可以非常方便的对评测结果进行比较,判断某水印算法在面临不同攻击时的鲁棒性强弱。
4、接口统一,具有通用性。现有的水印算法五花八门,为了对这些水印算法的鲁棒性进行评测,本发明提供统一的接口,从而使系统具有通用性,可以应用于不同的水印算法上。
实施例
为了证明本发明的有效性,我们利用删除攻击对空域算法T-Lex和变换域扩频算法(详见中国专利申请,专利申请号:201110216489.2)的鲁棒性进行分析和评估。
我们从互联网上搜集了大量英文文本,其中包含文学名著,新闻,财经,卫生健康,体育运动以及科学技术等不同题材、不同文体和不同作者的文文本。我们从中随机选择1000篇文本作为载体文本,利用本发明提出的方法对空域算法和变换域扩频算法的鲁棒性进行测试,并将测试结果和理论分析结果进行对比,以证明本发明的有效性。其中,我们选择删除攻击作为本次试验的攻击方案,这是因为删除攻击包含三种不同的攻击方式,选择它作为攻击方案既能够对不同攻击方式的效率和攻击效果进行测试,又能够能够较为全面客观的对水印算法的鲁棒性进行测试。
具体的测评步骤如下:
第一步,读取配置文件。SAI攻击方式参数配置文件Scheme.xml如下:
SAII和SAIII攻击方式参数配置类似于SAI,只是对参数attackModel的设置需要分别选择SAII和SAIII。
第二步,嵌入水印。分别利用空域水印算法和变换域扩频水印算法给1000篇载体文本中嵌入水印信息,生成2000水印文本。其中,利用空域水印算法嵌入水印生成的1000篇水印文本构成集合A,利用变换域扩频水印算法嵌入水印生成的1000篇水印文本构成集合B。
第三步,实施攻击。分别选取攻击力度a=0.02,0.04,…,0.2,对集合A中1000篇文本进行三种不同方式的删除攻击,生成30000篇攻击后文本,构成集合AI。同样的,利用三种攻击方式对集合B中的1000篇文本进行删除攻击,生成30000篇攻击后文本,构成集合BI。
第四步,提取新的水印信息。利用和嵌入算法对应的提取算法,分别从集合AI和BI中的攻击后文本中分别提取出60000个新的水印信息。
第五步,计算误比特率BER。分别将60000个新的水印信息和其对应的原始水印信息对比,计算出每一篇文本在不同攻击力度下产生的BRE。
我们将60000篇攻击后文本在不同攻击力度下的BER取平均值,得到BER曲线如图7和图8,其中图7是空域水印算法在三种删除攻击方式下产生的BER曲线,图8是变换域扩频水印算法在三种删除攻击方式下产生的BER曲线。图中,横坐标代表攻击力度,纵坐标代表BER的期望,ideal是理论分析得到的BER曲线。
从图7和图8可以明显看出,三种攻击算法得到的BER曲线均接近于理论分析曲线,由此证明了本发明的有效性。其中,SAII删除攻击方式得到的BER曲线和理论曲线最接近,SAI方式得到的BER曲线和理论曲线偏差最远。很明显,在删除攻击下,变换域扩频算法的鲁棒性优于一般空域算法的鲁棒性。一方面,在攻击力度非常小的时候,空域算法已经产生了较大的BER,而变换域扩频算法只产生较小的BER;另一方面,在攻击力度为0.2时,空域算法产生的BER几乎为0.45,而变换域扩频算法产生的误比特率只有0.3左右。
Claims (10)
1.一种自然语言水印鲁棒性测试方法,其特征在于,具体包括如下步骤:
1)读取系统运行所需参数;
2)利用待测水印嵌入算法,向原始载体文本中嵌入水印信息,生成水印文本;
3)利用主动攻击方法对水印文本进行主动攻击,生成攻击后文本;
4)利用待测水印提取算法,从攻击后文本中提取出新的水印信息;
5)计算误比特率,将从攻击后文本中提取出的新的水印信息和原始水印信息逐比特比较,不相同的比特数和水印信息比特总数之比即为误比特率。
2.如权利要求1所述的自然语言水印鲁棒性测试方法,其特征在于,所述主动攻击方法采用替换攻击方法、删除攻击方法或者排序攻击方法,所述替换攻击方法是指使用与待测水印嵌入算法相同的NLP工具对载体文本中的载体单元进行语义不变的变换的方法;所述删除攻击方法为SAI删除攻击方法、SAII删除攻击方法或SAIII删除攻击方法,其中,所述SAI删除攻击方法是指利用自动摘要工具对整篇水印文本进行压缩比为c的自动摘要,其攻击力度为被删除的载体单元个数和水印文本中载体单元总数的比值;所述SAII删除攻击方法是指利用自动摘要工具,对水印文本中的每个段落分别进行给定压缩比的自动摘要;所述SAIII删除攻击方法是指利用自动摘要工具,对水印文本中的每个段落分别进行给定压缩比的摘要,其攻击力度为删除的单词个数和水印文本单词总数的比值;所述排序攻击方法是指调整段落在载体文本中的顺序,以期破坏水印信息同步的方法。
3.如权利要求2所述的自然语言水印鲁棒性测试方法,其特征在于,所述替换攻击方法具体包括如下步骤:
步骤1:利用与待测水印算法相同的NLP工具分析载体得到所有载体单元,并将所有载体单元加入集合AllUnits;
步骤2:令当前攻击力度a=minstrength;
步骤3:若a<=maxstrength,计算需要攻击的载体单元个数an,其中a为当前攻击力度,n为载体文本AllUnits中载体单元的个数;否则,攻击结束;
步骤4:从AllUnits中随机挑选an个载体单元;对于每个载体单元,随机选取它的一个可行变换对其进行替换;最终生成攻击后文本。
步骤5:a=a+step,转至步骤3。
4.如权利要求2所述的自然语言水印鲁棒性测试方法,其特征在于,所述SAII删除攻击方法具体包括如下步骤:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取下一个段落,统计该段落中载体单元个数i,转至步骤2;
步骤2:对该段落进行给定压缩比c的自动摘要,生成攻击后的文本段落attackedPar;
步骤3:统计attackedPar中的载体单元个数j;
步骤4:计算攻击前后载体单元减少的数目unitNum=i-j。若unitNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和unitNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1;
步骤5:令当前攻击力度a=minstrength;
步骤6:若a<=maxstrength,计算水印文本中需要删除的载体单元个数an,n是载体文本中载体单元的个数;否则,攻击结束;
步骤7:利用背包算法从AllUnits中选择需要攻击的段落;此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段对应的unitNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案;
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落的内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本;
步骤9:a=a+step,转至步骤6。
5.如权利要求2所述的自然语言水印鲁棒性测试方法,其特征在于,所述SAIII删除攻击方法的具体步骤如下:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取一个未检测段落,统计该段落中单词个数i,转至步骤2;
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的段落attackedPar;
步骤3:统计attackedPar中的单词个数j;
步骤4:计算攻击前后单词减少的数目wordNum=i–j。若wordNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和wordNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1;
步骤5:令当前攻击力度a=minstrength;
步骤6:若a<=maxstrength,计算水印文本中需要删除的单词个数an,n是载体文本中单词总和;否则,攻击结束;
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一个段落相当于一个物品,an相当于背包容量,每段落对应的wordNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案;
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落内容,然后对照相应的loc,生成攻击后文本;
步骤9:a=a+step,转至步骤6。
6.如权利要求2所述的自然语言水印鲁棒性测试方法,其特征在于,所述排序攻击方法的具体步骤如下:
步骤1:若载体文本中所有段落都处理完毕,转至步骤3;否则,选取下一段,利用Traverse函数统计该段载体单元的个数i;
步骤2:若i≠0,将该段对应的i和该段在载体文本中的位置序号loc加入集合Rec;否则,转至步骤1;
步骤3:令当前攻击力度a=minstrength;
步骤4:若a<=maxstrength,计算需要攻击的载体单元个数an,n为载体文本中载体单元总数;否则,攻击结束;
步骤5:利用背包算法从集合Rec中选择需要攻击的段落位置序号。每一段相当于一个物品,an相当于背包容量,每一段对应的i相当于物品体积,-1为每个物品的价值;
步骤6:所选的段落位置序号构成序列R,将R重排,要求每一个段落的位置都发生变化,生成排序后位置序列Q;
步骤7:遍历集合Rec,将loc对应的段落移动到序列Q中记录的相应位置,生成攻击后文本;
步骤8:a=a+step,转至步骤4。
7.实现权利要求1所述的自然语言水印鲁棒性检测方法的系统,其特征在于,包括依次连接的参数配置模块、嵌入模块、攻击模块、提取模块和计算模块;所述模块分别实现如下功能:
参数配置模块:读取系统运行所需参数,并为嵌入模块、提取模块和攻击模块提供必要的参数;
嵌入模块:利用待测水印嵌入算法,向原始载体文本中嵌入水印信息,生成水印文本,并为攻击模块提供水印文本;
攻击模块:利用主动攻击方法对水印文本进行主动攻击,生成攻击后文本,并将攻击后文本提供给提取模块;
提取模块:利用待测水印提取算法,从攻击后文本中提取出新的水印信息;
计算模块:计算误比特率BER。
8.如权利要求7所述的自然语言水印鲁棒性测试系统,其特征在于,所述替换模块通过如下流程实现其功能:
步骤1:利用与待测水印算法相同的NLP工具分析载体得到所有载体单元,并将所有载体单元加入集合AllUnits。
步骤2:令当前攻击力度a=minstrength。
步骤3:若a<=maxstrength,计算需要攻击的载体单元个数an,其中a为当前攻击力度,n为载体文本AllUnits中载体单元的个数;否则,攻击结束。
步骤4:从AllUnits中随机挑选an个载体单元。对于每个载体单元,随机选取它的一个可行变换对其进行替换。
步骤5:a=a+step,转至步骤3。
9.如权利要求7所述的自然语言水印鲁棒性测试系统,其特征在于,所述删除攻击模块包括SAI删除攻击模块、SAII删除攻击模块和SAIII删除攻击模块,其中,所述SAII删除攻击模块通过如下流程实现其功能:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取下一个段落,统计该段落中载体单元个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的文本段落attackedPar。
步骤3:统计attackedPar中的载体单元个数j。
步骤4:计算攻击前后载体单元减少的数目unitNum=i-j。若unitNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和unitNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<=maxstrength,计算水印文本中需要删除的载体单元个数an,n是载体文本中载体单元的个数;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段对应的unitNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落的内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本。
步骤9:a=a+step,转至步骤6。
10.如权利要求9所述的自然语言水印鲁棒性测试系统,其特征在于,所述SAIII删除攻击模块通过如下流程实现其功能:
步骤1:若载体文本中所有段落都已处理完毕,转至步骤5,否则,选取一个未检测段落,统计该段落中单词个数i,转至步骤2。
步骤2:对该段进行给定压缩比c的自动摘要,生成攻击后的段落attackedPar。
步骤3:统计attackedPar中的单词个数j。
步骤4:计算攻击前后单词减少的数目wordNum=i–j。若wordNum>0,则将该段落加入集合AllUnits,保存对应的attackedPar和wordNum,同时记录该段在载体文本中的位置loc;否则,转至步骤1。
步骤5:令当前攻击力度a=minstrength。
步骤6:若a<=maxstrength,计算水印文本中需要删除的单词个数an,n是载体文本中单词总和;否则,攻击结束。
步骤7:利用背包算法从AllUnits中选择需要攻击的段落。此时,AllUnits中的每一段相当于一个物品,an相当于背包容量,每段落对应的wordNum相当于该物品的体积,1为每个物品的价值,利用背包算法选择体积不超过背包容量时,物品价值最大的选择方案。
步骤8:对每一个需要攻击的段落,用attackedPar替换该段落内容,然后对照相应的loc,生成该攻击力度对应的攻击后文本。
步骤9:a=a+step,转至步骤6。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284799.2A CN102902929B (zh) | 2012-08-10 | 2012-08-10 | 自然语言水印鲁棒性测试方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284799.2A CN102902929B (zh) | 2012-08-10 | 2012-08-10 | 自然语言水印鲁棒性测试方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902929A true CN102902929A (zh) | 2013-01-30 |
CN102902929B CN102902929B (zh) | 2015-09-09 |
Family
ID=47575156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210284799.2A Expired - Fee Related CN102902929B (zh) | 2012-08-10 | 2012-08-10 | 自然语言水印鲁棒性测试方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102902929B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164837A (zh) * | 2013-04-07 | 2013-06-19 | 武汉大学 | 一种针对地理数据水印算法的评测方法 |
CN104239753A (zh) * | 2014-07-03 | 2014-12-24 | 东华大学 | 云存储环境下文本文档的篡改检测方法 |
CN112667576A (zh) * | 2020-12-22 | 2021-04-16 | 珠海豹趣科技有限公司 | 水印内容处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204727A1 (en) * | 2000-10-25 | 2003-10-30 | Minoru Sasaki | Method and apparatus for embedding information in content, method and apparatus for reconstructing content, and method and apparatus for extracting information |
CN1885947A (zh) * | 2005-06-25 | 2006-12-27 | 华为技术有限公司 | 基于数字水印的多媒体视频通信客观质量评价方法 |
CN102254126A (zh) * | 2011-07-29 | 2011-11-23 | 西安交通大学 | 鲁棒的自然语言哈希域扩频水印编码算法 |
-
2012
- 2012-08-10 CN CN201210284799.2A patent/CN102902929B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204727A1 (en) * | 2000-10-25 | 2003-10-30 | Minoru Sasaki | Method and apparatus for embedding information in content, method and apparatus for reconstructing content, and method and apparatus for extracting information |
CN1885947A (zh) * | 2005-06-25 | 2006-12-27 | 华为技术有限公司 | 基于数字水印的多媒体视频通信客观质量评价方法 |
CN102254126A (zh) * | 2011-07-29 | 2011-11-23 | 西安交通大学 | 鲁棒的自然语言哈希域扩频水印编码算法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164837A (zh) * | 2013-04-07 | 2013-06-19 | 武汉大学 | 一种针对地理数据水印算法的评测方法 |
CN104239753A (zh) * | 2014-07-03 | 2014-12-24 | 东华大学 | 云存储环境下文本文档的篡改检测方法 |
CN104239753B (zh) * | 2014-07-03 | 2017-05-03 | 东华大学 | 云存储环境下文本文档的篡改检测方法 |
CN112667576A (zh) * | 2020-12-22 | 2021-04-16 | 珠海豹趣科技有限公司 | 水印内容处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102902929B (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100507943C (zh) | 一种基于统计检测和结构检测的隐写分析系统 | |
CN102012985B (zh) | 一种基于数据挖掘的敏感数据动态识别方法 | |
US7356188B2 (en) | Recognizer of text-based work | |
Xiang et al. | A word-embedding-based steganalysis method for linguistic steganography via synonym substitution | |
Tayan et al. | A hybrid digital-signature and zero-watermarking approach for authentication and protection of sensitive electronic documents | |
Domain | A review and open issues of diverse text watermarking techniques in spatial domain | |
Zhang et al. | A retrieval algorithm of encrypted speech based on short-term cross-correlation and perceptual hashing | |
Li et al. | Generating steganographic image description by dynamic synonym substitution | |
CN104657375A (zh) | 一种图文主题描述方法、装置以及系统 | |
Bhattacharyya | Data hiding through multi level steganography and SSCE | |
CN102902929B (zh) | 自然语言水印鲁棒性测试方法及其系统 | |
CN109785222A (zh) | 一种用于网页的信息快速嵌入和提取的方法 | |
CN103226674B (zh) | 一种基于fpga技术的可恢复双重芯核水印认证方法 | |
CN107992466A (zh) | 一种基于句式控制的宋词载体文本信息隐藏方法、系统 | |
CN104050400A (zh) | 一种基于控制符编码隐写的网页链接保护方法 | |
CN101692288A (zh) | 基于nurbs表示的cad模型的数字水印嵌入及检测方法 | |
Wang et al. | GAN-GLS: Generative Lyric Steganography Based on Generative Adversarial Networks. | |
Alkhudaydi et al. | Integrating light-weight cryptography with diacritics Arabic text steganography improved for practical security applications | |
CN101923700B (zh) | 一种双效数字水印方法 | |
Bhattacharyya | Hiding data in text through changing in alphabet letter patterns (calp) | |
CN104376236B (zh) | 基于伪装学的方案自适应数字水印嵌入方法及提取方法 | |
Ghilan et al. | Combined Markov model and zero watermarking techniques to enhance content authentication of english text documents | |
CN102968596A (zh) | 一种基于删除标记的oox文档数字水印方法 | |
CN102546126B (zh) | 基于多参量变化规范类正交矩阵的信息隐藏与提取方法 | |
CN107908732A (zh) | 一种相互隔离的多来源大数据融合分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150909 Termination date: 20160810 |
|
CF01 | Termination of patent right due to non-payment of annual fee |