誕生日限界
ブロック衝突が情報を漏らし始めるまでに、ブロック暗号が一つの鍵で安全に処理できるデータ量。nビットブロックなら、おおよそ 2n/2 ブロック。
上限を決めるのは鍵長ではなくブロックサイズである。CBC では、同一の暗号文ブロックが二つ現れることがいずれ避けられなくなり、現れたときには二つの平文ブロックの XOR が明らかになる。CTR は逆の問題を抱える。ブロックが決して繰り返されないこと自体が、ストリームが乱数ではない証拠になる。64ビットブロックの DES、3DES、Blowfish では限界は約 232 ブロック、つまり 32 GB 前後である。
長年これは教科書の脚注にすぎなかった。一つの鍵でそれほどのデータを流す人がいなかったからだ。そこへ長時間つながり続ける HTTPS 接続と、2016年の Sweet32 が現れ、まさにこの計算を使って 3DES の通信から Cookie を復元した。AES の128ビットブロックなら限界は 264 まで上がるが、AES-GCM のようなモードは、ノンスがランダムな場合に、はるかに厳しい独自の制限を課す。