APP下载

一种基于文本和表情符号的信息隐藏算法

2013-11-20苑,周

关键词:表情符号空格字符

周 苑,周 岩

(河南工程学院 计算机学院,河南 郑州 451191)

随着电子商务、网络银行、网络聊天等与人们日常生活密切相关的网络业务的应用,越来越多的重要信息需要保密和安全传输,然而信息在网络传输过程中却存在各种安全隐患,所以在网络环境下如何能够安全隐秘地通信成为网络研究的一项重要内容.

信息隐藏技术(Information hiding)是在传统密码学的基础上发展起来的一门涉及信息论、密码学、应用数学、计算机科学、网络技术、通信技术等多种学科的综合性学科.信息隐藏技术利用人类感觉器官对数字信号的感觉冗余,将一个消息隐藏在另一个普通消息中,由于隐藏后的消息的外部表现只是普通消息的外部特征,故并不改变普通消息的外部特征和使用价值[1],从而保证了信息在传递过程中的保密性和安全性.信息隐藏技术将待隐藏的秘密信息称为嵌入对象,将用于嵌入隐藏信息的公开信息称为载体对象,通过使用特定的隐藏算法,将嵌入对象添加到可公开的载体对象中生成隐藏对象,为信息的嵌入过程;使用相反的方法从隐藏对象中提取嵌入对象的过程则为提取过程,其基本原理如图1所示.

图1 信息隐藏系统Fig.1 Information hiding system

在网络聊天中,人们相互交流信息的主要形式是文本,而目前对文本信息的隐藏方式主要有基于语法、基于语义和基于格式3种.基于语法结构的信息嵌入方式主要通过移动附加语的位置、加入形式主语、将主动句式变为被动句式及插入“透明短语”等形式进行信息隐藏,这种方法使句法结构发生了变化,容易因不符合常规用法而引起攻击者的怀疑,信息容量也不高.基于语义的信息嵌入方式主要通过同义词替换手段进行信息隐藏,由于汉语的多义性等特点,隐藏对象极易因不合逻辑或语义不连贯等引起攻击者的注意,鲁棒性较差.而基于格式的信息隐藏主要通过调整行间距、字间距、改变字符特征(字体、颜色、大小、下划线等)等手段嵌入信息,这种方法嵌入的信息量有限,不能抵御格式攻击.根据文献[2]的工作,本研究提出了一种基于网络聊天的信息隐藏方法,增大了存储容量,与文献[2]的方法相比,本方法更接近实际应用,隐蔽性更好.

1 基于网络聊天的信息隐藏的设计思想

在网络聊天中,聊天双方可通过文本、语音、视频等手段进行信息交流,有时候为了快速便捷地表达一些语义,往往还会进行表情符号的传递.为了在聊天时使交流的一些重要信息保密、不被他人获取,可以在聊天的过程中综合利用表情符号、空格和标点符号等多种手段同步嵌入秘密对象,将隐藏对象发送给聊天的接受者.接受者在接收到隐藏对象后进行解密,得到嵌入的隐蔽信息.隐藏对象在外观特征上和普通的聊天信息无任何不同,由此可达到隐蔽通信的目的.

在网络聊天中,由于聊天者习惯的不同,所以在聊天语句的构成上有着多种不同的情况,如是否使用表情符号、表情符号放在句首还是句尾、表情符号和内容之间是否添加空格等,也可以通过不同的表情符号传递一些特定的隐蔽信息.这些情况从视觉角度来看没有任何特殊的地方,本研究基于这些特点,提出了网络聊天中的信息隐藏方法,总体设计遵循定义1~5.

定义1:若表情符号出现在句首,则代表“1”,出现在句尾则代表“0”.

定义2:根据表情符号前后是否有空格出现,可隐藏两位信息,如前后均无空格代表“00”,前无空格后有空格代表“01”,前有空格后无空格代表“10”,而前后均有空格则代表“11”.

定义3:句尾有标点符号代表“1”,否则代表“0”.

定义4:字体颜色可设置为红、橙、黄、绿、青、蓝、紫、黑其中的一种,可隐藏000,001,010,011,100,101,110或111其中的一种信息.

定义5:根据聊天内容字符数的奇偶性隐藏1位信息,若字符数为奇数,代表隐藏“1”;若字符个数为偶数,代表隐藏“0”.

2 隐藏算法设计

输入:任意的聊天文本M和待隐藏的消息W;输出:嵌入隐藏信息后的文本M' .步骤如下:

