第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)利用频度分析法,成功破解了安东尼发给玛丽的密码信。信件除了包括营救玛丽女王的计划外,还计划行刺伊丽莎白女王。因为信件的破解才得以将安东尼及其同党一举抓获,审判并处死了玛丽女王。

2.1.2 机械加密阶段

19世纪末至20世纪初,工业革命促进了机械和机电技术的发展,密码学进入机械加密阶段。工业革命为密码学的发展提供了基础,世界大战的爆发为密码学的飞跃提供了契机。

在第一次世界大战中,密码分析有了重大突破,它是战争能否取得胜利的重要决定因素之一;在第二次世界大战中,密码学经历了它的黄金时代,在战争中扮演了更重要的角色。

1.第一次世界大战

19世纪末,无线电技术的发明和使用使通信工具发生了革命性的变革。由此产生了以密码技术为核心的包括侦察、测向、信号分析、通信分析等一整套无线电信号侦察以及对抗这种侦察的信号保密技术。军事电报的加密与破解成为同盟国与协约国之间成败的关键。

1914年8月,俄国在芬兰湾口击沉德国“马格德堡”轻巡洋舰,在德国军舰残骸里,俄国潜水员意外发现了一份德国海军的密码本,并将其提供给英国,使英国人轻而易举地破译了德国海军的无线电密码。1916年5月30日下午,英国情报部门凭借截获的德国海军无线电密码,破译德国海军电报,日德兰海战以英国皇家海军胜利告终。

1917年1月16日,德意志帝国外交秘书阿瑟·齐默尔曼向德国驻墨西哥大使亨尼希·冯·艾克哈尔特(Heinrich von Eckardt)发出一份加密电报—齐默尔曼电报,电报内容建议墨西哥与德意志帝国结成对抗美国的军事联盟。在这个紧要关头,电报内容被英国破译密码的专门机构“40号房间”所截获,利用缴获的德国密码本破译了电报的内容,此次事件被称为“情报史上最伟大的密码破译事件”。“齐默尔曼电报”的破译,促使美国放弃中立而直接参战,改变了战争进程。

2.第二次世界大战

20世纪初,机械及机电技术的快速发展,加速了密码设备的变革,最具代表性的就是转轮密码机的发明。转轮密码机的出现是密码学的重要标志之一,促进了传统密码学的进展,提高了机密系统的加密复杂度。转轮密码机EnigmaEnigma在密码学界绝对是划时代的丰碑。而且,它所凝聚而成的不是一座丰碑,而是两座:研究并制造出 Enigma是一座,研究并破解掉Enigma是另一座。只要稍微了解Enigma的历史的人就会被其中闪耀的人类智 慧之美所折服。如果要向这样辉煌的智慧敬献花环,主要应该献给3个人:首先是德国人亚瑟·谢尔比乌斯, 其次是波兰人马里安·雷耶夫斯基,然后是英国人阿兰·图灵。(别名“谜”或恩尼格玛密码机)的出现,成为密码学界划时代的丰碑。德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)发明了Enigma;波兰数学家马里安·雷耶夫斯基(Marian Rejewski)初步破解了简单的Enigma;而英国数学家阿兰·图灵(AlanTuring)英国数学家、逻辑学家,被称为人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯 顿大学攻读博士学位,第二次世界大战爆发后回到剑桥,后曾协助军方破解德国的著名密码系统Enigma, 进而帮助盟军取得了第二次世界大战的胜利。彻底终结了最高难度的Enigma。

1941年12月8日,美国对日本宣战。在整个太平洋上,美军与日军展开了全面的岛屿争夺战。在电影《风语者》中,日军因成功破解美军军事通信密码,占据战场上的优势,极大地阻碍了美军前进的步伐。1942年,美军征召纳瓦霍人(Navajo,美国最大的印第安部落)加入海军,并训练他们使用纳瓦霍语言作为通信密码。所谓“风语者”,就是使用纳瓦霍语言的通信兵。这是密码学和语言学的成功结合,使得纳瓦霍语成为唯一没有被日本破获的密码,并且成为赢得这场战争的关键。

