본문 바로가기
보안/기초

암호화 알고리즘 정리

by ITPro 2010. 8. 11.

목 차


1.암호화


1-1 암호화의 개념

1-2.용어 정리

 

2.암호화 알고리즘


2-1 대칭키 암호 알고리즘
2-1-1 DES (Data Encryption Standard)
2-1-2 Rijndael(Rijmen & Daemen)
2-1-3 ARIA(Academy, Research Institute, Agency)

 

2-2 비대칭키 암호 알고리즘
2-2-1 RSA (Rivest Shamir Adelman)
2-2-2 ECC (Elliptic Curve Cryptography)
2-2-3 ElGamal

2-3 대칭키 & 비대칭키 암호 알고리즘 특징 비교

 


1.암호


1-1 암호화의 개념
암호화란 정보를 보낼 때나 받을 때, 그 정보의 비밀성을 보장하기 위하여 해독할 수 없도록 다른 형태의 정보로 변환하는 것으로, 키에 의해서 암호화가 되거나 복호화가 되며, 사용된 키 외에는 해독 할 수 없도록 하여, 정보의 안전성을 확보하는 과정이다.
암호의 기본적인 기능을 살펴보면 다음과 같이 분류할 수 있다.

 

① 기밀성 (Confidentiality) : 기밀성이란 비밀정보의 부적절한 노출을 방지하고, 허가받은 사용자가 아니면 내용에 접근할 수 없어야 함을 말한다.

② 무결성 (Integrity) : 무결성이란 부적절한 변경을 방지하고, 허가받은 사용자가 아니면 내용을 변경할 수 없어야 함을 말한다.

③ 인증 (Authentication) : 인증이란 시스템에 접근하는 사용자의 신원을 확인하는 절차를 말한다.

④ 부인봉쇄 (Non-repudiation) : 부인봉쇄란 메시지를 전달하거나 전달받은 사람이 메시지를 전달하거나 전달받았다는 사실을 부인할 수 없어야 함을 말한다.

 


1-2.용어 정리
- 평문(plain text, clear text) : 암호화되지 않은 정보

- 암호문(cipher text) : 암호화된 정보

- 암호화(encryption) : 평문을 암호문으로 바꾸는 과정

- 복호화(decryption, decipherment) : 암호문을 평문으로 바꾸는 과정

- 암호화 키(encryption key) : 암호화에 사용되는 키

- 복호화 키(decryption key) : 복호화에 사용되는 키

- 대칭 암호 알고리즘(symmetric key algorithm) : 암호화 키와 복호화 키가 같은 알고리즘

- 비대칭 암호 알고리즘(asymmetric key algorithm) : 암호화 키와 복호화 키가 다른 알고리즘

- S-box (Substitution box) : 비선형 치환 테이블

- Feistel 구조 : 데이터를 두 블록으로 나누어 좌·우 부분에 교대로 비선형 변환을 적용시키는 구조

- 라운드(round) : 암호화/복호화 횟수

 


2.암호화 알고리즘


2-1 대칭키 암호 알고리즘
대칭키 암호 알고리즘은 비밀키 암호 알고리즘 혹은 단일키 암호 알고리즘이라고도 하며, 송․수신자가 동일한 키에 의하여 암호화 및 복호화 과정을 수행한다. 대칭키 암호 알고리즘은 간단하면서도 빠른 속도로 암호화와 복호화를 할 수 있다는 장점으로 널리 사용되었지만 여러 명의 사용자들이 자료를 공유할 때 키를 공유해야 하므로 키에 대한 공유 문제가 발생될 수 있고, 상대방에게 자료를 보낼 때 상대방이 키를 모르면 키도 함께 보내 주어야 하므로 보안에 취약점이 생긴다. 대칭키 암호 알고리즘은 변환하는 방법에 따라 블록 암호 알고리즘과 스트림 암호 알고리즘으로 구분된다.
대칭키 암호 알고리즘의 특징을 요약하면 다음과 같다.

 

- 송·수신자가 동일한 키에 의하여 암호화/복호화 과정을 수행한다.

