密码学是一个即古老又新兴的学科。密码学(Cryptology)一字源自希腊文"krypto's"及"logos"两字,直译即为"隐藏"及"讯息"之意。密码学有一个奇妙的发展历程,当然,密而不宣总是扮演主要角色。所以有人把密码学的发展划分为三个阶段:
第一阶段为从古代到1949年。
这一时期可以看作是科学密码学的前夜时期,这阶段的密码技术可以说是一种艺术,而不是一种科学,密码学专家常常是凭知觉和信念来进行密码设计和分析,而不是推理和证明。
古典密码编码方法归根结底主要有两种,即置换和代换。把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。代换密码则是将明文中的字符替代成其他字符。
1844年,萨米尔·莫尔斯发明了莫尔斯电码:用一系列的电子点划来进行电报通讯。电报的出现第一次使远距离快速传递信息成为可能,事实上,它增强了西方各国的通讯能力。
20世纪初,意大利物理学家奎里亚摩·马可尼发明了无线电报,让无线电波成为新的通讯手段,它实现了远距离通讯的即时传输。马可尼的发明永远地改变了密码世界。由于通过无线电波送出的每条信息不仅传给了己方,也传送给了敌方,这就意味着必须给每条信息加密。
第一次世界大战前,重要的密码学进展很少出现在公开文献中。直到1918年,二十世纪最有影响 的密码分析文章之一¾¾William F. Friedman的专题论文《重合指数及其在密码学中的应用》作为私立的“河岸(Riverbank)实验室”的一份研究报告问世了,其实,这篇著作涉及 的工作是在战时完成的。一战后,完全处于秘密工作状态的美国陆军和海军的机要部门开始在密码学方面取得根本性的进展。但是公开的文献几乎没有。
然而技术却在飞速的发展,简单的明文字母替换法已经被频率分析法毫无难度地破解了,曾经认为是 完美的维吉耐尔(Vigenere)密码和它的变种也被英国人Charles Babbage破解了。顺便说一句,这个Charles Babbage可不是凡人,他设计了差分机Difference Engine和分析机Analytical Engine,而这东西就是现在计算机的先驱。这个事实给了人们两个启示:第一,没有哪种“绝对安全”的密码是不会被攻破的,这只是个时间问题;第二,破 译密码看来只要够聪明就成。在二次大战中,密码更是扮演一个举足轻重的角色,许多人认为同盟国之所以能打赢这场战争完全归功於二次大战时所发明的破译密文 数位式计算机破解德日密码。
1918年,加州奥克兰的Edward H.Hebern申请了第一个转轮机专利,这种装置在差不多50年里被指定为美军的主要密码设备,它依靠转轮不断改变明文和密文的字母映射关系。由于有了 转轮的存在,每转动一格就相当于给明文加密一次,并且每次的密钥不同,而密钥的数量就是全部字母的个数――26个。
同年,密码学界的一件大事“终于”发生了:在德国人Arthur Scherbius天才的努力下,第一台非手工编码的密码机――ENIGMA密码机横空出世了。密碼機是德軍在二戰期間最重要的通訊利器,也是密碼學發展 史上的一則傳奇。當時盟軍借重英國首都倫敦北方布萊奇利公園的「政府電碼與密碼學院」,全力破譯德軍之「謎」。雙方隔著英吉利海峽鬥智,寫下一頁精彩無比 的戰史,後來成為無數電影與影集的主要情節,「獵殺U571」也是其中之一。
随着高速、大容量和自动化保密通信的要求,机械与电路相结合的转轮加密设备的出现,使古典密码体制也就退出了历史舞台。
第二阶段为从1949年到1975年。
1949年仙农(Claude Shannon)《保密系统的通信理论》,为近代密码学建立了理论基础。从1949年到1967年,密码学文献近乎空白。许多年,密码学是军队独家专有的 领域。美国国家安全局以及前苏联、英国、法国、以色列及其它国家的安全机构已将大量的财力投入到加密自己的通信,同时又千方百计地去破译别人的通信的残酷 游戏之中,面对这些政府,个人既无专门知识又无足够财力保护自己的秘密。
1967年,David Kahn《破译者》(The CodeBreaker)的出现,对以往的密码学历史作了相当完整的记述。《破译者》的意义不仅在于涉及到相当广泛的领域,它使成千上万的人了解了密码 学。此后,密码学文章开始大量涌现。大约在同一时期,早期为空军研制敌我识别装置的Horst Feistel在位于纽约约克镇高地的IBM Watson实验室里花费了毕生精力致力于密码学的研究。在那里他开始着手美国数据加密标准(DES)的研究,到70年代初期,IBM发表了 Feistel和他的同事在这个课题方面的几篇技术报告。
第三阶段为从1976年至今。
1976年diffie 和 hellman 发表的文章“密码学的新动向”一文导致了密码学上的一场革命。他们首先证明了在发送端和接受端无密钥传输的保密通讯是可能的,从而开创了公钥密码学的新纪元。
1978年,R.L.Rivest,A.Shamir和L.Adleman实现了RSA公钥密码体制。
1969年,哥伦比亚大学的Stephen Wiesner首次提出“共轭编码”(Conjugate coding)的概念。1984年,H. Bennett 和G. Brassard在次思想启发下,提出量子理论BB84协议,从此量子密码理论宣告诞生。其安全性在于:1、可以发现窃听行为;2、可以抗击无限能力计算 行为。
1985年,Miller和Koblitz首次将有限域上的椭圆曲线用到了公钥密码系统中,其安全性是基于椭圆曲线上的离散对数问题。
1989年R.Mathews, D.Wheeler, L.M.Pecora和Carroll等人首次把混沌理论使用到序列密码及保密通信理论,为序列密码研究开辟了新途径。
2000年,欧盟启动了新欧洲数据加密、数字签名、数据完整性计划NESSIE,究适应于21世纪信息安全发展全面需求的序列密码、分组密码、公开密钥密码、hash函数以及随机噪声发生器等技术。