发明名称 自然语言信息隐藏方法
摘要 本发明公开了一种自然语言信息隐藏方法,该方法通过计算机自然语言信息隐藏平台对秘密信息进行隐藏,通过抽象现有自然语言信息隐藏方法,提出了一种自然语言信息隐藏方法整体框架,将现有的多种载体变换技术综合利用,相对于使用单一算法嵌入/提取秘密信息,有效的提高了文本中可以嵌入的秘密信息的容量,同时该自然语言信息隐藏平台可以选择不同算法进行组合,灵活组织嵌入/提取解决方案,能够针对具体应用场景灵活地搭配选择有效方案。由于该平台对于现有算法的抽象和统一,同样有利于代码的复用。
申请公布号 CN102194081B 申请公布日期 2013.04.24
申请号 CN201110122652.9 申请日期 2011.05.12
申请人 西北大学 发明人 何路;房鼎益;胡畅;吴建涛;武睿峰
分类号 G06F21/60(2013.01)I 主分类号 G06F21/60(2013.01)I
代理机构 西安恒泰知识产权代理事务所 61216 代理人 李婷
主权项 一种自然语言信息隐藏方法,其特征在于:该方法通过计算机自然语言信息隐藏平台对秘密信息进行隐藏,所述的计算机自然语言信息隐藏平台至少包括:主体模块和接口定义模块;主体模块包括输入子模块、数据处理子模块以及输出子模块,其中,输入子模块用于负责与用户进行交互,接受用户给定的载体文本、密钥、秘密信息以及含密文件,并判断用户需要嵌入秘密信息还是提取秘密信息;数据处理子模块,通过接口定义模块调用具体的载体操纵部件和编码部件,进行嵌入秘密信息或者提取秘密信息;输出子模块用于将嵌入或提取秘密信息的结果展示给用户;所述的输入子模块、数据处理子模块以及输出子模块依次相连;接口定义模块由载体操纵接口、隐藏编码接口和载体单元接口组成,其中:载体操纵接口用于调用载体操纵部件,分析用户给定文本,得到用户给定文本中所包含的载体单元,生成载体单元的可行变换,将秘密信息嵌入至秘密信息对应载体单元,并最终从与秘密信息对应载体单元中提取出秘密信息;其中,载体单元为自然语言处理技术可以进行保留语义变换的最小文本片段;可行变换为根据载体单元的内容,生成的与载体单元语义相同或相近的同义词或同义句子;隐藏编码接口用于调用隐藏编码部件,确定载体单元的每个可行变换所表示的比特,对载体单元进行分组,对秘密信息进行编码和分组,恢复编码后的秘密信息的原始顺序,并对编码后的秘密信息进行解码;载体单元接口,用于明确载体单元应当具有的必要属性,即确定原始文本、原始文本的可行变换、每个可行变换所表示的比特、该载体单元与分组并编码后的秘密信息的对应关系以及该载体单元最大可嵌入的比特数量;   所述的载体操纵接口、载体单元接口以及隐藏编码接口分别均与主体模块相连,载体操纵接口与载体单元接口相连;  自然语言信息隐藏过程包括以下步骤: 步骤一:在自然语言信息隐藏平台通过载体操纵接口、隐藏编码接口加载当前可用的载体操纵部件和可用的隐藏编码部件;步骤二:用户根据需要选择一个或多个载体操作部件以及一个隐藏编码部件,然后用户对提取秘密信息和嵌入秘密信息操作进行选择:当用户选择进行提取秘密信息操作时,用户输入密钥和带有秘密信息的文本;当用户选择进行嵌入秘密信息操作时,用户输入密钥、原始文本、秘密信息;步骤三:在自然语言信息隐藏平台主体模块中的数据处理子模块中创建一个空的载体单元集合,从带有秘密信息的文本或原始文本中从左到右选择一个文本片段,将文本按照句子划分为片段;步骤四:对用户输入的带有秘密信息的文本或原始文本进行分析: 从用户选择的所有载体操纵部件中选择其中一个载体操纵部件;然后,调用该载体操纵部件对所输入的文本进行分析,得到其中包含的载体单元,并生成所有可行变换,将得到的载体单元加入载体单元集合;判断该载体操纵部件是否与用户选择的其他载体操纵部件相冲突,如果该载体操纵部件与用户选择的其他载体操纵部件相互冲突,则不再继续调用其他载体操纵部件对该文本片段进行分析; 如果该载体操纵部件与用户选择的其他载体操纵部件没有相互冲突,则继续选择用户选择的其他载体操纵部件对文本进行分析,重复步骤四,直至整个文本所有文本片段完成文本分析为止;步骤五:嵌入秘密信息或者提取秘密信息;如果用户选择嵌入秘密信息,进行如下步骤:(1)调用用户选择的隐藏编码部件,确定每个载体单元的每个可行变换所表示的比特;(2)调用用户选择的隐藏编码部件,确定每个载体单元与分组并编码后的秘密信息的对应嵌入关系;(3)调用用户选择的隐藏编码部件,根据嵌入前载体单元所表示的比特,对需要嵌入的秘密信息进行分组和编码;(4)判断现有的载体单元数量是否不小于分组并编码后的秘密信息的长度,即判断现有载体单元数量是否满足嵌入该秘密信息要求,如果现有的载体单元数量不能满足嵌入秘密信息的要求,则结束嵌入秘密信息过程,否则继续进行;(5)调用用户选择的隐藏编码部件,将分组和编码后的秘密信息比特进行重新排序,使得排序后的秘密信息比特的顺序与载体单元顺序一一对应;(6)回到原始文本开始部分,按从左到右顺序选择一个文本片段;(7)从用户选择的载体操纵部件中选择一个在步骤五用户选择嵌入秘密信息的步骤中未分析该文本片段的载体操纵部件;(8)调用选定的载体操纵部件对文本片段进行文本分析,判断该文本片段中是否含有与所调用的载体部件相对应类型的载体单元,如果含有,则对于已找到对应类型的载体单元,调用与其载体单元类型相对应的载体操纵部件,按照每个载体单元与编码后秘密信息比特的对应关系改写载体单元将秘密信息嵌入至文本中;如果该文本片段不含有与载体操纵部件相对应类型的载体单元,直接执行步骤(10);(9)判断所调用的载体操纵部件是否会在后续使用中会与用户选择的其他载体操纵部件发生冲突,如果所调用的载体操纵部件与其他载体操纵部件不存在冲突,则执行步骤(10);如果所调用的载体操纵部件与其他载体操纵部件存在冲突,则执行步骤(11);(10)判断是否还有其他载体操纵部件对该文本片段进行处理,如果有,则返回至步骤(7);如果没有则继续进行;(11)判断文本是否读入完毕,如果文本读入完毕,则退出嵌入秘密信息过程,如果文本没有读入完毕,则返回至原始文本片段选择,对没有读入的文本片段按照步骤(7)—(10)进行处理;如果用户选择提取秘密信息,则进行如下步骤:(1)调用用户选择的隐藏编码部件,确定每个载体单元的每个可行变换所表示的比特;(2)对于载体单元集合中的每个载体单元,调用对应类型的载体操纵部件,判断其表示的是比特0还是比特1,将提取出来的比特构成比特串,该比特串与用户选择嵌入秘密信息中步骤(5)经过重新排序的分组并编码后的秘密信息比特相同;(3)调用用户选择的隐藏编码部件来确定每个载体单元与编码并分组后的秘密信息比特的对应关系;(4)根据所确定的每个载体单元与编码并分组后的秘密信息比特的对应关系,调用用户选择的隐藏编码部件对分组并编码后的秘密信息比特的原始顺序进行恢复;(5)调用用户选择的隐藏编码部件,对恢复分组并编码后的秘密信息比特的原始顺序进行解码,得到秘密信息;步骤六:如果用户选择的是嵌入秘密信息,则输出带有秘密信息的文本;如果用户选择的是提取秘密信息,则输出秘密信息。
地址 710069 陕西省西安市太白北路229号