본문 바로가기

Information Security Theory

4. Data Encryption Standard (DES) (2)

반응형
Feistel Cipher (f)



= (*단순복사)
 = f(,) (+) 

(+) : bit-wise xor

f 함수 : DES의 핵심적인 부분

f는 암호화 시스템(DES, ... 등)별로 다를 수 있지만 이런 형태의 암호화 형태를 Feistel cipher이다.
DES는 Feistel Cipher의 한 예이다.


구조




Expansion P-box ( input : 32bits -> output : 48bits)

8x6의 Expansion P-box table (1~32사이의 중복이 포함된 수들)
P : Permutation

32번째 비트가 1번, 1번비트가 2번, ..., 1번째 비트가 48번째

(+) : xor (bitwise XOR)

input R_i-1(32bit)과 key(48bit)값 간에 xor연산을 하기위해 32비트를 48비트로 만드는 과정




S-boxes (input : 48bits -> output : 32bits)

8개의 S-box
S : Subsitution
각각은 6bit가 입력되고 4bit가 출력된다.

S-box 1 (input : 6bits -> output : 4bits)
4x16
각 row는 0~15사이 숫자가 중복없이 한번씩 등장한다. (Permutation)
각 SBox는 위의 형태의 표로 존재한다.

양끝 비트가 모여져서 row index가 되고, 중앙에 4비트가 column index가 된다.

입력 abcdef (6bits) 
af : (2bits) 0~3 : row index
bcde : (4bits) 0~15 : column index
-> 상응하는 테이블 위치의 값을 출력

ex) 100011 to S-box1 출력 4bit?
100011 -> 11 (=3): row index
100011 -> 0001 (=1) : column index
output : 12 (1100)
*주의할 점 DES를 하려면 프로그램에서 위에 정해진 표를 입력해주어야 한다.

*S-box의 permutation 표가 결정된 기준?
-공식적으로 알려지진 않음



Straight P-box (input : 32bits -> output : 32bits)

1~32 Permutation box
마찬가지로 DES설계자들이 정해진 위의 표를 사용하게 했다. random permutation중에 위의 표로 정한 이유 역시 밝히지 않음




DES Cipher 정리

각 Round는 Mixer, Swapper로 구성

                    {                     Round1                    }            {          Round16         }
IP(64bits) -> Mixer(64bits) -> Swapper(64bits)  -> ... -> Mixer -> Swapper -> FP(64bits) -> 64bits
                        ↑K₁                                                                    ↑K_16



반응형