辞書攻撃・レインボーテーブル攻撃とは?じしょこうげき・れいんぼーてーぶるこうげき
辞書攻撃・レインボーテーブル攻撃とは、パスワードを事前準備によって破る攻撃の代表二種。辞書攻撃は使われやすい語のリストを認証に打ち込む入力側の攻撃、レインボーテーブル攻撃は平文とハッシュ値の対応表を先に用意し、漏えいしたハッシュ値から元の文字列を逆引きする保存側の攻撃で、当てるべき対策が異なる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
ハッシュ関数は一方向で元に戻せないが、同じ文字列は必ず同じ値になるという性質がある。ここに計算資源を先に投じておけば、破るときは表を引くだけで済む——保存側の攻撃はこの事前計算という発想から生まれた。総当たりに時間がかかるという前提が計算力と記憶容量で崩れたため、パスワードを「そのままハッシュ化して保存する」だけでは足りなくなった。
具体例
対策側では、利用者ごとに異なるランダム値(ソルト)を連結してからハッシュ化し、さらに繰り返し計算するストレッチングを施す。bcryptやPBKDF2はこれを実装した関数で、NIST SP 800-63Bも保存時にソルトと反復を用いることを求めている。
試験での引っ掛け
ソルトを万能の対策と読ませる選択肢に注意する。ソルトは表の事前計算を無効化するのでレインボーテーブル攻撃には効くが、辞書攻撃そのものは止められず、こちらにはアカウントロックや多要素認証が要る。総当たり(ブルートフォース)攻撃との区別も問われ、候補を絞って試すのが辞書攻撃、全組合せを試すのが総当たりである。
関連用語
出た過去問
出典:令和5年度 秋期 応用情報技術者試験 午前 問36(IPA)
パスワードクラック手法の一種である、レインボーテーブル攻撃に該当するものはどれか。
正解:平文のパスワードとハッシュ値をチェーンによって管理するテーブルを準備しておき、それを用いて、不正に入手したハッシュ値からパスワードを解読する。
要点:レインボーテーブルは事前計算表でハッシュを逆引きする
レインボーテーブル攻撃は、平文パスワードとそのハッシュ値の対応をチェーン状に圧縮して格納したテーブルをあらかじめ用意し、盗み出したハッシュ値を逆引きして元のパスワードを求める手法である。時間と記憶容量のトレードオフを利用しており、総当たりより高速に解読できる。ソルトを付加してハッシュ化すると事前計算表が使えなくなり、有効な対策となる。
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (7) 攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。