基于Unicode编码利用不可见字符隐藏信息的方法

文档序号:6637370阅读:2652来源:国知局
基于Unicode编码利用不可见字符隐藏信息的方法
【专利摘要】本发明提出了一种基于Unicode编码的利用不可见字符隐藏信息的方法,主要包括消息嵌入算法和消息提取算法。通过利用不可见字符的Unicode编码特点来隐藏秘密信息,在保证安全性的前提下提高秘密信息的嵌入容量。利用本发明,能够在采用Unicode编码的含有空格等不可见字符的文本载体上隐藏秘密信息;能够根据编码表灵活地改变秘密信息的嵌入形式来保证信息的安全;能够有效提高秘密信息的嵌入容量。
【专利说明】基于Un i code编码利用不可见字符隐藏信息的方法

【技术领域】
[0001] 本发明设及一种基于化icode编码的利用不可见字符隐藏信息的方法,属于信息 隐藏【技术领域】。

【背景技术】
[0002] 随着计算机应用的普及和互联网的迅猛发展,人们对网络通信安全提出了更高的 要求。与信息加密技术不同,信息隐藏技术通过掩盖传输消息行为的存在性来保障通信安 全性。当前,随着文本文档的应用越来越广泛,利用文本文档隐藏秘密消息成为信息安全领 域的一个研究方向。在计算机科学领域,化icode编码是一种通用字符集编码标准,被广泛 地应用于现代操作系统。几乎所有的文字处理软件都支持对文本数据进行化icode编码、 解析和存储。
[0003] 不可见字符指文档打印时不可见的字符集合,包括空格、制表符和换行符等。通常 地,利用不可见字符来隐藏秘密消息具有不易察觉、操作简单和隐蔽性强等优势。WbStego4 软件是一款利用不可见字符进行隐藏信息的开源工具,它支持TXT、HTML、PDF等多种数据 格式。但是它不支持中文文本数据载体的信息隐藏,并且信息嵌入容量较为有限,在实际应 用中存在很大的局限性。


【发明内容】

