암호화와 복호화 정리
2024. 1. 26. 16:14

암호화와 복호화란?!

  • 암호(Cryptography) :  암호란 일반적으로 정보를 안전하게 보호하고 통신의 기밀성, 무결성, 인증을 유지하기 위해 알고리즘과 수학적 기법을 사용하는 과학과 기술의 분야다. 암호화 관점에서 암호는 이진수(Binary) 데이터 수학적 계산을 통해 비트 변경을 수행하는 것이다.
    • 암호화(Encrypt) : 사용자가 입력한 데이터를 알아볼 수 없는 데이터로 변경하는 과정
    • 복호화(Decrypt) : 암호화된 데이터를 정상적인 데이터로 변경하는 과정
    • 단반향 암호(해시) : 원래의 데이터로 복구가 불가능한 암호화 방식, 원본 데이터가 1bit만 바뀌어도 전혀 다른 값으로 변하기 때문에 데이터가 변조되지 않았음을 나타내는데 주로 사용됨
    • 양방향 암호 : 데이터 통신을 보호받기 위한 암호 기법, 암호화키로 원본 데이터를 암호화하고 복호화키로 원본 데이터를 복구함

 

단방향 암호화

  • 해시는 대표적인 단방향 암호화 방법인데 데이터의 무결성을 검증하기 위해 사용됨
  • 데이터의 무결성이란 허락된 사용자로 인해 수정된 데이터인지 또는 무단으로 조작된 데이터인지 여부를 판단하는 것임
  • 해시 함수/알고리즘(hash function/algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 맵핑함
  • 대표적인 해시 함수로는 MD5(Message Digest Algorithm 5)SHA(Secure Hash Algorithm)가 있음
    1. MD5
      • 임의의 입력값에 대해 변환되는 해시 값의 크기는 128bit(32Byte)로 크기를 유지함
      • 1991년에 개발된 것으로 보안상 취약한 것으로 알려져 널리 사용되지는 않음
    2. SHA
      • 임의의 입력값에 대해 변환되는 해시의 값 크기가 알고리즘에 따라 변화됨 (뒤에 숫자는 bit 크기 / SHA-224, SHA-256, SHA-384, ...)
      • SHA0~4까지 버전이 존재함 (개발연도 > SHA0: 1993, SHA1: 1995, SHA2: 2001, SHA3: 2015)
      • 일반적으로 최근에 개발된 SHA2를 사용하며, 양자 컴퓨팅 같은 고도의 공격에 대비가능한 SHA3를 사용하는 경우도 있음
      • 알고리즘의 bit 숫자가 높을수록 보안강도가 증가하지만 해시를 계하는 파워가 더 필요하므로 적절한 bit 알고리즘을 선택해야 함 (일반적으로는 SHA2-256을 많이 쓰이는 듯 함...)

 

양방향 암호화

  • 암호문을 복호화할 수 있도록 구현된 암호 알고리즘임
  • 크게 대칭키 암호 알고리즘비대칭키 암호 알고리즘으로 나뉨
    1. 대칭키 암호 알고리즘
      • 1개의 키와 상대적으로 간단한 알고리즘 사용으로 빠르고 효율적임
      • 암호화, 복호화에 같은 키를 사용하다 보니 키관리가 중요함
      • 따라서 대량의 데이터를 안전하게 전송할 때(예: 파일 암호화, 데이터베이스 암호화) 사용됨
      • DES(Data Encryption Standard), AES(Advanced Encryption Standard) 알고리즘이 존재하는데 가장 보안성이 좋은 AES가 주로 사용되며, 그중에서도 AES-128(일반적, 효율성)과 AES-256(보안성 중요)이 많이 사용됨
        • DES: 64bits 평문을 56bits 키를 사용해 64bits로 암호화
        • 3DES: DES와 원리는 같으나 3개의 키를 사용해 3중으로 암호화 및 복호화를 진행해 보안성 향상
        • AES:  128bits 평문을 (128, 192, 256bits)키를 사용해 128bits로 암호화
    2. 비대칭키 암호 알고리즘
      • 암호화하는 공개키(Public Key)와 복호화하는 개인키(Private Key) 2가지를 사용함
      • 공개 가능한 공개키를 사용하여 키를 공유하는데 편리함
      • 대칭키에 비해 상대적으로 계산비용이 많이 들어감
      • RSA, ElGamal, ECC, DSA 등의 알고리즘 중에 RSA가 가장 많이 쓰임
        • RSA(Rivest, Shamir and Adleman) : 알고리즘을 개발한 3명의 수학자 이름 앞글자를 따서 RSA로 명명. 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 소인수 분해의 난해함에 기반하여 공개키와 개인키를 유추하기 어렵도록 만들었음

 

참고문헌

- https://raonctf.com/essential/study/web/cryptography

 

RAON CTF - WEB Essential

해시 암호화 암호문, 평문 단방향 암호, 양방향 암호 AES, DES, RSA

raonctf.com

- https://raonctf.com/essential/study/web/symmetric_key

 

RAON CTF - WEB Essential

DES 암호화 AES 암호화 양방향 암호, 대칭키 암호

raonctf.com

- https://raonctf.com/essential/study/web/asymmetric_key

'Crypto' 카테고리의 다른 글

WebAuthn 표준을 사용한 Passkey 사용법  (7) 2024.01.31