.A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
使用上述密码字母表,可以生成如下密文:
明文= STEGANOGRAPHY RULES
密文= XYJLFILWFUMD WZQJX
在计算能力十分强大的今天,尽管凯撒密码是个加密强度很弱的密码,但是从报纸上的替换构词游戏到孩子玩的解密戒指,它仍然以一种娱乐的形式存在于我们生活的方方面面。例如,《乔尼大冒险》(Johnny Quest)这部动画片的宣传产品中就有一个解密戒指,孩子们可以用戒指加密消息,加密算法用的就是替换密码。关于这个解密戒指有一个鲜为人知的事实,就是戒指里有个暗格,还有个太阳能发光器(如图1.3所示)。
二战期间,纳瓦霍(美国最大的印第安部落)的密码破译者也使用了凯撒的语言替换密码方法。那时,纳瓦霍印第安人讲的方言大多数民族(包括印第安其他部落的人)都不熟悉。因此,29名纳瓦霍人应召入伍,加入了美国陆战队。在战场上,美国陆战队将纳瓦霍密码作为一种安全的通信方式,他们将英文军事信息翻译成纳瓦霍文,形成纳瓦霍密码。由于纳瓦霍语言只有本族成员和少数美国人听得懂,因此几乎不可能被冒充。
图1.3《乔尼大冒险》中的解密戒指
2.加密无线电消息和摩斯电码
19世纪30年代,塞缪尔·摩斯(Samuel Morse)发明了一种通过电报传输消息的密码。摩斯用一系列的点和划的组合代表不同的字母。这个密码就是现在为人们熟知的摩斯电码,它就是用字符取代字母和标点的简单替换(如图1.4所示)。
图1.4摩斯电码表
Rush乐队(美国知名摇滚乐队)的“YYZ”这首歌就应用了摩斯电码。Rush乐队的家乡在加拿大多伦多,有趣的是,“YYZ”刚好是多伦多机场名字的摩斯电码。在摩斯电码中,字母Y表示为“-.--”,字母Z表示为“--..”,YYZ转换成摩斯密码就是“-.---.----..”或者“嗒嘀嗒嗒嗒嘀嗒嗒嗒嗒嘀嘀”。然而,很多人都不知道这就是“YYZ”这首歌的前奏。
有人认为摩斯电码并不属于替换密码,因为它的主要目的并不是隐藏消息,而是因为当时还没有电话,人们只是用摩斯电码作为通信手段。但是,摩斯电码确实是一种替换密码,并且代表了一种电码替换编码的方式。而且,最近几次的战争中还使用了移位形式的摩斯电码。实际上,大多数人听YYZ这首歌的时候都听不出前奏是摩斯电码,因此也不会认为这是一种消息隐藏方式(隐写术)。
3.维吉尼亚密码
维吉尼亚密码最开始是一群学者发明的,后来Blaise de Vigenere将其总结成了密码,也就以他的名字命名了。维吉尼亚密码的字母替换并不是基于单个字母表,而是基于26个字母表(如图1.5所示)。
图1.5维吉尼亚密码
如果仅使用维吉尼亚字母表的一列作为替换表,那维吉尼亚密码与凯撒轮换密码就没什么区别了。因此维吉尼亚密码表就设计成了多行,一行为一个字母加密,这就需要为加密方法指定一个关键字。例如,选用“combo”这个关键字并用维吉尼亚加密方法加密,我们将得到如下结果:
原文:thekeyisunderthedoormat
关键字:combo
密文:vvqlsawevbfsduvgamu
与使用单字母表的凯撒轮换密码相比,维吉尼亚密码方法使用了多个字母表来加密,因此称为多字母表法(polyalphabetic)。维吉尼亚密码刚发布时,是无法破解的。比如,密码分析者可以使用频率分析方法破解凯撒轮换密码。频率分析方法的基本原理是英语语言中字母e和n使用频率很高,而字母x和z使用频率很低。英语语言中字母使用频率由高到低的排列如
图1.6所示。
除了频率分析之外,密码分析者还使用语言特征来破译消息。比如,字母组合“io”在英语单词中经常出现,而“oi”组合却很少出现。历史上密码分析者还会通过对照在单词中不可能出现的字母组合清单,来排除掉这些字母组合。但是这种方法使用的前提是必须对消息的描述语言非常熟悉,然而实际情况并不总是这样。消息的描述语言可能是西班牙语、法语或者其他语言,这种差别对密码分析者来说是致命的打击。
维吉尼亚密码在替换时使用了很多密钥,这让频率分析和语言特征这两种破解方法都行不通。维吉尼亚密码还通过增加密钥长度和使用尽可能多的密钥来提高密码复杂度。也正是这个原因维吉尼亚密码在安全领域应用了几百年,直到1854年才被查尔斯·巴贝其(Charles Babbage)成功破解。如今,互联网上有很多使用维吉尼亚密码加密消息的工具,几乎任何人都能通过互联网使用维吉尼亚加密工具自己来加密消息(如图1.7所示)。
图1.7基于互联网的维吉尼亚加密工具
在计算能力十分强大的今天,维吉尼亚密码是很容易破解的,但是它的应用仍然很多。比如,思科(Cisco)的路由器和其他网络设备的IOS使用的就是维吉尼亚密码的变种。虽然MD5(Message Digest Algorithm,消息摘要算法)散列法也是IOS可选的加密算法,但是思科的很多设备使用的加密算法还是维吉尼亚密码的变种类型7密码散列(password 7 hashing)。众所周知,维吉尼亚算法十分脆弱,破解思科IOS的7密码散列的程序就有很多,因此强烈建议网络管理员把IOS的默认加密机制改为MD5(如图1.8所示)。
图1.8在线思科密码破解器
1.2.2移位密码
除替换密码外的另一个加密技术是移位密码。移位算法将明文消息中的字母重新排列,维持原为字母的本来面貌,只是调整了位置。经常在报纸和谜语杂志中出现的拼字游戏(jumble)和移位构词游戏(anagram)使用的就是移位算法。
Hiddenmessage=]diheagssemned
这些游戏里的移位密码破解相对简单些,下面我们来看看一些复杂的移位密码的实现。
斯巴达密码棒
斯巴达密码棒也叫密码棒,是移位密码最古老的实现之一。在古希腊(公元前475年左右),斯巴达军队的首领发明了密码棒,用来传递军事机密(如图1.9所示),他先用条状的羊皮纸或皮革缠绕在一根木棍上,接着沿木棍的径向方向写下机密消息,然后取下羊皮纸或皮革再送到另一位首领手中。如果途中被敌人截获,而没有同样大小的木棍来破解消息,这些消息就是一堆乱码,对敌人毫无价值。而收信的首领手里有一根同样的木棍,他把羊皮纸或皮革缠绕在木棍上就可以读取机密消息了。这种移位技术是迄今人们知道的最早的移位密码之一。
图1.9斯巴达密码棒
使用移位算法反复加密可以增加破解密码的难度,比如,移位后再移位,也就是双重移位。
1.2.3替换加密和移位加密的区别
替换加密不同于移位加密,移位加密只是调整了明文中字母的位置,字母本身并没有改变。与之相反,替换加密保留了明文中字母的排列顺序,而更改了字母的本来面貌。如前所述,移位密码受限于有限的移位次数,因为可以移动的次数是有限的,所以大多数移位密码不用计算机,仅凭手算就可以破解。而替换密码理论上有很多种加密形式,其中的一些具有很高的复杂度。
如今,计算机的出现使替换加密的复杂度大幅度提高,强大的计算能力还能够轻松地融合替换和移位技术,组合成新的加密算法。例如,DES(Data Encryption Standard,标准加密标准)将原文分组,每组8个字母,分别进行16轮移位和替换操作。几百年前,要破解这样的密码是不可能的,但现在破解者利用计算机这个强大的武器,可以针对密钥进行强力破解。
1.3隐写术
通常情况下,人们会混淆密码学和隐写术这两个概念,认为隐写术就是隐藏信息或者密写,但从技术角度看,这种看法是错误的。二者的区别在于希腊单词“crypt”和“stegnos”或者英文单词“hidden”和“covered”的不同。在密码学中,Hidden writing的信息是可见的,只是顺序被打乱了,不经过分析就无法理解。在隐写术中,信息是不可见的,所以也叫隐蔽(covered)或隐藏书写(invisible writing)。
这两个概念的混淆可能是由于英语中的“hidden”定义不明确,根据《兰登书屋大学词典》(The Radom House College Dictionary),hidden的意思是隐匿的、晦涩的、隐蔽的(concealed、obscure、covert),因此,人们在提到密码学和隐写术时,常常混淆这两个概念也就不足为怪了。英语中对这两个概念的定义说明二者存在交叉内容,但事实并非如此。想要区别密码学和隐写术,你只需要问自己一个问题:消息是杂乱的还是不可见的?如果答案是“杂乱的”,那么就是密码学;否则,即为隐写术。
卡尔达诺栅格码
意大利人(确切地说,是米兰人)Girolanmo Cardano发明了第一个栅格密码。栅格密码会用到一个叫栅格的东西,就是一块按一定规则随机挖出许多小窗格的纸板或金属板。一条精心编排的消息看似平常,其中却隐藏着另一条消息。图1.10就是这样一则看似普通的消息。
图1.10包含隐藏消息的卡尔达诺栅格码
但是,密信的接收者如果知道普通消息中有隐藏消息,他就会使用他的卡尔达诺栅格码来发现组成隐藏消息的相关字母。用栅格板盖住消息,小窗格中漏出来的字母就组成了一条新的消息。上图中的隐藏消息就是“部队周一抵达”,如图1.11所示。
图1.11用栅格板覆盖消息揭露机密
卡尔达诺栅格密码沿用至今,例如,“Spam Mimic”这个网站就使用了栅格密码,不过这个网站的程序不是用来发现隐藏消息的,而是用来加密和解密(如图1.12所示)。
图1.12Spam Mimic解密
这个网站的目的是模拟一封看似是垃圾邮件却包含隐藏消息的邮件。人们每天都会收到大量的垃圾邮件,除非有人知道其中某封邮件会包含隐藏消息,否则就会将其当作垃圾邮件处理掉了。但密信接收者是知道的,他会登录spam Mimic网站,输入邮件内容,得到隐藏消息。
1.隐形墨水
历史上第一次隐形墨水的应用可以追溯到公元1世纪,那时,老普林尼(Pliny the Elder)写过关于隐形书写的发现,他说用大戟树(一种仙人掌科植物 )的树汁书写,字迹可以隐形,他的发现被认为是关于隐写术的最早记载。
最常用的隐形墨水应该是柠檬汁,用柠檬汁在纸上写字,晾干后字迹就看不见了。但把纸放到热源上(比如电灯泡),字迹就会慢慢显现了。其他酸性物质,比如,尿、醋、酒、洋葱汁、牛奶,甚至混有硫酸的酸雨,也可以用作隐形墨水,它们受热氧化后隐形的字迹就会慢慢显现。
塞缪尔·鲁宾(Samuel Rubin)在1987年出版的《The Secret Science of Covert Inks》一书,是迄今为止关于隐形墨水描述最完整的著作。书中详细记载了美国中央情报局使用的隐形墨水技术。这个技术大部分是由非营利组织“杰姆斯麦迪逊项目”(James Madison Project)披露的。可以访问杰姆斯麦迪逊项目的官方网站http:www.jamesmadisonproject.org,查看各种隐形墨水的秘方。由于美国政府相关部门不允许将这些配方公之于众,因此,本书不展示配方具体内容。
2.缩影术
研究隐写术总是离不开对缩影术的探讨。几乎每本关于隐写术或密写术的书都会谈论缩影术。缩影术就是把照片缩小成普通打印纸中一个点一样的大小。这个点可以是句号,也可以是带有点的字母中的那个点,如“i”,或者以其他各种方式隐藏在一页纸中。
虽然缩影术的思想源于1870年的法国巴黎,但是美国联邦调查局直到1940年才从几个德国特工那里获得一点点启发,当时在德国这个技术已经很成熟了。1941年美国联邦调查局从一个疑似德国特工的手中截获了一封含有缩影的信件,这是他们第一次检测到缩影。不久之后,又在邮票上发现了细小的胶片条。后来才发现缩影术正广泛应用于间谍活动,大量的信息被窃取,包括铀设计资料、产品统计信息、建筑设计图和电路图等。这个时期,间谍们通常用米乐时(德国相机品牌)相机拍摄文件照片(如图1.13所示)。
制造缩影的过程是这样的:首先从间谍相机中取出指甲大小的底片,然后用反向显微镜拍照,使底片缩小到直径0.05英寸(约1.27毫米)大小。显影后,再用注射针挑起这个点状的照片放到打印信件中的某个点上,最后用火胶棉(一种常见的摄影用化学物质)把它固定好就可以了。情报接收者可以用各种放大工具来查看缩影中的内容。
缩影术应用的唯一难题就是它使用的墨水是发光的。如果一个字母被怀疑包含缩影,可以把信纸对着光源举起来,透过信纸从某个特定的方向看过去,就会发现包含缩影的字母是发光的,其他的就不会。
缩影隐写术的具体发明人不得而知,人们通常把这项发明归功于一个叫做Zapp博士的人,他是米乐时微型相机的发明人,所以二战时期英国情报机关通常把微影工具包叫做扎普装备。
值得注意的是,与用于传递简短信息的隐形墨水相比,缩影技术更适合传递整个文件。它可以用于包含图形和图像的文件,这是隐形墨水无法做到的。如今,缩影术通常被赌场用来制作芯片,也被汽车生厂商用来做汽车防伪。
3.打印机跟踪点
2004年,《微电脑世界》(PCWorld,著名IT杂志)发表了一篇文章,指出很多厂商生产的打印机打印出来的纸中都隐藏有包含代码的小黄点。
电子前沿基金会(Electronic Frontier Foundation,EFF)获知此消息后继续研究并破解了DoCuColor(美国施乐公司(Xerox)的一款彩色打印机 )打印机的代码,发现这些小黄点代表的是打印机的序列号,以及文档的打印日期和时间。有趣的是,肉眼是无法看到这些小黄点的,需要使用蓝光和放大工具才可以看到(如图1.14所示)。后来EFF破解了栅格,发现了黄点背后隐藏的秘密信息(如图1.15所示)。
图1.14打印机跟踪点
图1.15EFF的DocuColor跟踪点解密程序
人们相信这些打印机跟踪点是用于执法取证的。EFF维护了一个包含能够打印跟踪点的打印机清单,可以通过此网页查看:httpwww.eff.orgpageslist-printers-which-do-or-do-not-display-tracking-dots。如果你的打印机型号不在此清单中,则可以打印一页纸,使用在线解密工具解密跟踪点图1.15所示。
4.水印
水印技术和隐写术很相似,它已经存在几个世纪了,主要用于辅助货币和邮票的防伪。水印的原理是在纸上蒙一层半透明的图像来标识其真实性。几个世纪前,由于邮寄费用很高,人们常常使用伪造的邮票。水印技术的应用就应运而生了。比如,印度在邮票上使用半透明的大象水印来防伪。
货币制造过程中也加入了很多水印。比如,美国很多面值的纸币中都有一个人像水印,用灯光照射100美元的纸币,就会看到本杰明·弗兰克林的头像(如图1.16所示)。
图1.16100美元中半透明的水印
数字水印常用于维护数字媒体文件(如音乐、视频)的版权及防伪。
值得注意的是虽然在嵌入数据方面水印和隐写很相似,但是加水印的目的并不是让嵌入的数据无法检测到,而是让嵌入的数据无法被移除,从而防止对文件的非授权使用。
1.4小结
秘密通信贯穿了包括文明和战争的整个人类历史,很多著名的加密和隐写方法被重用于现在的数字形式。加入我们这个数字数据隐藏的旅程吧,让我们一起研究包括操作系统、移动设备、多媒体和其他数字格式的最新数据隐藏技术。
参考文献