密码学,从词源上讲是「秘密的科学」,真正被视为一门科学的时间并不长。它涵盖密码术——秘密书写——以及密码分析——对前者的分析。——来源:维基百科
密码学是一门古老的技艺,也是一门新兴的科学:说它古老,是因为斯巴达人早已使用密码棒;说它新兴,是因为它成为学术界和大学的科研课题,仅是从 1970 年代开始的事。

密码棒,又称普鲁塔克之棒——已知最古老的军事装置之一
历史
最早的加密方法可追溯到古代,并随着各种加密机器的制造而不断改进,在第一次世界大战和第二次世界大战期间发挥了重要作用。
密码学的技艺被认为与书写的技艺同时诞生。随着文明的演进,人类组织成部落、群体和王国。这催生了诸如权力、战争、霸权和政治等观念。这些观念进一步激发了人们与特定收信人秘密通信的天然需求,也促使该领域持续发展。
密码学的根源可以在罗马文明和埃及文明中找到。
象形文字——最古老的密码术技术
已知最早的证据可以归于「象形文字」的使用。大约 4000 年前,埃及人通过以象形文字写成的信息进行交流。这套代码是只有代替国王传递信息的书吏才知道的秘密。下图展示了其中一种象形文字。

后来,在公元前 500 至 600 年间,学者们改用简单的单字母替换密码。这需要按照某条秘密规则,用另外的字母替换信息中的字母。这条规则就成了从打乱后的信息中还原原文的密钥。
更早的罗马密码术方法,通俗地称为凯撒移位密码,其原理是将信息中的字母按约定的数字(三是常见的选择)进行移位,该信息的收信人则将字母按同样的数字反向移位,从而得到原始信息。
例如,洛伦茨密码机在第二次世界大战期间被用于加密德国极为重要的军事通信。布莱切利园的密码分析人员成功破解了它的密码。

洛伦茨密码机 SZ 40/42
密码术分为界限分明的两部分:
- 一方面是密钥密码术,也称对称密码术或经典密码术。
- 另一方面是公钥密码术,也称非对称密码术或现代密码术。
前者更为古老,可以上溯至公元前 2000 年的埃及,并经由尤利乌斯·凯撒。后者则可追溯到 W. Diffie 与 M. Hellman 1976 年的文章 New directions in cryptography。

对称密码术
两者都旨在确保信息的保密性,但密钥密码术要求收信各方事先共享某种信息:(对称)密钥,它是加密以及解密信息所必需的。而使用公钥密码术时,这就不再必要了。此时密钥各不相同,用于执行相反的操作,由此产生了加密与解密操作之间的非对称性。

非对称密码术
密码分析是一种在不掌握加密密钥的情况下从密文推断出明文的技术。显然,自这些秘密代码存在以来,人们就一直设法破解它们,在并非合法收信人的情况下理解被加密的信息,也就是解密。凯撒系统的密码分析很容易(提示:语言的统计特性,在法语中,e 是最常见的字母),但也出现了抗性强得多的系统。
有些系统长期未被攻破,例如维吉尼亚系统(论秘密书写方式 1586 年),直到 19 世纪中叶才被查尔斯·巴贝奇破解。另一些系统尽管没有可利用的漏洞,却因现代计算能力可以轻易应对而不再使用。DES 就是如此,其 56 位密钥被认为过短,因为可以通过穷举搜索(暴力破解)找到。
炸弹机是英国密码学家使用的一种机电装置,用于帮助破译德国的秘密信息。

布莱切利园的炸弹机
它再现了多台恩尼格玛机连接在一起的运作。上图为布莱切利园博物馆的复制品,其中每个高速旋转的鼓轮都模拟一个恩尼格玛转子的运作。
可以列举一些现代密码分析技术:
- 差分密码分析,Biham 与 Shamir,1991 年,适用于迭代分组加密、流加密和散列函数。
- 线性密码分析,Matsui,1994 年,为破解对称加密算法 DES 而开发。
- 因数分解,目前是解密 RSA 的唯一真正手段。
- 暴力破解,即系统地尝试所有可能的密钥。
围绕密码分析的概念高度专业且复杂,因此我们只会非常简略地加以介绍。
为了让数据在存储或传输时是安全的,必须以某种方式对其进行转换,使未经授权者难以发现其真正的含义。为此,安全系统和软件使用某些数学方程,除非满足严格的条件,否则这些方程极难求解。求解某个给定方程的难度被称为不可解性。这些方程构成了密码术的基础。
要描述密码分析,几乎需要逐一审视每个系统——不仅是每个系统,还有每一种实现:如果支撑装甲门的墙是胶合板做的,那再好的装甲门又有什么用?
您想必听说过用于保密性、完整性和可用性(Confidentiality, Integrity, Availability)的 CIA 模型,它是企业内部信息安全的一项关键原则。
保密性指的是一套限制信息访问的规则。完整性即确保信息可靠且准确。可用性则是保证授权人员能够可靠地访问数据。
就密码学而言,保密性只是其中一个方面。它还能提供:
- 信息的身份验证或强身份验证:确保某个人确实是加密信息的作者;
- 不可否认性是指确保合同不能被其中一方推翻;
- 完整性:可以验证信息未经授权或因错误而被篡改;
- 零知识证明——例如身份证明——可以在不泄露秘密的情况下证明自己知道该秘密;
从根本上说,是公钥密码术为密码学的这些方面提供了必要的基础。

再会!
