块大小

在现代密码学中，对称加密密码一般分为流密码和块密码。块密码根据一个固定长度的位元串来进行操作。块大小就是这个位串的长度。输入（明文）和输出（密文）的长度是相同；输出不短于输入——鴿巢原理将导致逻辑上密码一定可逆的事实——并且不希望输出长于输入。

在NIST宣布进行高级加密标准评选过程（AES竞赛）之前，大多数块密码使用类似資料加密標準（DES）的64位（8字节）块大小。不过生日問題告诉我们，在累计一定数量的块之后，所有可能的块的数量变为原来的平方根，将有大约50%的概率两个块（或者更多块）相同，这会开始泄露关于明文的信息。因此，即使当使用适当的加密模式（例如CBC或OFB）时，也只有232 × 8 B = 32 GB的数据可以在同一个密钥下被安全地传送。在现实中，为了保证更大的安全性，一般会限制使用同一个密钥加密的过多的数据，比如只加密几百兆字节。曾经这个数据的数量被认为是相当大、足够用的。但在今天，这个上限很容易被超过。如果加密模式没有适当地随机扰乱输入，这个上限会更低。

因此，AES的候选算法要求支持128位（16个字节）的块大小。这样对于连续加密最264 × 16 B = 256 艾字节的数据都是可以接受的，并在未来的几年内是充分安全的。AES竞赛的最终获选算法Rijndael，支持128、192和256位的块大小和密钥位数，但在AES中总是使用128位的块大小。AES标准未接纳额外的块大小。

还有许多块密码，如RC5，支持可变的块大小。它的Luby-Rackoff结构和Outerbridge结构，能够增加密码的有效块大小。

相较而言，Joan Daemen的3-Way算法和BaseKing算法使用不常见的块大小，分别是96位和192位。

 参见 
 密文窃取
 密鑰長度


 参考资料 

Category:对称密码学