2^52.5ハッシュ

エフセキュアブログの記事:
エフセキュアブログ : 「SHA-1+salt」はパスワードに十分だと思いますか?

SHA の計算が、GPU で効率よく計算できるので、思いの外、ブルートフォースの効率が良い、という話なんだけど、この文中に出てくる「2^52.5ハッシュ」というのが実感出来なかった。

攻撃者は33日で典型的レインボーテーブル(2^52.5ハッシュ)に相当するパスワードスペースをカバーすることができる

「2^52.5ハッシュ」というのが、「252.5 個のハッシュ値」という意味だとすると、実際にどのくらいの数か計算して見ると、6.369051672525773×1015 という事になる。指数表現だと実感がわかないので、252 個で計算すると 4,503,599,627,370,496 個となる。

「じゃぁ、それだけの数のハッシュ値って、パスワード何文字相当か?」というのがわからないと、本当の脅威は分からない。使える文字種を ASCII 英数記号の 95 文字として計算すると、

log954503599627370496 = 7.914937...

となった。

元記事の値は 252.5 なので、ハッシュ値の個数は約 1.4 倍になるので、その点も含めて8文字相当、ということかな。

...と考えると、元記事の趣旨は「8 文字までのパスワードに対するブルートフォースを 33 日間でできた」ということらしい。

確かに、8 文字のパスワードを 33 日間というのは、かなり驚異かも。10 文字にすれば、

33 × 95 × 95 = 297,825 日 = 約 800 年余り

なので、10 文字ぐらいにしておいた方が良さそう。

ブルートフォースが効率よく出来るのなら、「パスワード vs パスフレーズ」はパスフレーズに軍配が上がりそうな気がするなぁ。