- 변환 방법에 따라 블록/스트림 암호 알고리즘으로 구분된다.

- 알고리즘 내부 구조가 간단한 치환과 순열의 조합으로 구성되어 있다.

- 많은 정보기술과의 상호운용이 쉽고 데이터 처리량이 높다.

- 정보 교환 당사자간에 동일한 키를 공유해야 하며, 여러 사람과의 정보 교환 시 많은 키를 유지    관리해야 하는 어려움이 존재한다.

 


2-1-1 DES (Data Encryption Standard)
DES 알고리즘은 1973년 미국 국방성의 암호 표준화 요구에 대해 IBM이 DES를 제안하였고, 안전성에 대한 평가를 거친 후 1977년에 표준화되어 현재까지도 널리 사용되고 있다. 기본적인 방식은 키를 사용하여 블록 암호라고도 한다. 관용 암호화 방식 중 가장 널리 쓰이는 기법인 DES 알고리즘은 원래의 평문 메시지를 64bit 단위의 블록들로 분할하고 키를 사용하여 64bit 블록들을 암호화하는데 16번의 반복 과정을 거쳐 암호화하는 방식을 취하고 있다. 키도 역시 64bit로 구성되는데 네트워크에서 56bit만을 사용하고 나머지 8bit는 오류를 점검하는 패리티 검사용으로 사용한다. DES 알고리즘은 가능한 조합이 너무나 많기 때문에 해독이 사실상 거의 불가능하다. DES의 평문 처리는 초기 순열, 16단계의 반복처리 과정, 역초기 순열의 3단계의 과정으로 이루어진다.
DES의 특징을 요약하면 다음과 같다.

 

 - DES는 64비트 평문을 64비트 암호문으로 만드는 블록암호방식으로 64비트 키와 비선형 함수로 구성된 S-Box를 사용

 - 64비트 키(외부키) 중 56비트는 실제의 키(내부키)가 되고, 나머지 8비트는 패리티 비트로 사용

 - 컴퓨터성능의 발달에 의해 보안성이 약화되어 DES의 안정성을 증가시키기 위하여 키 길이를 두배(128비트) 증가시킨 3중 DES를 사용

 


2-1-2 Rijndael(Rijmen & Daemen)
1990 년대 들어 DES 암호의 해독의 가능성이 높아지고, 1998 년을 기점으로 DES 는 표준 기한이 만료됨에 따라, 미국 NIST(표준기술연구소)에서 1997 년 9 월에 암호키의 길이가 128 비트 이상인 새로운 블록암호인 AES(Advanced Encrytion Standard)를 공모하였다. 총 21 개가 응모하여 그 중 1998 년 8 월에 15 개의 1 차 후보가 올라, 1999 년 4 월 5 개의 후보로 압축하여, 최종적으로 2000 년 10 월 2 일에 벨기에에서 만든 Rijndael(Rijmen & Daemen)이 AES 로 채택되었다.
Rijndael 은 다른 AES 후보 기술보다 보안성, 성능, 효율성, 구현 용이성, 유연성 등의 항목에서 가장 우수한 기술로 평가받았고, 또한 이 기술은 서로 다른 다양한 컴퓨터 환경에서도 우수한 성능을 보여주고 메모리를 적게 차지해 스마트카드 등 메모리 용량이 적은 장치에서 손쉽게 사용될 수 있다는 점이 특징이다.
Rijndael의 특징을 요약하면 다음과 같다.

 

- DES의 안전성 문제를 대신할 차세대 블록암호방식의 알고리즘

- 키의 길이(128, 192, 256비트)와 라운드의 수(10, 12, 14회)가 가변적임

- 요구되는 안전도에 따라 보안수위 조절이 가능

 

 

