Whitfield Diffie序
密码学文献有一个奇妙的发展历程。当然,保密总是扮演着主要角色,但是直到第一次世界大战之前,密码学重要的进展很少出现在公开文献中,但该领域却和其他专业学科一样一直在向前发展。直到1918年,20世纪最有影响的密码分析文章之一——William F.Friedman的专题论文“ The Index of Coincidence and Its Applications in Cryptography”(重合指数及其在密码学中的应用)[577]作为私立Riverbank实验室的一份研究报告问世了。其实,这篇论文所涉及的工作是在战时完成的。同年,加州奥克兰的Edward H.Hebern申请了第一个转轮机专利[710],这种装置在差不多50年里被指定为美军的主要密码设备。
然而,第一次世界大战之后,情况开始变化,完全处于秘密工作状态的美国陆军和海军的机要部门开始在密码学方面取得根本性的进展。在20世纪三四十年代,有多篇基础性的文章出现在公开的文献中,还出现了几篇专题论文,只不过这些论文的内容离当时真正的技术水平相去甚远。战争结束时,情况急转直下,公开的文献几乎殆尽。只有一个突出的例外,那就是Claude Shannon的文章“The Communication Theory of Secrecy Systems”(保密系统的通信理论)[1432]出现在1949年的《Bell System Technical Journal》(贝尔系统技术杂志)上,它类似于Friedman 1918年的文章,也是战时工作的产物。这篇文章在第二次世界大战结束后即被解密,可能是由于失误。
从1949年到1967年,密码学文献近乎空白。1967年,一部与众不同的著作(David Kahn的《The Codebreakers》(破译者)[794])出现了,它并没有任何新的技术思想,但却对密码学的历史做了相当完整的记述,包括提及政府仍然认为是秘密的某些事情。这部著作的意义不仅在于它涉及了相当广泛的领域,而且在于它使成千上万原本不知道密码学的人了解了密码学。新的密码学文章开始源源不断地发表出来。
大约在同一时期,早期为空军研制敌我识别装置的Horst Feistel在位于纽约约克镇高地的 IBM Watson实验室里花费了毕生精力致力于密码学的研究。那里他开始着手进行美国数据加密标准(Data Encryption Standard,DES)的研究,20世纪70年代初期,IBM发表了Feistel和他的同事在这个课题方面的多篇技术报告[1482、1484、552]。
这就是我于1972年年底涉足密码学领域时的情形,当时密码学的文献还不丰富,但也包括一些非常有价值的东西。
密码学提出了一个一般学科领域都难以遇到的难题:它需要密码学和密码分析学紧密结合、互为促进。这是由于缺乏实际通信需求所致。提出一个表面上看似不可破译的系统并不难,但许多学术性的设计非常复杂,以至于密码分析家不知从何入手,分析这些设计中的漏洞远比最初设计它们更难。结果是,那些可以强劲推动学术研究的竞争过程在密码学中并没起多大作用。
当我和Martin Hellman在1975年提出公开密钥密码学[496]时,我们贡献的一个方面是引入了—个看来不易解决的难题。现在有抱负的密码体制设计者能够提出被认为是很聪明的一些东西——这些东西比只是把有意义的正文变成无意义的乱语更有用。结果是研究密码学的人数、召开的会议、发表的论文和专著数都惊人地增加了。
我在接受Donald E.Fink奖(该奖是奖给在IEEE杂志上发表过最佳文章的人,我和Hellman在1980年共同获得该奖)发表演讲时,告诉听众,我在写“Privacy and Authentication”(保密性与鉴别)一文时有一种体验——这种体验,我相信即使在那些参加IEEE授奖会的著名学者当中也是罕见的:我写的那篇文章,并非我的研究结果而是我想要研究的课题。因为在我首次沉迷于密码学的时候,这类文章根本就找不到。如果那时我可以走进斯坦福书店,挑选现代密码学的书籍,我也许能在多年前就了解这个领域了。但是在1972年秋季,我能找到的资料仅仅是几篇经典论文和一些难以理解的技术报告而已。
现在的研究人员再也不会遇到这样的问题了,他们的问题是要在大量的文章和书籍中选择从何处入手。研究人员如此,那些仅仅想利用密码学的程序员和工程师又会怎样呢?这些人会转向哪里呢?直到今天,在能够设计出一般文章中所描述的那类密码实用程序之前,花费大量时间寻找并研究那些文献仍然是很有必要的。
本书正好填补了这个空白。作者Bruce Schneier从通信保密性的目的和达到目的所用的基本程序实例入手,对20年来公开研究的全部成果做了全景式的概括。书名开门见山,从首次叫某人进行保密会话的世俗目的,到数字货币和以密码方式进行保密选举的可能性,到处都可以发现应用密码学的地方。
Schneier不满足于这本书仅仅涉及真实世界(因为此书叙述了直至代码的全部过程),他还叙述了发展密码学和应用密码学的那些领域,讨论了从国际密码研究协会到国家安全局这样的一些机构。
在20世纪70年代后期和80年代初期,当公众显示出对密码学的兴趣时,国家安全局 (NSA),即美国官方密码机构,曾多次试图平息它。第一次是一封来自一名长期在NSA工作的雇员的信,据说这封信是这个雇员自己写的,此雇员自认为如此,表面上看来亦是如此。这封信是发给IEEE的,它警告密码资料的出版违反了国际武器交易条例(ITAR)。然而这种观点并没有被条例本身所支持(条例明显不包括已发表的资料)。但这封信却为密码学的公开实践和1977年的信息论专题研讨会做了许多意想不到的宣传。
一个更为严重的事态发生在1980年,当时NSA为美国教育委员会提供资金,说服国会对密码学领域的出版物进行合法的控制。结果与NSA的愿望大相径庭,形成了密码学论文自愿送审的程序。研究人员在论文发表之前需就发表是否有损国家利益征询NSA的意见。
随着20世纪80年代的到来,NSA将重点更多地集中在密码学的实际应用,而不是研究上。现有的法律授权NSA通过国务院控制密码设备的出口。随着商务活动的日益国际化和世界市场上美国份额的减少,国内外市场上需要单一产品的压力增加了。这种单一产品受到出口控制,于是NSA不仅对出口什么,而且也对在美国出售什么都施加了相当大的影响。
密码学的公开使用面临一种新的挑战,政府建议在可防止涂改的芯片上用一种秘密算法代替广为人知且随处可得的DES,这些芯片将含有政府监控所需的编纂机制。这种“密钥托管”计划的弊病是它潜在地损害了个人隐私,并且以前的软件加密不得不以高价增加硬件来实现。迄今,密钥托管产品正值熊市,这种方案却已经引起了广泛的批评,特别是那些独立的密码学家怨声载道。然而,人们看到更多的是编程技术的未来而不是政治,并且还加倍努力向世界提供更强的密码,这种密码能够实现对公众的监督。
从出口控制法律取代第一修正案的意见来看,1980年发生了大倒退,当时《Federal Register》(联邦公报)公布了对ITAR的修正,其中提到:“……增加的条款清楚地说明,技术数据出口的规定并不干预第一修正案中个人的权利。”但事实上,第一修正案和出口控制法律的紧张关系还未消除,最近由RSA数据安全公司召开的一次会议清楚地表明了这一点。出口控制办公室的NSA代表表达了如下意见:发表密码程序的人从法律上说是处在“灰色领域”。如果真是这样的话,本书第1版业已曝光,内容也处在“灰色领域”中。本书自身的出口申请已经得到军需品控制委员会当局在出版物条款下的认可,但是,装在磁盘上的程序的出口申请却遭到拒绝。
NSA的策略从试图控制密码研究到紧紧抓住密码产品的开发和应用的改变,可能是由于认识到即便是世界上所有最好的密码学论文都不能保护哪怕是一位的信息。如果束之高阁,本书也许不比以前的书和文章更好,但若置于程序员编写密码的工作站旁,这本书无疑是最好的。