CS 지식

암호 알고리즘 개념 및 종류

싯타마 2021. 6. 25. 17:08

1. 암호 알고리즘이란?

 암호 알고리즘은 데이터의 무결성 및 기밀성을 유지하기 위하여 정보를 쉽게 해독할 수 없도록 암호화하는 알고리즘이다. 암호 알고리즘에는 기법에 따라 양방향 암호 알고리즘과 일방향 암호 알고리즘으로 나뉘며 그 종류가 다양하다.

 

 

2. 암호 알고리즘 종류

 

1) 양방향 방식

양방향 방식은 암호화와 복호화가 양방향으로 이루어지는 방식이다. 그 종류에는 대칭키 방식과 비대칭키 방식이 있다.

 

  (1) 대칭키 방식:

 대칭키는 암호화를 할 때와 복호화를 할 때 같은 암호키를 사용하는 알고리즘이다.

 블록 암호 방식: 고정 길이의 블록을 할당하여 암호화하는 방식이다. (DES, AES, SEED)

 스트림 암호 방식: 유사 난수를 연속적으로 생성하여 암호문을 생성하는 방식이다.(RC4)

 

DES 1975년 미국의 연방 표준국(NTS)에서 개발한 대칭키 방식의 암호화 알고리즘이다.
블록크기는 64bit이며, 키 길이는 56bit이다.
다량의 문서를 암호화 할 수 있다.
Feistel 네트워크가 변형된 형태이다.
DES를 세번 적용해서 키 길이를 세배 늘리는 방식인 3-DES 기법이 있다. 

AES 1997년 미국 표준 기술연구소(NIST)에 의해서 지정된 암호화 방식이다.
블록 길이가 128비트이고 평문을 128비트 암호문으로 출력한다.
블럭 암호화 알고리즘이며 키 크기에 따라 AES-128, AES-192, AES-256으로 나뉜다.
높은 안전성과 속도를 가지고 있다.
랜섬웨어에 많이 사용된다.
SEED 1999년에 한국정보진흥원에서 개발한 알고리즘이다. 
인터넷, 전자상거래, 무선통신 등에 사용하기 위해 만들어진 알고리즘이며 DES와 유사하게 FeistelNetwork를 사용한다.
블록길이가 128비트이다. 
ARIA ARIA는 국가보안기술연구소에서 개발한 블록 암호 알고리즘이며 현재까지 대한민국의 국가 표준 암호 알고리즘으로 사용되고 있다.
블록크기가 128bit이며, 키 크기는 128,192,256으로 사용할 수 있다.
라운드 수는 12,14,16으로 나뉜다.
IDEA 1990년 스위스에서 만들어진 PES를 개량하여 만들어진 블록 암호 알고리즘이다.
키길이가 128bit이다.
블로길이가 64bit이다.
FeistelNetwork방식과 SPN의 중간형태 구조를 가진다.
라운드 수가 8이다.
LFSR LFSR은 현재 상테에서 선형 연산을 통해 다음 상태를 생성하는 레지스터이다.
스트림 암호의 난수를 생성하는 용도로 많이 사용한다.
블록암호에 비해 경량 및 고속 동작이 용이하다.
긴 의사 난수 결과를 생성하는 좋은 방법이다.

RC4 로널드 라이베스트가 만들었다.
스트림 암호방식이다.
각 단계에서 키스트림 한 바이트를 생성한다.
LFSR의 구조를 가지지 않으며 옥텟 단위를 기반으로 한다.
비트 단위의 암호화 보다 실행속도가 빠르다.

 

(2) 비대칭키 방식(공개키 방식) :

대칭키는 암호화 복화화의 키가 같아서 보안의 취약점이 생긴다는 단점이 있는 반면에 비대칭키는 공개키와 암호키를 두어서 암호화할 때 공개키를 사용 하하면, 복호화할때에는 비밀키를 사용하는 방      식  이다. 암호화 할때와 복호화 할 때의 키가 서로 다르기 때문에 암복호화 과정에서 보다 보안이 강화된다는 장점이    있다.   하지만 대칭키 방식보다 데이터 전송 속도가 느리다는 단점이 있다.

 

Diffie-Hellman 디피와 헬만이 개발한 암호화 알고리즘이다. 
비대칭키 알고리즘에서 사용되는 키 교환 방식이다.
암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다.
이산대수의 계산이 어려운 문제를 기본 원리로 하고 있다.

RSA Ron Rivest, Adi Shamir, Lenard Adleman 세 사람이 연구한 암호화 알고리즘이며 세 사람의 약자를 따서 RSA라고 한다.
RSA는 소인수분해를 기반으로한 암호화 알고리즘이다.
전자서명이 가능한 최초의 암호화 알고리즘이다.
안전성이 높아 가장 널리 쓰이고 있는 비대칭키 암호화 알고리즘이다.
ECC 타원곡선 암호라고도 한다.
RSA 암호화의 대안으로 제안되었다.
짧은키로도 동일한 암호화 성능을 가진다.
계산 복잡도 이론을 활용하여 암호화 한다.
EIGamal 타헤르 엘가말이 제안한 암호화 알고리즘이다.
이산대수 문제의 난해함을 활용하여 암호화한다.

 

2) 일방향 방식(해시 암호 방식)

: 일방향 방식은 임의 길이의 정보를 입력받아 고정된 길이의 암호문을 출력하는 암호방식이므로 해시 암호 방식이라고도 한다. 그 종류에는 MAC과 MDC가 있다.

 

  (1) MAC: 메시지 인증코드로 메시지의 무결성과 송신자의 인증을 보장한다. 메시지가 외부에 노출돼도 상관없을 때 사용한다. MAC 방식은 양방향 암호화 알고리즘보다 빠르다는 장점을 가지고 있지만 기밀성을 제공하지 않기 때문에 보안에 취약하다는 단점이 있다.

 

HMAC 암호화 해시 함수와 기밀 암호화 키를 수반하는 특정한 유형의 메시지 인증 코드이다.
메시지를 암호화 하지않고 메시지를 전송할때 해시 값을 동반해서 보낸다.
IPsec, SSH, TLS 프로토콜 등에 사용된다.

 

  (2) MDC: 변경 감지 코드로 메시지의 무결성의 보장해주는 알고리즘이다. 메시지 변경 감지 코드는 베시지의 변경을 확인하면서 데이터의 무결성을 판단한다.

 

MD5 128비트의 해시값을 만들어 내는 암호화 해시 함수이다.
기존의 MD4를 개선하기 위하여 만들어졌다.
현재는 MD5를 보안 관련 용도로 쓰는 것은 권장하지 않는다.
SHA 안전한 해시 알고리즘이라는 뜻으로 미국 국가안보국(NAS)에서 제안했다.
암호화적 해시 함수들의 모음이다.
128비트의 해시값들을 만들어낸다.
SHA-0, SHA-1, SHA-2 등의 종류로 발전했으며 SHA-2를 세분화 한것에는 SHA-224, SHA-256, SHA-384, SHA-512가 있다.
SHA-1이 가장 많이 사용되며 이는 DSA에 사용 한다.