私は現在、情報セキュリティのクラスの原則を取っています。異なる暗号化方法について話している間、私のクラスメートの多くは、非対称暗号化が対称暗号化よりも優れている(より安全である)と信じているようです。典型的なステートメントは次のようなものです:
一般に、非対称暗号化スキームは、公開キーと秘密キーの両方を必要とするため、より安全です。
対称暗号化では確かに安全な鍵交換を心配する必要がありますが、私が知る限り、一方が他方よりも安全でなければならないという固有の理由はありません。
特に、非対称部分は多くの場合、鍵交換にのみ使用され、実際のデータは対称アルゴリズムで暗号化されます。
それで、私は何かが足りないのですか、またはこのような一般的な声明を本当に安全にすることができますか?.
つまり、AESで暗号化されたメッセージとRSAで暗号化された別のコピーがあり、他のすべてのものが同等である場合、クラックされる可能性が高くなります。この比較は可能ですか?
特定の暗号化アルゴリズムのstrengthを定義できるという意味があります¹:大まかに言えば、強さは実行する必要がある試行の数です暗号化を破るために。より正確には、強みは秘密を見つけるために実行する必要がある計算量です。理想的には、アルゴリズムの強さは、実行する必要があるブルートフォースの試行の数です(各試行の複雑さによって重み付けされるか、ある種の並列化で複数の試行が作業の一部を共有できる場合)。アルゴリズムへの攻撃が改善されると、実際の強度は低下します。
「特定の暗号化アルゴリズム」には特定の鍵サイズの検討が含まれることを理解することが重要です。つまり、RSAをAESに対してピッチングするのではなく、1024ビットRSA(特定のパディングモードを使用)とAES-256(特定のチェーンモード、IVなどを使用)を使用します。その意味で、あなたは尋ねることができます:パラメータPとQの特定の値(特にキーサイズ)でアルゴリズムAで暗号化されたデータのコピーと、パラメータPとRでアルゴリズムBで暗号化されたコピーがある場合、 (A、Pval₁、Qval₁)と(B、Pval₂、Rval₂)のどちらが最初にクラックされる可能性がありますか?
実際には、多くのプロトコルは複数の暗号プリミティブの使用を伴います。プリミティブが異なれば、使用法も異なり、複数のプリミティブが特定の機能を提供できる場合でも、他のプリミティブよりも適切なプリミティブが存在する可能性があります。特定の目的で暗号プリミティブを選択する場合、決定プロセスは次のようになります。
たとえば、信頼できない相手とデータを交換するためのプロトコルであるとします。その場合、対称暗号化だけでは機能しません。鍵を共有する方法が必要です。関係者に事前に公開鍵を交換させておくと、RSAなどの非対称暗号化が機能します。 (これが唯一の可能性ではありませんが、ここでは詳しく説明しません。)したがって、アプリケーションに適した強度のRSAキー長を決定できます。ただし、RSAは低速で扱いにくいものです(たとえば、RSA暗号化をストリームに適用する標準プロトコルはありません。主に、速度が遅いために誰も気にしていないためです)。公開鍵暗号を含む多くの一般的なプロトコルは、限られた期間の秘密、つまり対称暗号アルゴリズムのセッション鍵を交換するためだけにそれを使用します。これは ハイブリッド暗号化 として知られています。ここでも、目的の強度に応じてセッションキーの長さを選択します。このシナリオでは、関係する2つのプリミティブが同じ強さを持つ傾向があります。
¹ 同じ概念が、署名やハッシュなどの暗号化の他の用途にも当てはまります。
対称暗号化と非対称暗号化は、個別の使用法と個別の攻撃モデルのために、個別のコンテキストで動作する個別の操作です。どちらか一方が「より安全」であると主張することにはほとんど意味がありません(定義するのは簡単ではない、ある種の定量化されたセキュリティ対策が最初に必要になります)。
非対称暗号化はより多く要求が高い:暗号化を実現することおよび暗号化の方法を公開できること(公開鍵)(秘密鍵)を復号化する方法を明らかにしない。実用的な実装には数学が必要ですが、対称暗号化はほとんどスクランブルをかけています(注意してください、スクランブルをうまく実行するのは難しいですが、それでも数学は少なくなります)。
一般的に展開されているシステム(例 SSL/TLS )は、非対称暗号化と対称暗号化(およびその他いくつかのこと)をプロトコルに組み合わせて、意図した目的を実行します(例:「機密性、完全性、認証を備えた双方向トンネル」)。
対称暗号化と非対称暗号化のどちらを選択するかは、ユースケースによって異なります。
対称暗号化は、全員がアクセスできる一連の人々の間で情報を共有するために使用されます。さらに、対称暗号化は理解しやすく(めちゃくちゃになる可能性が低い)、アルゴリズムが高速になる傾向があるため、優れています。
非対称暗号化は、多数の人々のサブセットが情報を共有できる場合に使用されます。さらに、非対称暗号化を逆に使用してドキュメントに署名できます。これは、公開鍵が特定の人物のものであることを証明できるため、特に興味深いものです。
10人のセットで、すべての人のペアが安全に通信できるようにするには、45個の一意のキー(9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1)が必要です。そして今、10人の小さなセットの代わりにインターネットについて考えてください。これは対称鍵では処理できないことは明らかです。
現実の世界では、両方のタイプが組み合わされることがよくあります。非対称アプローチは、通信パートナーのIDを確認し、対称鍵となるものを送信するために使用されます。この対称鍵は、実際のデータを高性能に暗号化するために使用されます。
一般に、非対称暗号化スキームは、公開キーと秘密キーの両方を必要とするため、より安全です。
いいえ、あなたはそれを言うことはできません。それはバローニーです。それは真実ではありません。
強度は、対称か非対称かには依存しません。対称暗号化と非対称暗号化は、2種類の暗号化ツールです。それぞれに応じて、弱い場合と強い場合があります。非対称暗号化が対称暗号化よりも必然的に強力である理由はまったくありません。
例えば:
RSAは非対称でAESは対称ですが、AESは512ビットRSAよりも暗号解読攻撃に対して安全です。
4096ビットRSAは、RC4が対称でRSAが非対称であっても、40ビットRC4よりも暗号解読攻撃に対して安全です。
トーマスが上で述べたことに同意します。対称暗号化と非対称暗号化はどちらも別個の操作です。
対称暗号化は、非対称暗号化よりも安価です。それのように高価で、処理が少なくて済みます。正確には、私は復号化プロセスについて言及しています。
そして、これがSSL/TLSが対称暗号化と非対称暗号化の両方の組み合わせを使用する理由です。 SSL/TLSトランザクション中の2つのピア間の非対称暗号化/復号化は、初期ハンドシェイク中にのみ発生します。両方のピアが共有秘密鍵に合意すると、残りの通信は対称暗号化を使用します。そうすることにより、最初のハンドシェイク中に唯一の高価な操作が行われ、通信の残りの部分はより少ないリソースを必要とする対称暗号化を使用します。