数字密写概述和
开放式应用
作者
:
布雷特
·
邓巴(
Bret Dunbar
)
翻译:Robin Li(Robinli108@gmail.com)
2002
年
01
月
18
日
I.
介绍
这篇论文是关于一个信息技术的新课题:数字密写。这篇论文会让读者深刻的了解大量的密写概念和密写的历史以及数字密写在当今的一些应用。这篇论文将特别关注密写在开放式系统上的应用,如网络。同时会有一些工具和可以使用的资源来帮助我们理解这么概念。
II.
什么是数字密写?为什么这个很重要?
数字密写或密写经常在一些IT团体中被提到,其字面意思是“秘密写入”,这个词来自于希腊语。数字密写曾被Markus Kahn [5] 定义为: “密写是隐秘通讯的一种艺术与技术,和传统的密码保护相比较,密写的目标是让秘密信息隐藏在无害的信息中,致使敌对方很难察觉信息的所在,而传统的密码加密,密码信息是暴露的,敌方可以不用通过安全的加密系统就可以直接破解,干扰和修改消息。”
在数字世界中,密写和加密都力图保护信息免遭破坏。两者都努力做到这一点,但不是说那个做的更好,并且两个都会被破解。正如此,所以许多专家建议混合使用密写和加密以达到多层安全。密写的在当前应用中有很多的载体。最流行的有以下几种:.bmp(位图),.doc(文档),.gif(GIF图像),.jpeg(JPEG 图像),.mp3(音频),.txt(文本)和.wav(音频)。主要因为这些文件在网络上很流行并且容易用于密写信息。另外流行的原因是这些文件有很多的多余或噪声数据存在,这些区域可以用来密写信息。
在未来的互联网安全和开发式系统中的个人隐私保护系统中,数字密写技术将是非常重要的一部分。加密系统在开发式环境中的不足推动了密写技术的研究。许多政府立法限制加密系统在开放式环境中的使用,有的甚至完全禁止。这主要防止对窃听技术发展。令人担忧的是在很长一段时间里,许多的互联网团体没有安全保护,加密算法不够健壮,或者更本没有安全保障。
国民自由主义抨击到:“这样的限制是对人生隐私权的攻击”。这就是为什么数字密写被引入的原因。数字密写能够将重要的信息隐藏到另外的文件中,这样只有内部知道信息所在的人能够提取信息。为了增加多层安全和帮助加密技术从“加密和法律的斗争”问题中恢复过来,最好将密写和加密结合使用。正如前面所说,针对开放式系统,没有任何一个是“完整的解决”方案,但是结合两者可以为这个系统提供令人满意的连接和通讯。
III.
数字密写的历史概述
关于密写最早的记录是在公元前
440年,在《旧约圣经》中提到,它的作者是古希腊的著名的历史学家希罗多德(Herodotus)。希罗多德记录了当时希腊的两个关于密写技术的故事。第一个故事是,古波斯帝国国王将奴隶的头发剔去,将信息写在他的头皮上.当这个奴隶的头发重新长好后,他把奴隶秘密的送到国王的女婿Aristogoras那边。剔去头发就可以重新获得信息。第二个故事也是来自希罗多德,故事说的是一个士兵名字叫Demeratus需要发信息给斯巴达克(Sparta),告诉他Xerxes计划侵略希腊。密写的媒体为蜡封的板。Demeratus将板的蜡去掉,将信息写在木板上,并重新将蜡封上使其看起来就是一张空板,最后将信息秘密的发送出去。
罗马人曾使用几种水果汁和牛奶做的密写墨水。改墨水密写的文本通过加热就可以重新获取信息。隐形墨水得到好的发展,当今也有少量的应用。
从15世纪到16世纪,许多作家包括Johannes Trithemius (《Steganographia》的作者)和Gaspari Schotti (《Steganographica》的作者)有关于文字的译码技术、隐形墨水以及隐秘信息和音乐的组合的论文发表。
在1883到1907之间,进一步的发展应该归功于Auguste Kerckhoff (Cryptographic Militaire的作者)和Charles Briquet (Les Filigranes的作者)。 两本书更多的是关于密码学的内容,但是两者也为密写理论和数字水印的奠定了理论基础。
在第一次世界大战和第二次世界大战中,密写得到很大的发展。如
Null cipers (藏头诗,比如取每个单词的第三个字母,组成秘密信息),图像置换和微点印刷技术等被认为是最有代表性的发展。
在当今的数字时代,即
1992到现在以来,密写被广泛应用于计算机系统。许多工具和技术被创建起来,比较于传统的密写技术,如Null cipers, 图像编码, 视频编码, 音频编码和微点印刷术。随着研究的发展,可以预料在不久的将来会有更多更好的应用程序出现。
IV.
数字密写概述
这个部分我们将进一步讨论密写
。我们将讨论现实应用中不同的密写类型和一些另外的密写原理。接着我们将讨论一些当今的密写技术。我们将具体了解密写技术以及不同的应用方式。我们也会不时回顾密写分析。密写分析关注的是使用艺术和科学的方法来发现或者破坏用多变的密写技术密写的秘密信息。
作为开始,我们先了解很好安全通讯
(
数字密写
)
需要那么理论基础。为了解释这个原理,我们将使用
3
个角色,他们名字是
Amy
,
Bret
和
Crystal
。
Amy
想通过无关文本
(R)
来隐藏秘密信息
(M)
并创建一个保护层
(C)
并用其来无障碍的将信息输送给
Bret
。
Amy
接着使用密写密钥
(K)
将秘密信息写入到保护层
(C)
中,得到密写实体
(S)
。
Amy
接下来应该将密写实体发送给
Bret
,并且不会引起
Crystal
的注意。
Bret
将可以得到秘密信息
(M)
,因为他知道
Amy
使用的密写密钥
(K)
。
如
Fabien A.P. Petitcolas [2]
指出的,“在一个好的系统,一个普通的载体和密写实体不应该被人的感官和统计模式察觉。”
在实际中,然而总不是以上的情况。为了将秘密信息密写到载体媒体中,该载体文件必须要有足够的冗余或者噪声。这是因为密写是将冗余或者噪声用秘密信息替换。能够用来密写的数据类型是有限的。
在实际应用中,有三种基本的密写协议。他们是纯密写,安全密钥密写以及公开密钥密写。纯密写系统不需要交换密钥,如密写密钥。这种算法用于安全通讯是最不安全的,因为发送者和接受者只是靠假设没有第三者发现这个秘密信息。在如互联网这样的开放式系统中使用时,以上假设的情况是不存在的。安全密钥密写要在密写前应该先交互安全密钥。安全密钥密写是指使用密钥将信息隐藏在载体文件中。只有接受者知道密钥,能够通过反密写得到秘密信息。不像是纯密写其通讯是不可见的,安全密钥密写交换密写密钥,可能会引起中间的拦截。但是即使中间有拦截,也只有接受方知道安全密钥可以解开安全密钥密写的密写实体。
以下要介绍的公共密钥密写其原理是从公共密密钥加密的原理中得来。公共密钥加密被定义为一个可以靠公共密钥和私有密钥来争强安全通讯的加密系统。
发送者在编码过程中使用公共密钥并且只有私有密钥可以通过计算得到公共密钥,来解密秘密信息。公共密钥加密提供了一个更高效的密写过程,因为其可以利用公共密钥密写体制的研究技术。并且拥有多层的安全特性,破解者首先要探查是不是被密写,然后要破解公共密钥,才可以破解秘密信息。
A.
文本密写
文本文件密写是非常具有挑战的. 这个因为文本文件缺乏冗余数据可以去替换。另外的缺点是文本文件的密写很容易被分析者更改,如格式的更改(从.TXT 转变为 .PDF 等等)。有很多的方法可以用来文本密写。以下介绍当前比较流行的密写方法:
线性移位,线性地将垂直线上字母进行上下移动
3
厘米。根据移动了以后是不是其值等于要嵌入的秘密信息来决定移动方式。
字移位和线性移位的加密方式很相似,不同的是我们这里使用水平的空间来隐藏信息。这种方法比线性移位更隐秘,不过需要文本支持空间变量。
表面特效密写是指将秘密信息通过修改特定文本的属性密写格式化后的文本文件。这个是到目前为止最好的文本加密方法,许多类型的文本文件可以用来密写信息。
以上三种基于文本的密写方法需要原始文件或者文件文件的编码格式以便于秘密信息的解码。
B.
图像密写
图像密写是当今最流行的密写方法。这是因为可以很好利用人类视觉系统上的弱点。几乎所有的白文,密文,图像以及其他媒体都可转换为数据流密写到数字图像中。随着图像技术的不断发展,图像密写也将是发展最快的。
在深入了解数字图像编码技术之前,先对图像的结构和数字图像的压缩有一个很好的解释。
正如Duncan Sellars [7] 解释到“对于计算机,一张图像就是一组代表不同象素的亮度的数字,这些象素组成了图像数据”。对于图像密写一般采用8位和24位图像,即每个象素用8位或24位表示。两者各有千秋,8位图像被应用的最广,因为8位图的图像小。缺点是8位图只有256种可能的颜色能够被使用,在密写时可能会有潜在的问题。通常处理8位图(如GIF图)时以调色板图中的灰度值为基准,因为灰度值是连续变化的,可以很好的防止分析者察觉。
24
位图像为密写提供了更多的适应性。最多有
16777216
可以用于调整,这样远远超越了人眼可以辨别的范围,这样将很难探测图像是不是被密写。相比较于
8
位图像,
24
位图像有更多的密写空间。在开发放式系统中
(
如网络
)
,相对于文件比较小的
8
位
(
一般
KB
为单位
)
,最主要的缺点是
24
位图像大小
(
一般以
MB
为单位
)
更加让人引起怀疑。图像压缩对于大的数字图像
(
比如前面提到的
24
位图
)
可以是很好解决方法。图像压缩有两种类型:无损和有损压缩。有损压缩如
JPEG
通过去除额外的图像数据得到和原图相近的图像。有损压缩通常被
24
位图像用来压缩图像,但是还是没有避免上面提到的弱点。有损压缩技术可能导致在解压缩的时候丢失秘密信息,因为有些图像压缩时可能被认为多余图像数据而丢失掉。
无损压缩技术,
正如名字所示,使图像压缩但是不使图像的内容丢失。所以无损压缩才被密写所使用。无损压缩的例子如
GIF
图像和
BMP
图像。仅有的缺点是无损图像压缩比有损图像压缩的压缩率要低。
接下来,我们讨论一组当今流行的数字图像压缩技术。他们是
LSB
压缩算法和转化过滤技术。
LSB
是当今最流行的数字图像压缩技术。通过在密写图像中使用
LSB
,你可以在一个
24
位图像的一个象素里面存储
3
个位和在一个
8
位图像的一个象素里面存储
1
个位。正如你看到的,在
24
位图像中可以存储更多的信息。根据密写图像的调色板,在某些图像中可能可以使用一个字节里面的两个
LSB
位进行密写,而不引起视觉上的偏差。唯一的问题是非常容易遭受攻击,比如图像改变和格式化
(
如将
GIF
图转换位
JPEG
图
)
。
转化过滤技术是面向如数字水印等图像编码的。(比如将公司的logo 嵌入到网页内容中)是非常流行的无损压缩技术比如 (.JPEG). 这个技术实际上是通过将秘密信息覆盖原图的方式扩展到图像。一些专家认为其实际上是信息隐藏的一种形式,但是不是密写技术。
转化过滤技术的优点在于它可以忽略图像的操作,也就是图像操作不会破坏它。
当然还有许多技术没有包括到这篇论文来,这些都应该让爱好者去研究这个问题。复杂的算法,图像转换算法以及图像加密算法等技术都是相当新的,但是数字图像密写将是安全和有效的。
C.
音频密写
将秘密信息密写到音频中是非常具有挑战性的。这是因为人类的听觉系统有一个动态的可听区域。人类的听觉可以察觉到一百万到一的强度变化和一到一千的频率变化,所以从音频的原始文件结构中添加和去除数据都是非常困难的。对于听觉系统唯一的不足就是区分声音
(
高音压过低音
)
,这个方面可以用来开发以到达密写信息的目的。
在介绍音频密写前先介绍两个有关的原理。他们是音频的编码格式和音频的传输介质。在当前应用中有三种主要的数字音频格式。他们是量子采样,随机采样比率和感知采样。量子采样是
16
位的线性采样方式,流行的音频格式有
(Wav
格式和
AIFF
格式
)
。随机采样比率使用可选择的频率进行音频采样。一般,采样到的比率越高,有越多的可用数据空间。最后的音频格式是感知采样。这个格式通过只采样可以被听见的一部分而彻底改变了音频的统计特性,但是保持声音,改变了信号。在网络上,这个格式是最流行的音频格式如
MP3
。
当我们要在音频中隐藏时,通讯媒介
(
将音频从发送者传送到接受者
)
也必须被考虑到。
W. Bender [8]
介绍了
4
种可能的传输媒介:
1)
数字终端到终端
-
从一个机子传到另一个机子,中间没有改变。
2)
增加
/
减少
重采样
-
样本比率已被改变,但是仍然保持数字化。
3)
相似物和重采样本
-
信号被改变为不同比率的相似物和重采样本。
4)
通过空气-
信号通过录音机录入然后通过麦克风读出。
我们将要看到当前在音频密写中比较流行的三种方法。他们是低位密写,相位密写和伸展频谱低位密写,就是将秘密信息嵌入到音频文件中最不重要的地方。通道载量为1KB每秒每千赫 (44 kbps 对 44 KHz 样本序列)。这个方法很容易组合但是也非常容易因为通道噪声和重采样造成数据丢失。
相位密写是用一个代表秘密信息的索引相位来替换原来的音频段。这个过程可以是这样的:使用
DFT(
离散的傅立叶变化
)
将加密的音频信号进行排序。这实际上就是音频的转换算法。
扩展频谱几乎将所有音频的频谱进行编码。它接着依靠扩展频谱来转变音频为不同的频率。直接顺序扩展频谱就是其中的一种方法,它扩展信号通过增加一些伪随机序列
(CHIP)
。在音频通讯中采样频率被用作主要的频率。扩展频谱密写技术是最安全的音频加密技术,但是它会带来噪声,导致数据的丢失。
当前已有很多面向密写的应用程序,一些很有效,一些却不是很好。接下来我们将深入了解密写分析的内容。密写分析是探测和阻止密写的一种技术和艺术。在密写分析中,目标是能够比较秘密信息,载体文件和任何可能的部分加密密钥,并且分析或者破坏以上提到的秘密通讯。正如 Fabien A.P. Petitcolas [2] 在他著作里面提到的, 有六条协议可以攻击数字密写。
1)
Stego-only attack(盲攻击):只拥有可能含有密写信息的文件的攻击,对可能使用的密写方法和数据全然不知,需要确定信息的存在或者提取信息。
2)
Known-cover attack(明寄攻击):获得原始的载体文件,那么根据载体(或者说是“宿主”)文件,比较分析对象来确定是不是密写了信息。
3)
Known-message attack(明文攻击):获得被密写到文件的数据(但是不一定就是最终的消息,因为有可能是被加密后的“密文”)。不过,分析还是非常困难的。从后面的分析我们将了解到,只要使用合适的算法,随机地写入信息,那么可以认为这样的密写过程是“One-way”的,而信息的提取是很困难的。
4)
Chosen-stego attack(选择密文攻击):分析者了解对方使用的密写的方法,或者拥有对方使用的密写工具。并已获得被密写的文件。这种攻击方法相对有效。
5)
Chosen-message attack(选择明文攻击):分析者利用已经取得了的一部分秘密信息,和密写文件的基础上,通过密写比较以确定其中可能涉及的某一个工具或者算法。
因为密写分析是非常宽泛的一门学科,我会通过一个例子,如何判断一幅图像是不是被使用了
LSB
算法密写,并进行深入讨论。
一般,
BMP
图像比较容易发现,有比较明显的特征。如位图颜色有一定的重复概率。位图是从一个中心颜色表里取得颜色,这就使得其文件大小比较小,或者无接近重复颜色。当一幅位图使用
LSB
进行密写后,它会使接近重复颜色的数目增大。大概可以说,任何的位图超过
50
的接近重复颜色就认为有密写信息的存在。
V.
开发式环境中的密写应用
在这个部分我们会看到一些可能的应用程序然后介绍那个是当今那个密写工具比较流行。三种最流行以及使用于开发式系统环境是隐秘通道,嵌入数据和数字密写。
隐秘通道是在
TCP/IP
的头信息里面包含伪装辨别信息。这个对于任何的安全通讯都是非常有用的,比如因特网就完全需要保证整个通讯过程的安全而不只是保证文档的通讯安全。
使用载体来隐藏秘密信息是当前流行的方法。这种密写方法是非常有用的,当一方通过开发式环境发了一个私人或者高度敏感的文件。通过将秘密信息密写到载体信息中然后发送载体信息,你就可以通过简单的猜测没有第三者知道你是不是发了没有的信息。
虽然不是纯的密写技术,数字密写在当今世界上也是非常的普遍。数字水印通常被公司或者团体用来保护他们的产权。比如他们会嵌入他们的商标或者软件的序列号到他们的商品中。数字水印在防止软件盗版和数字盗窃上非常重要的。
综上所述,我介绍了一些当今比较流行的加密工具
(
我认为
)
,这些工具可以在
www.stegoarchive.com
上找到。并不是说我要教你如何使用工具,这些超出了这篇文章的目的,但是我会在别的论文理解介绍这些软件的使用方法。
*S-Tools v4 -是基于 .BMP .GIF 和 .WAV 文件的密写工具. 详细的介绍可以从Jeremy Krinn的论文中找到:http://rr.sans.org/covertchannels/steganography.php.
*MP3 Stego -是基于.MP3 音频文件. 详细的介绍可以从Mark Noto的论文"MP3 Stego: Hiding Text in MP3 Files" 中找到:http://rr.sans.org/covertchannels/mp3stego.php.
*Steganos 3 -一套面向音频和数字图像的安全和强壮的加密和密写技术。
VI.
参考文献
在本文中用的参考文献
1)
SANS Security Essentials, (volume 1.4, chapter 4) Encryption and Exploits, 2001.
2)
Petitcolas, Fabien A.P., “Information Hiding: Techniques for Steganography and Digital Watermarking.”, 2000.
3)
StegoArchive, “Steganography Information, Software and News to enhance your Privacy”, 2001, URL: www.StegoArchive.com
4)
Petitcolas, Fabien A.P., “The Information Hiding Homepage: Digital Watermarking and Steganography”, URL: http://www.cl.cam.ac.uk/~fapp2/steganography/
5)
Johnson, Neil F., “Steganography”, 2000, URL: http://www.jjtc.com/stegdoc/index2.html
6)
The WEPIN Store, “Steganography (Hidden Writing)”, 1995, URL: http://www.wepin.com/pgp/stego.html
7)
Sellars, D., “An Introduction to Steganography”,URL: http://www.cs.uct.ac.za/courses/CS400W/NIS/papers99/dsellars/stego.html
8)
Bender, W., “Techniques for Data Hiding”, IBM Systems Journal, Vol. 35, Nos 3+4, Pgs 313-336, 1996
参考文献没有直接在本文中使用的
9)
Krinn, J., “Introduction to Steganography”, 2000,URL: http://rr.sans.org/covertchannels/steganography.php
10)
Noto, M., “MP3Stego: Hiding Text in MP3 files”, 2001,URL: http://rr.sans.org/covertchannels/mp3stego.php