2012年12月30日日曜日

sha1を逆引きで解くのに必要なデータ量を計算してみた

sha1は様々な文字列を160bitのハッシュ関数に変換する暗号化アルゴリズム。
復号化は非常に大きな時間を要するため、一般的には不可逆な暗号としてパスワードの暗号化などに利用されている。

これをすべてのキーワードをsha1に変換した値のデータベースから探してくる方法(逆引き)で探す場合、パスワードの桁数ごとにどれだけのデータが必要か計算してみた。

計算はDB各行のヘッダーは無いものとして計算しています。

6文字のパスワードなら1テラバイト、7文字なら71テラバイトでパスワードを解析することができます(億行のデータってどれくらい時間がかかるんだろう…)。それ以上は一般人には無理なデータ量ですね。10桁あれば「絶対無理」と言えるんじゃないでしょうか。

一般的な攻撃方法は同じハッシュ値を生成するキーワードを導き出す方法ですが、6文字であればこちらの方法でも有効そうです。

一般的にパスワードは6文字以上が推奨されていますが、作る側は今後sha2を使うべきです。

0 件のコメント:

コメントを投稿