当前位置:首页 期刊杂志

基于不可见字符替换的信息隐藏方法研究

时间:2024-05-04

崔光明 洪 星 袁 翔 张以文 朱二周

基于不可见字符替换的信息隐藏方法研究

崔光明 洪 星 袁 翔 张以文 朱二周*

(安徽大学计算机科学与技术学院 安徽 合肥 230601)

当前,大多数信息都以文本文档的方式进行存储与传输,这种文本文档存储与传输的普遍性使得基于文本文档的信息隐藏方法具有重要的研究价值。然而当前流行的基于文本的信息隐藏方案具有鲁棒性较差、语义杂乱无章且肉眼轻易就可以分辨、嵌入率低等问题。为解决以上问题,利用ASCII码中的不可见字符的独特性,提出针对于英文文本的信息隐藏算法,该算法是通过对英文文本中的空格进行处理来达到隐藏效果。实验表明,所提出的信息隐藏方案是可行、可靠、安全以及高效的。

信息隐藏 信息提取 ASCII码 文本信息隐藏

0 引 言

信息隐藏技术[1]是信息安全领域的重要内容,是指在设计和确定模块时,使得一个模块包含特定的信息,但对于其他不需要这些信息的模块来说是不可访问的。该技术主要通过将被隐藏信息嵌入到已知载体的方式来达到保密通信和版权保护的目的。根据载体可以将该技术分为基于图像的信息隐藏[2]、基于视频的信息隐藏[3]、基于音频的信息隐藏[4]以及基于文本的信息隐藏[5]。当前,大多数信息都以文本文档的方式进行存储与传输的,这种文本文档存储与传输的普遍性使得基于文本文档的信息隐藏方法具有重要的研究价值。鉴于此,本文主要研究基于文本的信息隐藏技术。

根据待隐藏信息嵌入方式不同的分类方式,可以将基于文本的信息隐藏分为基于排版、基于语法和基于语义的信息隐藏三类。基于排版(编码或结构)的信息隐藏技术是通过修改文本中字符间距、行间距、字体格式等方式来改变文本的细微特征,进而达到肉眼无法区别的目的。但是这类隐藏算法的缺陷是鲁棒性较差,即在文档重新排版的情况下,隐藏的信息将不复存在。基于语法的信息隐藏技术是利用自然语言的语法结构来生成隐写文档,常见的基于语法的隐藏算法有基于句子模板的隐写术、基于文本样式的语言隐写术和基于MARKOV CHAIN的隐写算法等。这类隐藏算法的缺陷是产生的隐写文本虽然符合语法结构,但是其语义杂乱无章且肉眼轻易就可以分辨;基于语义的信息隐藏技术多数是利用同义词的替换来隐藏目标信息,常见的算法有基于等价规则替换的隐写术,基于同义句子替换、基于同义词替换[6]、基于机器翻译的隐写术[7,8]等。这种方法的缺陷是嵌入率不高,只有在满足了替换规则的地方才能隐藏信息。

为解决以上问题,本文提出一种鲁棒性高、稳定性好、兼顾语义和语法完整性、嵌入率高的信息隐藏方案。具体为利用文本文档的空格不易察觉的特性,再结合ASCII码中的不可见字符,在某些特定环境下与空格无异的特点,实现信息的隐藏、检测与分离功能。

1 背景介绍

1.1 信息隐藏应用领域

信息隐藏具有很广泛的应用,根据参考文献[9]可以总结如下几点:

1.1.1 版权保护

版权保护是信息隐藏的一个主要应用方向。随着数字化产品的不断涌现,版权保护问题逐步成为关注的焦点,随之而来,数字水印技术应运而生。数字水印技术主要利用将版权信息嵌入到数字作品中的方法,解决数字产品的版权保护问题。基于文档的信息隐藏又是信息隐藏领域的核心,再加上文档的冗余较少以及易编辑的特点,导致文档的版权保护的形式更加严峻。本文提出的方案,则可以应用于该方向,以解决英文文档的版权保护问题。

1.1.2 数据保密

数据保密是指对传输或者储存中的数据进行保护,使其不被非授权的用户截获或盗用。随着经济的全球化,不仅政治、军事领域需要数据保密,商业、金融领域和个人都需要。信息隐藏可以使得传输或存储中的信息消失于无形中,使得非授权用户很难知道信息的存在,更不用说破解和获取,因此信息隐藏能很好地应用于数据保密中。

1.1.3 数据的不可抵赖性

不可抵赖性又称为不可否认性,是指在交易各方在交易完成时要保证不可否认。是通过对在交易系统中传递的信息嵌入表示各方特征的水印,来保证交易各方都不能抵赖自己曾做出的行为,也不能否认曾收到对方的信息。

1.1.4 防伪

