パスワードの推測に掛かる時間

2021年現在販売店で購入できるもっとも速い部類のCPUは1GHz〜3GHzの近辺で ある。たとえば、1GHzのコンピュータは1秒間に1000000000回(10億回)基本計算 をこなせる(1クロック)。実際にはCPUが動くひとつの命令にはもっと時間が掛か るうえ、パスワードの暗号化処理には複雑な計算をするので、ひとつのパスワー ドを比較するためには多くのクロックを必要とする。ここでは、用心側に振って パスワード1個の計算に100クロックが必要だと仮定する(実際は100クロックより はるかに時間が掛かる)。すると、1秒間に「当てずっぽう」で比較できるパスワー ドの数は10億/100=1千万個になる。ここでは便宜上、「1秒間に1千万個のパ スワード比較」のできるコンピュータが存在したとして、そのことを、「1Gパ ワー」のコンピュータと呼ぶことにする。

たとえば、アルファベットの小文字6文字でパスワードを作ったとする。小 文字は全部で26文字なので、これを6文字組み合わせてできるパスワードの組み 合わせは26^6=308915776通り(約3億通り)です。これは、1Gパワーのコンピュー タなら100秒も掛からない。

では文字数を増やしてみよう。7文字なら26^7=8031810176通り(約80億通り) である。かなり増えたが、1Gパワーのコンピュータなら14分程度である。8 文字 なら26^8=208827064576通り(約2000億通り)で、ずいぶん増えるが、6時間程度で 完了してしまう。小文字だけ8文字のパスワードでは安全とはいえない 。もちろん大文字だけ、でも同様である。

今度は文字種を増やしてみよう。大文字と小文字を利用する。52種類の文字 を使うことになる。以下に、52種類の文字を利用したパスワードの文字数と組み 合わせ、1Gパワーのコンピュータで総当たり可能なおおよその時間を示す。

大文字+小文字の場合
文字数組み合わせ時間(約)
619770609664(198億)30分
71028071702528(1兆)30時間
853459728531456(53兆)62日

8文字ではかなり時間が掛かるが、本気でパスワードを破りたい人ならこのく らいは時間を掛けるだろう。数字(0〜9)と記号 "#$%&'()*+,-./:;<=>?@[\]^_`{|}~!を追加してみよう。す ると文字種は94種類になる。

大文字+小文字+数字+記号の場合
文字数組み合わせ時間(約)
6689869781056(6900億)19時間
764847759419264(65兆)75日
86095689385410816(6000兆)19年

さて、実際には現在のコンピュータではパスワード1個の暗号化に上記の見積 りの何倍も時間が掛かるので、「総当たり」によりここまで速く破られることは ない。しかし、英字だけのパスワードは、数字・記号込のものに比べはるかに危 険だという事実は明白である。


yuuji@e.koeki-u.ac.jp