基于源码修改的信息隐藏方法转让专利

申请号 : CN201210549413.6

文献号 : CN103093155B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈够喜陈钢温涛薛泽赟

申请人 : 中北大学

摘要 :

本发明公开了一种基于源码修改的信息隐藏方法,利用本算法可以显著提高隐藏信息容量,并增强信息的安全性。本发明通过以下方案予以实现:首先选择载体源代码库,从中选取合适的程序源代码,向源代码中均匀嵌入冗余函数,然后编译,在生成的可执行文件的基础上,用预处理后的隐秘信息替换冗余函数所占空间,并计算出提取密钥。接收端利用提取密钥作用于嵌入信息后的可执行文件,并对提取出的信息做逆处理,得到隐秘信息。

权利要求 :

1.一种基于源码修改的信息隐藏方法,其特征在于,该方法包括以下步骤:

(1)源代码预处理:对程序多个源文件均匀的嵌入冗余函数,生成对应的冗余代码分组,冗余代码是指嵌入冗余函数后的源代码,冗余代码包含冗余函数,并且包含正常的有效代码;

(2)构造后门代码:构造用于提取隐秘信息的一个后门代码,所谓后门代码,是指这段代码在程序正常运行的情况下,不会被执行,用特定的数据输入,来触发后门代码的执行,从而提取出隐秘信息,将此后门代码加入到冗余代码中,对冗余代码分组进行编译链接,生成可执行文件载体C,对载体C进行分析,得出每个冗余函数在C中的地址信息;

(3)隐秘信息预处理:首先对隐秘信息的加密,压缩,然后将处理后的隐秘信息进行平均分组,隐秘信息分组数量要小于冗余函数的数量,建立隐秘信息分组与冗余函数分组的一一映射关系,同时在每个隐秘信息分组中加入每个冗余函数在C中的地址信息,从而构成隐秘信息分组链表;

(4)构造提取密钥:根据第一个隐秘信息分组的地址信息,作为整个隐秘信息链表的头地址,将表头地址写进后门代码中,同时设计特定的数据,用以触发后门代码,此数据即为提取密钥;

(5)隐秘信息嵌入:将冗余函数在C中对应的位置替换成隐秘信息分组,生成最终携密载体C′;

(6)隐秘信息的提取:运行携密载体C′,将提取密钥作用于携密载体,从而触发后门代码,隐秘信息链表被后门代码读取并解析,从而生成隐秘信息,对生成的隐秘信息做相应的逆处理,就得到了最终的隐秘信息S;

步骤(1)与步骤(2)不分先后;步骤(3)与步骤(4)不分先后。

说明书 :

基于源码修改的信息隐藏方法

技术领域

[0001] 本发明涉及一种基于源码修改的信息隐藏方法,属于信息安全技术领域尤其是信息隐藏技术领域。

背景技术

[0002] 随着互联网技术的不断发展和推广,电子政务、电子商务、航天和军工等行业得到了前所未有的提升和发展。伴随互联网技术的蓬勃发展趋势,各国各地的各种文字、图像、音频和多媒体数据等及时传播到世界各地,人们进行着一种高效和低廉的信息传递工作,政府、企业、个人和各种组织等普遍利用这一个开放互联的公共网络信息平台,构建适合自己的信息渠道,传递大量的公开或秘密的信息。同时,对于这些平台或网络上的数据信息的安全性保护也引起世界各地用户的普遍担忧。
[0003] 信息隐藏技术是20世纪90年代以来从国外兴起的一门前沿技术,属于信息安全领域的研究范畴。信息隐藏技术也称信息伪装术,集信息论、计算机通信、计算机图形与图像、计算机网络攻防与密码分析等多学科知识,是国际学术界的研究热点之一。简而言之,信息隐藏(Information Hiding)是利用公开的载体在时间或空间的冗余特性,将隐秘信息嵌入到公开的载体之中,从而形成了携密载体,实现利用公共网络进行隐秘信息的隐蔽通信或存储。这些公开载体包括网页、文字、图形图像、音频和视频、软件等相关数字多媒体信息。隐藏后的隐秘信息对于非授权者一般而言是看不见或触摸不到的,从而达到对版权、密钥和秘密信息的保护或传递。可见,信息隐藏是利用人类感觉器官的不敏感性,以及多媒体数字信号本身的冗余特性,将隐秘信息隐藏在宿主信号之中,不被人感觉或注意,而且不影响宿主信号的使用效果。
[0004] 目前多数隐写算法均采用数字图像、音频、视频和文字等载体,实现隐蔽通信或信息存储。而基于可执行文件方面的隐写算法则研究不多。
[0005] Hydan和Silo算法:Hydan和Silo被认为是在可执行文件中嵌入隐秘信息的代表性方法。在Hydan中提出了在x86机器上通过定义一系列功能相同的指令集合,利用随机密钥将隐秘信息嵌入到指令中,并对可执行文件进行指令替换,达到信息隐藏的目的。Silo在此基础上进行了改进,提出了可执行文件存在的三处冗余,同时也提高了编码率与安全性。但此方法存在以下缺陷:1、嵌入容量小,不到整个可执行文件大小的六分之一;2、现在编译器的指令优化不断提高,对功能相同的指令替换越来越困难。
[0006] ZaidanA.A.等人提出的一系列的基于可执行文件的信息隐藏方法具有很高的信息嵌入容量。通过分析可执行文件的三种可用于隐藏信息的区域,一个大小固定的区域和两个大小可变的区域。通过增加可变区域的大小,可以明显的提高信息嵌入容量,并通过实验证明了该方法能够保持程序的完整功能,并且可以抵抗杀毒软件的检测。但此方法存在以下不足:1、此方法改变了程序结构与大小,这给攻击者提供了很好的分析途径,安全性太差。2、此方法局限于windows下的PE文件,对于其他平台的可执行文件无效。