随着商品经济的快速发展,种类繁多的商品源源不断地进入市场,随之而来的是各种假冒伪劣产品越来越多。防伪技术是一种用于识别真伪并防止假冒、仿照行为的技术手段,而信息隐藏技术用于防伪是指在数字票据中的水印经过打印后仍然存在,可以通过重新扫描成数字形式来提取水印,以证实票据的真实性。

1.1.5 数据的完整性

数据完整性是指数据的精确性和可靠性,是指传输和存储的数据没有被篡改。通常通过把脆弱水印嵌入到数据中,并用来检测水印是否遭到破坏来发现数据是否被篡改,即识别数据的完整性。

1.2 ASCII字符分析

1.2.1 ASCII码概述

ASCII是基于拉丁字母的一套电脑编码体系,主要用于显示现代英语和其他西欧语言,它是现今最通用的单字节编码系统,等价于国际标准ISO/IEC 646。ASCII码使用7位或8位二进制数组合来表示128或者256种可能的字符,标准ASCII也称为基础ASCII,7位二进制来表示所有大小写字母,数字0到9,标点符号以及在美式英语中使用的特殊的控制字符。本文将采用的ASCII码中部分不可见字符如表1所示(表中只取后四位)。

表1 ASCII码中部分不可见字符

1.2.2 不可见字符分析

根据文献[10]中附录提供的ASCII表以及分析,可得知:在标准ASCII中,ASCII码值为0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。

1.2.3 实验字符分析

通信专用字符SOH(文头),即编码为x001的字符。由于这些字符在不同类型的文本有着不同的显示效果,经过多次试验发现,该字符在文本文档中显示和空格字符相差无几,故选用该字符,作为隐藏信息时的替换字符。

2 算法描述

在实验设计中,信息的隐藏和提取是关键。本章的前一部分是信息的隐藏阶段,利用提前准备的载体文档和需要嵌入的信息为输入,然后通过隐写算法将载体与信息合成载密文档。后一部分则是将前一部分合成的载密文档作为输入,利用提取算法实现信息的分离,最终达到秘密信息安全传输的目的。具体过程如图1所示。

图1 秘密信息传输图

2.1 隐藏过程

隐藏过程中采用的是将载体文本作为输入,再利用程序中的提示输入作为待隐藏的信息,然后,实现信息的隐藏。实现过程则是首先利用程序打开载体文档并成功获取待隐藏信息,逐个分析载体文档内容。对于满足特定位置的字节,即不仅满足该位置是空格,而且满足约束函数f,然后,根据待隐藏信息的比特信息选择写入的是空格还是SOH。即若当前比特是“0”时,写入空格,为“1”时,则写入SOH,直到待隐藏信息写入完毕。最后,将载体文档中的剩余部分拷贝到载密文档中,此时隐藏阶段结束。具体的隐藏算法如下:

Input:载体文档以及待隐藏信息。Output:载密文档。

1) 将待隐藏信息转换为“0”和“1”的比特序列,为了保证能够隐藏汉字,则可以根据Unicode 编码,获得待隐藏信息的Unicode编码Sj;

2) 从载体文档中获取每个单词Wi;

3) 写入单词Wi,根据约束函数f,确定隐藏位置,若Sj为“0”,则写入空格,为“1”,则写入SOH字符,对于不满足约束f的位置写入空格;

4) 重复2)和3),直到Sj为空;

5) 将载体文档中剩余的单词W,写入到目标文档中。

2.2 提取过程

隐藏信息的提取过程,是以载密文档作为输入,实现隐藏信息的分离。实现过程则是首先打开载密文档并成功获取载密信息,逐个分析载密文档内容,根据满足条件的位置,即该位置既满足是空格或SOH,也满足约束函数f。然后,根据该位置的具体ASCII字符,决定隐藏的是“0”还是“1”,接着将该隐藏的比特信息拼接到目标串中。最后,将目标串转换成“GB2312码”对应的汉字,结果即为所求。具体提取算法如下:

Input:载密文档。 Output:隐藏的信息。

1) 从目标文档中读取每个字节;

2) 判断当前位置是否是空格或SOH,是进入3),否则结束本次判断,处理下一字节;

3) 判断是否满足规则f,如满足,根据该位置字符是否是空格或SOH,若是空格,则在Unicode编码串S后连接0,若是SOH,则S后连接1;否则结束本次判断处理下一字节;

4) 判断是否文档结束;

5) 利用Unicode编码串,确定输出隐藏的信息。

2.3 隐藏前后效果对比

在算法实现阶段,隐藏过程中采用的是将Word、文本文档等作为载体文档进行输入;输出是带有隐写信息的文本文档;提取过程中则是将载密文档作为输入,直接显示隐藏信息。除了一些文档类型自带的格式区别外,信息隐写阶段带入的差别几乎可以忽略,具体效果可以参考图2和图3所示。

