最終更新日:2026年5月17日
sg sg-security-overview threat_vulnerability crypto_auth
まず結論
レインボーテーブルは、あらかじめ計算したハッシュと元のパスワードの対応表を使って、パスワードを高速に解析する攻撃手法です。
SG試験では「パスワード解析への対策」を判断させる問題で問われます。
直感的な説明
「答え一覧表を持っているテスト」です。
通常:
- ハッシュからパスワードを推測する → 時間がかかる
レインボーテーブル:
- あらかじめ作った「答え表」を使う
→ 一瞬で分かる
つまり、レインボーテーブルは事前準備で解析を高速化する攻撃です。
定義・仕組み
レインボーテーブルは、
- パスワード候補
- そのハッシュ値
をあらかじめ大量に計算して保存したものです。
攻撃の流れ
- 流出したハッシュ値を入手
- レインボーテーブルと照合
- 一致するパスワードを特定
総当たり(ブルートフォース)を、その場で行うのではなく、事前計算によって高速化する攻撃と考えると分かりやすいです。
どんな場面で使う?
攻撃される場面
- パスワードデータベースの漏えい
- ハッシュのみ保存しているシステム
現場では、パスワード漏えい時のリスクとして重要です。
試験での判断場面
-
暗号を直接解読する
→ 実際は「照合」 -
「事前に計算した表」「ハッシュ値との照合」 → レインボーテーブル
-
「その場で全ての候補を試す」 → ブルートフォース攻撃
-
「同じパスワードでもハッシュ値を変える」 → ソルト
よくある誤解・混同
SG試験でよく出ます。
レインボーテーブルはその場で計算するものではない
レインボーテーブルは、事前に計算された表を使う点が特徴です。
ハッシュ化していれば常に安全とは限らない
ソルトなしでハッシュ化している場合、レインボーテーブルで解析される可能性があります。
ソルトはレインボーテーブル対策になる
ソルトを付けると、同じパスワードでも異なるハッシュ値になりやすく、事前計算された表を使いにくくできます。
ブルートフォース攻撃とは同じではない
- ブルートフォース:その場で総当たり
- レインボーテーブル:事前計算で高速化
SG試験では、「レインボーテーブル対策 → ソルト」で切り分けられるようにします。
まとめ(試験直前用)
- レインボーテーブルは事前計算による高速解析
- ハッシュ値からパスワードを特定できる
- ソルトで対策可能
- ブルートフォースとの違いに注意
判断基準は、事前計算 → レインボーテーブル、 その場で試す → ブルートフォース、対策 → ソルトです。