암호화 알고리즘

2020. 6. 4. 11:54보안\암호화

728x90

1. 양방향 단방향 알고리즘

 암호화 알고리즘을 가장 먼저 분류하는 방식은 양방향, 단방향 알고리즘입니다. 간단하게 말해서, 양방향 알고리즘은 암호화된 암호문을 복호화할 수 있는 알고리즘을 의미합니다. 반대로 단방향 알고리즘은 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘을 의미합니다.

2. 공개키 비공개키 방식

비공개키


 비공개키는 사용하는 키와 복호화 할 때 사용하는 키가 동일한 암호화 기법입니다. 대칭형 암호화는 훌륭한 암호화 방식이지만 결정적인 문제가 존재합니다. 바로 ‘키 배송’에 관한 문제로, 어떠한 방식으로든 송신 측에서는 수신 측에 암호 키를 전달해야만 하고, 이 키가 배송과정에서 털리면 아무리 뛰어난 암호화 알고리즘을 사용했더라도 평문이 공개됩니다. 안전하게 평문을 전달하기 위해 만든 것이 암호문인데, 정작 키는 안전하게 전달할 방법이 없는 것이 바로 큰 결점입니다.

공개키


 공개키 암호는 암호화 키와 복호화 키가 다릅니다. 암호화를 하면 두 개의 키가 생성되고 이 두 개의 키는 수학적으로 밀접한 관계를 가지고 있습니다. 두 개의 키를 각각 A,B라고 했을 때 A로 암호화한 암호문은 B로만 복호화할 수 있고 B로 암호화한 암호문은 A로만 복호화할 수 있습니다. 그래서 이 중 하나의 키만 비밀로 보호하고(이를 ‘비밀키’, ‘개인키’라고 합니다.) 다른 하나의 키는 공개해도 관계가 없습니다. (이를 ‘공개키’라고 합니다.) 이렇게 둘 중 하나의 키는 반드시 공개되어야 통상적인 사용이 가능하기 때문에 공개키 암호화라고 불립니다. 하지만 공개키 암호화는 암복호화가 비공개키 암호에 비해 느리다는 문제점이 있습니다. 그래서 실제로는 비공개키 암호를 이용해 공개키 암호의 키를 배송하고 실제 암호문은 비공개키 암호를 사용하는 식으로 이용하고 있습니다.

3. 대표적인 암호화 알고리즘

MD5

 MD5는 128비트 암호화 해시 함수입니다. 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용됩니다. 1996년에 MD5의 설계상 결함이 발견되고 최근에는 노트북 한 대의 계산 능력으로 1분 내에 해시 충돌을 찾을 정도로 빠른 알고리즘이 발표되기도 하였습니다. 이러한 이유로 현재는 MD5 알고리즘을 보안 관련 용도로 쓰는 것은 권장하지 않으며, 심각한 보안 문제를 야기할 수도 있습니다.

SHA-1

 SHA-1은 TLS, SSL, PGP, SSH, IPSec등 많은 보안 프로토콜과 프로그램에서 사용되고 있는 알고리즘입니다. SHA-1은 이전에 널리 사용되던 MD5를 대신해서 쓰이기도 합니다. 하지만 최근에 SHA-1에 대한 공격 방법이 발견되어 SHA-256이나 그 이상의 알고리즘을 사용하는 방법으로 변경되고 있습니다.

SHA-256


 SHA-256은 현재 가장 많은 분야에서 채택하여 사용되고 있는 암호 방식입니다. 출력 속도가 빠르다는 장점을 가지고 있습니다. 또한 단방향성의 성질을 띄고 있는 암호화 방법으로 복호화가 불가능합니다. SHA-384, SHA-512 보다는 보호 수준이 낮을지는 모르지만, 현재까지 안정성 문제에서도 큰 단점이 발견되지 않았고 속도가 빠르기 때문에 인증서 블록체인 등 여러 분야에서 많이 사용되고 있습니다.

RSA

 RSA는 공개키 암호 시스템의 하나로, 암호화 뿐만 아니라 전자 서명이 가능한 최초의 알고리즘으로 알려져 있습니다. RSA가 갖는 전자 서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 했습니다. RSA는 공개키 암호화 방법이기 때문에 두 개의 키를 사용합니다. 일반적으로 알려져 있는 공개키는 암호화 하는데 사용되며, 개인키를 가진 사용자만이 복호화하여 평문을 볼 수 있습니다. 하지만 RSA 공개키 알고리즘은 개인키로 암호화 하여 공개키로 복호화할 수도 있습니다.

728x90

'보안\암호화' 카테고리의 다른 글

Kerberos  (0) 2021.04.21
접근 통제 모델  (0) 2021.03.05
HMAC  (0) 2021.01.14
XSS  (0) 2020.04.07
CSRF  (0) 2020.04.01