1942年1月,大西洋海战进入第二阶段。德军以高人一等的密码通信能力,使用“狼群”战术发动大规模无限制潜艇战,致使同盟国节节受挫。在电影《猎杀U-571》中,美军为截获德军密码机在大西洋上与德军潜艇U-571展开了殊死的斗争,最终以截获德军密码机告终。德军密码机的截获,使美军迅速破译了德军指令,扭转了大西洋战事,有力地回击了德军的无限制大规模潜艇战争,加速了第二次世界大战的终结。

2.1.3 计算机加密阶段

第二次世界大战后,计算机与电子学快速发展,促进并推动了密码学进入计算机加密阶段。在这一阶段,计算机成为密码设计与破译的平台:利用计算机可以设计出更为复杂的加密算法,避免了徒手设计时容易造成的错误;利用计算机可以对加密算法进行破译,缩短了破译时间。当然,许多设计高明的加密算法的运算速度通常都很快而且占用资源少,但破解它却需要消耗大量的资源,破解通常以失败告终。在1949年之前,密码学是一门艺术;在1949~1975年,密码学成为科学;1976年以后,密码学有了的新方向—公钥密码学;1977年以后,密码学广泛应用于各种场所。

1949年,信息论始祖克劳德·艾尔伍德·香农(Claude Elwood Shannon)发表了《保密系统的通信理论》一文,把密码学建立在严格的数学基础之上,为密码学的发展奠定了理论基础。密码学由此成为一门真正的科学。在此之前,密码学完全是一门艺术,密码的设计和分析完全依赖于密码专家的直觉。

1976年,密码学专家迪菲(Whitfield Diffie)和赫尔曼(Martin E. Hellman)两人发表了《密码学的新方向》一文,解决了密钥管理的难题,把密钥分为加密的公钥和解密的私钥,提出了密钥交换算法(Diffie-Hellman,D-H),这是密码学的一场革命。

1977年,美国国家标准技术研究所(National Institute of Standards and Technology,NIST)制定数据加密标准(Data Encryption Standard,DES),将其颁布为国家标准,这是密码学历史上一个具有里程碑意义的事件。

同年,密码学专家罗纳德·李维斯特(Ronald L. Rivest)、沙米尔(Adi Shamir)和阿德勒曼(Len Adleman)在美国麻省理工学院,共同提出第一个较完善的公钥密码体制—RSA体制,这是一种建立在大数因子分解基础上的算法。RSA为数字签名奠定了基础。RSA源于整数因子分解问题,DSA源于离散对数问题。RSA和DSA是两种最流行的数字签名机制。数字签名是公钥基础设施(Public Key Infrastructure,PKI)以及许多网络安全机制(SSL/TLS,VPNs等)的基础。自此以后,密码学成为通信、计算机网络、计算机安全等方面的重要工具。

1985年,英国牛津大学物理学家戴维·多伊奇(David Deutsch)提出了量子计算机的初步设想。利用量子计算机,仅需30秒即可完成传统计算机要花上100亿年才能完成的大数因子分解,从而使破解RSA加密的信息成为可能。

同年,物理学家贝内特(Charles H. Bennett)根据多伊奇关于量子密码术的协议,在实验室第一次实现了量子密码加密信息的通信。尽管通信距离仅有30厘米,但仍旧证明了量子密码术的实用性。

1997年1月,美国国家标准技术研究所征集新一代数据加密标准,即高级数据加密标准(Advanced Encryption Standard,AES)。最终,比利时密码学家兼计算机科学家Vincent Rijmen和Joan Daemen设计的Rijndael加密算法入选,因此AES算法也称为Rijndael算法。高级数据加密标准用以替代原先的DES,谋求更加安全的加密算法。2002年5月26日,美国国家标准技术研究所将其定为有效的加密标准。

2003年,位于日内瓦的id Quantique公司和位于纽约的MagiQ技术公司,推出了传送量子密钥的距离超越了贝内特实验中30厘米的商业产品。由此,量子密码学进入商业化。

进入计算机加密阶段后,密码学应用不再局限于军事、政治和外交领域,逐步扩大到商务、金融等社会的其他各个领域。密码学的研究和应用已大规模扩展到了民用方面。