GPUを使ってファイル暗号のパスワード解読にかかる時間を推測


背景

近年、GPUの性能が向上し昔、安全だと思われていた暗号強度では不十分になっているのではないか?ということを確認するため実際に暗号解読をしてみて性能を測定してみた。

暗号解読ソフト

sha1benchという暗号解読ソフトを使います。表向きはSHA-1の性能を測定するベンチマークソフトということになっていますが、実際にはアタッシェケース#3の暗号解読をして、総当たり攻撃(ブルートフォース)にかかる時間を測定するものです。
パスワードに使える文字の種類は記号、大文字小文字の英数字の95文字。

測定結果

nVIDIAのGeForce GTX1060とCore i3-4130のマシンでは4文字のパスワードの解読に258秒だった。
8文字のパスワードを解読する時間は

258×95×95×95×95÷3600÷24÷365 ≒ 666

666年ということだが、複数のパソコンで並列に解読させても、ほとんどオーバーヘッドはないので、おおざっぱに700台のパソコンがあれば1年で完全に解読できる。運が悪いと数カ月で解読されるということだ。
GeForce GTX1080やSLIを使えば、もっとずっと少ない台数で解読できるだろう。PlayStation4も実はAMDのGPUを搭載しているのでPlayStation4も暗号解読に利用できる。

測定結果2

a-zの26種類の文字で6文字のパスワードを解読する時間はGeForce GTX1060 1個のパソコン 1台で1266秒。
8文字でも約10日で確実に解読できることを確認。

気を緩めると安いパソコンであっという間に確実に解読できるということでもあります。

まとめ

今後も、まだGPUの性能は上がり、コストパフォーマンスが良くなっていくと思われるのでインターネットでファイルをやり取りするのには暗号強度に気を配ったほうがいいように思います。