암호화 알고리즘

대칭키

긋대디 2018. 12. 27. 13:19

대칭키

대칭키 암호(Symmetric-key cryptosystem) 방식에서는 암호화에 사용되는 암호화키와 복호화에 사용되는 복호화키가 동일하다는 특징이 있으며, 이 키를 송신자와 수신자 이외에는 노출되지 않도록 비밀히 관리해야 한다. 우리가 일반적으로 사용하는 암호라는 의미로 ‘관용 암호’라고도 하며 키를 비밀히 보관해야 한다는 의미로 ‘비밀키 암호(Secret-key cryptosystem)’라고도 한다. 이 방식은 고대 암호로부터 연결된 오랜 역사를 가지고 있다. 대칭키 암호는 암호화 연산 속도가 빨라서 효율적인 암호 시스템을 구축할 수 있다.

이 암호 방식은 알고리즘의 내부 구조가 간단한 치환과 전치의 조합으로 되어 있어서 알고리즘을 쉽게 개발할 수 있고 컴퓨터 시스템에서 빠르게 동작한다. 그러나 송·수신자 간에 동일한 키를 공유해야 하므로 많은 사람들과의 정보 교환 시 많은 키를 생성·유지·관리해야 하는 어려움이 있다. 이러한 대칭키 암호 방식은 데이터를 변환하는 방법에 따라 블록 암호와 스트림 암호로 구분된다.

블록 암호(Block Cipher)

블록 암호는 고정된 크기의 블록 단위로 암·복호화 연산을 수행하며 각 블록의 연산에는 동일한 키가 이용된다. Shannon의 암호 이론에 의하면 전치와 환자를 반복시켜 암호화하면 평문의 통계적 성질이나 암호 키와의 관계가 나타나지 않아 안전한 암호를 구성할 수 있다. 이러한 성질을 이용하여 Feistel은 전치와 환자를 반복 적용한 Feistel Network 방식의 암호 알고리즘을 설계하였는데, DES 알고리즘이 대표적인 예이다.

대표적인 블록 암호 알고리즘은 다음과 같다.

DES(Data Encryption Standard)

DES는 대칭키 암호 중 하나인 64-비트 블록 암호이며 56-비트 비밀키를 사용한다. 1977년에 미국 NBS(National Bureau of Standards, 현 NIST)에서 이 알고리즘을 미국 표준 블록 암호 알고리즘으로 채택하였다. DES는 ANSI X3.92와 X3.106 표준 및 미국 연방 정부 FIPS 46과 81 표준에 정의되어 있다.

1997년 2월에 RSA사에서는 DES Challenge I를 개최하였는데, 78,000대의 컴퓨터를 병렬 연결하여 96일 만에 DES의 키를 찾는데 성공하였다. 1998년 7월에 열린 DES Challenge II에서는 250,000달러의 전용 칩 EFF를 이용하여 56시간 만에 해독이 되었고, 1999년 1월에 열린 DES Challenge III에서는 10,000대의 컴퓨터를 병렬연결하고 EFF 칩을 이용하여 22시간 15분 만에 DES의 해독이 가능함을 보였다. 이러한 DES Challenge의 결과들은 NIST에게 DES가 표준 블록 암호 알고리즘으로서의 생명이 끝나간다는 위기감을 심어주기에 충분하였고, 이것은 새로운 블록 암호 표준 AES의 개발 사업으로 이어지게 되었다.

AES(Advanced Encryption Standard)

AES는 미국 표준 블록 암호였던 DES의 안전성에 문제가 제기됨에 따라 2000년 새로운 미국 표준 블록 암호로 채택된 128-비트 블록 암호이다. 이 알고리즘은 128/192/256-비트 키 길이를 제공하고, 라운드 수는 키 길이에 따라 각각 10, 12, 14이다. AES는 미국 표준 블록 암호라는 이름에 걸맞게 전 세계 암호 학자들로부터 많은 관심을 받아왔으며, 알고리즘이 소개된 이후 거의 매년 연구 결과가 발표되고 있다.

SEED

SEED는 전자 상거래, 금융, 무선 통신 등에서 전송되는 개인 정보와 같은 중요한 정보를 보호하기 위해 1999년 2월 한국인터넷진흥원과 국내 암호 전문가들이 순수 국내 기술로 개발한 128-비트 블록 암호이다. 1999년에는 128-비트 비밀키를 지원하는 SEED 128이 개발되었으며, 암호 알고리즘 활용성 강화를 위해 2009년 256-비트 비밀키를 지원하는 SEED 256이 개발되었다. SEED 128은 1999년 9월 정보통신단체표준(TTA)으로 제정되었으며, 2005년에는 국제 표준화 기구인 ISO/IEC 국제 블록 암호, IETF 표준으로 제정되었다.

HIGHT(HIGh security and light weigHT)

HIGHT는 RFID, USN 등과 같이 저전력·경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 2005년 KISA, ETRI 부설 연구소 및 고려대가 공동으로 개발한 64-비트 블록 암호이다. 이 알고리즘은 2006년 12월 정보통신단체표준(TTA)으로 제정되었으며, 2010년 ISO/IEC 국제 블록 암호 표준으로 제정되었다.

스트림 암호(Stream cipher)

스트림 암호는 블록 단위로 암·복호화되는 블록 암호와는 달리 이진화된 평문 스트림과 이진 키스트림 수열의 XOR 연산으로 암호문을 생성하는 방식이다. 이러한 스트림 암호는 키스트림 수열이 평문과 관계없이 생성되어 동기식으로 사용해야만 하는 ‘동기식 스트림암호’와 키스트림 수열이 평문 혹은 암호문으로부터의 함수 관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능한 ‘자기 동기식 스트림 암호’가 있다. 1970년대부터 유럽을 중심으로 발달한 스트림 암호는 주기, 선형 복잡도 등 안전성과 관련된 수학적 분석이 가능하고 알고리즘 구현이 쉬운 특징이 있으며, 군사 및 외교용으로 많이 사용되고 있다. 스트림 암호는 구현 여건이 제약되는 이동 통신 환경에서도 구현이 용이하여 이동 통신 등의 무선 데이터 보호에 많이 사용된다.

대표적인 스트림 암호 알고리즘은 다음과 같다.

A5/1, A5/2, A5/3

GSM(Global System for Mobile communication)은 유럽 국가를 기준으로 하여 중국, 러시아, 인도 등 전 세계적으로 널리 채택되어 2004년 세계 이동 통신 가입자 중 70% 이상이 사용하는 이동 통신 방식이다. A5/1, A5/2, A5/3는 GSM에서 데이터를 암·복호화할 때 사용되는 스트림 암호이다. A5/1은 OECD에 가입된 유럽 국가에서만 사용되는 알고리즘이고, A5/2는 OECD에 가입되지 않은 국가에서 사용되는 알고리즘이다. A5/3는 A5/1과 A5/2의 안전성이 취약한 것으로 드러나면서, 이들을 대신하여 사용하기 위해 개발된 알고리즘이다.

 

'암호화 알고리즘' 카테고리의 다른 글

해쉬 함수  (0) 2018.12.27
비대칭키  (0) 2018.12.27
암호화 역사  (0) 2018.12.27
쉽게보는 ARIA 알고리즘 - 라운드  (0) 2018.12.26
(3-DES) 간단한 대칭 알고리즘 예제  (0) 2018.12.26