(1)发送者和接受者定义相同的文本颜色,规定相同的密钥.(2)发送者将二进制信息通过软件转换成二进制序列,并将其按字节分组.(3)取字节的第一位,判断是1还是0.根据表情符号的位置,若为1,则将表情符号放在句子开头;若为0,则将表情符号放在句子的结尾.(4)取字节的第2,3位,判断其值.根据表情符号前后的空格,若为“00”则表情符号前后均无空格;若为“01”则表情符号前无空格,后有空格;若为“10”则表情符号前有空格,后无空格;若为“11”则将前后均设空格.(5)取字节的第4,5,6位,判断其值.根据其值为文本设置不同的颜色值,取#ff0000,#ffa500,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#000000中的一种.(6)取字节的第7位,判断是1还是0.根据其值输入一条随意的聊天语句,字符数的奇偶性与该位保持一致.(7)取字节的第8位,判断是1还是0.若值为1,则根据语句加上相应的标点符号“.”或“?”;若为0,则不加标点符号.(8)将含密文本发送给接受者.(9)重复第(3)~(8)步,直至将所有的隐秘信息传送完毕.

提取隐藏信息的过程则为隐藏过程的逆过程.接受者查看接收到的每条消息表情符号的位置,若在句首,字节数组第一个元素存储“1”,否则存储“0”;根据表情符号前后空格的情况,将提取的信息写入数组的第2,3元素;根据文本的颜色,提取三位信息,写入字节数组的第4,5,6元素;查看含密文本的字符数的奇偶性,若为奇数,则将“1”写入字节数组的第七元素,否则写入“0”;最后根据是否有标点符号,将“1”或“0”写入字节数组.

3 程序实现

作为一种信息隐藏技术,不仅要在理论上可行,还要在程序上实现,并且需要实际验证才能得出可靠的结论.网络聊天时信息隐藏程序的实现也比较简单,如图2所示.信息提取过程则为该过程的逆过程.

图2 信息隐藏流程Fig.2 Information hiding process

4 实验与分析

下面通过一个具体实例来说明信息的隐藏和提取过程.假定在A和B的通信中,需要隐藏信息“避”,首先将其转换为二进制序列“1011000111011100”,按字节分为两组,发送两条消息将信息隐藏,如图3所示.

图3 聊天信息Fig.3 The messages of chat

当接收者收到聊天信息后,首先根据表情符号的位置和前后的空格情况得到前三个比特位的信息“101”,然后根据文本颜色青色判断紧接着的三个比特位信息为“100”,再根据文本字符个数判断奇偶性,写入第七比特位信息“0”,最后根据标点符号写入“1”.第二条聊天语句用相同的方法处理.最后,接受者从两条聊天语句中获取隐藏的秘密信息“1011000111011100”,再进行对应的转换得到隐藏文本信息“避”,从而达到自然有效且隐蔽通信的目的.

分析该算法可知,该算法有多种方法将秘密信息隐藏在公开的聊天文本中,方式自然,隐蔽性更强.根据该隐藏算法,一条简单的聊天语句可以隐藏一个字节的信息,收发双方可以像普通聊天一样,通过多条聊天语句隐藏大容量的消息.通信双方通过密钥来隐藏和提取信息,为了加强安全性能,可单独传送密钥.在提取隐藏信息的过程中,该方法并不需要任何其他信息,只需对聊天文本进行简单处理,即可实现对秘密信息的盲提取.

5 结束语

网络聊天中的信息隐藏技术是一种简单可行、可以广泛应用的方法,该方法构造简单、实现容易、隐藏和提取速度快,只需输入待发送文本和待隐藏信息,就可以构造相应的载体文本,不会对聊天速度产生显著影响,便于应用推广.

参考文献:

[1] 陈波,谭运猛,吴世忠.信息隐藏技术综述[J].计算机与数字工程,2005,33(2):21-23,27.

[2] 陈萍,孙利.基于表情符号的信息伪装算法设计与实现[J].太原理工大学学报,2012,43(4):456-459.

[3] 廖琪男.基于Word和PPT文档图像的信息隐藏[J].计算机工程,2010,36(10):163-164.

[4] 钟征燕.基于PDF文档结构的数字水印算法[J].计算机应用,2012(10):2776-2778,2782.

[5] 刘东,周明天.利用字符的冗余编码携带隐藏信息的文本数字水印技术[J].计算机应用研究,2007(2):155-157.

猜你喜欢

表情符号空格字符
微信表情符号写入判决:你发的每个表情都可能成为呈堂证供
趣填成语
空格填数
世界表情符号日
你来补缺的数
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
这个表情符号,你用对了吗