[0004] 本发明所要解决的技术问题是克服现有师Stego4软件技术的不足,提供一种基 于化icode编码的利用不可见字符隐藏信息的方法,适用于基于化icode编码的含有不可 见字符的中英文文本载体来隐藏消息,在保证安全性前提下提升隐藏信息的容量,能够较 好地满足隐蔽通信的要求。
[0005] 本发明的技术解决方案是一种基于化icode编码的利用不可见字符隐藏信息的 方法,它主要包括消息嵌入算法和提取算法两个部分:
[0006] 消息嵌入算法,根据编码表对载体对象中的不可见字符进行重新编码,将秘密消 息嵌入到载体对象中,其中载体对象是基于化icode编码的中英文文本数据,不可见字符 包括半角/全角空格和制表符(对应的化icode码表示分别为0x20 00、0x00 30和0x09 00)。嵌入算法的输入数据有载体对象、秘密消息和编码表,输出数据是带秘载体。
[0007] 消息提取算法,是嵌入算法的逆向算法,它根据编码表从带秘载体中恢复出秘密 消息。提取算法的输入数据有带秘载体和编码表,输出数据是秘密消息。
[000引本发明的基于化icode编码的利用不可见字符隐藏信息的方法,通过利用不可见 字符的编码特点在文本载体中隐藏秘密消息,本方法包括W下步骤:
[0009] (1)发送发和接收方协定秘钥,并分别根据秘钥构造编码表;
[0010] 似发送方选择载体对象,根据步骤(1)中生成的编码表,通过信息嵌入将秘密消 息嵌入到载体对象中,得到带秘载体;
[0011] 做发送方将步骤似中得到的带秘载体通过通信信道传输到接收方;
[0012] (4)接收方根据步骤(1)中生成的编码表,通过提取算法从步骤(3)中接收到的带 秘载体中将秘密消息提取出来,得到秘密消息。
[0013] 本发明与现有技术相比的有益效果在于:
[0014] (1)本发明中,载体对象的选择更宽泛。适用于隐藏秘密消息的载体对象可化选择 基于化icode编码的文本数据,W满足实际应用的需求。
[0015] (2)本发明中,通过利用秘钥生成器所生成的秘钥来保证算法的安全性。秘钥可控 制编码表的生成,在保证信息隐藏算法安全的前提下,将消息嵌入/提取操作与消息加密/ 解密操作联合起来,降低了实际应用中操作的复杂性和能量消耗。
[0016] (3)本发明中,通过利用编码表W提升嵌入信息的容量。在编制码表时,利用 化icode码中冗余的不可见字符码字设计了由256个一一映射关系组成的编码表,其中编 码表的映射关系受到秘钥的控制。编码表将每次嵌入信息率从1比特提升到每次可嵌入8 比特。

【专利附图】

【附图说明】
[0017] 图1是本发明方法实施例的实现流程图;
[001引图2是本发明方法中消息嵌入算法的实施流程图;
[0019] 图3是本发明方法中消息提取算法的实施流程图。

【具体实施方式】
[0020] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和 附图,对本发明做进一步说明。
[0021] 如图1所示,是本发明的实现流程示意图,该信息隐藏方法可W表示为一个六元 组,即E = <C,S,Tk,C',Ek,Dk〉,其中C为载体对象集合、S为秘密消息集合、Tk为根据秘钥 k构造的编码表、C'为载体对象隐藏秘密消息后所得到的带秘载体集合、Ek为消息嵌入算 法、Dk为消息提取算法。在信息隐藏方法2中,包括2个主要的算法模块;消息嵌入算法 模块和消息提取算法模块,分别由发送方和接收方调用。各模块的功能描述如下:
[0022] 1、消息嵌入算法
[0023] 发送方根据秘钥k构造编码表Tk,将发送方输入的秘密信息S嵌入到所选择的载 体对象C中,输出带秘载体C'。然后,发送方将该带秘载体C'通过通信信道传输到接收 方。执行消息嵌入算法Ek的过程可W表示为:
[0024] Ek:CXMXTk - C'
[002引 2、消息提取算法
[0026] 接收方根据提取秘钥k构造编码表Tk,将从发送方处得到的带秘载体C'通过提 取算法提取出秘密信息M。执行消息提取算法Dk的过程可W表示为:
[0027] Dk:C' XTk - M
[002引如图1所示,本发明的具体实现过程如下:
[0029] 1、编码表构造
[0030] 本发明通过发送方和接收方共享的秘钥k控制编码表Tk的生成,在保证编码安 全性的前提下提高隐藏信息的容量,W满足实际应用的要求。构造编码表的具体实现步骤 为:
[0031] (1)密钥k必须是2048比特的二进制字符串,w十进制的方式可W表示成
[003引 k = (n0, n。…,n。…,11255),叫 E N n [0, 255], i = 0, 1,…255
[0033] 此外,密钥k的每个分量n;还必须满足如下条件
[0034] 々7,7.巨{〇,1,...,255},/幸'/'二内/?^打少
[0035] W上描述表明;密钥k可W表述为0到255整数序列的一个置换,如下式所示
[0036] k = perms 化 1, 2,…,255)
[0037] 其中perms 0为置换函数。
[003引 (2)根据化icode码的特征,发送方和接收方事先查找出256个不可见字符的可 选码字,作为双方共享的编码表的构造基础(每个码字必须是2个字节的化icode编码)。 如表1所示给出了一个256个可选码字的十六进制表示示例。
[0039] (3)根据步骤(1)和步骤(2),建立从密钥到可选码字的编码表Tk。表1给出的即 是在密钥k= (0,1,2,…,255)时所构造出的编码表。
[0040] 表1.编码表
[0041]

【权利要求】
1. 一种基于Unicode编码的利用不可见字符隐藏信息的方法,包括以下步骤: (1) 发送发和接收方协定秘钥,并利用Unicode码中的不可见字符分别根据秘钥构造 编码表; (2) 发送方选择基于Unicode编码的文本数据作为载体对象,根据步骤(1)中生成的编 码表对载体对象中的不可见字符进行重新编码,将秘密消息嵌入到载体对象中,得到带秘 载体; (3) 发送方将步骤(2)中得到的带秘载体通过通信信道传输到接收方; (4) 接收方根据步骤(1)中生成的编码表,从步骤(3)中接收到的带秘载体中将秘密消 息提取出来,得到秘密消息。
2. 如权利要求1所述的方法,其特征在于,步骤(1)通过发送方和接收方共享的秘钥k 控制编码表Tk的生成,构造编码表的具体实现步骤为: (1-1)密钥k必须是2048比特的二进制字符串,以十进制的方式表示成:k= (n0,n" …,n" …,n255),IiiGN门[0, 255],i= 0, 1,…255, 此外,密钥k的每个分量Iii满足如下条件: 以上描述表明,密钥k可以表述为0到255整数序列的一个置换,如下式所示:k=perms(0, 1,2, ...,255) 其中perms()为置换函数; (1-2)根据Unicode码的特征,发送方和接收方事先查找出256个不可见字符的可选码 字,作为双方共享的编码表的构造基础; (1-3)根据步骤(1-1)和步骤(1-2),建立从密钥到可选码字的编码表Tk。
3. 如权利要求1或2所述的方法,其特征在于:步骤(2)通过执行嵌入算法E()将秘 密消息嵌入到载体对象中,嵌入算法EO表示为 c' =E(c,m,Tk), 其中,输入参数为载体对象c、待嵌入的秘密消息m和嵌入秘钥k生成的编码表Tk,输 出是包含秘密消息的带秘载体c'。
4. 如权利要求3所述的装置,其特征在于:载体对象c为基于Unicode编码的文本数 据,包括TXT格式文本和Word、H)F、XML、HTML复合文档中的文本数据;秘密消息m作为字 节流方式进行处理,m是TXT文本数据或者JPEG图像数据。
5. 如权利要求3所述的方法,其特征在于,所述嵌入算法的具体实现步骤为: (2-1)对输入的载体对象c进行预处理,用0x2000替换c中出现在编码表Tk的码字; (2-2)顺序地读取c的2个字节数据xx,并判断XX值是否为0x0000 ; (2-3)如果步骤(2-2)中结果为no,则执行步骤(2-4),否则执行步骤(2-12a); (2-4)判断XX是否为不可见字符,包括半角/全角空格和制表符,它们对应的Unicode码表示分别为0x2000、0x0030和0x0900 ; (2-5)如果步骤(2-4)中结果为no,则跳转到步骤(2-2),否则执行步骤(2-6); (2-6)对输入的秘密消息s,读取1个字节数据y; (2-7)判断y值是否为EOF; (2-8)如果步骤(2-7)中结果为no,则执行步骤(2-9),否则执行步骤(2-12b); (2-9)对输入的编码表Tk,查找Tk中y值对应的码字zz; (2-10)使用步骤(2-9)中的zz值替换步骤(5)所得到c中的XX值; (2_11)重复执行步骤(2_2); (2_12a)输出载体嵌入容量不足的提示信息。 (2-12b)输出改变后的c,即为带秘载体c'。
6. 如权利要求5所述的方法,其特征在于:步骤(4)通过执行提取算法DO从带秘载 体中将秘密消息提取出来,提取算法DO表示为 m=D(c',Tk,), 其中,输入参数为含秘密消息的带秘载体c'和提取秘钥k'生成的编码表Tk,,输出 是提取得到的秘密消息m;为了保持编码表Tk和Tk,的一致性,嵌入秘钥k与提取密钥k' 相同。
7. 如权利要求6所述的方法,其特征在于,所述提取算法的具体实现步骤为: (4-1)对输入的带秘载体c',读取2个字节数据yy; (4-2)判断yy值是否为EOF; (4-3)如果步骤(4-2)中结果为no,则执行步骤(4-4),否则执行步骤(4-8); (4-4)根据输入编码表Tk;,判断步骤(4-2)中的yy值是否为Tk;中的码字; (4-5)如果步骤(4-4)中结果为no,则跳转到步骤(4-1),否则执行步骤(4-6); (4-6)查找Tk,,获得yy值所对应的m值; (4-7)重复执行步骤(4-1); (4-8)输出秘密消息m。
【文档编号】G06F21/62GK104504342SQ201410733815
【公开日】2015年4月8日 申请日期:2014年12月4日 优先权日:2014年12月4日
【发明者】吴槟, 易小伟, 赵险峰, 冯凯, 何晓磊 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1