アカウント名:
パスワード:
680億というとだいたい 2^36。96bit鍵の半数が 2^95 なので、(平均すれば) ほんの 108*2^59秒 もあれば解析されてしまいます!
# つまり 2 兆年、と。
680億というとだいたい 2^36。
その 680 億は、パスワードの数。
96bit鍵の半数が 2^95 なので、(平均すれば) ほんの 108*2^59秒 もあれば解析されてしまいます!
96 bit は実際に暗号化に使われている鍵の数。実際に暗号化処理に使われる鍵そのものは、パスワードから何らかの演算処理をして作り出されるもので、パスワードの文字列がそのまま、鍵として使われるわけではない。
余談: 単純なのは、パスワード文字列のハッシュ値を取得して、それを鍵として使う。ただ、zip のソースコードを眺めたら、zip オリジナルらしい処理で、パスワード文字列から鍵を生成していた。
閑話休題。
で、ブルートフォースで解読する場合、鍵そのもので解読しようとすると、文字通り、296 通りの鍵を試す必要があるけど、鍵の「素」になるパスワード文字列の方が、「どうせ人間のやることだ。6 文字程度で、記号文字は入ってないだろう」と割りきって解析すると、296より遥かに少ない数で解読できる。
680 億種類のパスワードは、もし、記号を除いた英数字に限れば、log6468000000000 = 5.997... なので、約6文字。ASCII 図形文字(いわゆる英数字記号。0x21-0x7e の範囲の文字)と半角スペースの 95 文字だと、log9568000000000 = 5.477 文字。なので、もとの話ざっくりとまとめると、6 文字の英数字なら数分で解けますよ、という話になる。
で、文字種を 95 文字をベースに考えれば、6 文字のパスワードは 956 = 735091890625 のパスワードなので、108 秒 × 735091890625 / 68000000000 = 1167 秒 = 19 分 27 秒。7 文字だったら、その 95 倍で約 30 時間。8 文字なら 4 ヶ月、9 文字なら 30 年、10 文字なら 3000 年ぐらいになる。
Traditional PKWARE Encryption と AES で、1つのパスワードにつき解読にかかる時間がどの程度違うかは分からないけど、7-zip を使って AES 256 bit の暗号化 ZIP ファイルを作っても、パスワードが 6 文字だったら、現実的な時間で解けるのは変わらないはず。
とりあえず、英数字、大文字小文字、記号を混ぜて 10 文字のパスワードなら、今のところは安全圏かな。もっとも、そんな 10 文字のパスワードを人間が覚えてられるかが問題だけど...。
>とりあえず、英数字、大文字小文字、記号を混ぜて 10 文字のパスワードなら、今のところは安全圏かな。もっとも、そんな >10 文字のパスワードを人間が覚えてられるかが問題だけど...。
ひとクラスの名前40人くらい簡単に覚えられるんだから、その程度の文字列記憶できるでしょ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
なんてこった! (スコア:0)
680億というとだいたい 2^36。
96bit鍵の半数が 2^95 なので、(平均すれば) ほんの 108*2^59秒 もあれば解析されてしまいます!
# つまり 2 兆年、と。
Re:なんてこった! (スコア:2)
その 680 億は、パスワードの数。
96 bit は実際に暗号化に使われている鍵の数。実際に暗号化処理に使われる鍵そのものは、パスワードから何らかの演算処理をして作り出されるもので、パスワードの文字列がそのまま、鍵として使われるわけではない。
余談:
単純なのは、パスワード文字列のハッシュ値を取得して、それを鍵として使う。ただ、zip のソースコードを眺めたら、zip オリジナルらしい処理で、パスワード文字列から鍵を生成していた。
閑話休題。
で、ブルートフォースで解読する場合、鍵そのもので解読しようとすると、文字通り、296 通りの鍵を試す必要があるけど、鍵の「素」になるパスワード文字列の方が、「どうせ人間のやることだ。6 文字程度で、記号文字は入ってないだろう」と割りきって解析すると、296より遥かに少ない数で解読できる。
680 億種類のパスワードは、もし、記号を除いた英数字に限れば、log6468000000000 = 5.997... なので、約6文字。ASCII 図形文字(いわゆる英数字記号。0x21-0x7e の範囲の文字)と半角スペースの 95 文字だと、log9568000000000 = 5.477 文字。なので、もとの話ざっくりとまとめると、6 文字の英数字なら数分で解けますよ、という話になる。
で、文字種を 95 文字をベースに考えれば、6 文字のパスワードは 956 = 735091890625 のパスワードなので、108 秒 × 735091890625 / 68000000000 = 1167 秒 = 19 分 27 秒。7 文字だったら、その 95 倍で約 30 時間。8 文字なら 4 ヶ月、9 文字なら 30 年、10 文字なら 3000 年ぐらいになる。
Traditional PKWARE Encryption と AES で、1つのパスワードにつき解読にかかる時間がどの程度違うかは分からないけど、7-zip を使って AES 256 bit の暗号化 ZIP ファイルを作っても、パスワードが 6 文字だったら、現実的な時間で解けるのは変わらないはず。
とりあえず、英数字、大文字小文字、記号を混ぜて 10 文字のパスワードなら、今のところは安全圏かな。もっとも、そんな 10 文字のパスワードを人間が覚えてられるかが問題だけど...。
Re: (スコア:0)
>とりあえず、英数字、大文字小文字、記号を混ぜて 10 文字のパスワードなら、今のところは安全圏かな。もっとも、そんな >10 文字のパスワードを人間が覚えてられるかが問題だけど...。
ひとクラスの名前40人くらい簡単に覚えられるんだから、その程度の文字列記憶できるでしょ。
Re: (スコア:0)
ごめんなさい。
最近覚えられなくなりました。