back index next

DESでの復号化


DESの復号化は次のように行われる。
  1. 初期転置IPを行う(最終転置IP−1の逆変換)。
  2. 初期転置IPの結果を、R16とL16に分割する(n=16の時はLとRの左右が入れ替わることに注意)。
  3. R15=L16なので、R15が求まる。
  4. 鍵Knは全て分かっているので、鍵K16とR15よりf(R15,K16)が求まる。
  5. 排他的論理和の性質を利用すると、f(R15,K16)とR16より、L15が求まる。
  6. 3〜5を一般化すると次のようになる。
    1. Rn−1=Lnより、Rn−1が求まる。
    2. Rn−1と鍵Knより、f(Rn−1,Kn)が求まる。
    3. f(Rn−1,Kn)とRnよりLn−1が求まる。
  7. L0、R0が求まるまで、6.を繰り返す。
  8. L0、R0を結合する。
  9. 結合した結果を、最終転置IP−1にかける(初期転置IPの逆変換)。
  10. 最終転置IP−1の結果が、最終的な出力となる。すなわち復号化が完了する。
図16 復号化の手順
復号化の手順


排他的論理和の性質


 X=ABが成り立つとする。排他的論理和での計算をするときにはA,B,Xのうち2つが既知であれば残りの1つを求めることが出きる。つまり、この場合には が同時に成り立つ。

 具体的には次の通りである。図17はDESアルゴリズムの抜粋である。

図17 DESアルゴリズムの抜粋
DESアルゴリズムの抜粋

図中において、次の3つの値が排他的論理和の計算に関わっている。 暗号化をするときには、L15,f(R15,K16)から、R16を求める。ここで仮にそれぞれの値を次のように定める(簡単化のため4ビットにする)。 このときR16=0010となる。

復号化をするときにはR16,f(R15,K16)からL15を求める。なお、R15=L16である。上記での暗号化したときのデータを利用すると、それぞれの値は次のようになる。

このときL15=1011となる。

以上より暗号化する前のL15と、復号化した後のL15が同じ値になっていることが分かる。このことを一般化したのが冒頭での式である。すなわち排他的論理和の計算では、3つの値のうち2つの値が既知であれば、残りの値を求めることができる。


back index next