第2章 企业应用安全的银弹—密码学

通过对第1章内容的学习,我们基本了解了这枚解决企业应用安全的银弹—密码学。密码学并不是最近才兴起的新学科,它的历史最早可以追溯到几千年以前,而且古今中外都有密码学运用的记载。引用《破译者》书中戴维·卡恩的话,“人类使用密码的历史几乎与使用文字的时间一样长”。在经历战火的洗礼,步入现代以后,计算机科学与数学应用科学的快速发展,促进了密码学的进步。密码学成为应对计算机系统安全问题当之无愧的安全卫士,它广泛应用于计算机与网络安全领域,并逐步进入我们的日常生活:自动柜员机芯片卡、公交IC卡、电子商务,等等。计算机科学的迅速发展,使得密码学在我们的生活中变得越来越重要。

2.1 密码学的发家史

可以这么说,密码学是靠着战争发家的。自从有了战争,就有了密码学的应用环境。在战争中,对阵双方要保护自己的通信安全并窃取、破译对方的情报,于是就有了密码学。用著名的密码学专家罗纳德·李维斯特(Ronald L.Rivest)的话说,“密码学是关于如何在敌人存在的环境中通信”。纵观密码学的发展历程,我们大体可以将其分为三个阶段,即手工加密阶段、机械加密阶段和计算机加密阶段。

2.1.1 手工加密阶段

密码学很早就广泛应用于古代战争中,使用手工方式完成加密操作,以确保战争中军事信息的秘密传送,这一阶段称为手工加密阶段。这一阶段是古典密码学蓬勃发展的时期,称为古典加密阶段。

公元前1000年左右,武王伐纣时期。见于周朝兵书《六韬·龙韬》,书中记载了周朝著名军事家姜子牙为战时通信制定的两种军事通信密码:阴符和阴书。阴符是使用双方在通信前事先制造的一套尺寸不等、形状各异的“阴符”,共八种,每种都代表一定的意义,只有通信双方知道。阴符,可算是密码学中的替代法。阴书在阴符的基础上继续发展,它应用“一合而再离,三发而一知”的理论,也就是密码学中的移位法。将一份完整的军事文书一分为三,分三人传递,必须要把三份文书重新合并后才能获得完整的军事信息。即使途中一人或二人被捕,也不至于暴露军事机密。

公元前480年,波希战争。波斯大量军队秘密集结,意图对雅典和斯巴达发动一次突袭。恰逢希腊人狄马拉图斯(Demaratus)在波斯的苏萨城内看到了这次集结,于是他在木板上记录了波斯突袭希腊的意图,然后用蜡把木板上的字封住。这块木板就这样在蜡封的掩盖下送到了希腊,最终使得波斯海军覆没于雅典附近的萨拉米湾—萨拉米湾海战。

公元前404年,斯巴达征服希腊。斯巴达在波斯帝国的帮助下,征服了希腊。斯巴达北路军司令莱萨德还没来得及庆祝就接到密探送来的信函。莱萨德接过密探的腰带,将其缠绕在斯巴达密码棒(Scytale)上,得知波斯帝国意图吞并他的城池。莱萨德当机立断,成功反击了波斯帝国的进攻。斯巴达密码棒实际上是一个指挥棒,将羊皮纸卷在密码棒上,把要保密的信息写在羊皮纸上。由上述“腰带”的含义可知,羊皮纸沿卷轴绕行方向做了切割,切割后的羊皮纸上的信息杂乱无章,信息得以加密。

公元前100年,高卢战争。罗马帝国的凯撒大帝(Caesar)使用以自己的名字命名的密码—凯撒密码,对重要的军事信息进行加密,这是一种简单的单字母替代密码,属于替代法。在当时,凯撒的敌人大多数是目不识丁的,对于这种“移形换位”大法,可谓是根本不知所云。凯撒密码的加密强度,在当时来看是相当有效的。

公元1040年,北宋时期。火药鼻祖曾公亮(999~1078)与北宋文字训诂学家丁度(990~1053)等奉敕集体编撰了《武经总要》,共40卷,该书详细记载了中国古代已知最早的军事情报通信密码。其中,收集了军队中常用的40种战斗情况,编成40条短语,分别编码产生密码本。这套密码的使用方法是,由军事部门指定一首没有重复字的五言律诗(40字),作为解密密钥。诗中的每个字都与短语一一对应,短语顺序在战前临时随机排列。密码本由战时前后两方高级将领保管,前后方通过该密码本进行战时通信。

公元1578年,玛丽女王被伊丽莎白女王软禁,安东尼·贝平顿(Anthony Babington)及其同党意图营救。英国人菲力普·马尼斯(Philip van Marnix)利用频度分析法,成功破解了安东尼发给玛丽的密码信。信件内容除了营救玛丽女王的计划外,还计划行刺伊丽莎白女王。信件的破解将安东尼及其同党一举抓获,审判并处死了玛丽女王。