密码学是研究信息及信息系统安全传统的科学,它起源于保密通信技术。密码学又分为密码编码学(cryptography)与密码分析学(cryptanalysis)。研究如何对信息编码,以实现信息及通信保密的科学称为密码编码学;研究如何破解或攻击加密信息的科学称为密码分析学。
密码学是在编码与破译的矛盾斗争中逐步发展起来的,并随着计算机等先进科学技术的发展与应用,已成为一门综合性、交叉性的学科。它与语言学、数学、电子学、信息论、计算机科学等有着广泛而密切的联系。
简单地利用代替、置换或混合的加解密操作,由于依赖手工计算,所以运算量还非常小,结构简单。
利用机器进行加密解密,可以进行更加复杂的加密手段。但此时期还没有形成密码学理论,加密的主要原理是代替或置换等基本的操作。
1948年Shanno在Bell系统技术期刊上发表的论文利用概率论的思想来阐述如何最好地加密要发送的信息,1949年发表的另一篇 The Communication Theory of Secrecy Systems,标志着传统密码学(理论)的真正开始,在此文章中首次将信息论引入了密码研究中,利用概率统计的观点,同时引入熵(entropy)的概念,对信息源、密钥源、接收和截获的密文,以及密码系统的安全性进行了数学描述和定量分析,并提出通用秘密密钥密码体制模型,从而使密码研究真正成为了一门学科。
此后直到20世纪70年代中期,密码学的研究基本上是在军事和政府部门秘密地进行,所取得的研究进展不大,几乎没有见到什么研究成果公开发表。
1974年,IBM公司应美国国家标准局NBS(现已更名为国家标准与技术研究局NIST)的要求,提交了基于Lucifer密码算法的一种改进算法,即数据加密标准 DES(data encryption stand-ard)算法。1976年底NBS正式颁布DES作为联邦信息处理标准FIPS(Federal Information Processing Standard),此后DES在政府部门以及民间商业部门等领域得到了广泛的应用。自此,传统密码学的理论与应用研究真正步入了蓬勃发展的道路。
自Caesar密码至NBS颁布的DES,所有这些密码系统在加密与解密时所使用的密钥或电报密码本均相同,通信各方在进行秘密通信前,必须通过安全渠道获得同一密钥。这样,密码体制称为传统密码体制或对称密码体制。自DES颁布后出现的主要传统密码体制有:三重DES、IDEA、Blowfish、RC5、CAST-128,以及AES等。
1976年以前的所有密码系统均属于对称密码体制。但是在1976年,W. Diffie与M. E. Hellman 在期刊“IEEE Transactions on Information Theory”上发表了一篇著名论文“New Directions in Cryptography”,为现代密码学的发展打开了一个崭新的思路,开创了现代公钥密码学。
在这篇文章中,W. Diffie与M. E. Hellman首次提出设想,在一个密码体制中,不仅加密算法本身可以公开,甚至用于加密的密钥也可以公开。也就是说,一个密码体制可以有两个不同的密钥:一个是必须保密的密钥,另一个是可以公开的密钥。若这样的公钥体制存在,就可以将公开密钥像电话簿一样公开,当一个用户需要向其他用户传送一条秘密信息时,就可以先从公开渠道查到该用户的公开密钥,用此密钥加密信息后将密文发送给该用户。此后该用户用他保密的密钥解密接收到的密文,即得到明文,而任何第三者则不能获得明文。这也就是公钥密码体制的构想。虽然他们当时没有提出一个完整的公钥密码体制,但是他们认为这样的密码体制一定存在。同时在该文中,他们给出了一个利用公开信道交换密钥的方案,即后来以他们的名字命名的Diffie-Hell-man密钥交换协议。利用此协议,通信各方不需要通过一个安全渠道进行密钥传送就可以进行保密通信。
就在W. Diffie与M. E. Hellman提出他们的公钥密码思想大约一年后,麻省理工学院的Ron Rivest、Adi Shamir 和 Len Adleman 向世人公布了第一个这样的公钥密码算法,即以他们的名字的首字母命名的具有实际应用意义的RSA公钥密码体制,并且很快被接受成为 ISO/IEC(International Standards Organization's International Electrotechnical Commission),ITU-T(International Telecommunications Union's Telecommunication Standardization Sector), ANSI (American National Standards Institute),以及SWIFT(Society for Worldwide Interbank Financial Telecommunications)等国际化标准组织采用的公钥密码标准算法,并得到了广泛应用。此后不久,人们又相继提出了Rabin、ElGamal、Goldwasser-Micali,以及椭圆曲线密码体制等公钥密码体制。随着电子计算机等科学技术的进步,公钥密码体制的研究与应用得到了快速的发展。
密码体制从使用密钥策略上可分为单钥密码体制(one key cryptosystem)与双钥密码体制(double key cryptosystem)两类。
在单钥密码体制中,使用的密钥必须完全保密,且加密密钥与解密密钥相同,或从加密密钥可推出解密密钥,反之亦可。所以,单钥密码体制又称为秘密密钥密码体制(secret key crypto- system)、传统密码体制(traditional cryptosystem)或对称密码体制(symmetric cryptosystem)。典型的单钥密码体制有:DES、三重DES、AES、IDEA、Blowfish等,本书在第2章做了较详细的介绍。
在双钥密码体制中,每个使用密码体制的主体(个人、团体或某系统)均有一对密钥:一个密钥可以公开,称为公钥;另一个密钥则必须保密,称为私钥,且不能从公钥推出私钥(或者说从公钥推出私钥在计算上是困难的)。所以双钥密码体制又称为公钥密码体制或非对称密码体制(asymmetric cryptosystem)。