2.2.2 密码学分类

密码学起源于古代,发展于现代。随着时间的推移,密码学不断完善,逐步拥有了众多分类。可以从时间上划分,也可以从保密内容的算法上划分,还可以从密码体制上划分,下面将详细介绍这3类密码。

1.按时间划分

从时间上可以分为古典密码和现代密码,古典密码以字符为基本加密单元,2.4节中将会有详细的阐述;现代密码以信息块为基本加密单元。

2.按保密内容的算法划分

根据保密内容的算法可分为受限制算法和基于密钥算法。

❑受限制(Restricted)算法:算法的保密性基于保持算法的秘密。一般不赞成使用这种算法,除非应用于类似军事一类的应用,算法由专业机构开发、验证,确保其算法的安全性。这是古典密码学的主要特征。

❑基于密钥(Key-Based)算法:算法的保密性基于对密钥的保密。这其实是基于柯克霍夫原则设计的算法,这样做的好处是:算法的公开有助于算法安全性的验证,算法的漏洞得以及时修正,避免算法的设计者在算法上留下后门等。这正是现代密码学的主要特征。

3.按密码体制划分

根据密码体制可分为对称密码体制和非对称密码体制。

❑对称密码体制(Symmetric Cryptosystem):也称为单钥密码体制或私钥密码体制,将在2.5节详细阐述。指该密码体制中的加密密钥与解密密钥相同,即加密过程与解密过程使用同一套密钥。

❑非对称密码体制(Asymmetric Cryptosystem):也称为双钥密码体制或公钥密码体制。指该密码体制中的加密密钥与解密密钥不同,密钥分为公钥与私钥。公钥对外公开,私钥对外保密。

与上述密码体制对应的算法有对称密码算法和非对称密码算法。

❑对称密码算法(Symmetric Cipher):也称为单钥密码算法或私钥密码算法。指对应于对称密码体制的加密、解密算法。常见的DES、AES算法都是对称密码算法的典范。

❑非对称密码算法(Asymmetric Cipher):也称为双钥密码算法或公钥密码算法。指对应于非对称密码体制的加密、解密算法。大名鼎鼎的RSA算法就是非对称密码算法,多应用于数字签名、身份认证等。当然,非对称密码算法的相对于对称密码算法有着更高的安全性,却有着不可回避的加密解密的耗时长的问题。

4.按明文的处理方法划分

根据明文的处理方法可分为分组密码和流密码。

❑分组密码(Block Cipher):指加密时将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。分组密码多应用于网络加密。

❑流密码(Stream Cipher):也称为序列密码。指加密时每次加密一位或一个字节的明文。手机平台对应用使用系统资源有着极为苛刻的要求,这恰恰给了对系统资源要求极低的流密码以用武之地。RC4是相当有名的流密码算法。

在手工加密阶段和机械加密阶段,流密码曾是当时的主流。现代密码学的研究主要关注分组密码和流密码及其应用。在对称密码体制中,大部分加密算法属于分组密码。关于分组密码和流密码的详细内容,请阅读2.5节。