※ 대칭키 암호화 : 암호화와 복호화에 쓰이는 키가 동일한 방식 ※
DES
: 초기 대칭키 블록 암호 표준 → 가장 널리 사용되었음
- 개관
· 평문의 길이 : 64bits
→ 이보다 긴 평문은 64bits 블록으로 나눈다.
· 암호키의 길이 : 56bits
→ 암호키는 7비트마다 오류검출을 위한 정보가 1비트(패리티 비트)씩 들어감 (전체 키는 64비트)
· 라운드 횟수 : 16회
→ 56비트 암호키에서 16개의 서브키 생성하여 각 라운드에서 사용
· Feistel 네트워크 구조를 따름
- 구조
· 두 개의 P-box
→ 초기 전치(initial permutation), 최종 전치(final permutation)
· 16개의 Feistel 라운드 함수
· 라운드 키 : 64비트 암호키에서 만들어진 48비트 서브키 16개로 사용
- 방식
① 64비트의 평문이 입력되면 initial permutation을 거쳐 전치된다.
② 이후, 16개의 라운드 함수를 거쳐 final permutation까지 도달한다.
→ 각 라운드 함수에선 48비트 서브키가 사용됨
→ 라운드 함수의 매개변수 : R(i-1), K(i)
③ final permutation을 거쳐 전치되면 64비트 암호문이 된다.
▶ 뭔소린지 모르겠다면 Feistel 암호에 대해 복습하고 오자.

- 라운드 함수
1) 구성
· Expansion P-box
· XOR
· 8개의 S-box
· Straight P-box
2) 과정
① 확장 치환 : R(i), 즉 32비트 데이터를 Expansion P-box를 이용해 48비트로 만든다.
→ 서브키(48비트)와 크기를 맞추고, 확산 효과를 제공하기 위해서
② 키 혼합 : 확장된 48비트 데이터와 보조키를 XOR 연산한다.
③ S-box 치환 : XOR 연산 결과인 48비트 데이터를 다시 S-box를 이용해 32비트로 만든다.
→ DES에서 유일한 비선형(Non-linear) 단계 (혼돈 효과 제공)
④ P-box 전치 : S-box를 통과한 32비트 데이터를 다시 한 번 섞는다.

- 특징
· 64비트 블록 암호 알고리즘
· 안정성 : 주로 비선형 함수로 이루어진 8개의 S-box에 의존
· 복호화 과정은 암호화 과정의 역순
· 16라운드의 Feistel 구조
- 라운드 키 생성
· round-key generator는 56비트 암호키로부터 16개의 48비트 라운드 키를 생성
· 암호화키는 보통 64비트로 주어짐
→ 이 중 8비트는 패리티 비트 (실제 키 생성 전에 제거됨)
- 장점
· 쇄도효과(Avalanche Effect) : 평문 or 키의 작은 변화가 암호문에 큰 변화를 만듦 (확산이 잘 이루어짐)
· 완비성(Completeness) : 암호문의 각 비트가 평문의 많은 비트들에 의존 (확산이 잘 이루어짐)
▶ 암호문으로부터 평문을 추론하기 매우 어려움
- 단점
· 최대 키 공간의 크기 = 2⁵⁶ : 개발 당시에는 Brute Force Attack에서 자유로웠음
→ 기술이 발전한 현대에는 안전 X
▶ 실제로 1998년에 3일만에 Brute Force Attack에 의해 해독됨
- 3중 DES
: DES를 세 번 반복하는 것 (짧은 키 길이를 보완하기 위함)
→ 처리 속도 느림
▶ 두 개의 종류가 있음
1) DES-EDE2 (두 개의 키를 갖는 3중 DES)
· 암호화 → 복호화 → 암호화 순으로 이루어진다.
· 암호화할 때는 K1, 복호화 할 때는 K2를 사용한다.
· DES-EDE3에 비해 보안성이 높지 않다.
※ EDE : Encryption Decryption Encryption ※

2) DES-EDE3 (세 개의 키를 갖는 3중 DES)
· DES-EDE2와 달리 각각 다른 키를 사용한다.
· 복호화는 암호화의 역 : D(K3) → E(K2) → D(K1)
· PGP와 같은 많은 프로그램에서 사용됨

3) DES와의 호환성
: 트리플 DES에서 키를 모두 동일하게 하면 보통의 DES와 같아진다.
→ DES로 암호화된 암호문을 3DES를 사용하여 복호화 가능
▶ 상호 호환성 有
| 구분 | DES | 3DES | AES |
| 평문 블록 크기(bits) | 64 | 64 | 128 |
| 암호문 블록 크기(bits) | 64 | 64 | 128 |
| 키 크기(bits) | 56 | 112 or 168 | 128, 192 or 256 |
[표 - 주요 대칭키 암호 알고리즘 비교]
♠ 2026.03.24 / D-302 ♠
드디어 대칭키 진도가 나가기 시작했다. DES는 진짜 많이 들어본 암호화 알고리즘인데, 오늘 처음 본격적으로 공부해본 것 같다. 근데 이런 식으로 모든 암호 알고리즘을 분석 및 증명하면 진짜 시간 무조건 부족할 거 같은데 어떻게 해야 할 지 고민이다. 일단 AES까진 이렇게 해보고 더 고민해봐야겠다.
DES에서는 주의깊게 봐야할 만한게 DES의 구성, 라운드 함수의 구조, 장단점 정도를 알면 될 거 같다. 사실 Feistel 함수 16개의 앞 뒤에 P-box 두 개 붙인게 끝이라 정말 간단하다. 56비트에서 48비트 서브키 16개를 생성하는 것도 기억하면 DES에서 나오는 웬만한 문제는 다 풀릴 거 같다.
내일은 모종의 이유로 05:30에 기상해야한다. 그러므로 난 일찍 자러 가겠다.
'정보보안산업기사 필기' 카테고리의 다른 글
| [암호학] 대칭키 암호 알고리즘 (4) | 2026.03.26 |
|---|---|
| [암호학] AES (Advanced Encryption Standard) (1) | 2026.03.25 |
| [암호학] 합성 암호 (0) | 2026.03.23 |
| [암호학] 현대 블록 암호 (0) | 2026.03.23 |
| [암호학] 지적 재산권 보호 (0) | 2026.03.22 |