総当たり攻撃:その仕組みと脅威
- あらゆる可能性を試す問題を解決しようとしたとき、あれこれ複雑に考えずに、ひたすら地道に可能性を追求していく方法があります。これは例えるなら、鍵のかかったスーツケースを開けるために、あらゆる番号の組み合わせを一つずつ試していくようなものです。これがまさに、「ブルートフォース」と呼ばれる手法です。この手法は、問題に対するエレガントな解決策とは言えません。むしろ、考えられる限りのすべての選択肢を、力任せに試していく、非常に直接的なアプローチと言えます。例えば、パスワードを忘れてしまったとしましょう。ブルートフォースを使うなら、aからzまでのすべての文字、そして0から9までのすべての数字を、片っ端から入力していくことになります。短いパスワードなら、この方法でもいずれは正解にたどり着けるかもしれません。しかし、ブルートフォースには大きな欠点があります。それは、問題が複雑になるほど、途方もない時間と労力がかかるということです。パスワードの例で言えば、文字数が増えれば増えるほど、試すべき組み合わせは指数関数的に増加します。このように、ブルートフォースは、単純な問題に対しては有効な場合もありますが、複雑な問題に対しては非効率的と言えます。そのため、他の方法を試すことが難しい場合に限って、最後の手段として用いられることが多いです。