首页 > 文章中心 > 正文

信息隐藏模型

信息隐藏模型

摘要:通过仔细分析HTML标签的各种性质,提出了几种新的基于标签的隐藏信息的方法。在此基础上,提出并实现了一个基于HTML标签的信息隐藏模型。该模型具有隐藏容量高、隐蔽性、鲁棒性和安全性较好,并且具有弹性,能自动调节隐藏算法的参数,使得在满足容量的前提下,尽量提高隐蔽性。

关键词:超文本标记语言;信息隐藏;数字水印;模型;标签;文本

随着电子图书版权保护、电子商务和电子政务中对电子公文的认证和保护的迫切需求,在文本中嵌入信息或水印的研究正受到重视。根据文本的作用,文本可分为:普通文本,如.txt文档、Word文档或PDF文档等;特殊文本,如HTML中的标签、C语言源程序的语句。这些文本其作用是供浏览器解析或CPU执行的。目前针对Word、PDF等普通文本,提出了很多隐藏信息或水印的方法,主要有:①替换法[1,2],如字符替换、单词替换、句子结构替换;②改变格式法[3~5],通过改变格式特征如字体、字号、颜色、字间距或行间距等进行信息隐藏;③基于语义的方法[6];④基于二值图像的方法[7];⑤插入空白符合法[8]等。利用WWW访问HTML网页是一种非常方便的获取信息的手段,而利用HTML网页隐藏信息进行秘密通信,或对HTML网页嵌入水印用于保护网页的知识版权或网站的认证,这方面的研究却很少见[10]。

1基于HTML超文本的信息隐藏方法

1.1HTML文件结构简介

超文本文档分文档头和文档体两部分。其基本结构是:

HTMLHEAD头部信息/HEADBODY文档主体,正文部分/BODY/HTML

超文本文件不同于一般的纯文本文件,它是由标签和数据两部分组成。标签是用于控制数据显示格式和效果的,由浏览器解析执行的命令,相当于程序的指令;数据即是文件中包含的能够在浏览器上显示出来的文字、图片和动画等多媒体资料。标签用“”和“”括起来,有单标签和双标签两种类型。单标签只需单独使用,格式是:标签名称,如BR标签表示换行的意思;双标签必须是起始标签和结束标签成对出现,格式是:标签内容/标签,如HTML——/HTML标签。大部分标签还可以具有属性和属性值,带属性的标签的格式是:标签名称属性名称=“属性值”。

1.2基于HTML文件的信息隐藏方法

根据超文本文件的结构便知道,在超文本文件中隐藏信息主要有两种策略,即在数据元素中隐藏信息和在标签中隐藏信息。在数据元素中隐藏信息的方法依赖于数据的类型是文字、图像、声音、脚本语言程序等而不同。如果元素类型是文本的话,则可应用基于普通纯文本的隐藏方法,如替换法。标签虽然是纯文本,但由于是程序指令,有固定的诸多语法规则和约束,不能随便照搬基于普通纯文本的隐藏方法,而是需要特殊考虑。标签只是控制数据在浏览器上的表现形式,而不会显示出来。如果能够基于标签隐藏信息,其隐蔽性将会比较好。

目前已提出的基于超文本文件的隐藏方法有[9,10]:①在网页结束标记/HTML后或者在每行的行尾插入空格或Tab键隐藏信息,插入一个空格代表0,插入一个Tab代表1。像著名的水印软件Wbstego、Stegano、InvisibleSecret等都是利用这种方法。之所以可以这样隐藏信息,是因为浏览器会对HTML文件中多余的空格忽略掉,从而插入空格或Tab后不改变显示的结果。可以通过连续插入任意多个符号使得隐藏的容量可以任意大,这是其优点;其缺点是每插入一个字节的信息,文件大小需增加八个字节;另外,虽然隐藏信息后的文件浏览的结果不会改变,用记事本这样的编辑软件打开也不容易看出差别(但仔细看还是能看出这些不必要的空白符号的存在),但是当文件以二进制格式打开时其多余的空格符号一览无遗,同时,这种方法也经不起“网页减肥茶”之类的软件处理[12]。②修改标记名称字符的大小写,用大写表示1,小写表示0来隐藏信息。例如以大写标记名称HTML代表1,以小写的标记名称html代表0。这样,一个标记可隐藏1bit信息。方法2克服了方法1的缺点,具有较好的隐蔽性和抗攻击性[10]。

2几种新的基于超文本的信息隐藏方法

2.1隐藏方法

前面的基于修改标签名称字母大小写的方法虽然克服了方法①的缺点,具有较好的隐蔽性和抗攻击性。但是,其隐藏容量比较小,不能满足隐藏长文本,特别是隐藏图像的需求。

