基于字符偏移的文本数字水印算法研究
2014-08-07谭瑛
谭瑛
基于字符偏移的文本数字水印算法研究
谭瑛
利用字符偏移嵌入水印的方法,是文本文件中进行信息隐藏常用的方法,以一篇普通 WORD 文档为例,利用字符偏移实现嵌入水印,通过实验结果对这种方法的优劣进行分析及总结,并指出未来文本数字水印的研究方向。
信息安全;信息隐藏;文本数字水印;字符偏移
0 引言
随着网络技术的迅猛发展,人们的生活也发生了巨大的变化,它给人与人之间的交流及沟通、人们信息的获取提供了极大的变利,但是同时信息安全问题也日益突显。人们在获得变利的同时也逐渐重视网络上传输信息的保密性、安全性。信息隐藏是信息安全中的一个重要部分。1992 年国际上提出了信息隐藏技术,即将某一机密信息隐藏于另一普通信息中,由于传输的是看似普通的文件,因而很容易蒙蔽攻击者,不但隐藏了信息,而且隐藏了信息的存在,我们通常将这个普通文件称为载体文件。而数字水印技术就是信息隐藏的一个重要分支,它是利用媒体数据的冗余,将某些有价值的信息隐藏于这些普通的媒体数据中,这些媒体可以是文本、音频、视频、图像等,隐藏的信息和媒体文件一起被传输,同时,利用特定的水印检测技术可以将这些隐藏的信息提取出来。目前数字水印技术主要是对图像水印、音频水印、视频水印的研究,由于文本文件的冗余度低,因此,对这方面的研究较少,而文本文件又是现实生活中使用最广泛的信息交流媒体,对文本数字水印的研究是十分有价值的,本文以现实中广泛使用的文本文件作为载体媒介进行研究。
1 文本数字水印技术
在文本文件中加入水印的方法主要有基于文本文件格式的方法,如利用行偏移、字偏移、字体、字体颜色、字号的改变等;有基于文本内容的方法,如同义词替换、语法结构变换等;有基于不可见编码的方法,如替换法、追加法等。文本数字水印嵌入及提取的基本模型如图1所示:
图1 水印嵌入及提取模型
无论是用哪种方法,加入水印的关键是既要做到水印的安全隐蔽,又要做到即使发现了有嵌入的水印,也不能轻易、完整地提取出来。评估水印技术的指标主要有:(1)鲁棒性:指嵌入了机密信息的载体文件即使受到了干扰仍能保持一定的完整性的能力。(2)隐蔽性:即不可见性,指虽然嵌入了机密信息,但人眼几乎无法识别,以达到蒙蔽人眼的目的。(3)水印容量:指嵌入的水印量的多少。
2 基于字偏移的文本水印算法及实现
文本文档包括纯文本文件(*.txt)、WEB 页(*.htm 和*.html)、WORD 文档(*.doc)等,其中 WORD 文档是目前使用最广泛、最流行的文本文件,因此,本文以 WORD文档为例进行研究。
这是一篇普通文档,将其作该载体文件,该文件共有234 个字符,字间距为标准如图2 所示:
图2 原始载体文件
2.1 算法思想
根据研究,人眼无法辨认 1/150 英寸以内的水平间距变化,因此可以利用微小改变字间距来实现信息的嵌入。1英寸为 72 磅,0.1 磅小于 1/150 英寸,因此实验设置字间距为标准时隐藏信息“0”,字间距为加宽 0.1 磅时隐藏信息“1”。
本例利用 VBA 创建两个宏,insy 和 outsy 分别实现嵌入水印和提取水印,隐藏的信息通过输入对话框输入。2.2 嵌入水印
通过输入对话框输入嵌入信息“hide”,它们对应的ASCII码分别为 104、105、100 和 101,将它们分别转换为二进制,并将这些二进制代码依据隐藏规则,即隐藏信息为“0”时字偏移不变,隐藏信息为“1”时,字偏移加宽 0.1磅,从而实现水印的嵌入。
程序代码:
Dim s
Public Function dtb(ByVal dec As Long) As String ' 定义函数,实现十进制转换成二进制
dtb = ""
Do While dec > 0
dtb = dec Mod 2 & dtb
dec = dec 2
Loop
End Function
Sub insy() ' 实现信息的隐藏
Selection.HomeKey unit:=wdStory
x = InputBox("输入嵌入信息", "请输入嵌入信息")
l = Len(x) ' 输入字符串的长度
ReDim a(l)
For i = 1 To l ' 输入的字符串依次转换成二进制
a(i) = dtb(Asc(Mid(x, i, 1)))
st = st + a(i)
Next i
s = Len(st)
For i = 1 To s ' 如果要嵌入的信息为"1",则字间距改为加宽 0.1 磅
b = Mid(st, i, 1)
If b = "1" Then
Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
With Selection.Font
.Spacing = 0.1
End With
End If
Selection.MoveRight
Next i
End Sub
2.3 提取水印
先扫描文件,提取出隐藏的二进制代码,并将其转换成十进制,再将这些十进制转换为对应的字符,最后通过输出对话框显示出来,实现水印的提取。
程序代码:
Public Function btd(ByVal bin As String) As Long ' 定义函数,实现二进制转换成十进制
Dim i As Long
For i = 1 To Len(bin)
btd = btd * 2 + Val(Mid(bin, i, 1))
Next i
End Function
Sub outsy() ' 实现信息的提取
Selection.HomeKey
For j = 1 To s ' 如果字间距为加宽 0.1 磅,则提取出的信息为"1",否则为"0"
Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
With Selection.Font
If .Spacing = 0.1 Then
x1 = "1"
Else
x1 = "0"
End If
End With
x = x + x1
Selection.MoveRight
Next j
y = Len(x) / 7
ReDim b(y)
For i = 1 To y
b(i) = Chr(btd(Mid(x, 7 * i - 6, 7)))
c = c + b(i)
Next i
MsgBox "提取的信息是:" + c, vbOKOnly, "提取信息"
End Sub
2.4 程序运行结果
如图3所示:
2.5 程序结果分析
从图3可以看出,嵌入水印的文件与图2的原始载体文件十分接近,文中用下划线标出的是字间距加宽 0.1 磅,如果不标出这些位置,肉眼是几乎看不出的,相似度极高,因此,具有很好的隐蔽性。载体文件共有 234 个字符,利用字偏移可以嵌入 233 位二进制,而“hide”字符串转换为二进制共有 28 位,由此可以成功实现“hide”信息的隐藏,并且程序运行结果提取的信息即为“hide”,准确性 100%。但是该载体文件共可嵌入 233 位二进制,即可以嵌入的英文数为 33 个,如果需要嵌入的信息量大于 33 个英文,那么多余的英文将无法正确提取出来,因此水印容量有限。此外,由于人们的排版习惯,对于视觉上看似均匀的字间距,很少会去进行修改,并且由于WORD文档本身具有继承性,如果逐个替换其中的字符,新字符将继承原字符的格式不变,因此,从这点来看具有较好的鲁棒性,但是这只是习惯上的操作,不代表人们不会去这样做,如果一旦对字间距进行了修改,嵌入在文本信息中的文本水印便被破坏,从这点来看其鲁棒性并不强。
3 总结
本文是利用字偏移编码实现将数字水印嵌入到文本文件中,从上例的实验结果,我们可以看出,利用这种方法存在的问题:1.水印容量受文件字符的限制;2.水印的鲁棒性不好。当然不仅仅是这种方法,利用文本文件格式的其他方法,如利用行偏移、字体、字体颜色、字号的改变等来实现嵌入水印,也不可避免这些问题的存在。因此,在文件大小有限的情况下既要增加水印容量,又要提高文本数字水印系统抗攻击的能力,提高攻击者的攻击成本,这将是未来研究的主要方向。
[1] 肖湘蓉,孙星明.基于内容的英文文本数字水印算法设计与实现,[J]计算机工程,2005,31(22):29-31
[2] 杨义先.数字水印理论与技术[M].北京:高等教育出版社,2006,83-86
[3] 白剑,杨榆,徐迎辉.基于文本的信息隐藏算法[J].计算机系统应用,2005(4):32-35
[4] 王育民,张彤,黄继武.信息隐藏:理论与技术[M].清华大学出版社,2006
[5] 汪小帆,戴跃伟,茅耀斌等.信息隐藏技术――方法与应用[M].机械工业出版社,2001
[6] 戈英民,郑岗.一种利用字符特征变化的文本数字水印方法[J].微型电脑应用,2005,21(3):36-39
[7] 庞治年,邹德全.关于计算机网络信息加密技术的探讨[J].信息安全与技术,2012(3)
[8] 王丽娜,张焕国.信息隐藏技术与应用[M].武汉学出版社,2006.8
[9] 王艳,李秀滢.基于小波变换的信息隐藏技术的改进[J].信息安全与通信保密,2012(2)
[10] 张洁勇,刘守义.数字指纹技术的攻击方法概述[J],计算机与信息技术,2008(12)69-71
[11] 吴明巧,金士尧.针对文本隐写工具Stego的隐写分析方法[J].计算机工程,2006,32(23)
[12] 陈志立,黄刘生,余掁山,李凌君,杨威.文本信息隐藏的统计检测算法[J].小型微型计算机系统,2008,29(2)
[13] 张宇,刘挺等.自然语言文本水印[J].中文信息学,2005,19(1)
[14] 刘显德,唐国维,富宇等.一种基于WORD文档的信息隐藏方法[J].电子技术应用,2005,31(4)
[15] 甘灿,孙星明,刘玉玲等.一种改进的基于同义词替换的中文信息隐藏方法[J].东南大学学报(自然科学版),2007,37(IS)
[16] 刘文戈,景红.基于文本文档的信息隐藏技术研究[J].四川师范大学学报(自然科学版),2010,7
[17] 谭瑛. 基于文本排版格式的信息隐藏方法比较研究[J].计算机与现代化,2013,6
Research on the Text Digital Watermarking Algorithm Based on Character Offset
Tan Ying
(Department of Information, Yunnan University of Finance and Economics, Kunming 650221,China)
By using character offset embedded watermarking is the most commonly used method of information hiding in the text documents. In a WORD document as an example, embed watermark using character offset, analyze and summarize the results of this method, and points out the future research direction of text watermarking.
Information Security; Information Hiding; Text Digital Watermarking; Character Offset
TP311
A
1007-757X(2014)02-0020-03
2013.12.26)
云南财经大学科研基金青年项目(YC2013B31)
谭 瑛(1978-),女,江西九江,云南财经大学,讲师,硕士,研究方向:信息安全、计算机应用,昆明,650221