본문 바로가기

보안

0. 암호화 복호화

암호화 복호화

암호화의 필요성 대두

출처 : https://raonsecure.raonctf.com/essential/study/web/cryptography

암호화란?

암호화란 공개되어서는 안되는 정보를 암호문으로 변환하는 과정을 의미합니다. 사용자가 입력한 데이터를 알아볼 수 없는 정보로 변경하는 것이며, 이러한 암호화된 형태를 저장장치나 전송장치에 전송함으로써 그 정보를 보호할수 있습니다.

복호화란?

복호화란 암호화의 반대를 말하는 것이며, 사람이 인지할수 없게 변형된 정보를 사람이 인지할수 있게 변환하는 과정을 의미합니다.

암호화의 종류

암호화 방식은 크게 단방향 암호화 방식과 양방향 암호화 방식이 존재합니다. 

단방향 암호화

단방향 암호화란?

  • 단방향 암호화 방식은 평문을 암호화 방식을 사용해서 암호문으로 변환하는 작업을 의미합니다.
  • 암호화된 데이터를 다시 원래의 데이터로 되돌릴수 없는 방식이며, 대표적인 예가 온라인 회원의 패스워드입니다.
  • 단방향 암호화로는 해시를 이용한 알고리즘이 존재합니다.
  • 데이터의 암호화는 가능하지만 복호화는 불가능하다는 점에서 데이터의 무결성을 검증하기 위한 방식입니다.

HASH 함수 알고리즘

  • 단방향 알고리즘에서 Hash는 임의의 크기를 가진 데이터를 고정된 크기로 변환시키는 함수입니다.
  • 따라서 입력값은 다를지 몰라도 출력값은 언제나 고정된 크기를 가집니다.
  • 같은 입력값에 따라 동일한 출력값을 보장하며, 해시 함수에 의해 얻어지는 값은 해시값, 해시 코드, 해시 체크섬 또는 간단하게 해쉬라고 칭합니다.
  • 해쉬 알고리즘은 대표적으로 MD5와 SHA알고리즘이 존재합니다.

MD5(Message-Digest algorithm 5) 알고리즘

  • 임의의 길이의 메세지를 입력받아, 128비트짜리 고정 길이의 값을 출력합니다.
  • 입력 메시지의 길이 제한이 존재하지 않습니다.
  • 무결성 검사등에 사용되며 현재는 보안상의 이유로 권장하는 방식이 아닙니다.

SHA(Secure Hash Algorithm) 알고리즘

  • MD5의 취약성을 개선 및 대처하기 위해 나온 알고리즘으로, 미국 국가 표준으로 지정되어 있습니다.
  • 해시값의 크기는 SHA 알고리즘에 따라오는 bit수만큼 달라지게 됩니다.
  • 해시 함수의 버전은 SHA 0 ~ SHA 3까지 있으며, 현재는 SHA2가 사용 가능하고, SHA3가 권장되고 있으며, SHA0과 1은 사용하지 않도록 하고 있습니다.

양방향 암호화

양방향 암호화란?

  • 양방향 암호화는 암호문을 복호화할수 있도록 구현된 암호 알고리즘입니다.
  • 데이터를 인가된 사용자만 볼수 있도록 하며, 암호 알고리즘은 3DES, AES와 RSA로 알려져 있습니다.
  • 이런 양방향 암호화 방식은 크게 대칭키 암호화 알고리즘과 비대칭키 암호 알고리즘으로 구분할수 있습니다.

대칭키 암호 알고리즘

  • 대칭키 암호 알고리즘은 하나의 키로, 암호화와 복호화를 모두 수행하는것을 의미합니다.
  • 암호문을 사용할때의 암호키와 암호문을 복호화할때의 암호키가 같으면 이 암호키는 시크릿키라고 불르고 절대 외부로 유출되지 않도록 관리해야 합니다.
  • 암호화와 복호화에 쓰이는 암호키 크기가 상대적으로 작고, 비대층키에 비해 암호화와 복호화 속도가 상대적으로 빠릅니다.
  • 교환 당사자간에 키를 공유해야 하므로, 키 관리의 어려움이 있고 잦은 키변경때문에 불편함을 초래할수 있습니다.

DES(Data Encryption Standard) 알고리즘

  • 평문을 64bit로 나누어 56비트의 키를 이용해 64비트의 암호문을 만들어 내는 알고리즘입니다.
  • 블록 암호 기법을 사용하고 16단계의 파이스텔 네트워크(Feistel Network)를 거쳐 암호화를 수행합니다.

AES(Advanced Encryption Standard) 알고리즘

  • AES 암호 알고리즘은 DES를 대체한 암호 알고리즘이며, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭키 알고리즘입니다.
  • 128비트 암호화 블록, 다양한 키의 길이(128/192/256 비트)를 갖춘 대칭형 암호 알고리즘입니다.

비대칭키 암호 알고리즘

  • 비대칭키는 암호화와 복호화 할때 서로 다른 키를 사용하는 알고리즘입니다.
  • 공개키와 개인키 한쌍의 키로 구성되며, 개인키는 특정 사람만이 가질수 있는 키이고 공개키는 누구나 가질수 있게 공개된 키를 의미합니다.
  • 비대칭키를 사용한 암호화 방식에는 공개키를 이용한 암호화 방식과 비대칭키를 이용한 암호화 방식으로 나뉠수 있습니다.
  • 공개키를 이용한 암호화 방식은 데이터 보안에 중점을 둔 경우이고, 개인키를 이용한 암호화 방식은 안전한 전자서명을 통한 인증 과정에 중점을 둔 것으로 볼수 있습니다.

RSA 알고리즘

  • 창시자들의 이름 앞글자를 딴 알고리즘 방식으로, 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘입니다.
  • RSA는 큰 정수의 소인수분해의 난해함에 기반하여, 공개키만을 가지고 개인키를 쉽게 짐작할수 없도록 디자인되었습니다.

'보안' 카테고리의 다른 글

CSAP VS CVE  (0) 2023.08.24
Tocken 전송은 항상 옳은가 ?  (1) 2022.08.21
Iaas vs Paas vs Saas  (0) 2022.08.05