通过仔细分析HTML超文本标记语言的语法规则后,发现还有以下一些资源可以用于隐藏信息。

(1)标记属性名称像标记名称一样对字母大小写不敏感。可以通过修改标记属性名称的大小写来隐藏信息。比如,用标记属性名称字母全部大写代表1,全部小写代表0。例如divALIGN="center"代表1,divalign="center"代表0。这样,一个属性名称可隐藏1bit信息。

(2)标记属性可以赋值,而属性的值是用“”括起来的字符串,属性值字符串中的字母对大小写不敏感。可以通过修改属性值字符串的大小写来隐藏信息。比如用属性值字母的全部大写代表1,全部小写代表0。例如divalign="center"代表0,divalign="CENTER"代表1。这样,一个字符串属性值可隐藏1bit信息。

(3)HTML中,属性值默认是用双引号括起来的,但是也可以用单引号括起来。可以将属性值外面的双引号“”用单引号‘’替换来隐藏信息。比如,用双引号时代表1,单引号时代表0。例如divalign="center"代表1,而divalign=′center′代表0。这样,一对属性值引号可隐藏1bit信息。2.2隐藏性能分析

3.1信息隐藏模型

前面可以看到,基于HTML标签的隐藏方法,单一的隐藏方法容量是比较小的,只能隐藏少量的字符信息。为了满足实际的信息隐藏的需要,必须考虑综合采用多种隐藏方法,并采取其他一些措施在安全性、容量、隐蔽性和鲁棒性之间取得折中。基于此,本文建立了一个基于HTML标签的信息隐藏模型,如图1所示。该模型包括秘密信息的嵌入和秘密信息的提取两部分,考虑了隐蔽性、鲁棒性、安全性和容量要求。

信息在嵌入之前必须进行预处理,预处理的主要目的是进行压缩、加密和纠错编码处理。

这里,笔者采用的是无损压缩方法。一种广泛运用的无损压缩方法是Huffman编码,它是基于信源字符统计分布的不均匀性,对出现概率大的字符分配较短的码字,而对很少出现的字符给较长的码字,从而实现平均码字较短。已经证明,Huffman码是一种最优前缀码[11]。如果隐藏的信息是英语片段,则可以根据26个字母的概率分布,对各字符进行Huffman编码;如果嵌入的是图像则进行JPEG压缩处理;对于有些秘密信息,如中文字符串或已经压缩的图像,则不进行压缩预处理。

保证只有合法接收者能够提取隐藏信息是非常重要的,采取的措施是对压缩后的数据进行加密处理,可以根据安全性的需求选用经典的或目前广泛使用的加密技术。在该实验中,选用的是32位密钥长度的DES加密。密钥必须通过另外的安全信道传递给接收方。

本文原文

为了具有一定的鲁棒性,模型中对加密后的数据要进行纠错编码,以防即使一部分数据受到攻击也能提取出隐藏的信息。如果嵌入的是短文本,则可以使用简单的三次重复编码,例如,要嵌入的信息是01011,则重复编码的结果是000111000111111;但是如果嵌入的文本较长,则可以采用(7,4)汉明码以便有足够的嵌入空间;如果嵌入的是图像,则可以不进行纠错编码,因为图像中即使有部分数据错误也不会有太大关系。如果容量够的话,在嵌入之前,要对纠错编码后的数据复制一份,即使得最后嵌入的数据是两份。在嵌入数据之前,还要分析载体网页的隐藏容量,并与嵌入信息的容量进行对比,以便确定合适的隐藏算法参数。接下来,可以根据嵌入的位置逐位地进行嵌入。

3.2模型性能分析

首先,在提高隐藏容量方面,模型采用了三方面的措施:①对隐藏信息进行压缩预处理;②综合采用前面的多种隐藏方法;③修改隐藏算法的参数。

通过压缩预处理,可以使隐藏容量大大提高。例如,普通英文文本,采用ASCII码,每个字符需要8bits表示;如果采用Huffman码压缩,则可能作到平均每字符2bits左右。

几种主要的隐藏方法的隐藏比是差不多的,因此,通过综合运用多种隐藏方法可以大大提高隐藏容量。例如综合运用方法1和2是单独使用方法1或2的容量的两倍左右。综合运用所有方法的隐藏容量是隐藏容量最高的方法的四倍以上。

修改隐藏算法的容量参数也是提高隐藏容量的好办法。对于字母大小写替换法,如果平均每个标志符的长度为n,则采用每个字母的大小写均修改的办法,可以将隐藏容量提高到原来的n倍。

