誕生日攻撃とは

たんじょうびこうげき

「23人いれば、誕生日が同じ2人がいる確率が50%を超える」という誕生日のパラドックスを利用して、衝突を探す攻撃。出力がnビットの値をランダムに作っていくと、約 2^(n/2) 個で同じ値の組が現れる確率が無視できなくなる。このため、nビットのハッシュ関数の衝突に対する強さは約 n/2 ビットとされる。ブロック長64ビットのブロック暗号では、1つの鍵で約 2^32 ブロック(32 GiB)を暗号化すると暗号文ブロックの一致が起こり始めるため、ブロック長128ビットのAESが使われる。ランダムなナンスを使うときの使用回数の上限にも、同じ考え方が使われる。

「誕生日攻撃」は、2分野の2問の練習問題に出てきます(暗号技術の基礎と応用, 情報セキュリティの基礎など)。

この用語の分野: 暗号技術の基礎と応用

誕生日攻撃の練習問題に挑戦

1 GiB = 2³⁰ バイト、1 EiB = 2⁶⁰ バイトとする。ブロック長が64ビットのブロック暗号(3DESなど)をCBCモードで使い、1つの鍵で大量のデータを暗号化する。暗号文ブロックをランダムな64ビットの値とみなすとき、誕生日のパラドックスにより、同じ暗号文ブロックの組が現れる確率が無視できなくなるデータ量の目安はどれか。

  1. A約4 GiB
  2. B約32 GiB
  3. C約128 EiB
答えと解説を見る

正解:B. 約32 GiB

64ビットのブロックの値は 2⁶⁴ 通りなので、誕生日のパラドックスにより、約 2^(64/2) = 2³² 個のブロックを暗号化すると、同じ値の組が現れる確率が無視できなくなります(2³² 個で約39%)。1ブロックは8バイトなので、データ量は 2³² × 8 = 2³⁵ バイト = 32 GiB です。CBCモードで暗号文ブロックが一致すると、対応する2つの平文ブロックのXORが分かってしまい、2016年に公表されたSweet32攻撃では、3DESで保護された長時間のHTTPSの通信からCookieを取り出せることが示されました。ブロック長が128ビットのAESでは、目安が 2⁶⁴ ブロックまで広がります。

解説の中の「誕生日攻撃」

「誕生日攻撃」が出てくる問題(2問)

  1. 1 GiB = 2³⁰ バイト、1 EiB = 2⁶⁰ バイトとする。ブロック長が64ビットのブロック暗号(3DESなど)をCBCモードで使い、1つの鍵で大量のデータを暗号化する。暗号文ブロックをランダムな64ビットの値とみなすとき、誕生日のパラドックスにより、同じ暗号文ブロックの組が現れる確率が無視できなくなるデータ量の目安はどれか。
  2. 出力が256ビットの理想的なハッシュ関数に対して、総当たりで攻撃するときに必要な計算の回数の目安として、「与えられたハッシュ値になる入力を見つける(原像攻撃)」場合と、「同じハッシュ値になる異なる2つの入力を、どれでもよいので見つける(衝突攻撃)」場合の組み合わせとして正しいものはどれか。

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

暗号利用モード Cookie AES ハッシュ関数 RSA暗号 HSM(ハードウェアセキュリティモジュール) HMAC ML-KEM エンベロープ暗号化 クリプトアジリティ

用語集の一覧へ