密码学起源于数千年以前,直到最近的几十年为止,这部分密码学被称为经典密码学 ,经典密码的主要使用笔和纸,或者简单的机械辅助工具来加密 。到了20世纪早期,随着一些复杂机械和电动机械的发明,更复杂和有效的加密方法随之诞生,例如以恩尼格玛密码机 为代表的回转轮加密法 ;随后的电子元件和计算机更是使其变得进一步复杂和精密,此时出现的绝大多数加密方法已经完全摆脱了传统的纸笔运用了。
密码学的发展也伴随着密码分析学 的发展,也就是指对编码 和加密方法 的破译。对被加密的通信进行频率分析,这一方法的出现和应用,有时甚至改变了历史的进程。例如齐默尔曼电报 的破译使得美国参加了一战,而同盟国 对纳粹德国 密码的解读被一些人认为大约缩短了二战2年的时间。
在20世纪70年代之前,密码学的大部分都是政府的安全范畴。但两件事的发生将密码学带入了公众领域:公开的标准加密系统(数据加密标准 )的诞生,和公钥加密 的发明。
早期的密码学
目前已知最早的密码是大约公元前1900年的埃及古王国时期 ,用特殊的埃及象形文字 雕刻在墓碑上。[ 1] 但这些文字并不被认为是某种秘密通信的真正尝试,而是在增加神秘和阴谋气氛,甚至是为了给能看懂的观者提供乐趣。[ 1] 这是密码学在其它用途上的应用,或者只是看上去是这样(如果这是某种密码的误导或伪装,那确实令人印象深刻)。这稍后的一些出自美索不达米亚的泥板文献则是明确的对其上的信息试图进行保密,其中鉴定为公元前1500年左右的一份文献,加密了一份陶器上釉工艺配方,可以推测它在当时具有商业价值。[ 2] [ 3] 之后希伯来 的学者们使用了一些简单的单表替换式密码 (比如阿特巴希密码 ),这大约在公元前600至公元前500年间。[ 4] [ 5]
密码棒,一种早期的加密工具
古希腊 人当时据说已经对加密方法有了认识,斯巴达 军队曾使用过密码棒 进行换位加密 ,[ 5] 但是密码棒到底是用于加密、身份证明还是避免演讲中的坏预兆发生,这一点还存有争论。[ 6] [ 7] 希罗多德 则描述了通过蜡或木片来通过物理方法隐藏信息,或者在一个奴隶的头上书写,然后再由之后长出的头发掩盖。这本质上并不算作一种密码,因为一旦知道方法,信息是完全可读的,这通常被称为隐写术 。另外还有一种希腊加密法是由波利比乌斯 发明的,现在称之为波利比乌斯方阵 。[ 5] 罗马人同样对于密码学已经有了认识,例如著名的凯撒密码 及其变种。
直到多表加密方法之前,所有的加密方法本质上都存在易被频率分析方法攻击的缺陷,即使在多表加密方法出现之后,很多加密仍然存在这一缺陷。大约1467年,“西方密码学之父”莱昂·巴蒂斯塔·阿尔伯蒂 完成了多表加密最清晰的表述。[ 8] 随后约翰尼斯·特里特米乌斯 在他的著作《密码术》(Poligraphia)中,发明了表格法 ,维吉尼亚密码 的重要工具。法国密码学家布莱斯·德·维吉尼亚 以自己的名字发明了维吉尼亚密码,一种可实现的多表加密系统。[ 8]
在欧洲,由于政治斗争和宗教革命,密码学变得愈发重要。例如在文艺复兴 及之后的欧洲,意大利的教皇国 和天主教会 的民众负有快速扩散密码学技术的责任,他们之中很少有人懂得阿尔伯蒂的多表加密法。阿尔伯蒂以及他之后的加密法,并不像密码的发明者或使用者宣称和相信的那样先进,他们经常被破译。这种过度乐观可能是密码学中的一种天性,无论在当时还是现在,想要知道你的密码系统究竟有多容易被攻击在根本上是很困难的。
英女王伊丽莎白一世 时期的巴宾顿密谋,由于密码学、密码分析学以及秘密通信人员的叛变而泄露,直接导致了苏格兰女王玛丽一世 的被处决。一份来自铁面人 时代加密信息表露了一些这位传奇的不幸囚犯的身份信息,遗憾的是其内容并不明确。
在欧洲之外,当伊斯兰黄金时代 终结于蒙古人西征 之后,密码学的发展陷入了停滞。而日本地区的密码学应用大约起始于1510年,其技术直到19世纪60年代的日本开国之后才为人所知。在20世纪20年代,波兰海军帮助了日本军方编码和加密技术的发展。
1800年-第二次世界大战期间
第二次世界大战
现代密码学
克劳德·香农
克劳德·香农 被尊稱為「數學密碼學之父」。香农在貝爾實驗室裡面工作了幾年,並於1945年發表了一篇「密碼學的數學理論」的學術文章。之後,又發表了一篇名為「通訊學的數學理論」的成果論文。一般認為,香农的第一篇文章開啟了現代密碼學的大門,而其宗旨有二:「秘密性」與「真實性」。
加密标准
公钥加密法
散列函数
现代密码分析学
虽然现代密码算法(如AES)在理论上通常被认为是不可破解的,但现实中密码系统的设计和实现有时并不足够完善。因此,近年来出现了一些重要的通过密码分析的破解方法。被破解的系统中包括:第一代无线加密算法有線等效加密 ,DVD加密和控制中使用的内容扰乱系统(CSS),GSM中的A5/1和A5/2,以及恩智浦半导体 推出的MIFARE Classic智能卡中使用的CRYPTO1算法。它们都是对称加密算法。目前为止,公钥加密系统中的数学原理均未被证明为不可破解,因此,更高明高效的数学分析方法可能使得目前的公钥加密系统不再安全。随着机器计算能力的提高,破解密码的成本变得越来越低。因此,能保护系统安全的建议的密钥长度逐渐增加。
参考文献
外部链接
参见