web-dev-qa-db-ja.com

DES復号化の後に暗号化が続きます。元のテキストが生成されますか?

これはDESに関するものです。

私の質問は、キーK1を使用してプレーンテキストが最初に(復号化アルゴリズムで)復号化され、次に同じK1を使用して暗号化された場合、結果は元のプレーンテキストのままですか?

3
undertaker666

はい、すべてのブロック暗号と同様に、DESはPRPです。これは Pseudo Random Permutation です。順列はすべての可能な入力値の並べ替えです。

DESの場合、DESのブロックサイズは64ビットであるため、2 ^ 64の可能な入力値があります。キーとDES暗号化または復号化モードでは、キーは2 ^ 64の可能なすべての値の並べ替えを示します。つまり、各値は、並べ替えられた配列の同じ位置にある別の値に変換されます。

もちろん、復号化は暗号化の逆変換を行います。しかし、復号化が暗号化の正確な逆である場合、暗号化は復号化の逆です。


特定の、指定されていないキーの2ビットの可能な置換を見てみましょう(2 ^ 64置換を書き留めることは不可能であるため)。

00 ENC 11
01 --> 01
10 DEC 00
11 <-- 10

あなたは単にこれを次のように書き直すことができます

00 DEC 10
01 --> 01
10 ENC 11
11 <-- 00

したがって、最初の列にはすべての可能な平文があり、最後の列にはすべての可能な暗号文があります。

暗号化と復号化を切り替えてもかまいません。


一部の暗号化実装は、実際には復号化の方向でいくらか効率的であるため、暗号化と復号化を切り替えることには意味があるかもしれません。ただし、多くのプロトコルを見たことはありません。混乱が大きい間、利点は最小限です。


Triple-DESの場合、このプロパティが実際に使用されます。 Triple-DESは、暗号化にEDE(暗号化、復号化、暗号化)スキームを使用し、復号化にDEDスキームを使用します。ご覧のとおり、暗号化と復号化の中間部分は逆になっています。


補足:可能な順列の実際の数-考えられるすべてのプレーンテキストブロックを並べ替える方法の数-は非常に高いです。正確には、2 ^ Nです。ここで、Nはブロックサイズです。つまり、2 ^ 64があります。 (これは約10 ^(10 ^ 88)-本当に怖い数です)DESの可能な順列。キーによってそれらの1つだけが選択されます。

5
Maarten Bodewes