ブルートフォースアタックについて考えてみる

総当たり攻撃をしたくなりました。

スポンサーリンク

何通りを求める方法

何通りを求める方法は知らないとあれこれ考えるのですが、ちゃんとした求め方があるようで、それを知っておくだけで簡単に「何通り」かを求めることができます。

たとえば「0~9」の数字が3桁あるとしたら、10の3乗をすればいいそうです。「10 * 10 * 10 = 1000」で1000通りの組み合わせがあるそうです。こちらは「1~9」ではなく「0~9」ですので10文字あるわけですね。

こう考えると 100円均一にうっているかもしれないチャリの鍵とかは 1000回根気よく やっていけばいつかはあくということですね。

スポンサーリンク

解読時間の目安もネットに公開されている

既出というかグーグルで検索して1ページ目に表示される情報によると、26文字の4桁であってもコンピューターにやらせば「3秒」しかかからないそうです。

26文字の4桁だと 45万通り の組み合わせです。45万通りあっても解読に3秒しかかからないらしいです。

def squared(num, square):
    new_n = num
    nums = []
    for i in range(1, square):
        nums.append(num)
    for n in nums:
        new_n *= n 
    print(new_n)

squared(26, 4)

ところが

上の結果をみて驚きましたが、26文字が10桁になると、解読に32年くらいかかるそうです。「141167095653376」通りの組み合わせのようです。

この時点で総当たり攻撃のやる気をなくしました。実際には記号や大文字などが含まれますので60文字と10桁以上となるとコンピューターであっても解読に何十万年とかかることになるそうです。

ここで終わりでもよかったがさらに妄想を膨らませてみる

中国人だか韓国人だかよくわかりませんが、たまに100台くらいのスマホを動かしているのを目にしたことが「ある気がします」。それでなにに使うかはわかりませんが、1台のコンピューターで解読できる時間が10万年だったとして、単純に100で
わってみると1000年。

なんだかばかばかしくなってきたのでここでやめ。

コメント

タイトルとURLをコピーしました