At daybreak the for a few minute the gloom and opp

图2 信息隐藏前文档截图

At daybreak the slipped away fo change that wou by this prolonge

图3 信息隐藏后文档截图

3 性能分析

3.1 实验环境配置

本文的实验是在Intel i3 3420 CPU(3.4 GHz)、4 GB DDR3 1333 RAM、32位Windows 7、Microsoft Word 2010及文本文档等软硬件配置环境下实现的。实验将从鲁棒性、安全性、稳定性以及效率等几个方面来评测本文提出的信息隐藏方案的性能。

3.2 鲁棒性

本实验方案是采用了基于编码结构的信息隐藏技术,但本实验的鲁棒性却很好,即对文档进行字体大小改变或者字体样式改变,均不影响隐写信息的成功检测。效果如图4和图5所示。

图4 格式改变前 图5 格式改变后

改变格式前后信息提取结果对照如图6和图7所示。

图6 格式改变前信息提取图 图7 格式改变后信息提取图

在参考文献[11]中提出的基于字体的隐藏方案中,改变文档字体,隐藏的信息将不复存在,鲁棒性较低,但本文提出的方案却不受影响。

3.3 安全性

文档的细微改变,肉眼无法分辨,达到了传输的安全性。在本文提出的算法中,针对隐藏信息后的文档,可以格式改变,传统的攻击方法对本算法基本无效。本文中采用的是将空格字符替换措施,则在文档中增加空格可能会导致算法失效。但是,在改进的算法中,可以采用若某一处空格不唯一,但只是空格的重复组合,只取一个;若其中含有替换的字符,则不计该处空格的个数,只计算一个隐藏字符。这样一来,在文章中增加空格,也就无法破坏隐藏信息的完整性,达到了更高的安全性。

基于改进算法以及参考文献[11],本文将针对传输过程中的不同攻击进行分析得到安全性如表2所示。

表2 不同攻击下安全性分析表

3.4 嵌入能力(Ex)

假设一篇文章共有W个字符,本实验中采用的隐藏函数为比例函数f=5x,即每间隔五个字符嵌入1比特信息,故现可嵌入的比特数Wf=W/5,现设需要嵌入S比特的信息,由于本实验采用的是“1”嵌入,“0”不变,故设修改了其中C个字符。

定义1 嵌入率(E):

E=S/Wf

(1)

定义2 嵌入效率(ES):

ES= C/Wf

(2)

定义3 嵌入能力(EX):

假设需要嵌入的信息中“0”和“1”平均分布,则ES=E/2,当S中“1”所占的比例为L时,则ES=E/L,即需要改变的字符所占的比例。但一个好的嵌入方式,应该需要较高的嵌入率,还要有较高的嵌入效率,故采用嵌入能力(EX)定义为:

EX= ES×E = SC/Wf2

(3)

即当SC乘积较大时,整体的嵌入能力较高。此时当嵌入信息中“0”和“1”均匀分布时,嵌入能力EX= 2C2/Wf2= 0.5S2/Wf2,当嵌入信息S中“1”所占比例为L时,EX= C2/(Wf2L)=LS2/Wf2,易知当L比值较大时,嵌入能力较大。当W为800时,即Wf=160,则E、ES、EX与L、S的关系,如表3所示。

表3 嵌入率、嵌入效率、嵌入能力比较

由表3可知,嵌入能力Ex正比于嵌入信息的长度S和S中“1”的比例L。

当文档中共含有M个单词,则存在的空格个数可以认为有M个。在此试验中,利用的规则函数f(x)=5×x,即表示可利用的空格个数为M/5,所以,文档的嵌入率大约为20%。如果采用空格全部利用,则嵌入率可以达到近100%,而在参考文献[11]中提及的算法嵌入率分析为:行移编码中采用保持一行不动,即每嵌入1比特信息需要两行,并假设每行有20个单词,则嵌入率为(M/40)/M=1/40=2.5%,如果采取保持两行不动,则嵌入率更低;在字体信息隐藏方案中,英文文档下的字隐藏方案,每个单词都可以进行嵌入信息,理论上可以达到100%,但是却存在鲁棒性较低的问题;在句子隐藏方案中,假设平均每个句子包含10个单词,则嵌入率约为10%。所以,本文提出的方案嵌入率是可观的。

3.5 稳定性(St)

假设在某个文档大小确定的情况下,总共实验次数为N,其中成功的试验次数为n,则易知成功率为:

St=n/N

(4)

基于式 (4),再结合不同大小的载体文档,本方案的具体稳定性分析如表4所示。

表4 实验稳定性分析

