暗号化でKey_sizeについて読みましたが、Key sizeの具体的な意味が何であるかを正確に理解していませんか?
たとえば、ウィキペディアでは次のように述べています。
「トリプルDESのキーサイズは168ビットですが、複雑さ2 ^ 112の攻撃が知られているため、最大で112ビットのセキュリティを提供します。」
これは、ブルートフォースを2 ^ 112回実行すると、3DESハッシュをすべてクラックできるということですか?
128ビット暗号化と1024ビット暗号化の違いは何ですか?
暗号化でKey_sizeについて読みましたが、Key sizeの具体的な意味が何であるかを正確に理解していませんか?
たとえば、ウィキペディアでは次のように述べています。
「トリプルDESのキーサイズは168ビットですが、複雑さ2 ^ 112の攻撃が知られているため、最大で112ビットのセキュリティを提供します。」
これは、ブルートフォースを2 ^ 112回実行すると、3DESハッシュをすべてクラックできるということですか?
128ビット暗号化と1024ビット暗号化の違いは何ですか?
わかった。これを一度に1つずつ取りましょう。
キーサイズ
暗号化では、3つの主要な要素があります。
平文、暗号文、鍵。
キーは暗号化アルゴリズムと組み合わされて、平文を暗号化し、暗号文を取得します。これは、関数の状態のようなものです。つまり、次のようになります。
K = "This is the key".
P = "Plaintext".
C = Encrypt(P,K).
// This would result in some ciphertext.
Kが「これはキーです」と等しくなく、「これは別のキーです」と等しい場合、Cの値は異なります。
keysizeは、使用されるキーのサイズです。たとえば、AES256は256ビットキーを使用します。つまり、キーは文字通り256の2進数の長さです。
128ビット暗号化と1024ビット暗号化の違いは何ですか?
違いはタイトルにあります。128ビット暗号化は、128ビットキーでデータを暗号化します。1024ビット暗号化は1024ビットのデータで暗号化します。ここで注意すべき重要な点は、128ビットの場合は通常対称鍵暗号を使用し、1024ビットの場合は通常非対称暗号化アルゴリズムを使用しているということです。
ブルートフォース攻撃
はい。AES256の例に従って、キーの2 ^ 256の可能な組み合わせを実行すると、最終的にすべてのAES256暗号が解読されます。ただし、2 ^ 256は膨大な数であり、その値を試すことは計算上実行不可能と見なされます。
これは、2 112の試行暗号化を使用すると、3DESで何かを暗号化するために使用されたキーを確実に見つけることができることを意味します。ただし、これは「中間者攻撃」(MITM)攻撃を使用しますが、これも途方もない量のメモリを必要とします。
また、3DESが実際に必要とするのは112ビットのキーマテリアルのみであることに注意してください。暗号化/復号化/暗号化(EDE、最も一般的)または復号化/暗号化/復号化(DED)サイクルを実行しますが、最初と最後は同じキーを使用できます。168ビットは、サイクルごとに個別のキーを使用していることを意味します。それは問題ありませんが、完全に必要というわけではありません。
キー自体が何であるかに関しては、基本的には既知のビットのコレクションですが、(強い好みにより)他の人が予測または推測することは困難または不可能です。通常、ユーザーが入力したものをキーとして直接使用することはありません。少なくとも、それを暗号化ハッシュで実行して、一定のサイズの結果を取得します。ユーザーが通常入力する内容の予測可能性を考えると、さらに一歩進んで、はるかにランダムなキーを生成し、そのキーへのアクセスを許可する場合にのみユーザーのパスワードを使用することがよくあります。これは、(たとえば)ユーザーのコンピューターへの物理的なアクセスがあれば、ユーザーのキーを回復するのはかなり簡単かもしれませんが、「ネットワーク経由」で送信されるデータ(一般的に傍受が容易な場合)は、ユーザーよりもはるかに予測しにくいキーを使用することを意味しますパスワード自体。
128ビットと1024ビットの比較では、通常、この2つを完全に比較することはできません。ここでの膨大な量は、攻撃の難易度によって異なります。最悪のケースは、一般的にキー枯渇攻撃です。これは基本的に、「機能する」キーが見つかるまで、考えられるすべてのキーを試すことを意味します。
それがアルゴリズムに対して知られている最良の攻撃である場合、128ビット前後のキーサイズは、「従来の」テクノロジーの考えられるほぼすべての改善に対してほぼ確実に適切です。長い間、数十または数百テラヘルツのプロセッサを構築できると仮定すると、キースペースを使い果たすために2 128の操作を実行することは、依然として完全に非現実的です(たとえば、数百万の100テラヘルツプロセッサでは、まだ実行できません)。宇宙の熱死の前に終了します)。
対称暗号化を使用したより大きな鍵サイズは、主に実用的な量子コンピューターから保護することを目的としています。十分な容量の(動作中の)量子コンピューターは、従来のコンピューターとは異なるタイプの攻撃を実行でき、従来のコンピューターよりもはるかに迅速にキースペースを使い果たす可能性があります。これがAES256のソースです。
それよりもかなり大きいキーに到達すると、通常はRSAのような暗号化を処理します。これは、「機能する」キーが見つかるまで試行暗号化を行わない実際の攻撃が知られています。RSAの場合、公に知られる必要のある情報の一部は、2つの素数の積である大きな数に(かなり簡単に)変換できます。その数を因数分解してこれらの2つの素数を取得できれば、暗号化をかなり簡単に破ることができます。
したがって、この場合、必要な強度は、その製品が十分に大きいため、それを因数分解することが実用的でないことに基づいています。因数分解されたことが公に知られているRSAキーとして使用するのに適した最大数は768ビットでした。
したがって、安全性と設備の整った攻撃者に関心がある場合、RSAの場合は、それよりも大きいキーが明らかに必要です。
2DESでの「中間一致」攻撃、2キー3DESでの攻撃、および大きなRSAキーの因数分解には、いくつかの共通の特徴があることに注意してください。これらの攻撃は、プレーンDESの攻撃とはまったく異なります。DESを使用すると、支出額と結果の取得速度を簡単にトレードオフできます。(ほぼ)何も使わず、結果が出るまでに長い時間がかかりますが、最終的にはそうなります。あなたがより多くを費やすことをいとわないほど、あなたはあなたの結果をより早く得ることができます。
ただし、他の攻撃では、攻撃を実行するために大量のメモリが必要になります。これらの場合、(ほとんどの場合)物事をスケーリングすることはできないため、半分の費用をかけると、結果は半分の速さになります。むしろ、ストレージにDRAMの代わりにSSDを使用するように切り替える必要があります-そしてすぐに多くの速度を失います。または、漸近的にあまり好ましくない別のアルゴリズムに切り替えることもできますが、参入障壁はそれほど高くありません。繰り返しになりますが、実際の攻撃では、通常、この方法で非常に迅速に多くを失うことになります。
結論:一部の攻撃では、時間とお金の間でかなり「スムーズな」トレードオフが発生します。他の人と一緒に、あなたははるかに多くの階段関数を手に入れます。多くの場合、実際の攻撃はほとんどの人の能力を単純に超えます(ほとんどの場合、現在そしてかなり長い間)。
ウィキペディアには、キーサイズに関するエントリがあります:http://en.wikipedia.org/wiki/Key_size