文本水印技术与网络安全通信
何南忠 李声涛
Huazhong University of Science and Technology Wuhan 430074, People's Republic of China
E-mail : lst_foxhust@263.net
摘要
针对现在的数字水印技术在数字图象水印上的快速发展,本文提出利用行移编码,字移编码,特征编码实现的文本水印技术.这种水印技术比图象水印技术有着实现简单,小存储量,高效率等优点。
关键字
行移编码 字移编码 特征编码 不可否认
正文
为简单起见,现将模型中编码,密钥,反编码省去。即为:信息→嵌入算法(载体)→隐秘载体→提取算法(载体)→信息。
在当今电子数据交换大量代替传统的纸张文档交换的同时,对数据安全性要求越来越高。我们利用传统的数字加密算法和数字信息隐藏技术相结合的办法使数据的安全性得到更大的提高。同时我们利用文本作为载体,这比图象水印节约存储空间,同时还提高了运算效率。而且在现实生活中,文本比图象应用的频率更高,更为广泛。 利用文本水印不但实现信息的安全通信,同时还可以保护载体文本的版权,也可以结合传统的加密算法实现数字签名等传统加密算法的一些功能。
算法实现:
要把信息嵌入到文本中,当然我们可以先对信息进行预处理,比如加密,格式化等等,假象信息被格式化为二进制码,然后在利用不同的规则将二进制信息嵌入到文本中,其中这些规则有:
1、行移编码
行移编码,他是通过垂直移动文本行的位置来嵌入水印信息的.水印信息和秘钥共同规定了文档中哪些文本行将被移动.如,我们可以规定上移表示”0”,下移表示”1”,当然这仅仅只是一种事先的约定.这样没三行就可以嵌入一位的信息。
当然,坐标记的文本行本身和相邻两行都应该足够长(保证不会被小范围的修改而缩进),相邻行为控制行,不作任何移动.这样就可以通过控制行和标记行来确定嵌入的信息.
例如:A thermal lattice BGK model with a robust boundary scheme is developed for the Boussinesq
incompressible fluids. In the model the velocity and temperature fields are solved by two independent
lattice BGK equations which are combined into a coupled one for the whole system. The 2D natural
从上面的信息我们显然可以得到前两行的距离比后两行的距离短,我们根据实现约定好的规则就可以得到这三行文字嵌入的位信息为“0”;
2、 字移编码
字移编码,是通过平行移动文本中字符的位置来嵌入水印信息的.和行移动编码相似,我们可以事先约定移动的规则。采用这种方法时,相邻字符之间的距离是不一定相同的.(当然我们用手动的方法也可以嵌入水印信息);
字移动的话,嵌入每一位信息需要三个字块.其中中间的位标记位,与之相邻的位控制位.(当然这只是针对英文文档)如果是中文文档,我们就需要利用特征编码.
例如:
convection flow of air in a differentially heated cavity of aspect ratio 4 is simulated for values of the Rayleigh number up to 1010.
为简单期间我们没有用密码直接安文字的间隔嵌入水印。如果文字左移为“1”,右移为“0”,我们可以知道上面文字嵌入的信息位为“ 0110100”
2、 特征编码
特征编码,是通过改变文本中的各种属性来嵌入水印信息.特征可以是制定字符的位置,字体,段落,字符高度等等(其实上面的行移编码和字移编码都属于特征编码范畴).我们还可以通过同义词替换文本中某些词汇来嵌入信息;而且可以定义制定词汇的间距来控制信息的嵌入。
例如:
Huazhong University of Science and Technology
上面的信息水印我们利用字符大小来嵌入,当然我们还有更多的方法。字符比左边一个大,就为“1”,反之为“0”;这样我们只需要两个字符就可以嵌入一位的信息。我们只在第一个文字Huazhong嵌入信息,显然第一字符H为小三号字,第二个字符为四号字。第三个字符为四号字,第四个字符为小四号字……我们的水印信息显然为“1001”。
为了容易理解,段落和字符间距变化很大,如果在正规的文本中,这种差异更不容易看出来。以上的信息嵌入我们都不需要原文档来提取水印信息,称之为盲隐藏。我们当然也不是从第一段或第一个字符到最后一段或一个字符没有规则的嵌入信息,我们要利用秘钥K来确定信息嵌入的位置或者方式。这样信息就可能隐藏在文本的每一个地方,从而提高安全性。
文档水印信息的安全性:
要使文档水印信息具有安全性,那就必须结合完备的密码体系和传输协议来完成。我们要保证水印信息的完整性,防止第三方的截获,修改,删除和重构。由于水印信息和文档信息密不可分,我把水印信息的保护归结为对文档的保护。
文档数据的安全性:
文档数据的安全性可分为单机上的文档安全性和网络通信上的文档安全性,单机的文档安全性可以利用经典的加密算法来保证,很多其他的文章上都提到了,我们重点来谈谈网络通信上的文档安全性
1、 假设:
存在第三方,他可以截获,修改,删除和重构在网络上传输的所有信息。
信息的安全性仅仅基于对私有密钥的安全性,即,加密算法和通信协议四公开的,且加密算法很强。
以上两条假设很强,如果在这两条假设的基础上可以实现安全通信,那文档在网络上的安全通信也成为可能。
2、实现
网络通信的文档完整性的定义为,即发送方发送文档,接收方收到文档后可以确定文档的来源,内容和是否被替换,修改。在通信中我们还利用到共有密钥加密系统。保证通信的文档完整性可以归结为防止网络上第三方发起的中间人攻击。
中间人攻击:(发送方:Alice 接收方: Bob 第三方:Mallory)
(1)Alice将她的公开密钥传送给Bob。Mallory截取了这个密钥并将自己的公开密钥传送给Bob。
(2)Bob将他的公开密钥传送给Alice。Mallory截取这个密钥,并将自己的公开密钥传送给Alice。
(3)当Alice将用“Bob”的公开密钥加了密的信息传送给Bob时,Mallory截取它。由于信息实际上是用Mallory的公开密钥加密的,他就用自己的私钥解密。再用Bob的公开密钥对信息重新加密,并将它传送给Bob。
(4)当Bob将用“Alice”的公开密钥加密的信息传送给Alice时,Mallory截取它。由于信息实际上是用他自己的公开密钥加密的,他用他的私钥解密信息,再用Alice的公开密钥重新加密,并将它传送给Alice。
即使Alice和Bob的公开密钥存储在数据库中,这种攻击也是可行的。Mallory能够截取Alice的数据库查询,并用自己的公开密钥代替Bob的公开密钥,对Bob他也能做同样的事情,用自己的公开密钥代替Alice的公开密钥。他也能秘密地侵入数据库,用他自己的密钥代替Alice和Bob的密钥。接下来他就简单地等着Alice和Bob互相谈话,然后截取和修改信息,他成功了!
我们看看一下的连锁协议:
(1)Alice将她的公开密钥传送给Bob。
(2)Bob将他的公开密钥传送给Alice。
(3)Alice用Bob的公开密钥加密她的报文,并将加密报文的一半传送给Bob。
(4)Bob用Alice的公开密钥加密他的报文,并将加密报文的一半传送给Alice。
(5)Alice将加了密的另一半报文传送给Bob。
(6)Bob将Alice的两半报文合在一起,并用他的私钥解密;Bob将他加了密的另一半报文传送给Alice。
(7)Alice将Bob两半报文合在一起,并用她的私钥解密。
这里重要的一点是:只有报文的一半,没有另一半,报文是毫无用处的。Bob只有到步骤(6)步才能读Alice的报文,Alice只有到步骤(7)步才能读Bob的报文。有很多办法实现它:
(1)如果采用分组加密算法,每一分组的一半(例如,每隔一比特)能在每半个报文中发送。
(2)报文的解密依赖于初始矢量,初始矢量可以在报文的另一半中发送。
(3)首先发送的一半报文可能是加密报文的单向hash函数,并且加密报文本身可能是另一半。
连锁协议虽然可以防止第三方对信息的修改再发送。但是不能防止他阅读信息。我们根据两条假设何以知道,接收方收到的信息,第三方必然知道,如果要实现安全通信,只有再通信前接收方和发送方有一个共享的密钥或信息(直接用共享密钥解密发送就可以了);但这和假设一矛盾了,不过在现实生活中,我们仍有办法办到,我们可以通过其他的通信发放例如信件等等。在这两条假设下,我们无法实现安全通信,不过我们可以加大第三方的攻击难度这是我们可以做到的。
我们利用多路通讯协议和秘密分割协议就可以做到这一点。
(1) Alice将她的公开密钥通过秘密分割协议分为n组。Bob只有收到所有的n组或者其中的一部分才能恢复Alice的公开密钥。
(2) Alice通过多路通信协议将所有的密钥分组发给Bob。即通过不同的信道,例如通过邮件,电话,或者用信鸽等等把分组信息发给Bob;
(3) Bob将他的公开密钥用同样的方法传送给Alice。
(4) Alice用Bob的公开密钥加密她的报文,并用秘密分割协议分为m组。
(5) Alice同样用多路通信协议分别将加密报文的分组1传送给Bob。
(6) Bob用Alice的公开密钥加密她的报文,并用秘密分割协议分为m组。
(7) Bob同样用多路通信协议分别将加密报文的分组1传送给Alice。
(8) Alice将其他分组分别传送给Bob。
(9) Bob将其他分组分别传送给Alice。
…………
(6)Bob收到最后一份分组以后将Alice的所有报文合在一起,并用他的私钥解密;Bob将他加了密的最后一组报文传送给Alice。
(7)Alice将Bob所有的报文合在一起,并用她的私钥解密。
如果想为Mallory带来更多的麻烦,我们可以随机在信道集合里面随机选取通信方式,而且在发送报文秘密分组时同样通过秘密分割和多路通信协议发送。
一些问题的讨论:
文本水印理论上和图象水印相似,但缺少了象傅立叶变换等经典的处理方法,从而在某些方面要比数字图象水印要欠缺。例如在抗干扰方面。但是我们可以利用多种嵌入方法的结合也可以有效的解决这个问题。当然对应于图象处理方法的文本处理方法我们值得进一步的探讨和研究。
参考书目
信息隐藏技术的实现和应用
应用计算机密码学