加密方法可以分为两大类:一类是对称密码体制,又称单钥或私钥密码体制(private key cryptography);还有一类是非对称密码体制,也称双钥或公开密钥体制(public key cryptography)。前者的加密和解密过程都用同一套密码,后者的加密和解密过程用的是两套密码。
在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要,一旦秘钥泄露,密文也就被破解了;在双钥加密的情况下,秘钥有两把,一把是公开的公钥,还有一把是不公开的私钥,公钥与私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。此外,①同时生成公钥和私钥应该是相对比较容易的:所有的公钥、私钥对都不同,用公钥可以解开私钥加密的信息,反之用私钥也可以解开公钥加密的信息;但是②从公钥推算出私钥,应该是很困难或者是不可能的。
目前,通用的单钥加密算法有 DES(Data Encryption Standard),通用的双钥加密算法为 RSA(Rivest-Shamir-Adleman),本文主要介绍三种常用的单钥加密算法:DES、3DES(Triple DES) 以及 AES(Advanced Encryption Standard)。