密码学/历史
已知最早的密码学使用是在埃及旧王国(约 4500 年前)的纪念碑上雕刻的非标准象形文字中。然而,这些并不被认为是秘密通信的严肃尝试,而更可能是对神秘、阴谋,甚至是为了识字的旁观者消遣的尝试。这些是密码学的另一种用途,或看起来(令人印象深刻,即使具有误导性)像密码学的另一种用途的例子。后来,希伯来学者开始使用简单的替换密码(例如 Atbash 密码),也许始于公元前 500 年到 600 年之间。密码学在宗教著作中有着悠久的传统,这些著作很可能冒犯占主导地位的文化或政治当局。
据说是古典时期的希腊人了解密码(例如,据说斯巴达军队使用的 Scytale 转置密码)。希罗多德告诉我们,秘密信息被物理地隐藏在木板上的蜡下面,或者作为纹身刻在奴隶的头上,被重新生长的头发遮盖(这些本身并不完全是密码学的例子;参见秘密写作)。罗马人当然也这样做(例如,凯撒密码及其变体)。古代曾提及一本关于罗马军事密码学的书(特别是凯撒大帝的);不幸的是,它已经丢失了。
在印度,密码学显然很有名。在《 कामसूत्र》(《欲经》)中,它被推荐为恋人之间进行秘密通信的一种技术。这可能意味着大约公元 500 年的印度,密码分析技术并不发达。
密码学后来(秘密地)变得越来越重要,这是政治竞争和宗教分析的结果。例如,在欧洲文艺复兴时期及其之后,包括教皇在内的各个意大利州的公民为密码学实践做出了重大改进(例如,莱昂·阿尔伯蒂约 1465 年发明的多字母密码)。在阿拉伯世界,对《古兰经》的宗教文本分析导致了大约公元 1000 年发明了用于破解单字母替换密码的频率分析技术。
密码学、密码分析和间谍背叛出现在伊丽莎白一世女王统治时期的巴宾顿阴谋中,导致玛丽女王被处决。而来自铁面人时期的一条加密信息(大约 1900 年由 Étienne Bazeries 解密)为这位传奇的、不幸的囚犯的身份提供了一些令人遗憾的非决定性证据。密码学及其误用参与了导致玛塔·哈里被处决的阴谋,甚至可能更令人发指的是,参与了导致德雷福斯被定罪和监禁的闹剧,这两者都发生在 20 世纪初。幸运的是,密码学家也参与了让德雷福斯重获自由;相比之下,玛塔·哈里被枪决了。
第一次世界大战后,数学密码学取得了飞速进步(也是秘密地)。波兰的马里安·雷耶夫斯基在 1932 年利用理论数学攻击并“破解”了早期德国军队 Enigma 系统(一种机电转子密码机)。破解一直持续到 1939 年,当时德国军队 Enigma 机的使用方式发生了变化,需要更多资源,而波兰人无法提供这些资源。他的工作由艾伦·图灵、戈登·韦尔奇曼和其他人在布莱切利庄园于 1939 年开始扩展,导致持续破解 Enigma 的其他几个变种以及它们所使用的各种网络。美国海军密码学家(在 1940 年之后与英国和荷兰密码学家合作)破解了几个日本海军密码系统。其中一个密码的破解,最出名的是导致美国在中途岛海战中获胜。一个美国陆军小组 SIS 甚至在二战开始之前就成功破解了日本最高级别的外交密码系统(一种名为“紫色”的机电“步进开关”机器)。美国人将密码分析产生的情报称为“魔术”,尤其是在“紫色”机器的情报。英国人最终将密码分析产生的情报,特别是来自各种 Enigma 的信息流量,称为“超级”。英国早期对“超级”的称呼是“博尼法斯”。
到二战时期,机械和机电密码机已广泛使用,但它们是不切实际的手动系统。这段时期在实际密码学和数学密码学方面都取得了重大进步,所有这些都处于保密状态。关于这段时期的信息近年来开始解密,因为官方的 50 年(英国)保密期已经结束,相关美国档案已逐渐开放,以及各种回忆录和文章发表。
德国人广泛使用(在几个变体中)一种称为 Enigma 的基于机电转子的密码系统。德国军队还部署了几种机械的一次性密码本尝试。布莱切利庄园称它们为“鱼”密码,马克斯·纽曼及其同事设计并部署了世界上第一台可编程的数字电子计算机 Colossus,以帮助进行密码分析。德国外交部从 1919 年开始使用一次性密码本;其中一些信息在二战期间被破译,部分原因是在南美洲找回了部分关键材料,这些材料被一名德国信使没有妥善处理而被丢弃。
日本外交部使用了一种当地研发的基于电气步进开关的系统(美国称其为“紫色”),以及一些日本大使馆使用的几种类似机器。其中一台机器被称为“M 机”,另一台被称为“红色”。盟军或多或少地破解了所有这些机器。
二战期间使用的其他密码机包括英国 Typex 和美国 SIGABA;两者都是与 Enigma 类似的机电转子设计。
现代密码学时代真正开始于克劳德·香农,他可以说是数学密码学之父。1949 年,他在《贝尔系统技术杂志》上发表了论文《保密系统的通信理论》,并在稍后与沃伦·韦弗合著了《通信的数学理论》一书。除了他对信息和通信理论的其他著作外,这些著作为密码学和密码分析奠定了坚实的理论基础。于是,密码学或多或少地消失在了像美国国家安全局 (NSA) 这样的秘密政府通信机构中。在 20 世纪 70 年代中期之前,很少有工作公开,直到一切都改变了。
1969 年出现了两项重大的公开(即非秘密)进步。首先是 IBM 提交的 DES(数据加密标准),这是应美国国家标准局(现为 NIST)的要求,为了为银行和其他大型金融组织等企业开发安全的电子通信设施而进行的。在 NSA 的“建议”和修改之后,它被采用并作为 FIPS 出版物(联邦信息处理标准)于 1977 年发布(目前为 FIPS 46-3)。它在 2001 年被采用高级加密标准(同样是 NIST 的竞赛)作为 FIPS 197 而实际上被淘汰。DES 是第一个由 NSA 等国家密码机构“认可”的公开可访问的密码算法。NBS 发布其设计细节,引发了公众和学术界对密码学的兴趣激增。DES 及其更安全的变体(如 3DES 或 TDES;参见 FIPS 46-3)至今仍在使用,尽管 DES 在 2001 年被 NIST 宣布选择 Rijndael(由两位比利时密码学家设计)之后,正式被 AES(高级加密标准)取代。然而,DES 仍然被广泛使用,它已被纳入许多国家和组织标准。但是,其 56 位密钥大小已被证明不足以抵御暴力攻击(一次由网络民权组织电子前沿基金会进行的此类攻击在 56 小时内成功——故事见于 O'Reilly 和 Associates 出版 的《破解 DES》)。因此,在新的密码系统设计中使用直接 DES 加密无疑是不安全的,而使用 DES 的旧密码系统保护的消息也应被视为不安全。有些人甚至在 1976 年就认为 DES 密钥大小(56 位)太小,也许最公开的是惠特菲尔德·迪菲。当时有人怀疑政府机构已经拥有足够的计算能力来破解 DES 消息,而且由于“S 盒”缺乏随机性,可能存在后门。
第二个是惠特菲尔德·迪菲和马丁·赫尔曼发表的论文《密码学的新方向》(http://citeseer.nj.nec.com/340126.html)。这篇论文介绍了一种全新的密码密钥分配方法,它在很大程度上解决了密码学中的一项基本问题——密钥分配。它被称为迪菲-赫尔曼密钥交换。这篇文章还刺激了几乎立即出现的对一类新的加密算法——非对称密钥算法的公开开发。
在那之前,所有有用的现代加密算法都是对称密钥算法,其中发送方和接收方使用相同的加密密钥与底层算法一起使用,并且两者都必须保密。二战中使用的所有机电机器都属于这种逻辑类别,凯撒密码和阿特巴什密码也是如此,历史上所有密码和代码系统也基本上都是如此。代码的“密钥”当然就是代码本,它也必须分发并保密。
在任何使用系统之前,每个此类系统中的密钥都必须以某种安全的方式在通信方之间交换(通常使用的术语是“通过安全通道”),例如一个带着手铐铐在手腕上的手提箱的可信信使,或面对面接触,或一只忠诚的信鸽。当参与者数量超过某个(非常!)小的数字时,或者当(真正)安全的通道不可用于密钥交换时,或者当出于明智的密码实践,密钥经常更换时,这种要求会迅速变得难以管理。特别是,如果不想让第三方解密他们的消息,则每对通信方都需要一个单独的密钥。这种系统也称为私钥、密钥或常规密钥密码系统。D-H 密钥交换(以及随后的改进)使这些系统的操作比以往任何时候都更容易、更安全。
相比之下,在非对称密钥加密中,算法有一对数学相关的密钥,其中一个用于加密,另一个用于解密。其中一些算法(并非全部)具有额外的属性,即其中一个密钥可以公开,因为另一个密钥不能(通过任何已知方法)从“公开”密钥推断出来。这些系统中的另一个密钥保密,通常被有些混乱地称为“私钥”。这种算法称为公钥/私钥算法,尽管那些希望避免对所有此类算法使用该术语的歧义,并强调有两个具有不同保密要求的独立密钥的人更喜欢术语“非对称密钥密码学”。
因此,对于使用此类算法的用户来说,现在每个接收方只需要一对密钥(无论发送方数量如何),因为拥有接收方的公钥(任何人)都不会损害消息的“安全性”,只要相应的私钥不被任何攻击者知道(实际上,这意味着除了接收方之外,任何人都不知道)。这种出乎意料的,非常令人惊讶的,一些算法的特性使得广泛部署高质量密码系统成为可能,并且成为现实,这些系统可以被任何人使用。这反过来给全世界政府密码机构带来了严重的烧心病;这是第一次,那些不在那个“兄弟会”之外的人可以使用那些机构的“窥探者”一方无法轻易破解的密码学。巨大的争议和冲突随之而来。它还没有平息。例如,在美国,出口“强”密码仍然是非法的;密码方法和技术被归类为军火。直到 2001 年,“强”密码被定义为使用超过 40 位的密钥的任何密码——此后定义有所放宽。(参见 S Levy 的《加密》,了解美国政策争议的新闻报道。)
但是,请注意,还没有被证明不可能从任何好的公钥/私钥非对称密钥算法中推断出私钥(无论长度如何)从公钥(或反之亦然)。知情人士认为,对于“好”的非对称算法,目前不可能(也许永远不可能);没有公开展示出任何一种可行的“伴随密钥推断”技术。还要注意,一些非对称密钥算法已被完全破解,就像许多对称密钥算法一样。使用需要两个密钥的算法并没有任何特殊的魔法。
事实上,一些广受尊敬和应用最广泛的公钥/私钥算法可以被一种或多种密码分析攻击破解,因此,与其他加密算法一样,使用它们的协议必须精心选择和实施,以阻止此类攻击。事实上,如果使用的密钥长度足够短,可以进行实际的暴力破解密钥搜索,则所有都可以被破解;对于所有使用密钥的加密算法来说,这都是固有的,包括对称和非对称算法。
这是那些希望保持通信安全的人面临的最基本问题的一个例子;他们必须选择一个能够抵御任何攻击者攻击的密码系统(算法+协议+操作)。由于无法知道攻击者是谁,他们可能拥有多少资源,或者密码分析(或其相关数学)在未来可能会取得什么进展,用户只能尽其所能,然后希望。在实践中,对于精心设计/实施/使用的密码系统,知情人士认为这已经足够了,甚至可能足以应对所有(?)未来的攻击者。区分精心设计/实施/使用的密码系统和垃圾密码是那些本身不是专家密码学家的另一个相当困难的问题。即使对于那些是专家的来说也很难。
现代历史的回顾
[edit | edit source]近年来,英国政府公布的秘密文件显示,非对称密钥密码学、D-H 密钥交换以及最著名的公钥/私钥算法(即通常称为 RSA 算法)似乎都在英国情报机构中被开发出来,早于迪菲和赫尔曼在 76 年公开宣布。GCHQ 发布了文件,声称他们在迪菲和赫尔曼发表论文之前就开发了公钥密码学。GCHQ 在 1960 年代和 1970 年代编写了各种机密文件,最终导致了与 RSA 加密和迪菲-赫尔曼密钥交换基本相同的方案,分别在 1973 年和 1974 年。其中一些现在已经出版,发明者(詹姆斯·埃利斯、克利福德·考克斯和马尔科姆·威廉姆森)已经公开了他们的一些工作。