このツールでできること
パスワード解析時間計算ツールは、攻撃者がすべての組み合わせを試す「総当たり攻撃(ブルートフォース)」でパスワードを破るのに、どれくらいの時間がかかるかを推定します。計算はキースペース(パスワードの全組み合わせ数)の大きさと攻撃者の試行速度だけにもとづいており、「文字数を増やす」「文字種を多くする」ことが、どれほどパスワードの強度を高めるのかを手早く実感できます。
使い方
パスワードの文字数を入力し、パスワードに使われている文字種にチェックを入れ、攻撃者の1秒あたりの試行回数を設定します。最新のGPUを搭載したマシンであれば、高速ハッシュなら毎秒およそ10億回(1,000,000,000回)の試行が可能で、これがおおよその初期値の目安となります。結果には、キースペース全体を試し尽くすまでの最悪ケースの時間が、秒・時間・日・年の単位で表示されます。
計算式の仕組み
パスワードの全組み合わせ数は、文字種の数(N)を文字数(L)乗したものになります:$$C = N^{L}$$これを攻撃者の毎秒の試行回数で割れば、すべてを試し終えるまでの時間が求められます:$$t = \frac{N^{L}}{G}$$文字種の数Nは合算で決まり、小文字(26)、大文字(26)、数字(10)、記号(32)をすべて組み合わせると \(N = 94\) になります。
具体例で見てみる
小文字8文字のパスワード(\(N = 26\)、\(L = 8\))を、毎秒10億回の試行を行う攻撃者が狙うケースを考えてみましょう。組み合わせ数は $$26^{8} = 208{,}827{,}064{,}576$$ 解析時間は $$208{,}827{,}064{,}576 \div 1{,}000{,}000{,}000 \approx 208.83\ \text{秒}$$ つまり4分足らずです。ここに大文字・数字・記号を加える(\(N = 94\))と、同じ8文字でも $$94^{8} \approx 6.1 \times 10^{15}$$ 通りに跳ね上がり、解析にはおよそ70日かかる計算になります。
よくある質問(FAQ)
この数値は正確ですか? いいえ。あくまで純粋な総当たり攻撃における理論上の最大値です。実際の攻撃者は辞書攻撃、流出したパスワードリスト、よくあるパターンなどを利用するため、推測されやすいパスワードはこの推定値よりはるかに速く破られます。
試行速度はどの値を使えばいいですか? ハッシュの種類によって変わります。高速なハッシュ(MD5やソルトなしのもの)なら毎秒数十億回も可能ですが、低速なハッシュ(bcrypt、Argon2)では毎秒数千回程度に抑えられます。\(G\) が小さいほど、解析時間は大幅に長くなります。
強いパスワードを作るには? 複雑さよりも「長さ」が効きます。文字を1つ増やすごとにキースペースは \(N\) 倍になるため、長いパスフレーズは、短く複雑なパスワードよりもはるかに破られにくくなります。