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パワーのコンピュータで総当たり可能なおおよその時間を示す。
文字数 | 組み合わせ | 時間(約) |
---|---|---|
6 | 19770609664(198億) | 30分 |
7 | 1028071702528(1兆) | 30時間 |
8 | 53459728531456(53兆) | 62日 |
8文字ではかなり時間が掛かるが、本気でパスワードを破りたい人ならこのく らいは時間を掛けるだろう。数字(0〜9)と記号 "#$%&'()*+,-./:;<=>?@[\]^_`{|}~!を追加してみよう。す ると文字種は94種類になる。
文字数 | 組み合わせ | 時間(約) |
---|---|---|
6 | 689869781056(6900億) | 19時間 |
7 | 64847759419264(65兆) | 75日 |
8 | 6095689385410816(6000兆) | 19年 |
さて、実際には現在のコンピュータではパスワード1個の暗号化に上記の見積 りの何倍も時間が掛かるので、「総当たり」によりここまで速く破られることは ない。しかし、英字だけのパスワードは、数字・記号込のものに比べはるかに危 険だという事実は明白である。