web-dev-qa-db-ja.com

ブルートフォースを使用したAES128とAES256

私はこれに出くわしました:

Key combinations versus Key size

ブルートフォース攻撃でAES128がAES256よりも強力である方法、またはAES256がAES128よりも多くの組み合わせを可能にする方法を理解していません。

これらは私の単純化された前提です-キーボードに100個の一意の文字があり、理想的なパスワードの長さが10文字であると仮定すると、ブルートフォース攻撃で特定の暗号文を解読するための100 ^ 10(または1x10 ^ 20)の組み合わせがあります。

その場合、AES128またはAES256のどちらを適用しても違いはありません。訂正してください。

12
George

はい、その通りです(パスワードが弱いと、AES128とAES256の違いが無効になり、ブルートフォーシングがパスワードと同じくらい複雑になります)。ただし、これは、パスワードがキー生成の唯一のソースである場合にonlyに適用されます。

通常の使用では、AESキーは「真の」ランダムソースによって生成され、単純な疑似ランダムジェネレーター(C++ Rand()など)によって生成されることはありません。

AES256は、256ビットキーを備えているため、AES128よりも「安全」です。つまり、2 ^ 128(AES128)とは対照的に、ブルートフォースに対して2 ^ 256の可能なキーを意味します。可能なキーの数は、「組み合わせ」としてテーブルに表示されます。

個人的には KeePass と20記号以上のパスワードを使用しています。スモール+大文字(26 + 26)、数字(10)、および特殊記号(約20)で構成される20記号のパスワードを使用すると、AES128キーに相当する(26+26+10+20)^20 = 1.89*10^38の可能な組み合わせが得られます。

13
DarkWanderer

ブルートフォース攻撃でAES128がAES256よりも強力である方法

AESは、データの各チャンクを変換する複数のラウンドを実行し、これらの異なるラウンドでキーの異なる部分を使用します。キーのどの部分がいつ使用されるかの仕様はキースケジュールと呼ばれます。 256ビットキーのキースケジュールは、128ビットキーのキースケジュールほど適切に設計されていません。そして近年、これらの設計上の問題をAES 256に対する潜在的な攻撃に変えることで大きな進歩がありました。これは、重要な選択に関するアドバイスの基礎です。

AES256がAES128よりも多くの組み合わせを可能にする方法

AES256は256ビットを使用するため、2 ^ 256の許容可能な組み合わせが得られますが、128の場合は2 ^ 128です。

これらは私の単純化された前提です-キーボードに100個の一意の文字があり、理想的なパスワードの長さが10文字であると仮定すると、ブルートフォース攻撃を非難するための100 ^ 10(または1x10 ^ 20)の組み合わせがあります-pt与えられた暗号文。

あなたの理解が何であるかはよくわかりませんが、AES128/AES256を適用すると言うとき、実際にはパスワードを暗号文に暗号化します。人間が読めない元の平文の形式が含まれているため、暗号化された情報です。キーボードの100個の一意の文字すべてを使用するだけではありません。それ以上のものを使います。したがって、元のパスワードを取得する場合は、暗号化に使用するキーを見つける必要があります。そして、それはあなたに2 ^ 128と2 ^ 256の組み合わせの数字を与えます。

9
Shashank Kadne