读吴晶的《XML中的信息隐藏》笔记

XMLExtensible Markup Language,可扩展标记语言)不是普通的文本语言,它用于置标电子文档,是一种使其数据具有结构化的置标语言。从而可利用些特性,将秘密的信息隐藏到XML文本中。

可以实现的原因,原理:

XML不是一种普通的文本文件,而是一种结构化的文本,通过改变XML的标示字体的物理特性或变换DTD声明及其应用能量中的原始XML文档的逻辑结构,将信息隐藏到XML的原始文档中。

 

信息隐藏技术是将秘密的信息隐藏到电子数据中。在这个领域中,有很多方法是通过设置秘密的通信渠道,利用这种渠道,发送者的身份很难被确定。可分为两类:一种将秘密的信息加到传送的信息中,一种是数字水印。

 

信息隐藏的两个领域:数字水印和密码学的方法。都通过将信息藏到消息中进行无察觉的秘密信息传送。

 

隐藏信息的一般过程分析:

称待隐藏的信息为秘密信息(Secret Message,而公开信息为载体信息(CoverMessage.其隐藏过程一般由密钥(Key)来控制,即通过嵌入算法(Embedding algorithm)将秘密信息隐藏于公开信息中,而隐蔽载体(隐藏有秘密信息的公开信息)则通过信道(Communication Channel)传递,然后检测器(Detector)利用密钥从隐蔽载体中恢复/检测出秘密信息。

 

信息隐藏技术的组成:

1、  信息嵌入算法,它利用密钥来实现秘密信息的隐藏。

2、  隐蔽信息检测/提取算法(检测器)、它利用密钥从隐蔽载体中检测/恢复出秘密信息。

     

 

三种文本信息隐藏技术:

1、  基于文本内容密度的方法

在这种方法中,载体文本和隐秘文本具有同样的意义。主要有两种方法:一种是运用同义词替换,在不改变隐秘文本意义的前提下来隐藏信息;另一种是密码学的方法,它是利用给定模版的自动文本格式来隐藏信息。

    2、基于显示密度的方法

    这种方法是在保证文本内容不变的情况下,在一定范围内改变文本的显示格式来隐藏信息。这种方法中的很多是被作为一种数字水印孤方法提出的,并且要求其文档有特殊的物理格式。

    根据这种原理,可以有很多方法。如可以通边改变属性、单词、行之间的空白的大小来隐藏信息,也可以通过改变文档中字体的尺寸来隐藏信息。这样,可将信息隐藏到PDF和附件的文档中。

    这些方法都依赖于文本的物理结构,当然,这些方法也同样可以用在XML文档中。

       3、依赖于标示字体的隐藏方法

       用这种方法,并不影响程序的运行结果,可通过改变标示字体的代号来隐藏信息,也可将信息隐藏到一行末尾的空白处。缺点:可能随着程序应用的改变而丢失。

 

XML中的信息隐藏

1XML的特征

XML可以看作是SGML的一个子集,它是一种元置标语言,允许用户在XML文档中根据需要定义特定的置标及属性,使信息内容有结构的进行描述,从而使XML文件的结构可以复杂到任意程度。

 

 

2XML中的信息隐藏方法

1)利用子元素进行信息隐藏

利用标记属性的表示方法不同进行信息隐藏。在XML文档中,标记属性的标示方法有几种,可以在标记中直接表示属性,也可以种用元素中的子元素来表示属性。

如:

Example 1:

密钥(一种表示方法嵌入一位数据)

<book write =“李林”></book>:0

<book><write>李林</write></book>:1

隐秘文本

<book write = “李林”>foot1</book>

<book><write>李林</write></book>

嵌入数据:01

2)样式变化的信息隐藏方法

仅仅改变文档的物理结构而非逻辑结构来将信息隐藏到文档中。

Example 2

密钥(一种表示方法嵌入一位数据)

<event month = “” data = “”>EVENT</event>:0

<event month = “” data = “”>EVENT</event>:1

隐秘文本

<event month = “ 9” data = “ 4” > Independence day</event>

<event month = “ 10” data = “ 24” >Christmas</event>

嵌入数据:01

3)利用标示字体的变化在XML文档中隐藏信息

XML文档中,标示字体是区分大小写的,可利用些特征进行信息隐藏,还有一点是可以通边改变标示字体的开头字母来隐藏信息。

Example 3:

密钥(一种表示方法嵌入一位数据)

<mytag>, </mytag>, or <mytag/>:0

<_mytag>, </_mytag>, or <_mytag/>:1

隐秘文本

<mytag>XML文档</mytag>

<_mytag>顺序</_mytag>

嵌入数据:0011

Example 4:

密钥(一种表示方法嵌入一位数据)

<mytag>, </mytag>, or <mytag/>:0

<_mytag>, </_mytag>, or <_mytag/>:1

隐秘文本

<mytag><name>李明</name></mytag>

<MYTAG><NAME>顺序</NAME></MYTAG>

嵌入数据:00001111

4)通过改变属性的命名来进行信息隐藏

XML属性与置标的命名原则一致:必须以字母或下划线开头,后面的字符可以是字母、数字、下划线、短横和圆点。属情名对大小写敏感,不允许在一个置标中出现同名的属性,即使是使用大小写进行区别也不能使用。可利用属性的开头字母和大小写的区分来隐藏信息。

Example 5:

密钥(一种表示方法嵌入一位数据)

<book name=NAME write = “WRITE”></book>:0

<book NAME=NAME WRITE = “WRITE”></book>:1

隐秘文本

<book name = “王丽” write = “foot”>order</book>

<book NAME = “理想” WRITE = “FOOT”>HOUTIAN</book>

嵌入数据:01

Example 6:

密钥(一种表示方法嵌入一位数据)

<book name=NAME write = “WRITE”></book>:0

<book _name=NAME _write = “WRITE”></book>:1

隐秘文本

<book name = “小张” write = “foot”>order</book>

<book _name = “小李” _write = “FOOT”>HOUTIAN</book>

嵌入数据:01

5)改变置标之间的尺寸来隐藏信息

XML中,两个置标之间的大小是没有确切规定的,可通过改变起始置标和结束标之间的大小来隐藏信息。

Example 7:

密钥(一种表示方法嵌入一位数据)

<mytag>

</mytag>:0

<mytag></mytag>:1

隐秘文本

<root>

<mytag>

XML文档

</mytag>

<mytag>书店</mytag>

嵌入数据:01

 

6)改变同名元素的排列顺序来隐藏信息

当同名的元素被重复显示在XML文档中时,可以改变这些元素的排列顺序来隐藏信息,这些元素在XML文档中具有相同的意义。

Example 8:

密钥(一种表示方法嵌入一位数据)

rank_high-rank_low:0

rank_low-rank_high:1

隐秘文本

<last_name>胡小</last_name>

<last_name>李明</last_name>

<last_name>艾家</last_name>

<last_name>吴忧</last_name>

嵌入数据:01

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值