情報セキュリティの基礎

出力が256ビットの理想的なハッシュ関数に対して、総当たりで攻撃するときに必要な計算の回数の目安として、「与えられたハッシュ値になる入力を見つける(原像攻撃)」場合と、「同じハッシュ値になる異なる2つの入力を、どれでもよいので見つける(衝突攻撃)」場合の組み合わせとして正しいものはどれか。

  1. A原像攻撃は約2^256回、衝突攻撃は約2^128回
  2. B原像攻撃は約2^128回、衝突攻撃は約2^256回
  3. C原像攻撃も衝突攻撃も約2^256回
答えと解説を見る

正解:A. 原像攻撃は約2^256回、衝突攻撃は約2^128回

出力がnビットの理想的なハッシュ関数では、ハッシュ値は 2^n 通りあり、入力を1つ試すごとに、決められたハッシュ値に一致する確率は 1/2^n です。そのため原像攻撃には、およそ 2^n 回、n = 256 なら約2^256回の計算が必要です。一方、衝突攻撃では、どの2つが一致してもよいので、k個の入力を試すと、比べられる組は約 k^2/2 通りに増えます。k^2/2 が 2^n に近づく、k が 2^(n/2) 程度で衝突が見つかる見込みが高くなり、n = 256 なら約2^128回です。これは「23人いれば、誕生日が同じ2人がいる確率が50%を超える」という誕生日のパラドックスと同じ考え方で、誕生日攻撃と呼ばれます。このため、ハッシュ関数の衝突に対する強さは出力のビット数の半分と見積もられ、128ビット相当の強さを求めるなら256ビットの出力が必要になります。

  • A. 正しい。原像攻撃は約2^256回、衝突攻撃は誕生日攻撃により約2^128回です。
  • B. 2つを逆にしています。どの2つが一致してもよい衝突攻撃のほうが少ない回数で済みます。
  • C. 衝突攻撃では、試した入力どうしのどの組が一致してもよいので、約2^128回と原像攻撃よりずっと少なく済みます。
この分野を解く 分野ページへ

関連する計算ツール

情報セキュリティの基礎の参考書を探す PR

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

情報セキュリティの基礎のほかの問題

  1. Webサービスで利用者のパスワードを保存するとき、パスワードに利用者ごとに異なるランダムな値(ソルト)を加えてからハッシュ値を計算して保存する。ソルトを使う主な目的はどれか。
  2. パスワードの保存に、SHA-256のような高速なハッシュ関数をそのまま使うのではなく、bcryptやArgon2のような、わざと計算に時間がかかるように設計された方式を使うことが推奨される理由として正しいものはどれか。
  3. 8文字のパスワードを、すべての候補を試す総当たりで探す。1秒あたり1×10^10個の候補を試せるとき、英小文字(26種類)だけで作ったパスワードと、英大文字・英小文字・数字(62種類)で作ったパスワードについて、すべての候補を試し終えるまでの時間の組み合わせとして最も近いものはどれか。
  4. AさんがBさんに送る文書にデジタル署名を付ける。署名の作成と検証に使う鍵と、デジタル署名によって確かめられることの組み合わせとして正しいものはどれか。
  5. メッセージ認証コード(MAC)とデジタル署名を比べたときの説明として正しいものはどれか。