DES는 1975년  암호화 알고리즘입니다.  현재는 안씁니다.
이유는 여기서 보세요

DES는 두번의 치환, 페이스텔 암호화를 거칩니다.

1) 초기 치환
2) 페이스텔 암호
3) 후기 치환

[초기 치환, 후기치환]
표를 이용해, 평문 비트(64비트)의 순서를 바꾼다.
*순서는 표에 써있고, 64비트가 아니면 그만큼 채운다.
표는 여기서 보세요

[페이스텔 암호]
1) 초기 치환을 한 평문 비트를 반으로 나눈다.
*이 둘을 L(32비트), R(32비트)이라 한다.

2) 확장 P box로 비트를 복사하여 R을 48비트로 확장한다.

3) R(48비트)과 서브키(48비트)를 XOR 한다.
*XOR값은 48비트다.
서브키는 평문을 원형 이동하여 매 반복마다 만든다.
서브키 만드는 방법은 여기서 보세요

4) S box를 사용해 XOR값(48비트)을 32비트로 축소한다.
*8개의 S box에 각각 6비트를 분배하고, 각각 4비트로 축소해서 총 32비트가 된다.
축소 방법은 여기서 보세요

5) Straight P box를 사용해 XOR값(32비트)의 비트 순서를 바꾼다.
*초기 치환이랑 같은 방법이다.

6) XOR값과 L(32비트)를 XOR 한다.
*기존의 XOR값과 햇갈려서 새로운 XOR값은 ☆XOR 이라 하겠습니다.

7) ☆XOR을 R로 하고, 기존의 R을 L로 한다.

8) 1~7 과정을 16번 반복한다. 마지막 반복엔, 7번 과정을 안한다.

9) L과R을 합쳐 64비트를 만든다.

암호화 서브키와 복호화 서브키는 동일해서, 복호화는 암호화의 역순입니다.
증명은 여기서 보세요

'알고리즘' 카테고리의 다른 글

[비대칭 키] bcrypt 알고리즘  (0) 2023.10.10
[대칭 키] blowfish 알고리즘  (0) 2023.10.04

+ Recent posts