정보보안산업기사 필기

[암호학] DES(Data Encryption Standard)

zzadary1012 2026. 3. 24. 23:03

※ 대칭키 암호화 : 암호화와 복호화에 쓰이는 키가 동일한 방식 ※

 

 

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 암호에 대해 복습하고 오자.

DES 구조

 

- 라운드 함수

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비트 데이터를 다시 한 번 섞는다.

DES 함수

 

 

- 특징

· 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 ※

DES-EDE2

 

2) DES-EDE3 (세 개의 키를 갖는 3중 DES)

· DES-EDE2와 달리 각각 다른 키를 사용한다.

· 복호화는 암호화의 역 : D(K3) → E(K2) → D(K1)

· PGP와 같은 많은 프로그램에서 사용됨

DES-EDE3

 

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에 기상해야한다. 그러므로 난 일찍 자러 가겠다.