勉強前イメージ
虹色のテーブル...?
調査
レインボーテーブル とは
ハッシュ値から平文を割り出す効率的な手法の一つ。
ハッシュ値と平文の対照表のこと、またその対照表を使用して平文を割り出すことを指します。
ハッシュ値は平文を不可逆的に変換したもので、ハッシュ値から復号化することは出来ません。
しかし、レインボーテーブルを使えばハッシュ値から平文を出すことが出来ます。
そのため、レインボーテーブルはハッシュ化された情報を不正に取得する際に使用されます。
レインボーテーブルの関数
レインボーテーブルには以下の2つの関数が使用されています。
- ハッシュ関数
平文をハッシュ化する関数になります。
ハッシュ化する関数はいくつもアルゴリズムが存在しますが、同じアルゴリズムであればハッシュ化した値はいつも同じになります。
- 還元関数
ハッシュ値から平文を割り出す関数です。
そのままではハッシュ値から正しい平文を得ることは出来ないので、一旦なにかの平文と紐づけます。
レインボーテーブル攻撃の対策
- ソルト処理を行う
ソルト処理は平文に余分な文字列を追加することで、追加する文字列を ソルト
と呼びます。
これを行うことで解読が困難になります。
- ストレッチングの実施
ストレッチングとは平文に繰り返しハッシュ化を行うことです。
レインボーテーブル攻撃のハッシュ化解読には時間がかかります。
ハッシュ化を何回か繰り返したものを解読するには現実的には困難で、またハッシュ化の回数が増えることでサーバに負担がかかります。
勉強後イメージ
なんでレインボーテーブルっていう名前がついたのか気になるけど、
ハッシュ化された文字列から平文を割り出すってことね。
そもそも大量のデータが必要みたいな感じはする。