在提高隐蔽性方面,模型使用两种策略:①仔细选用隐藏算法的参数,在满足隐藏容量的要求下,调整隐藏参数,以增强隐蔽性,如尽量使插入的空格数少,尽量使字母的大小写变换的频度减少。②随机选择嵌入位置,而不是从头至尾连续嵌入。嵌入位置是通过随机发生器产生。这里的随机种子就是加密密钥。

在鲁棒性方面,模型采用了两种策略,即对小信息嵌入时进行重复嵌入和进行纠错编码。

在安全性方面,本文使用了加密策略,即在对隐藏的信息进行压缩后进行加密处理,加密的结果再送到纠错编码模块。

4系统实现

本文对待隐藏的信息封装成帧。格式如下:

(10)使用基本的算法容量参数,逐个使用表1中方法在(9)所确定的标签中,按顺序隐藏数据帧中的帧头;隐藏完帧头后,按照(6)中确定的算法容量参数,逐个使用表1中方法在(9)所确定的标签中,按顺序隐藏数据帧中的数据比特流。

(11)如果数据帧中尚有未隐藏的bit,则重复上面的(9)和(10),直到隐藏完为止。

从网页中提取隐藏信息的过程正好相反。为了使得接受方在收到帧头前,能够使用合适的算法容量参数解隐藏,故约定对帧头采用基本的容量参数进行隐藏和解隐藏。对帧头采用基本容量参数也可

提高帧头的隐蔽性,以防攻击。

图2(a)是载体网页——广东水电学院的首页,右上是使用模型隐藏了文字“HappyNewYear”后的HTML片段。可以看出此时的隐蔽性很好,几乎看不出HTML文本有什么特别。图2(b)是秘密信息Lena图像,大小是2KB,即16000bits,由于隐藏的数据量较大,故需要将所有隐藏方法的容量参数调节到最大,并且不进行重复隐藏。右边是隐藏Lena图像后的HTML代码片段,可以看出,此时的隐秘性下降。

实验证实,对于局部的HTML代码使用删除空格或标签字符大小写随机替换的攻击,有较好的抗攻击性能。这是由于,对于小信息量的隐藏采用了纠错和重复隐藏措施并且隐藏的位置是随机的;而对于图像隐藏,则由于图像本身具有一定的容错性。

5结束语

本文首先介绍利用HTML隐藏信息的研究情况;然后提出一些新的可行的基于HTML标签的信息隐藏方法,并在此基础上给出一个基于HTML标签的信息隐藏模型。该模型由于是基于标签,其隐蔽性较好。该模型综合了基于标签的多种隐藏方法,具有较大的隐藏容量;同时,该模型还具有纠错、加密等容错和安全措施。该模型是一个基于HTML信息隐藏的较好的解决方案。基于文本的信息隐藏算法的一个很难克服的问题是鲁棒性不如图像等载体,不过,信息隐藏更关心的是容量、隐蔽性和安全性,而且HTML网页是保存在服务器上并通过网络传递到用户的浏览器的,敌手要改变网页还需要克服其他安全屏障。该基于HTML标签的算法和模型还是很有实用价值的。

参考文献:

[1]肖湘蓉,孙星明.基于内容的英文文本数字水印算法设计与实现[J].计算机工程,2005,31(22):29-31.[2]眭新光,罗慧.一种安全的基于文本的信息隐藏技术[J].计算机工程,2004,30(19):104-105.

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

[4]刘豪,孙星明,刘晋飚.基于字体颜色的文本数字水印算法[J].计算机工程,2005,31(5):129-131.

[5]刘玉玲,孙星明.通过改变文字大小在Word文档中加载数字水印的设计与实现[J].计算机工程与应用,2005(12):110-112.

[6]MIKHAILATALLAHJ,VICTORR,CHRISTIANFH.Naturallanguagewatermarkingandtamperproofing:proc.ofthe5thInternationalInformationHidingWorkshop[C].Berlin:[s.n.],2002:196-212.

[7]王欣,张旭东.一种针对汉字文本图像的数字水印技术[J].计算机工程与应用,2005(25):57-60.

[8]白剑,徐迎晖,杨榆.利用文本载体的信息隐藏算法研究[J].计算机应用研究,2004,21(12):147-148.

[9]ERICC.Hidinginplainsight:steganographyandtheartofcovertcommunication[M].[S.l.]:WileyPublishingInc,2003.

[10]眭新光,罗慧.一种新的基于超文本的信息隐藏方法[J].计算机工程,2005,31(12):136-138.[11]LONGD,JIAW,LIMing.Optimalmaximalandmaximalprefixcodesequivalenttohuffmancodes:proceedingsof2002IEEEInternationalConferenceonAcoustics,Speech,andSignalProcessing(ICASSP)[C].[S.l.]:[s.n.],2002:2525-2528.