본문 바로가기

사이버보안 1학년 1학기/CISSP

대칭 알고리즘, 비대칭 알고리즘

알고리즘(algorithm): 암호화/복호화에 적용된 수학적 원리 및 수행절차

키(Key): 암호화 혹은 복호화 능력을 얻기 위한 지식

평문:    암호문: C    암호화키: Ke    복호화키: kd


대칭(Symmetric) 알고리즘

암호화 키와 복호화 키가 동일한 암호화 방법, 송수신자의 비밀키 공유

Ke=Kd


1. DES (Data Encryption Standard)

1972년 미 상무부의 NBS에서 공모했다. 64비트의 블록 암호화 알고리즘이며, 56비트 크기의 암호화 키로 암호화를 수행한다. 1998년 11월 사용 중단


2. 2DES

256비트 키를 사용하여 두개의 키로 두번 암호화한다.

112비트 암호의 효과적인 키 강도를 제공하지만 'meet-in-the-middle' 분석 공격에 당한다.


3. 3DES

1978년 IBM에 의해 발표된 방식으로 데이터를 3번 암호화. 2DES와 비슷한 강도


4. AES (Advanced Encryption Standard)

1997년 NIST에서 공모. 2000년 10월 128비트 암호화 블록, 유연성이 크고 다양한 키(128, 192, 256)/블록 사이즈를 지원,Non-Feistel 구조, 10/12/14 라운드


5. IDEA (International Data Encryption Algorithm)

스위스 연방 기술 기관에서 128비트, 64 비트 블록 암호화, 8라운드 제공.

DES보다 2배 빠르고 Brute-force 공격에 효율적으로 대응함


6. Blowfish

1993년 Bruce Schneier가 오픈 라이선스로 배포.

32비트~448비트 키 사이즈인 Feistel 구조, 가장 빠른 블록 암호화지만 많은 메모리 사용


7. RC5 & RC6

1994년 미국 RSA 연구소의 리베스트가 개발.

32/64/128비트의 블록, 2040비트의 키, 255 라운드


비대칭 알고리즘

암호화와 복호화의 키가 다른 알고리즘, 느린 처리속도 그러나 편리한 키 교환

Ke<>Kd


1. 비대칭 키 방식의 암호화와 복호화

M → 송신자의 개인키 → C1 → 수신자의 공개키 → C2

C2 → 수신자의 개인키 → C1 → 송신자의 공개키 → M


2. RSA (Rivest, Sharmir, Adleman) 알고리즘

1977년 비대칭 키의 대표적인 알고리즘.

두 개의 소수(개인키)를 곱해 N값(공개키)을 만듦


3. Diffie-Hellman 알고리즘

1976년 Diffie와 Hellman이 논문 발표

바탕이 이산대수 문제, 실수에서 로그를 계산하기는 쉽지만

정의된 로그는 계산하기가 매우 어려워 공유키 계산이 어려운 방식


4. El Gamal

오픈 소스 기초로 3번의 알고리즘과 비슷함.

mod N으로 이산대수를 구하는 것. 그러나 암호문 길이가 평문*2로 큰 결점이 존재


5. 타원 곡선 암호화 (ECC, Elliptic Curve Cryptosystems)

곡선상에 있는 점에 대하여 특수 연산을 정의

역연산이 어렵다는게 특징


구분 

 대칭키 알고리즘

비대칭키 알고리즘 

등장 시기 

BC 500년 후 

1976년 

키의 상호성 

Ke=Kd 

Ke=/Kd 

암호화 키

비밀

공개 

복호화 키

비밀 

비밀 

키 구성 

비밀키 

공개키, 개인키 

키 개수 

N*(N-1)/2 

 2*N

장점

빠른 계산 속도

다양한 알고리즘

공격에 대해 강함

키 사전 불필요

안전하고 간단한 인증

보다 싼 가격

단점

키 공유의 어려움

복잡한 인증

보다 비싼 가격

느린 계산 속도

공격에 대해 약함

해당 알고리즘

DES, RC5, IDEA, AES

RSA, ECC


하이브리드 암호화

대칭 암호와 공개 키 암호의 장점을 조합해 암호화

- 평문을 대칭 암호로 암호화

- 대칭 암호에서 사용한 키는 의사 난수 생성기로 생성

- 사용한 키는 공개 키 암호로 암호화

- 공개 키 암호화는 하이브리드 암호시스템 외부로부터 부여받음