由表4可知,在多次重复试验,并且在不同大小的载体文档环境下,该实验的成功率均超过90%,达到了很好的成功率,即达到了较高的稳定性。

3.6 效率分析

在实验过程中,由于采用的是人工输入,包括载体文档和待隐藏信息,人为输入时间不可控制,故该处的时间统计均不包括输入阶段。在信息隐藏阶段,假定载体文档的大小为m,待隐藏信息的大小为n,此时算法中,利用的是逐个分析载体文档和待隐藏信息,然后写入到载密文档中,所以,时间复杂度可以定义为O(m+16×n)。故整体的时间开销与m和n有关,具体实验数据可以参考表5所示。在信息提取阶段,根据载密文档的规模,方可以确定时间复杂度,由隐藏阶段的写入的信息大小可得为(m+16×n),所以时间复杂度为O(m+16×n),可得时间开销与m和n有关,然后进行实验。具体实验结果参考表6所示。

表5 信息隐藏阶段时间开销分析 (毫秒)

表6 信息提取阶段时间开销分析(毫秒)

4 结 语

本文针对当前流行的基于文本的信息隐藏方案具有鲁棒性较差、语义杂乱无章且肉眼轻易就可以分辨、嵌入率低等问题。本文利用ASCII码中的不可见字符的独特性提出了针对英文文本的信息隐藏算法。算法是通过对英文文本中的空格进行处理来达到隐藏效果。实验表明,本文提出的信息隐藏方案是可行、可靠、安全以及高效的。

[1] Bennett K. Linguistic Steganography: Survey,Analysis,and Robustness Concerns for Hiding Information in Text[R].CERIAS Technical Report 2004-13:Purdue University,2004.

[2] 张广斌,岳云天,张传富.基于Hilbert的快速湿纸码自适应隐写算法[J].计算机工程,2013,39(7):161-164.

[3] Udit Budhia,Deepa Kundur,Takis Zourntos. Digital video steganalysis exploiting statistical visibility in the temporal domain[J].IEEE Transactions on Information Forensics and Security,2006,1(4):502-516.

[4] 柏玉保,柏森,刘程浩.基于小波和倒谱域的数字音频水印算法[J].计算机应用与软件,2012,29(3):163-167,182.

[5] 付东来,陈够喜,杨秋翔.基于XML 文档切片的隐秘通信[J].计算机应用与软件,2011,28( 9):106-108,122.

[6] Yuling Liu,Xingming Sun,Can Gan,et al. An efficient linguistic steganography for Chinese text[C]//U.S.A: the Proceedings of 2007 IEEE International Conference on Multimedia and Expo. 2007:2094-2097.

[7] Brian Chen,Gregory W.Wornell. Quantization index modulation: A class of provably good methods for digital watermarking and information embedding[J].IEEE Transactions on Information Theory,2011,47(4):1423-1443.

[8] Ehsan Nezhadarya,Z Jane Wang,Rabab Kreidieh Ward. Robust Image Watermarking Based on Multiscale Gradient Direction Quantization[J].IEEE Transactions on Information Forensics and Security,2011,6(4):1200-1213.

[9] 陈至立.语言隐写术的分析与设计研究[D].合肥:中国科学与技术大学,2008.

[10] 郑立华,冀荣华.C++程序设计与应用[M].北京:清华大学出版社,2011.

[11] 曹卫兵,戴冠中,夏煜,等.基于文本的信息隐藏技术[J].计算机应用研究,2003,25(10):39-41.

RESEARCH ON INFORMATION HIDING BASED ON INVISIBLE CHARACTERS REPLACEMENT

Cui Guangming Hong Xing Yuan Xiang Zhang Yiwen Zhu Erzhou*

(SchoolofComputerScienceandTechnology,AnhuiUniversity,Hefei230601,Anhui,China)

At present,most of the information are stored and transmitted through the plan-text,the universal storage and communication of such text documents pose an important value on studying the text document-based information hiding approaches. However,current prevailing text-based information hiding schemes are facing many problems,such as poor robustness,semantic untidy,low embedding rate and easily being penetrated by unaided eyes. In order to solve these problems,this paper puts forward an information hiding algorithm for English text by using the distinctiveness of invisible characters in ASCII codes. The algorithm reaches the hiding effect by processing the spaces in English texts. Experiments show that the hiding algorithm proposed in the paper is feasible,reliable,safe and efficient.

Information hiding Information extraction ASCII code Text information hiding

2014-08-10。国家自然科学基金项目(61300169);安徽大学国家级大学生创新项目(201310357187,J10118520164)。崔光明,本科生,主研领域:信息安全。洪星,本科生。袁翔,本科生。张以文,副教授。朱二周,讲师。

TP309

A

10.3969/j.issn.1000-386x.2016.04.065

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!