web-dev-qa-db-ja.com

長寿命のセッションをネゴシエートするのではなく、メッセージごとに対称暗号化用の新しいキーを作成することは可能ですか?

暗号化されたチャネルを提供する通常の方法は、セッションキーをネゴシエートし(Diffie Hellmanなどを使用)、このキーを長期間使用するセッションに使用することです。メッセージベースのIPSecでさえ、最初にキーをネゴシエートし、後で多くの個別のメッセージに使用されます。

代わりに、対称暗号を使用して個々のメッセージを暗号化し、その1回限りの暗号化キーをメッセージから派生させ、Diffie Hellmanを使用し、RSAを使用して暗号化する理由は何ですか?これは、既知の鍵を使用して対称暗号を復号化する場合と比較して、この鍵を導出する際の計算の複雑さが高いためですか、それとも他の理由がありますか?

2
Amanda West

主な理由は、それが必要ではないということです。すべてに1つのキーを使用するため、メッセージごとにwouldが新しいキーを作成する本当の理由はありません。メッセージは最新の暗号化アルゴリズムで完全に安全です。データが多すぎる場合に1つのキーを使用することはできませんが、AESでは「多すぎる」は256エクサバイト(約2億5600万テラバイト)です。実際にセッションキーを使用するよりもはるかに多くのデータ。セッション全体で1つのキーを使用しても、現実的なセッションの場合、攻撃者がキーを回復するのはそれほど簡単ではありません。

「Diffie-Hellmanを使用してキーを取得する」または「RSAを使用して暗号化する」とはどういう意味かわかりませんが、再交渉を意味していると思いますすべてのメッセージにキーを設定します(つまり、両方の当事者が新しいキーをネゴシエートするために通信します。「派生」は、一般に、一方の端で計算され、もう一方の端と話す必要がないものを指すため、使用する奇妙な単語です)。時間の無駄なので、すべてのメッセージのキーの再ネゴシエーションは行われません。キーネゴシエーションは、いくつかのメッセージをやり取りし、やや遅くなります(少なくとも1つの非対称アルゴリズムが含まれ、非対称アルゴリズムの一般的な特徴は、それらが遅いことです)。

derivingキーの場合、それは可能ですが、実際には必要ではなく、やはり複雑さが増します。明らかな理由により、メッセージのプレーンテキストからメッセージのキーを取得することはできません(相手側は、キーで復号化するまでそのプレーンテキストを認識しません)。マスターキーからすべてのメッセージに一意のキーを導出できますが(これは支払い処理システムでは一般的です)、通常の通信では必要ありません。また、トランザクションキーの回復を困難にするために行われることもありません(そうします)。トランザクションキーを回復しても、すべてのトランザクションを復号化できるわけではありません)。

1
cpast