密码体制是指完成加密和解密的算法。通常,信息的加密和解密过程是通过密码体制+密钥来控制的。密码体制必须易于使用,特别是应适合计算机运算使用。密码体制的分类方法有很多,常见的有以下几种。
1.按照密码的发展历史分类
根据密码的发展历史,可分为古典密码和近现代密码。
2.按加密/解密密钥是否相同分类
根据加密和解密算法所使用的密钥是否相同,可分为对称密码体制和公钥密码体制。
(1)对称密钥密码体制:也称为单钥密码体制或秘密体制密钥密码体制。其特点是加密密钥和解密密钥相同,即可以由其中任意进行车个密钥很容易地推知另外一个。常见的有DES、IDEA和AES等素,其优点是加解密速度快。使用对称密码体制时,如果能够加密就意味着必然能够解密,反之亦然。
(2)公钥密码体制:也称为非对称密码体制。它的加密密钥和解密密钥不同,并且从一个密钥推导出另一个密钥在计算上是不可行的。公钥密码体制的优点是公钥可以公开,这适合于 Internet开放性的需要,密钥分配和管理相对简单,并且可以实现数字签名和抗抵赖服务。由于公钥密码体制一般基于某个数学难题来实现,因此它的主要缺点是加解密速度慢,而且不便于计算机硬件实现。
3.按照对明文的处理方式分类
根据密码体制对明文的加密方式,可分为分组密码和流密码。
(1)分组密码将明文切分成固定长度的分组,用同一密钥和算法逐组进行加密。它具有良好的扩散特性,对插入和修改也具有免疫性。
(2)流密码又称为序列密码,它是每次加密一位或一字节的明文。它加密速度较快,错误扩散较低,但不利于防止信息的插入和修改。
4.根据是否能进行可逆的加密变换分类
根据密码体制能否进行可逆的加密变换,又可分为单向函数密码体制和双向变换密码体制。
(1)单向函数密码体制是一类特殊的密码体制,其可以很容易地把明文转换成密文,但再把密文转换成正确的明文却是不可行的,甚至是不可能的。例如,通过单向散列函数可以将一篇10万字的文章转换成128b的摘要,显然这样转换过程中存在大量的信息损失,因此不可能再将摘要转换回原始的明文。单向函数只适用于某些特殊的、不需要解密的应用场合,如用户的口令存储或信息的完整性保护与鉴别等。
(2)双向变换密码体制是指能够进行可逆的加密、解密变换,它要求所使用的密码算法能够进行可逆的双向加解密变换。
5.按照需要保密的内容分类
根据密码体制的密码算法是否需要保密,可分为受限制的算法和基于密钥的算法。
加密和解密算法都可以公开,只要保证密钥的机密性就可实现安全,就是说“一切秘密存在于密钥之中”。这一原则已得到普遍承认,成为判定密码算法强度的标准,也成了划分古典密码和近现代密码的标准。
Kerckhoffs原则因为只有算法通用化,才能使大规模的保密通信变得容易。如果加密算法需要保密,那么每个组织都只能使用不同加密算法,信息只能在该组织内进行保密通信,其他组织即使知道密钥也无法对该组织加密的信息进行解密,因此保密通信无法在大范围内进行。因此此原则对当今密码学的发展具有重大意义。