法律状态公告日
法律状态信息
法律状态
2018-04-03
授权
授权
2015-05-06
实质审查的生效 IPC(主分类):G06F21/62 申请日:20141204
实质审查的生效
2015-04-08
公开
公开
技术领域
本发明涉及一种基于Unicode编码的利用不可见字符隐藏信息的方法,属于信息隐藏技 术领域。
背景技术
随着计算机应用的普及和互联网的迅猛发展,人们对网络通信安全提出了更高的要求。 与信息加密技术不同,信息隐藏技术通过掩盖传输消息行为的存在性来保障通信安全性。当 前,随着文本文档的应用越来越广泛,利用文本文档隐藏秘密消息成为信息安全领域的一个 研究方向。在计算机科学领域,Unicode编码是一种通用字符集编码标准,被广泛地应用于现 代操作系统。几乎所有的文字处理软件都支持对文本数据进行Unicode编码、解析和存储。
不可见字符指文档打印时不可见的字符集合,包括空格、制表符和换行符等。通常地, 利用不可见字符来隐藏秘密消息具有不易察觉、操作简单和隐蔽性强等优势。WbStego4软件 是一款利用不可见字符进行隐藏信息的开源工具,它支持TXT、HTML、PDF等多种数据格 式。但是它不支持中文文本数据载体的信息隐藏,并且信息嵌入容量较为有限,在实际应用 中存在很大的局限性。
发明内容
本发明所要解决的技术问题是克服现有WbStego4软件技术的不足,提供一种基于 Unicode编码的利用不可见字符隐藏信息的方法,适用于基于Unicode编码的含有不可见字符 的中英文文本载体来隐藏消息,在保证安全性前提下提升隐藏信息的容量,能够较好地满足 隐蔽通信的要求。
本发明的技术解决方案是一种基于Unicode编码的利用不可见字符隐藏信息的方法,它 主要包括消息嵌入算法和提取算法两个部分:
消息嵌入算法,根据编码表对载体对象中的不可见字符进行重新编码,将秘密消息嵌入 到载体对象中,其中载体对象是基于Unicode编码的中英文文本数据,不可见字符包括半角/ 全角空格和制表符(对应的Unicode码表示分别为0x20 00、0x00 30和0x09 00)。嵌入算法 的输入数据有载体对象、秘密消息和编码表,输出数据是带秘载体。
消息提取算法,是嵌入算法的逆向算法,它根据编码表从带秘载体中恢复出秘密消息。 提取算法的输入数据有带秘载体和编码表,输出数据是秘密消息。
本发明的基于Unicode编码的利用不可见字符隐藏信息的方法,通过利用不可见字符的 编码特点在文本载体中隐藏秘密消息,本方法包括以下步骤:
(1)发送发和接收方协定秘钥,并分别根据秘钥构造编码表;
(2)发送方选择载体对象,根据步骤(1)中生成的编码表,通过信息嵌入将秘密消息 嵌入到载体对象中,得到带秘载体;
(3)发送方将步骤(2)中得到的带秘载体通过通信信道传输到接收方;
(4)接收方根据步骤(1)中生成的编码表,通过提取算法从步骤(3)中接收到的带秘 载体中将秘密消息提取出来,得到秘密消息。
本发明与现有技术相比的有益效果在于:
(1)本发明中,载体对象的选择更宽泛。适用于隐藏秘密消息的载体对象可以选择基于 Unicode编码的文本数据,以满足实际应用的需求。
(2)本发明中,通过利用秘钥生成器所生成的秘钥来保证算法的安全性。秘钥可控制编 码表的生成,在保证信息隐藏算法安全的前提下,将消息嵌入/提取操作与消息加密/解密操作 联合起来,降低了实际应用中操作的复杂性和能量消耗。
(3)本发明中,通过利用编码表以提升嵌入信息的容量。在编制码表时,利用Unicode 码中冗余的不可见字符码字设计了由256个一一映射关系组成的编码表,其中编码表的映射 关系受到秘钥的控制。编码表将每次嵌入信息率从1比特提升到每次可嵌入8比特。
附图说明
图1是本发明方法实施例的实现流程图;
图2是本发明方法中消息嵌入算法的实施流程图;
图3是本发明方法中消息提取算法的实施流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图, 对本发明做进一步说明。
如图1所示,是本发明的实现流程示意图,该信息隐藏方法可以表示为一个六元组,即 ∑=<C,S,Tk,C',Ek,Dk>,其中C为载体对象集合、S为秘密消息集合、Tk为根据秘钥k构造 的编码表、C′为载体对象隐藏秘密消息后所得到的带秘载体集合、Ek为消息嵌入算法、Dk为 消息提取算法。在信息隐藏方法Σ中,包括2个主要的算法模块:消息嵌入算法模块和消息 提取算法模块,分别由发送方和接收方调用。各模块的功能描述如下:
1、消息嵌入算法
发送方根据秘钥k构造编码表Tk,将发送方输入的秘密信息S嵌入到所选择的载体对象C 中,输出带秘载体C′。然后,发送方将该带秘载体C′通过通信信道传输到接收方。执行消息 嵌入算法Ek的过程可以表示为:
Ek:C×M×Tk→C′
2、消息提取算法
接收方根据提取秘钥k构造编码表Tk,将从发送方处得到的带秘载体C′通过提取算法提 取出秘密信息M。执行消息提取算法Dk的过程可以表示为:
Dk:C′×Tk→M
如图1所示,本发明的具体实现过程如下:
1、编码表构造
本发明通过发送方和接收方共享的秘钥k控制编码表Tk的生成,在保证编码安全性的前 提下提高隐藏信息的容量,以满足实际应用的要求。构造编码表的具体实现步骤为:
(1)密钥k必须是2048比特的二进制字符串,以十进制的方式可以表示成
k=(n0,n1,…,ni,…,n255),ni∈N∩[0,255],i=0,1,…255
此外,密钥k的每个分量ni还必须满足如下条件
以上描述表明:密钥k可以表述为0到255整数序列的一个置换,如下式所示
k=perms(0,1,2,…,255)
其中perms()为置换函数。
(2)根据Unicode码的特征,发送方和接收方事先查找出256个不可见字符的可选码字, 作为双方共享的编码表的构造基础(每个码字必须是2个字节的Unicode编码)。如表1所示 给出了一个256个可选码字的十六进制表示示例。
(3)根据步骤(1)和步骤(2),建立从密钥到可选码字的编码表Tk。表1给出的即是 在密钥k=(0,1,2,…,255)时所构造出的编码表。
表1.编码表
在本发明中,编码表是作为消息嵌入算法模块和提取算法模块的输入,且发送方和接收 方通过秘钥k构造的编码表是相同的,所以输入到嵌入算法模块的编码表Tk与输入到提取算 法模块的编码表Tk一致。
2、消息嵌入
本发明中消息嵌入算法模块执行嵌入算法E()可以表示成
c′=E(c,m,Tk)
其中,模块输入参数有载体对象c、待嵌入的秘密消息m和嵌入秘钥k生成的编码表Tk, 模块输出是包含秘密消息的带秘载体c′。此外,本发明要求嵌入信息的载体c为基于Unicode 编码的文本数据,包括TXT格式文本和Word、PDF、XML、HTML复合文档中的文本数据; 并且在嵌入模块中m作为字节流方式进行处理,所以m可以是TXT文本数据和JPEG图像数 据。
嵌入算法的实施流程图如图2所示,具体实现步骤为:
(1)对输入的载体对象c进行预处理,用0x2000替换c中出现在编码表Tk的码字;
(2)顺序地读取c的2个字节数据xx,并判断xx值是否为0x0000;
(3)如果步骤(2)中结果为no,则执行步骤(4),否则执行步骤(12a);
(4)判断xx是否为不可见字符,包括半角/全角空格和制表符,它们对应的Unicode码 表示分别为0x2000、0x0030和0x0900;
(5)如果步骤(4)中结果为no,则跳转到步骤(2),否则执行步骤(6);
(6)对输入的秘密消息s,读取1个字节数据y;
(7)判断y值是否为EOF;
(8)如果步骤(7)中结果为no,则执行步骤(9),否则执行步骤(12b);
(9)对输入的编码表Tk,查找Tk中y值对应的码字zz;
(10)使用步骤(9)中的zz值替换步骤(5)所得到c中的xx值;
(11)重复执行步骤(2);
(12a)输出载体嵌入容量不足的提示信息。
(12b)输出改变后的c,即为带秘载体c′。
3、消息提取
本发明中消息提取算法模块执行提取算法D(),可以表示成
m=D(c′,Tk′)
其中,模块输入参数有含秘密消息的带秘载体c′和提取秘钥k′生成的编码表Tk′,模块输 出是提取得到的秘密消息m。特别地,为了保持编码表Tk和Tk′的一致性,本发明中嵌入秘钥 k与提取密钥k′是相同的。
提取算法的实施流程图如图3所示,具体实现步骤为:
(1)对输入的带秘载体c′,读取2个字节数据yy;
(2)判断yy值是否为EOF;
(3)如果步骤(2)中结果为no,则执行步骤(4),否则执行步骤(8);
(4)根据输入编码表Tk′,判断步骤(2)中的yy值是否为Tk′中的码字;
(5)如果步骤(4)中结果为no,则跳转到步骤(1),否则执行步骤(6);
(6)查找Tk′,获得yy值所对应的m值;
(7)重复执行步骤(1);
(8)输出秘密消息m。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可 以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保 护范围应以权利要求所述为准。
机译: 基于字符的文档和文件中属性数据的不可见编码
机译: 具有隐藏的,不可见的微小解释的汉字或非拼写语言字符的计算机字体生成方法
机译: 用于物体的非接触式位置确定的方法,例如工业应用中的轨道车辆涉及使用可见光或不可见光以及表面传感器来感测对象的编码信息