2-1-3 ARIA(Academy, Research Institute, Agency)
ARIA는 128bit 데이터 블록을 처리하는 알고리즘으로 128,192,256bit 암호키를 사용한다. ARIA는 세 가지 길이의 암호키로 사용될 수 있으며 요구되는 안전성 기준에 따라 용도가 구분될 수 있다.
블록 암호인 ARIA의 입력과 출력은 각각 128bit들의 수열로 구성된다. 이때 블록 길이는 이 나열들에서 블록에 포함된 비트 수를 의미한다. 블록 암호 ARIA의 암호키는 128,192,256bit의 수열이다.
ARIA의 특징을 요약하면 다음과 같다.

 

- SEED와 함께 국가 암호알고리즘으로 사용될 차세대 암호알고리즘

- 고정 길이인 128비트의 입출력과 가변(128, 192, 256비트) 길이의 키와 가변적인 라운드 수(12, 14, 16회)를 지원

- 간단한 연산 사용으로 초경량 환경에 효율적이고 바이트 단위의 연산으로 하드웨어에 효율적

 

 

 

 


2-2 비대칭키 암호 알고리즘


비대칭키 암호 알고리즘은 공개키 암호 알고리즘 이라고도 하며 비대칭키 암호 알고리즘의 원리는 대칭키 암호 알고리즘의 문제점들을 해결하고자 하는 시도로부터 발전된 개념으로서, 이 방식은 수학적으로 약간 복잡한 과정을 거치는 암호화 방법이다.

비대칭키 암호 알고리즘은 평문을 암호화한 키와 복호화하는 키가 서로 다르다.
이 두 개의 키 중 하나를 공개키(Public key)라고 하고 다른 하나를 비밀키(Private key)라고 한다. 비대칭키 암호 알고리즘은 이 두 키 모두로 평문을 암호화&복호화할 수 있고, 단지 수학적인 계산이나 유추를 통해 하나의 키로부터 다른 키를 알 수 없도록 하는 것이다.
이렇게 할 수 있는 방법은 인수 분해를 사용하는 것인데 매우 큰 두 소수의 곱을 구하면 그 수를 인수분해하기가 매우 어려운 점을 이용하여 암호화를 진행하는 것이다. 실제로 컴퓨터가 계산하려면 오래 걸리는 연산을 사용하고, 키가 전송되지 않으므로 비교적 안전한 암호화 방법이라고 볼 수 있다.
대칭키 암호 알고리즘의 특징을 요약하면 다음과 같다.

 

- 송 수신자가 비밀키(Private key)와 공개키(Pubic key)라는 두 개의 상이한 키를 사용하여   암호화/복호화 과정을 수행

- 자신의 비밀키 한 개만 잘 보관하면 되므로 대칭키 암호 알고리즘보다 훨씬 적은 수의 키를 유지

- 암호화 및 복호화 속도가 느리며, 키의 길이가 대칭키 암호알고리즘보다는 크기 때문에 계산 효율성이 저하되는 단점이 존재

 


2-2-1 RSA (Rivest Shamir Adelman)
RSA는 1977년 론 리베스트(Ron Rivest)와 아디 셰미르(Adi Shamir), 레오나르드 아델만(Leonard Adleman) 등 3명의 수학자에 의해 개발된 알고리즘을 사용하는 인터넷 암호화 및 인증시스템이다.
RSA는 두 개의 키를 사용한다. 여기서 키란 메시지를 열고 잠그는 상수(constant)를 의미한다. 이 중 공개키(Public key)는 모두에게 알려져 있으며, 메시지를 암호화하는데 쓰여진다. 이렇게 암호화된 메시지는 비밀키(Private key)를 가진 자만이 해독하여 열어볼 수 있다. 다시 말하면, 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한 사람뿐인 것이다. RSA는 소인수분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 유추할 수 없도록 디자인되어 있다.
RSA의 특징을 요약하면 다음과 같다.

 

- Rivest, Shamir, Adelman 등 3인이 공동 개발한 RSA법(RSA scheme)을 사용한 암호 알고리즘으로 공개키 암호 체계의 사실상의 세계 표준

- 2개의 상이한 소수 p, q를 이용하여 암호화 키(n, e)와 복호화 키 (n, d)를 생성하며 암호화 키는 공개키, 복호화 키는 비밀키로 관리

