DES (Data Encryption Standard)
- 64비트의 블록 암호 알고리즘 (대칭키 암호화)
- 16라운드 페이스텔(Feistel) 구조
- *대체(Substitution)와 *전치(Permutation)를 반복 적용
*대체(Substitution) : 비트를 다른 비트로 대체하여 **혼돈 제공
*전치(Permutation) : 비트 순서를 재배열하여 **확산 효과 제공
**혼돈(Confusion) : 암호문과 키의 상관관계를 숨기는 것
**확산(Diffusion) : 평문이 통계적 성질을 퍼트려 숨기는 것
| 구분 | DES |
| 블록 | 64-bit |
| 키 | 56-bit |
| 라운드 | 16 |
DES 구조

- 암호화 과정은 두 개의 치환(P-박스) 와 16개의 페이스텔 라운드 함수로 구성된다.
- 두 개의 P-박스 : 초기 치환(Initial Permutation) ,최종 치환(Final Permutation)
- 각 라운드는 키 스케줄에 의해 생성된 48비트 라운드 키를 사용한다.
Feisetl 구조 (Round)

F 함수

R0의 32bit가 Expansion을 거쳐 48bit가 되며 키 스케줄을 통해 추출된 K1과 XOR을 수행한다.
XOR을 통해 나온 48bit는 6bit씩 8개로 나뉜 후 각각 S-Box에 들어간다.
S-Box에 들어간 값은 4bit로 나오게 되고 모두 합쳐서 32bit가 된다.
32bit는 Permutation을 거쳐 최종적으로 32bit로 도출된다.
Expansion

32bit를 4bit 8개로 나눈다. 4bit의 섹션을 6bit로 확장한다.
S-Box

S박스의 입력값이 101100이라고 한다면
1) 첫 번째, 여섯 번째 비트를 합치면 2진수 10이 된다.
2) 2진수 10은 10진수 2이다. (2행)
3) 세 번째 ~ 다섯 번째 비트는 2진수로 0110이다.
4) 2진수 0110은 10진수 6이다. (6열)
5) S-Box표에서 2행 6열에 해당하는 값을 찾는다. (03)
6) 10진수 03은 2진수 0011이다.
Permutation

32비트 입력과 32비트 출력을 갖는 단순 치환이다.
키 스케쥴

* DES 복호화는 암호화의 역순이다.

'자격증 > 정보보안기사' 카테고리의 다른 글
| 암호화 알고리즘의 종류 (0) | 2024.02.27 |
|---|---|
| 대칭키 AES (0) | 2024.02.26 |
| 공개키 암호 알고리즘 (0) | 2024.02.20 |
| 대칭키 키 배송 문제 (0) | 2024.02.19 |
| SSL/TLS (0) | 2024.02.16 |