これはDESに関するものです。
私の質問は、キーK1を使用してプレーンテキストが最初に(復号化アルゴリズムで)復号化され、次に同じK1を使用して暗号化された場合、結果は元のプレーンテキストのままですか?
はい、すべてのブロック暗号と同様に、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つだけが選択されます。