一种抗最长匹配检测的压缩文件数据嵌入方法及装置的制造方法

文档序号:8489778阅读:370来源:国知局
一种抗最长匹配检测的压缩文件数据嵌入方法及装置的制造方法
【技术领域】
[0001] 本发明设及一种抗最长匹配检测的压缩文件数据嵌入方法及装置,特别设及一种 基于deflate数据压缩算法的抗最长匹配检测的压缩文件数据嵌入方法及装置,属于数据 安全技术领域。
【背景技术】
[0002] 数据压缩是在不丢失有用信息的条件下,W较短的数据编码来代替原数据,从而 减少数据的存储空间的技术。在当前的信息数据量指数级增长的网络大环境下,减少数据 的存储空间对降低数据管理难度,减少数据传输代价等等具有必不可少的作用。
[0003] 数据压缩算法可分为无损数据压缩与有损数据压缩,无损压缩利用数据的统计冗 余进行压缩,不存在信息损失,数据经过压缩之后能够从压缩数据当中准确的恢复出原数 据,该使得无损压缩的正确率要高得多,该种压缩方法通常使用于文本压缩当中。而有损 压缩则会造成数据信息的一些丢失,该种压缩使得压缩后数据的大小显著小于使用无损压 缩,因此,倘若可W接收一定程度的信息丢失,则有损压缩是一种十分高效的压缩方法。有 损压缩常常用于语音W及视频压缩当中。
[0004] Lempel-Ziv压缩方法是由Abr址am Lempel和Jacob Ziv于1977-1978年提出的 一类十分经典的无损数据压缩方法,其中的核屯、算法是LZ77和LZ78算法。在该两种算法 的基础之上后来又派生出了许多其他算法并被普遍使用于各种压缩软件当中。
[0005]LZW算法(Lempel-Ziv-Welch)由LZ78算法改进而来,其基本原理是在压缩W及解 压过程中逐渐生成一个静态字典,利用该静态字典进行编码,从而生成压缩编码序列。具体 压缩过程是在当前待编码位置对压缩字典进行捜索,将捜索得到的最长匹配字符串对应的 索引值输出,并且将最长匹配字符串与邻接的下一个字符连接起来组成新的字符串加入字 典索引。LZW算法流程如图1所示。
[0006] Def late算法是一种LZ77算法的改良算法,基于LZ77算法与化ffman滴编码,其 算法流程如图2所示。LZ77算法通过使用编码器或者解码器中已经出现过的相应匹配数 据信息替换当前数据从而实现压缩功能。该个匹配信息使用称为长度-距离对的一对数据 进行编码,它等同于"每个给定长度个字符都等于后面特定距离字符位置上的未压缩数据 流。"Deflate算法在此基础之上加入了一些改动使得其性能较LZ77有了很大进步。
[0007] 数据嵌入是一种信息隐藏技术,所谓信息隐藏技术是指将秘密信息嵌入到数字化 载体当中,其目标不仅仅是通过与密码学结合来对秘密信息进行加密,更重要的是让隐藏 的密码信息及其载体不会引起非法者的注意,也就减少了含秘数字载体被攻击的风险。正 是基于数据压缩与信息隐藏的相关知识基础之上才诞生了压缩文件数据嵌入方法。
[000引 目前流行的压缩文件数据嵌入方法大多是基于LZW压缩算法之上的。已有的LZW 算法的数据嵌入方法通常是根据待嵌入比特值来对算法产生的最长字符串长度进行修改, 使产生的字符串当中蕴含隐藏信息,解压时可W据此来还原嵌入数据。然而由于该类数据 嵌入方法在嵌入过程当中对产生的字符串长度进行了直接修改,导致破坏了算法本身的匹 配规律,对手很有可能利用长度检测的方法来识别出压缩文件当中是否含有隐藏信息,进 而对其进行破解,该为数据嵌入的安全性留下了隐患。
[0009] 最长匹配检测技术是基于已有的LZW压缩算法数据嵌入方法产生的一种检测方 法,能够检测出压缩文件中是否含有嵌入数据,进而可W使用相应的数据还原方法将嵌入 数据还原出来。其基本方法流程为:
[0010] 步骤一;获取压缩文件编码,将之还原为对应的字符或字符串;
[0011] 步骤二:对还原出的字符串,取首字符连接到前一个还原出来的字符或字符串末 端组成新的字符串;对还原出来的字符,取该字符连接到前一个还原出来的字符或字符串 末端组成新的字符串;
[0012] 步骤对步骤二中得到的新的字符串,在算法已经生成的字典当中寻找匹配,若 找到字典中已经存在相同的字符串则检测出该压缩文件含有嵌入数据;
[0013] 步骤四:对整个压缩文件进行遍历,只要出现满足步骤=当中的现象即说明存在 嵌入数据,否则说明该文件不存在嵌入数据;

【发明内容】

[0014] 针对上述缺陷,本发明的内容是提出一种抗最长匹配检测的压缩文件数据嵌入方 法。
[0015] 由于在数据压缩过程中每次生成的最长匹配字符串是唯一的,原有的LZW压缩算 法数据嵌入算法总是着手对最长匹配字符串长度的修改使其嵌入隐藏数据,因此执行嵌入 数据过程中必定会导致原匹配字符串长度发生改变,该为长度检测算法能够检测出嵌入数 据创造了条件。想要实现抗长度检测必须要满足在不改变已生成的字符串长度的情况下进 行数据嵌入。
[0016] LZ77算法的压缩原理是在滑动窗口中捜索得到若干匹配字符串,分别计算其最大 匹配长度,再将其中最长匹配字符串所对应的[长度,偏移量,下一个字符]对输出,W此来 进行数据压缩。由于在捜索过程中字典为动态字典,其内容不断发生变化并且匹配过程产 生的最长匹配字符串一般来讲有多个,该就为本发明数据嵌入创造了条件。Deflate算法 是基于LZ77算法的改进算法,将匹配字符串的输出对减少为[长度,偏移量],从而提高了 压缩算法效率。并且由于deflate算法中采用化ffman编码,使得对手想直接利用最长匹 配检测算法增加了复杂度从而提高了安全性,本发明中选择Deflate算法作为数据嵌入算 法。算法数据嵌入流程如图3所示。
[0017] 本发明是通过W下技术方案实现的:
[0018] 一种抗最长匹配检测的压缩文件数据嵌入方法,包括W下步骤:
[0019] A.将待嵌入数据转化成二进制序列;
[0020] B. Deflate压缩算法根据压缩指令获得压缩等级,并根据压缩等级获得对应的最 佳匹配长度信息;
[0021] C. Deflate压缩算法找出滑动窗口中具有与当前待编码的若干字符相同哈希值的 地址并构建链表;
[0022] D.算法调用最长匹配函数,依次对链表内存储的地址计算出各匹配长度;
[0023] 最长匹配函数的返回值为最长匹配字符串的长度,链表内存放的每个地址都会计 算出一个匹配长度;
[0024] E.对计算出的匹配长度与嵌入数据进行对比,符合条件则W当前匹配长度替换最 长匹配长度,使最后得到的最大匹配长度含有隐藏信息,遍历链表后若最长匹配长度与初 始值相等或者大于最佳匹配长度,说明数据嵌入失败,此时待嵌入数据指针不向后移动,等 待下一次计算匹配长度时再嵌入;否则,待嵌入数据指针向后移动;
[0025] F.函数返回最大匹配长度,若最大匹配长度与初始值相等则算法会输出当前待压 缩位置的单字节内容,否则算法记录下[最大匹配长度,偏移量]对;
[0026] G.滑动窗口向后移动最大匹配长度距离,重复C-F继续下一轮压缩,直到压缩结 束。
[0027] 步骤B中的最佳匹配长度是deflate算法为了提高算法计算效率而引入的一种与 压缩等级有关的常量。当算法遍历哈希链表时,一旦某链表结点产生的匹配字符串长度大 于最佳匹配长度则不再继续访问该节点之后的链表,该样使文件压缩后大小变大,但大大 降低了算法计算的时间,是一种通过牺牲空间来成本换取时间减少的手段。
[002引步骤E中所述判断是否符合条件的具体做法是在每次计算出来的匹配长
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1