web-dev-qa-db-ja.com

DESでの平文と暗号文のマッピング

プレーンテキストと暗号化テキストには、1対1のマッピングがあります。それらのペアが与えられた場合、同じペアを生成するために複数のキーを使用できますか?または、特定のプレーンテキスト-暗号化テキストのマッピングは、特定のキーのみを使用して実現できますか

2
Gupta

よくあることですが、答えはによって異なります。

ECBモード では、単一の平文とキーの組み合わせにより、1つの暗号テキストが出力され、1つの暗号テキストとキーの組み合わせにより、1つのプレーンテキスト出力が生成されます。これは、暗号化および復号化プロセスの要件です。リバーシブルである必要があります。それ以外の場合は、無意味です(その場合、何らかの形のハッシュ関数を調べます)。

異なる鍵が同じ平文から同じ暗号文を生成できる場合、何が原因で1つの暗号文が生成され、他の暗号文が生成されないのでしょうか? DES(鍵生成に1つあることを望んでいますが)には、乱数ジェネレータは関与していません。

異なる平文が同じ鍵を与えられて同じ暗号文を生成する可能性がある場合、復号化はどの平文が最初に暗号化された平文と同一であるかをどのように判断しますか

ECBモードでは、平文と暗号文の同じペアがこの推論の行から続きます。正確に1つのキーにマップします。

もちろん、右心の誰もECBモードをより堅牢なもののビルディングブロック以外のものとして使用しません。ただし、 Mark で指摘されているように、ECB以外のモードでは、質問はあまり意味がありません。

CBC(Cipher Block Chaining)、CTR(Counter)、CFB(Cipher Feedback)などのECB以外のモードでは、平文/暗号文とキー以外のものが暗号化/復号化関数に送られます。これらは通常、初期化ベクトル(略称IV)またはnonce(「数値は1回だけ使用される」)と呼ばれる何らかの形式で初期化されます。 IVは単にプロセスをランダム化します。

これらの場合、プレーンテキストデータの単一のブロックを操作するとき、プレーンテキストとキーany暗号テキスト値の任意の組み合わせが可能であり、IVは基本的にセレクタ。次のブロックも同様に処理されますが、IVの代わりに前のブロックの処理が行われます。 IVは通常、秘密とは見なされません。その目的はプレーンテキストを保護することではなく、ECB(非常に大きなテーブルですが、テーブルルックアップ)で実行できるようなテーブルルックアップに効果的に削減できない攻撃モードを攻撃者に使用させることです。何らかのフィードバックモードを使用すると、平文のパターンが暗号文のパターンとして表示されなくなります。

2
a CVn