- n의 자릿수를 크게 하면 할수록 두 소인수 p, q로 분해하는 계산량이 증가하기 때문에 암호 체계의 안전을 보장

 


2-2-2 ECC (Elliptic Curve Cryptography)
타원곡선을 이용한 공개키 암호시스템 즉, 유한체(finite fields)위에서 정의된 타원곡선 군에서의 이산대수 문제에 기초한 타원곡선 암호시스템(ECC, Elliptic Curve Cryptosystem)은 1985년 N. Koblitz와 V. Miller에 의해 처음 제안된 이후 활발히 연구되고 있다. 더욱이, 타원곡선방법(ECM, Elliptic Curve Method)은 최근 RSA 암호시스템의 근간이 되는 인수분해 문제와 소수성 테스트를 위한 효율적 알고리즘을 제공하기도 하였다.
ECC는 유한체 상의 타원 곡선이 유한군을 가지며 그 위에서 이산대수 문제가 구성될 수 있음에 착안되어 제시된 암호 알고리즘이다. Diffie- Hellman 키 분배나 ElGamal암호는 이산대수문제에 근거한 방식이며, 그러한 방식에 대응하는 암호 키 분배를 타원 이산대수 문제상에서 구성할 수 있다. 이러한 타원 곡선 암호는 1985년에 Koblitz와 Miller에 의해 독립적으로 제안되었다. 타원 이산대수 문제는 키의 크기를 비교적 작게(100~200비트)할 수 있는 실용상의 이점이 있다. 또한 장래 소인수 분해문제나 이산대수 문제에 대한 해법에 극적인 진전이 일어날지도 모르는 것에 대한 보험을 거는 의미에서도 그러한 것과 별도의 문제에 근거한 타원 곡선 암호의 의의는 크다.
ECC의 특징을 요약하면 다음과 같다.

 

- 타원곡선 암호인 ECC는 비트당 안전도가 타 공개키 암호 알고리즘보다 효율적이기 때문에 높은 속도를 제공

- 최근 RSA 암호 알고리즘의 근간이 되는 인수분해 문제와 소수성 테스트 를 위한 효율적 알고리즘을 제공

 

 

2-2-3 ElGamal
ElGamal 공개키 암호는 이산대수의 어려움에 근거를 두고 있다. 즉, 이산대수 문제에 기초한 공개키 암호 방식으로 암호화와 서명 알고리즘 양쪽으로 사용할 수 있으며, 암호화 알고리즘은 DIffie­Hellman 키 분배 프로토콜의 기본과 유사하다.
그리고 ElGamal 서명 알고리즘은 공개키와 비공개키를 동일한 형태로 유지하며, 서명 검증과정은 암호화 과정과 동일하지 않다.
1991년, 미국 정부 기관인 NIST(National Institute of Standards and Technology)와 NSA(National Security Agency)가 미국 정부의 디지털 인증 규격 DSS(Digital Signature Standard)의 알고리즘으로 ElGamal 서명 알고리즘을 채택했다.(단, 서명 비트 길이를 단축하기 위해 슈노어 서명법의 기법을 이용해 ElGamal 서명법을 개량한다) DSS는 현재 FIPS와 ANSI 양쪽에 의해 미국 정부의 정식적인 규격으로 검토되고 있는 단계이다.
한편, ElGamal의 단점으로는 서명과정에서 임의의 상수 k에 대한 난수성 유지와 처리속도가 다소 느리다는 것과 암호화 과정에서 전송 메시지가 2배로 확장되어 통신량이 증가하는 것 등이다.
ElGarnal의 특징을 요약하면 다음과 같다.

 

- 암호화 과정에서 암호화 속도를 높이기 위하여 지수승 연산시 Hamming weight가 작은 무작위 지수 k를 사용한다.

- baby­step giant­step 공격을 고려하여 지수의 크기는 충분히 커야 한다.

- 80 비트 비밀키 암호의 안전성이 필요할 때, 지수의 크기는 160 비트 이상이어야 한다.

 

 

2-3 대칭키 & 비대칭키 암호 알고리즘 특징 비교

반응형