본문 바로가기

카테고리 없음

[Security] 단방향 암호화 / 양방향 암호화

단방향 암호화

단방향 암호화는 데이터를 해싱(Hashing) 처리하여 특정한 값으로 변환하며, 변환된 값을 원래 데이터로 복원할 수 없는 방식이다. 이는 데이터의 무결성을 검증하거나 민감 정보를 안전하게 저장할 때 사용된다.

 

특징

  1. 복호화 불가능: 입력 데이터를 암호화하면 다시 원본 데이터를 복원할 수 없다.
  2. 동일한 입력값은 항상 동일한 해시값을 생성.
  3. 해시값의 길이는 입력 데이터 길이에 상관없이 고정(예: SHA-256은 256비트).
  4. 주요 용도: 비밀번호 저장, 디지털 서명, 데이터 무결성 검증 등.

대표적인 단방향 암호화 알고리즘

  1. SHA-256 
  2. MD5 

SHA-256 (Secure Hash Algorithm 256-bit)

  • SHA-256은 SHA-2 계열의 암호화 알고리즘 중 하나로, 256비트(32바이트) 길이의 고정된 해시값을 생성한다.
  • 현재 블록체인(예: 비트코인), SSL 인증서, 디지털 서명 등에 널리 사용하고 있다.

예시

  • 입력: "password123"
  • 출력: ef92b778bafe771e89245b89ecbcfc1d5de77c6dfd6f4642a41e010f6fdb1d3f

MD5 (Message Digest Algorithm 5)

  • 이전에 널리 사용되었으나 충돌 가능성이 높아 현재는 안전하지 않은 알고리즘
  • MD5는 주로 파일을 인증하는 데 사용된다.
  • MD5 해시를 사용하여 파일 복사본을 원본과 비교하는 것이 두 복사본의 데이터를 일일이 확인하는 것보다 훨씬 쉽기 때문이다.

양방향 암호화

양방향 암호화는 데이터를 암호화(Encryption)하여 보호하고, 복호화(Decryption)를 통해 원래 데이터를 복원할 수 있는 방식입니다. 암호화/복호화 키의 사용 방식에 따라 대칭키 방식비대칭키 방식으로 나뉜다.

 

대칭키 암호화 (Symmetric Encryption)

 

  • 암호화와 복호화에 하나의 동일한 키를 사용.
  • 속도가 빠르고 구현이 간단하나, 키를 안전하게 공유해야 하는 키 분배 문제가 발생합니다.

 

특징

  • 양방향 암호화 중 속도가 가장 빠름.
  • 키가 노출되면 암호화된 데이터를 해독할 수 있음.

대표적인 대칭키 알고리즘

  1. AES (Advanced Encryption Standard)
    • 현재 가장 널리 사용되는 대칭키 암호화 알고리즘.
    • 키 길이: 128비트, 192비트, 256비트를 지원.
    • 특징:
      • 속도가 빠르고 보안성이 뛰어남.
      • 군사, 금융, IoT 등 다양한 분야에서 표준으로 사용.
  2. DES (Data Encryption Standard)
    • 한때 널리 사용되었지만, 56비트 키의 보안 취약점 때문에 현재는 잘 사용되지 않음.
  3. Blowfish
    • 빠르고 유연하며 오픈 소스 환경에서 주로 사용.

비대칭키 암호화 (Asymmetric Encryption)

  • 암호화와 복호화에 서로 다른 두 개의 키를 사용
    • 공개키 (Public Key): 누구나 사용할 수 있도록 공개.
    • 개인키 (Private Key): 비공개로 소유.
  • 키 공유 문제를 해결할 수 있어 인터넷 보안, 디지털 서명, 전자 거래 등에 널리 사용.

특징

  • 대칭키 암호화보다 속도는 느리지만, 보안성이 높음.
  • 사용 사례: SSL/TLS, 전자 서명, 암호화된 메시지 전달.

대표적인 비대칭키 알고리즘

  1. RSA (Rivest-Shamir-Adleman)
    • 가장 널리 사용되는 비대칭키 알고리즘.
    • 2048비트 이상의 키 길이를 사용하여 높은 보안성 제공.
    • 사용 사례:
      • SSL/TLS 통신(HTTPS 보안).
      • 이메일 암호화(PGP).
  2. ECC (Elliptic Curve Cryptography)
    • 짧은 키로도 RSA와 동일한 보안성을 제공.
    • 자원 제약이 있는 모바일 기기나 IoT 환경에서 사용.
  3. DSA (Digital Signature Algorithm)
    • 디지털 서명에 특화된 알고리즘.