发明内容

[0007] 针对现有关于可执行文件的信息隐藏技术的缺陷,提出一种基于源码修改的信息隐藏方法,采用如下技术方案:
[0008] 本发明解决了以下问题:
[0009] (1)针对Hydan和Silo算法的嵌入容量低,明显提高嵌入容量与嵌入效率;
[0010] (2)针对ZaidanA.A.等人提出的方法安全性较差的问题,增大攻击的难度;
[0011] (3)隐秘信息区域均匀分布;
[0012] (4)提取算法不唯一。

附图说明

[0013] 图1是本发明一种基于源码修改的信息隐藏模型图;
[0014] 图2是本发明中涉及到的隐秘信息存储结构示意图;
[0015] 图3是本发明一种后门提取算法流程图。

具体实施方式

[0016] 以下结合具体实施例,对本发明进行详细说明。
[0017] 本发明属于信息隐藏方法,即将隐秘信息隐藏到可执行文件中;参考图1,本实施例提供了一种利用后门提取法实现的程序源码修改的信息隐藏方法,包括以下步骤(步骤1与2不分先后;步骤3与4不分先后):
[0018] (1)源代码预处理 对程序多个源文件均匀的嵌入冗余函数,生成对应的冗余代码分组。冗余代码是指嵌入冗余函数后的源代码,冗余代码包含冗余函数,并且包含正常的有效代码。
[0019] (2)构造后门代码 构造用于提取隐秘信息的一个后门代码。所谓后门代码,是指这段代码在程序正常运行的情况下,不会被执行。我们需要特定的数据输入,来触发后门代码的执行,从而提取出隐秘信息。将此后门代码加入到冗余代码中。对冗余代码分组进行编译链接,生成可执行文件载体C。对载体C进行分析,得出每个冗余函数在C中的地址信息。
[0020] (3)隐秘信息预处理 首先对隐秘信息的加密,压缩。然后将处理后的隐秘信息进行平均分组,隐秘信息分组数量要小于冗余函数的数量。建立隐秘信息分组与冗余函数分组的一一映射关系,同时在每个隐秘信息分组中加入在(2)中得到的对应的地址信息,从而构成隐秘信息分组链表,如图2。
[0021] (4)构造提取密钥 根据(2)中得到的第一个隐秘信息分组的地址信息,作为整个隐秘信息链表的头地址,将表头地址写进后门代码中,同时设计特定的数据,用以触发后门代码,此数据即为提取密钥。
[0022] (5)隐秘信息嵌入 将冗余函数在C中对应的位置替换成隐秘信息分组,生成最终携密载体C′。
[0023] (6)隐秘信息的提取 提取过程如图3。运行携密载体C′,将提取密钥作用于携密载体,从而触发后门代码。隐秘信息链表被后门代码读取并解析,从而生成隐秘信息。对生成的隐秘信息做相应的逆处理,就得到了最终的隐秘信息S。
[0024] 本发明的信息隐藏方法具有以下有益效果:
[0025] (1)此隐写模型从源码的角度修改载体,使得载体的变化与以往的不同。源码隐写具有更高的安全性与抗攻击性。
[0026] (2)由于是从源码修改载体,载体在生成可执行文件时,文件的大小是不明确的。所以我们的嵌入容量可以无限增加。
[0027] (3)通过不同的编译器进行编译,生成不同版本的携密载体,但依然可以利用对应的密钥正确提取出完整的隐秘信息,提高了攻击的难度。
[0028] (4)携密载体具有抵抗杀毒软件的能力,并且程序功能完善,不具有明显的变化特征,使攻击者难以察觉。
[0029] (5)通过控制冗余函数大小,可提高隐秘信息的嵌入效率。
[0030] (6)由于我们提取隐秘信息时,携密载体是运行的。所以对于可执行文件的任何非破坏性压缩(保持可执行文件的可执行性),我们都能够正确提取出隐秘信息。
[0031] 应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。