第九章 算法类型和模式
对称密码算法有两种基本类型:分组密码和序列密码。分组密码算法是在明文分组和密文分组上进行运算——通常分组长为64比特,但有时更长。序列密码算法作用在明文和密文数据流的1比特或1字节上,有时甚至是一个32比特的字。利用分组算法,相同的明文用相同的密钥加密永远得到相同的密文。用序列算法,每次对相同的明文比特或字节加密都会得到不同的密文比特或字节。
密码模式通常是基本密码、一些反馈、和一些简单运算的组合。运算是简单的,因为安全性依赖于基本密码,而不依赖模式。强调一点,密码模式不会损害算法的安全性。
还有其他安全的考虑事项:明文的模式应当隐藏;输入密文应当是随机的;通过向密文中引入错误来对明文进行控制应当是困难的;以及用同一个密钥加密多个信息应当是可能的。这些问题将在以后章节里详细讨论。
效率是另一个值得考虑的事情。运算模式将不会明显地降低基本密码的效率。在一些情况下,密文和明文大小相同是非常重要的。
第三个考虑事情是容错。一些应用需要并行加密或解密,而其它一些则需要能够尽可能多的进行预处理。无论怎样,在丢失或增加比特的密文流中,解密过程能够从比特错误中恢复是很重要的。正如我们将看到的,不同的模式将有不同的特征子集。