DES (Data Encryption Standard)

암호화 키(Encryption key) = 복호화 키(Decryption key)

대칭키 암호 시스템

혼합(confusion), 확산(Diffusion)을 이용 원문과 암호문간에 통계적 연관이 없다.

 

64비트 블록 암호 알고리즘
• 입력 메시지를 64비트씩 나누어 처리


56비트 키를 사용
• 64비트 중 8비트는 parity check로 사용 (** parity bit : 에러 검출하기 위한 bit)


기본 구조
• round 수 : 16 round
• 복호화는 암호화의 역순

 

▶ 진리표

- 치환 : 문자를 다른 문자로 바꾸는 것

- 전치 : 문자 위치 바꾸는 것

1 라운드

위 라운드를 16번 반복한 것이 아래와 같다.

▶ 초기 전치

초기 전치

역전치는 전치를 반대로 하는 것이다.

▶ 확장 순열

확장 순열

▶ 치환 선택

▶ S-box

 

<S1>

 

▶ 순열(P)

 

▶ KEY

64비트의 키를 이용
• 64비트를 56비트로 축약하여 서브키를 생성
• 8번째 비트마다 패리트비트를 포함하여 64비트를 키로 이용
• 패리트비트를 제거하여 56비트로 이용

 

암호화 과정에 맞추어 16라운드를 실행
• 각 라운드마다 서브키를 생성

 

오버플로우 - 좌측 이동 : 1010 > 0100 > 1000 > 0000 > 0000

와퍼라운드 - 좌측 이동 : 1010 > 0101 > 1010 > 0101 > 1010  (뒤로 붙임)

이것을 16번 반복해 키를 16개 생성

 

▶ PC-1

▶ PC-2 (축약전치)

▶ 좌측 이동 횟수

 

▶ DES 작동 모드

- ECB (Electronic Codebook) 모드

 

- CBC (Cipher Block Chaining)

 

- CFB (Cipher Feedback)

 

- OFB (Output Feedback) : 링크암호

* CFB와 OFB는 같은 것이다. (데이터 추출 위치만 다르다.)

* 단대단 암호와 링크 암호는 사용 용도만 다르고 구별하는 의미가 없다.

 

▶ DES 작동 모드 - 3중 DES

DES의 brute-force공격에 대한 취약성을 보완
 • 새로운 알고리즘 개발 : IDEA (128 bit 키 사용)
 • DES의 응용 : 3중 DES, 2중 DES


3중 DES
 • 2개의 키를 사용 (DES 3번 사용)
 • 암호화 : 암호화, 복호화, 암호화
 • 복호화 : 복호화, 암호화, 복호화
 • brute-force 공격에 DES보다 강함

 • 암호화 복호화 과정

 

 

 

 

비밀키 암호의 원리

평문 : 주고 받는 메시지

- 보통 암호알고리즘 = 복호알고리즘 같은 것을 사용

- 논리적으로 간단한 알고리즘을 사용

 

대칭키 방식 특징
• 암호 알고리즘의 비도는 키의 비밀성에 의존
• = 관용 암호, 대칭키 암호, 공유키 암호


장점
• 다양한 알고리즘 개발, 알고리즘 수행속도가 빠름

 

 단점 

• 키 분배가 어려움. (키를 나눠가져야해서 만나야함)

• 책임 추적성이 없음 ( 누가 잘못했는지 밝혀내는 것 ) → 인증을 못함 (전자 서명 어려움)

 

 

Feistel 암호

• 별도의 복호화 과정이 불필요
• 블록 암호의 대표적인 구조
• Li=Ri-1, Ri=Li-1 XOR F(Ri-1)
• 라운드 함수(=반복)와 무관하게 복호화가 됨 (짝수 라운드만 함)
• 구조적인 취약점이 발견되지 않음
• 취약한 라운드 함수를 반복적으로 사용함으로 강한 암호를 설계
• 암호화와 복호화가 동일

Feistel

대칭키암호의 종류
• DES, AES, IDEA, SEED, RC4, 등 (현재 DES, SEED는 사용하지 않는다.)

 

 

DES (Data Encryption Standard)

암호화 키(Encryption key) = 복호화 키(Decryption key)

대칭키 암호 시스템

혼합(confusion), 확산(Diffusion)을 이용 원문과 암호문간에 통계적 연관이 없다.

 

64비트 블록 암호 알고리즘
• 입력 메시지를 64비트씩 나누어 처리


56비트 키를 사용
• 64비트 중 8비트는 parity check로 사용 (** parity bit : 에러 검출하기 위한 bit)


기본 구조
• round 수 : 16 round
• 복호화는 암호화의 역순

 

진리표

 

+ Recent posts