在信息安全中,流密码和分组密码之间有什么区别?
流密码
流密码是一种一次加密一个比特或一个字节的数字数据流的密码。流密码通常在那一时刻加密消息的一个字节,而不是使用块。
例如,经典的流密码是自动关键的维吉尼亚密码和维尔南密码。在概念情况下,可以使用维尔南密码的一次性密码本版本,其中密钥流被认为是明文比特流。
如果密码密钥流是任意的,那么这种密码除了实现密钥流之外,无法通过其他任何方式破解。但是,密钥流应该通过某些独立的安全信道提前提供给两个用户。
如果预期的数据流量非常高,这会带来无法克服的后勤问题。比特流生成器应作为一种算法过程执行,以便两个用户都可以创建密码比特流。
在这种方法中,比特流生成器是一个密钥控制的算法,应该生成密码学上强大的比特流。现在,两个用户只需要共享生成密钥,每个人都可以创建密钥流。
分组密码
分组密码是一种将明文块作为一个整体考虑并用于创建相同长度的密文块的密码。通常使用 64 或 128 位的块大小。分组密码接收消息并将其分成固定大小的块,并立即更改消息的一个块。
分组密码对 n 位的明文块进行操作以创建 n 位的密文块。可能存在多个明文块,并且为了使加密可变(即,为了使解密成为可能),每个块都应该创建一个唯一的密文块。这种转换也称为可逆或非奇异。
分组密码基于称为伪随机置换 (PRP) 的数学对象。它们是可逆函数,将 n 位值 m 和密钥 k 作为输入,并输出 n 位值 c。
如果固定密钥 k,则 PRP 被认为是安全的,其结果函数与 n 位值上的随机双射函数相同。分组密码执行安全的 PRP。
它们由一个加密函数组成,该函数能够使用密钥将明文块加密成密文块。一个解密函数,它实现逆运算并从密文中获取明文块。
流密码和分组密码的主要区别在于每次加密处理的信息大小。流密码一次加密比特流中的一个比特,这导致加密消息与明文消息具有比特到比特的一致性。