古典密码学可以追溯到公元前400多年的古典时代,这个时期的密码技术主要应用于军事通信和情报传递,用来保护通信内容的机密性,避免敌人窃取或篡改消息。古典时期的密码技术主要有移位式密码(transposition)和替代式密码(substitution)。
移位式密码(Transposition Cipher)通过改变字符的位置来加密和解密文本。在移位式密码中,字符的顺序被重新排列,但字符本身的内容不发生改变。
举例来说,一个简单的移位式密码算法是栅栏密码(Rail Fence Cipher)。在栅栏密码中,明文中的字符按照一定的规律排列在多个水平的栏杆上,然后从左到右、从上到下地读取字符,形成密文。解密过程则是将密文重新排列到栏杆上,并按照相同的规律从左到右、从上到下地读取字符,恢复出原始的明文。
例如,以栅栏数为2的栅栏密码,对于明文"HELLO WORLD",加密过程如下:
H . L . O . O . L .
. E . L . W . R . D
按照左到右、从上到下的顺序读取,得到密文"HLOOLELWRD"。
移位式密码和替代式密码的主要区别在于加密方式。移位式密码改变字符的位置,而替代式密码改变字符的内容。
替代式密码(Substitution Cipher)通过将明文中的字符替换为其他字符来加密和解密文本。在替代式密码中,每个字符被映射到另一个字符,形成一个替代表。
举例来说,一个常见的替代式密码是凯撒密码(Caesar Cipher)。在凯撒密码中,明文中的每个字母都按照一个固定的偏移量向右(或向左)移动,来得到密文。解密过程则是将密文中的每个字母反向移动相同的偏移量,恢复出原始的明文。
例如,以偏移量为3的凯撒密码,对于明文"HELLO WORLD",加密过程如下:
明文:H E L L O W O R L D
密文:K H O O R Z R U O G
每个字母都向右偏移3个位置得到密文,得到密文“KHOORZRUOG”。
替代式密码一度被认为是最坚固的密码算法,但频率分析法(frequency analysis)的出现对于替代式密码却是致命一击。频率分析依赖于文字本身不同字符出现的频率不同。以英文字母为例,英文子母中e的出现频率最高,依次是t、a、o、i、n……。以下是常见的英文字母频率分布。
序号 | 字母 | 频率 |
---|---|---|
1 | E | 12.7% |
2 | T | 9.1% |
3 | A | 8.2% |
4 | O | 7.5% |
5 | I | 7.0% |
6 | N | 6.7% |
7 | S | 6.3% |
8 | H | 6.1% |
9 | R | 6.0% |
10 | D | 4.3% |
11 | L | 4.0% |
12 | U | 2.8% |
13 | C | 2.8% |
14 | M | 2.4% |
15 | W | 2.4% |
16 | F | 2.2% |
17 | G | 2.0% |
18 | Y | 2.0% |
19 | P | 1.9% |
20 | B | 1.5% |
21 | V | 1.0% |
22 | K | 0.8% |
23 | J | 0.2% |
24 | X | 0.2% |
25 | Q | 0.1% |
26 | Z | 0.1% |
表1 英文字母频分布表格,这个表格展示了英文字母按照它们在文本中出现的频率从高到低的顺序,以百分比表示。这个频率表可以在密码分析、文本处理和其他相关领域中使用。请注意,实际的频率可能会因文本内容和语境而有所不同,这只是一个常见的频率分布,最早见于《密码系统:保护通讯》(Cipher Systems: The Protection Of Communication)。
对于密文破解,我们也可以按照字母出现的频率进行倒序排列,和上表中的字母顺序一一对应,就有可能解密加密后的内容了。
替代式密码被破解后,16世纪由法国密码学家布吕斯·德·维吉尼亚(Blaise de Vigenère)提出了维吉尼亚密码。这种密码算法使用一系列不同的凯撒密码表格,并根据密钥中的字母顺序来选择适当的表格进行加密。维吉尼亚密码在古典密码学中占据重要地位,被广泛应用于通信的加密和解密。
维吉尼亚密码在当时被认为是无法破解的密码,但查尔斯·巴贝奇凭借自己智慧的大脑破解了维吉尼亚密码。
正当密码专家们感到绝望时,一种高度机械化的密码机出现了,这就是由德国工程师亚图·雪毕伍斯(Arthur Scherbius)于1918年设计的恩尼格玛机。恩尼格玛密码机相对于维吉尼亚密码引入了更多的机械化和自动化元素,使得密码系统更复杂、更安全、更难以破解。它的设计和实现标志着密码学从人工手段向机械和电子手段的转变,为密码学的发展开辟了新的道路。
第二次世界大战中,德军使用恩尼格玛机保护军事通讯和情报传递。面对德军不断升级的军事破坏,恩尼格玛机最终被英国的密码学家和数学家阿兰·图灵(Alan Turing)及其团队破解。这一突破对于盟军在战争中获得重要的军事情报起到了关键作用。图灵和他的团队的工作为现代计算机和密码学的发展奠定了基础,并被认为对战争的结果产生了重要的影响。
现代密码学真正源于香农在20世纪40年代末发表的一系列论文,特别是1949年的《保密系统通信理论》,把已有数千年历史的密码学推向了基于信息论的科学轨道。现代密码学是在计算机科学的推动下出现的一个重要阶段,一个重要的突破是数据加密标准(DES)的出现。DES是在20世纪70年代初由IBM开发的一种对称加密算法。它的意义使密码学不再局限于政府使用,而在商业领域开始广泛流行。
随着计算机处理能力的提升和密码分析技术的发展,DES的密钥长度逐渐被认为不够安全。因此,在后续的发展中,出现了更加强大和安全的加密算法,例如AES(高级加密标准),它逐渐取代了DES的应用。
但类似DES、AES这样的对称密码算法来说,有一个致命的缺陷就是必须在发送发和接收方之间安全的交换密钥,这个问题对于政府机构来说都不一定做到,普通大众就更无能为力了。
1976年,美国的密码学家迪菲(Diffie)、赫尔曼(Hellman)和墨克(Merkle)说服了密码界,让大家相信密钥的交换有更好的办法——这就是非对称密钥——一个完美但还不可行的系统。非对称密码使用不同的密钥进行加密和解密,其中公钥用于加密,私钥用于解密。这种密码系统的安全性依赖于数学问题在计算机上的难解性。
1977年,麻省理工学院的瑞维斯特(Ronald Rivest)、薛米尔(Adi Shamir)和艾多曼(Leonard Adleman)提出了第一个公钥加密算法RSA(三个人英文名字的首字母)算法,随后又出现了椭圆曲线密码等公钥密码算法。公钥密码的发展使得密码学进入了一个新的发展时期。
RSA算法是一个重要的公钥密码算法,它基于大素数的数论问题,利用公钥和私钥进行加密和解密。RSA算法的安全性依赖于因数分解的困难性,使得破解者无法在合理时间内找到两个大素数的乘积。公钥密码算法在安全通信和电子商务中起着重要的作用。
然而,随着计算能力的不断提高和算法的改进,特别是量子计算机的崛起,公钥密码的安全性也面临着挑战。因此,研究者们开始关注抗量子算法的密码技术,如抗量子密码和格密码。这些新领域的研究逐渐成为密码学的热点。
1996年,国家密码管理办公室正式成立。1999年,国务院颁布了《商用密码管理条例》。
经过20多年的发展,我国商用密码经历了从无到有、从引入国际算法到国产密码算法研制的历程。如今,我国已经形成了从密码芯片、板卡、整机到密码服务自主可控的产业链,国产密码已经在金融、政务、能源、医疗等领域得到了广泛应用。
2004年,全国人大通过了《中华人民共和国电子签名法》,为电子签名的合法性和有效性提供了法律依据,推动了电子交易和网络安全的发展。
2006年1月,国家密码管理局公布了无线局域网产品适用的SMS4算法,后更名为SM4算法(对称加密算法)。
2011年,我国自主设计的序列密码算法ZUC与美国AES、欧洲SNOW 3G共同成为了4G移动通信密码算法的国际标准。
同年,国家密码管理局公布了密码杂凑算法SM3(哈希算法)。
2010年,国家密码管理局公布了SM2椭圆曲线公钥密码算法(非对称加密算法)。随后,2012年,SM2算法发布为密码行业标准,并于2016年发布为国家标准。
2016年,国家密码管理局发布了基于用户身份的SM9标识密码算法,拓展了国密算法的应用场景。
ZUC、SM2、SM3、SM4、SM9等一系列商用密码算法构成了我国完整的密码算法体系。特别值得一提的是,部分密码算法被采纳为国际标准,为促进国际密码学发展、丰富产业选择和保障应用安全提供了中国方案。
2018年,中共中央办公厅和国务院办公厅联合下发了《金融和重要领域密码应用与创新发展工作规划(2018-2022年)》,以指导金融和重要领域的密码应用和创新发展。
2020年,《中华人民共和国密码法》正式实施,标志着中国商用密码进入了新的发展阶段。该法的核心目标是加强对密码的管理和保护,确保国家信息安全和网络安全。
为进一步加强商业领域中密码的管理,2023年7月1日起修订后的《商用密码管理条例》开始实施。这一修订将进一步确保商业领域的信息安全和保密要求得到有效落实。