7.12 풀이

7.12 풀이는, Feistel network 와 DES 구조를 알고있다는가정하에, 작성되었습니다.

(a)

7.11 번의 (b) 에 의해서 다음과 같이 DES 의 특징을 알 수 있다.

DESk=swapFeistelf1,,f16\mathrm{DES}_k = \mathrm{swap} \circ \mathrm{Feistel}_{f_1,\dots,f_{16}}
(swapFeistelf1,,f16)1=swapFeistelf16,f1.\bigl(\operatorname{swap} \circ \mathrm{Feistel}_{f_1,\dots,f_{16}}\bigr)^{-1} = \operatorname{swap} \circ \mathrm{Feistel}_{f_{16}\dots,f_1}.

또한위 식을 이용하여, x, y를 다음 과 같이 나타낼 수 있다.

y=swap(Feistelf1,,f16(x))    x=Feistelf16,,f1(swap(y))y = \mathrm{swap}\bigl(\mathrm{Feistel}_{f_1,\dots,f_{16}}(x)\bigr) \iff x = \mathrm{Feistel}_{f_{16},\dots,f_{1}}\bigl(\mathrm{swap}(y)\bigr)

이는 다음 식이 필요 충분조건을 만족하는 명제임을 알 수 있다.

DESk1=Feistelf16,,f1swap    DESk1=swapFeistelf16,,f1swap\mathrm{DES}_k^{-1} = \mathrm{Feistel}_{f_{16},\dots,f_{1}} \circ \mathrm{swap} \iff \mathrm{DES}_k^{-1} = \mathrm{swap} \circ \mathrm{Feistel}_{f_{16},\dots,f_{1}} \circ \mathrm{swap}

고로, DES_k^(-1) 은, 일반적인 DES_k 와 다르게, 키를 역 순으로 사용하는 것을 알 수 있다.

(b)

크기가 56bits 이고, 모두 0으로 이루어진 key 이므로, 0-key 에서 subkey들은 다음 과 같다. (Palindrom)

 k=056    C0=D0=028    Ci=Di=028  for all i    Ki=048  for all i{1,,16}. \ k = 0^{56}\;\Longrightarrow\; C_0=D_0=0^{28}\;\\\Longrightarrow\; C_i=D_i=0^{28}\ \text{ for all }i\;\\\Longrightarrow\; K_i=0^{48}\ \text{ for all }i\in\{1,\dots,16\}. \

이를 통해, 라운드 함수는 1개로 고정됨을 알 수 있고,

고로 위 준식 이 성립함 을 알 수 있으며, 위의 (a) 의 결과를 이용하여,

 DESk1=DESk. DESk(DESk(x))=x. \ \mathrm{DES}_k^{-1}=\mathrm{DES}_k. \quad\Longrightarrow\quad\ \mathrm{DES}_k(\mathrm{DES}_k(x))=x. \

임을 보일 수 있다.

(c)

(a)를 통하여 Decryption 하는 과정은 Encryption 과정에서 라운드키 순서를 반대로 쓰는 것 과 같다.

위의 특징을 이용하여, DES를 취약하게 하는 키는 앞뒤가 대칭인

Palindrome 을 만족하면 된다.

고로 가능한 키는 (b)에서 언급한 키와, 56비트로 이루어진 1, 28비트로 이루어진 01, 10 이 weak key 의 후보가 된다.

(d)

Triple-DES(3DES) 는 다음과 같이 정의 된다.

3DESk1,k2,k3(x)=DESk3(DESk21(DESk1(x))) \mathrm{3DES}_{k_1,k_2,k_3}(x) = \mathrm{DES}_{k_3}\bigl(\mathrm{DES}_{k_2}^{-1}(\mathrm{DES}_{k_1}(x))\bigr)

이때 우리는 Week Key 에 대한 성질이 다음과 같음을 (a)~(c)를 통해 알 수 있다.

(즉, 만약 어떤 k_i가 week key 라면, 암호화와 복호화에서 그 키를 쓸때 효과 가 같은 성질이 있다)

DESk=DESk1.\mathrm{DES}_k = \mathrm{DES}_k^{-1}.

이를 통해, k2 가 week key 에 해당한다면,

Last updated