본문 바로가기
📌 Algorithm

[Security] 암호화 알고리즘 (MD5 해시 | AES-128 양방향 | SHA-256 단방향)

by 쫄리_ 2023. 3. 10.
728x90
반응형

암호화란?

정보들을 암호화 처리할 경우 해당 정보를 읽을 수 없는 형식으로 변환을 하게 되는데,

우리는 이를 암호문이라 부르며 해당 정보에 접근하기 위해서는 암호화 키가 필요하다.

이 암호화 키를 이용하여 암호화 한 것을 복호화 하고 해당 정보들을 해당 키를 이용하여 암호화 할 수 있는 것이다.

현재 이용 가능한 최고 수준의 암호 방식은 256bit 와 128bit 이다.

여기서 이 bit가 크면 클 수록 암호화 키의 크기가 커진다는 것을 의미하며 은행같은 곳에선 당연 높은 bit를 이용하여 사용한다고 한다.


 

암호 알고리즘의 유형 (대칭 & 비대칭)

 

● 대칭키

대칭키 암호화 혹은 비밀 키라고도 불리는 이 키는 정보의 암호화와 복호화 처리에 동일한 키를 사용한다.

이 대칭 키는 개발자 입장에서 송신자와 수신자끼리 공유되는 키이며,

이 키가 외부에서 알게 된다면 해당 암호 방식은 안전하다고 할 수 없는 상태가 된다.

그러므로 대칭키 방식을 이용할 경우엔 해당 키를 내부에서 잘 관리해야한다.

 

특징

  • 속도는 비트 단위 암호화로 상대적으로 빠른 속도를 제공한다.
  • 용도로는 보통 개인 파일 암호화, 특정 불특정 그룹내의 통신에서 사용한다.
  • 장점으론 구현이 용이하고 변형이 가능하다.
  • 단점으론 상대적으로 쉽게 해독이 가능한 대신 키관리가 어렵다.

종류

  • SEED, DES, 3DES, AES, ARIA, ChaCha20

 

● 비대칭 키 (공개 키)

비대칭 키의 암호 방식은 데이터의 암호화와 복호화에 서로 다른 키를 사용하는 경우이다.

소유자만 알고있는 개인 키와 공공 키를 사용하며 공공 키로 암호화 처리된 정보는 이에 상응하는 키로만 해독할 수 있다.

특징

  • 속도는 큰 소수를 찾거나 곡률 방정식 등의 연산으로 속도가 느리다.
  • 용도로는 보통 다수의 정보교환(Key)에서 주로 사용된다.
  • 장점으론 암호 해독이 어렵다.
  • 단점으로 해독시간이 상대적으로 오래 걸린다.

종류

  • RSA, DSA, ECC, Diffie Hellman

 

고급 암호 표준 - AES (Advanced Encryption Standard)

라인달이라고 불렸던 AES는 고급 암호 표준을 의미하며, 이는 중요자료를 암호화 처리하는데 가장 흔하게 처리하는 방법 중 하나이다.

대표적인 사용 기업으로는 애플, 마이크로소프트 등 미 국가안보국에서도 사용중이라고 한다.

AES는 대칭 암호 방식이며, 즉 암호화와 해독 과정에서 같은 키를 사용한다.

이때 대칭키의 특성을 보면 알 수 있듯 발송인과 수령인은 자신들이 동일한 키를 사용함에 이미 숙지하고 있어야 한다.

 

AES의 종류

종류로는 AES-128, AES-192, AES-256 세 가지가 있다.

각 128, 192, 256bit 의 암호 키로 사용하여 암호 처리 및 해독을 하며 그 중 당연 256bit가 가장 안전한 방법이다.

암호화 처리의 횟수는 각 128bit는 10번, 192bit는 12번, 256bit 14번의 암호화 처리를 거치게 된다.


 

SHA-256 이란?

SHA-256은 SHA 알고리즘의 한 종류로써 256비트로 구성되며 64자리 문자열을 반환한다.

SHA-256 단방향 암호화 방식이기 때문에 복호화가 불가능 하다는 것이 특징이며, 복호화 하지 않아도 되기 때문에 속도가 빠른 장점이 있다.

그러하여 해당 암호화는 사용자만 알고 있어야 하는 정보들을 관리하는 기능에서 사용되며 흔히 쓰는 부분들로는 사용자 패스워드나 인터넷뱅킹에서 사용한다.

추가로 위의 대칭키-비대칭키는 양방향 방식에 속하고 SHA-256 같은 경우는 단방향 암호화 방식에 속한다.


 

[MD5 알고리즘과 암호화 & 복호화]

1. 해시의 개념

해시(Hash)는 하나의 문자열을 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것이다.

해시는 암호화 과정이 아니다. 하지만 대칭 암호화 기법과 비대칭 암호화 기법 그리고 해시를 같이 사용하면 놀라운 만큼 다양한 기능을 구현할 수 있다.

종류로는 MD5와 SHA가 있으며 이번에는 MD5 알아보자.

 

2. MD5

1) MD5란?

- MD5는 128비트 암호화 해시 함수이다.

RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다.

2) MD5 기본개념

위의 그림에서 보듯이 세 평문은 길이가 다르지만 해시결과는 32개의 문자 (16진수)로 길이가 같다. MD5알고리즘은 512비트 단위의 메시지 블로들에 대한 128비트 (16바이트)의 해시값을 생성한다.

단어 하나만 틀려도 해시 값은 완전히 다르게 된다.

이와 같은 결과는 해시값을 통해 해시되기 전의 값을 추측하는 것이 불가능하게 하는 해시의 특성 덕분이다.

 

3) MD5 특징

1. 임의의 길이의 값을 입력 받아 128비트(32자리) 길이의 해시값으로 출력

2. 단방향 암호화로 원래의 데이터 값을 찾기 불가능 (해시 계산과정에서 비트단위로 박살)

3. 고속연산이 가능

4. 충돌의 가능성이 낮아 네트워크로 전송된 큰 파일의 무결성 확인이나 비밀번호 암호화에 주로 사용


● 암호화

- 양방향 암호화 기법

- 평문을 암호화 된 문장으로 만들고, 암호화 된 문장을 다시 평문으로 만드는 복호화 기능을 가짐

 

● 해시

- 단방향 암호화 기법

- 평문을 암호화 된 문장으로 만듬

※ 차이점은 '복호화의 가능 여부'

단방향 암호화로 원래의 데이터 찾기가 불가능 하나 평문을 암호화 시킬때 같은 해시값을 출력함으로써

사용자 자신만 알고 이 외의 관리자와 3자가 알지 못하게 하는 비밀번호 암호화나 두 파일의 무결성을 확인하는데 주로 사용한다.

728x90
반응형