암호화 키 종류와 이해

저는 정보보안기사 공부할 때 대칭키, 비밀키, 공개키, 비공개키 용어들이 처음엔 좀 햇갈렸었습니다.

하지만 개념을 한번 이해하고 나면 쉬울 겁니다.

우선 암호화 방식은 크게 대칭키, 비대칭키로 나뉘게 되고 그 구분에 따라 사용하는 키의 용어가 다른 개념이라고 보시면 됩니다.

대칭키 암호화는 말 그대로 서로 대칭되는 동일한 키를 가지고 암호화하는 개념이라 대칭키로 암호화한 값을 복호화 하려면 서로 같은 키로 복호화 해야 합니다. 그렇기 때문에 각각 따로 가지고 있는 개념인 “개인키”라는 말보단 “비밀키”라고 정의합니다.

비대칭키 암호화는 말 그대로 비대칭이므로 서로 다른 키값으로 암복호화를 합니다. 그렇기 때문에 한 쪽에서는 공개키를 모두에게 공유하고, 그 공개키로 암호화한 값은 개인키로만 복호화 할 수 있는 겁니다. 즉 개인키는 한쪽만 가지고 있는 키가 됩니다.

여기서 비대칭키 암호화는 반대로 복호화를 개인키로만 할 수 있습니다. 이는 “인증”이라는 중요한 개념을 탄생시키게 됩니다.

자, 잘 한번 생각해봅시다. 한쪽만 복호화 키를 가지고 있다는 것은, 어찌 보면 도장과 같은 역할 한다고 볼 수 있습니다. (계약 등 거래 시 계약할 당사자가 도장을 가지고 있음)

개인키로 암호화한 결과는 반대로 공개키로만 복호화 할 수 있는데, 이 특징을 활용하면 특정 개인만 갖고 있는 개인키를 도장처럼 활용해 “인증“이라는 기능으로 사용할 수 있는 것입니다. 여기서 등장한것이 “전자봉투”입니다.

공개키와 개인키는 비대칭키 암호화 방식에서 쌍을 이루고, 비밀키와 대칭키는 대칭키 암호화 방식에서 쌍을 이룹니다.

암호화 방식사용되는 키특징장점단점
대칭키 암호화비밀키(대칭키)동일한 키로 암호화 및 복호화속도가 빠르며 효율적키 분배와 관리가 어려움, 키 유출 시 위험
비대칭키 암호화공개키, 개인키서로 다른 키로 암호화 및 복호화안전한 키 분배, 공개키 배포 가능속도가 느리며 자원 소모가 큼
하이브리드 암호화대칭키 + 공개키, 개인키대칭키로 데이터를 암호화하고 공개키로 대칭키 암호화대칭키의 빠른 속도 + 비대칭키의 안전성구현 복잡도 증가

암호화 방식 설명:

  1. 대칭키 암호화:
    • 암호화와 복호화에 같은 키(비밀키)를 사용합니다.
    • 빠르고 효율적이지만, 키를 안전하게 전달하는 문제가 있을 수 있습니다.
  2. 비대칭키 암호화:
    • 두 개의 키(공개키와 개인키)를 사용합니다.
    • 공개키로 암호화하고, 개인키로 복호화하며, 공개키는 자유롭게 배포할 수 있지만, 개인키는 안전하게 보관해야 합니다.
    • 속도가 느리지만 보안이 강력합니다.
  3. 하이브리드 암호화:
    • 대칭키 암호화의 속도와 비대칭키 암호화의 보안을 결합한 방식입니다.
    • 데이터를 대칭키로 암호화하고, 대칭키를 비대칭키 방식으로 암호화하여 안전하게 전달합니다.
    • 속도와 보안의 균형을 맞출 수 있는 방식입니다.

대칭키 암호화비대칭키 암호화에는 어떤 암호화가 있는지 좀 더 상세히 알아보겠습니다. 추가적으로 해시 함수디지털 서명 등의 암호화 기술이 있는데 함께 알아보도록 하겠습니다. 각 방식은 특정 용도와 목적에 맞게 사용됩니다.

1. 대칭키 암호화 방식 (Symmetric Encryption)

  • DES (Data Encryption Standard): 예전에는 많이 사용되었으나 보안 취약점이 발견되어 현재는 사용되지 않거나 제한적으로 사용됩니다.
  • 3DES (Triple DES): DES를 세 번 반복하여 암호화하는 방식으로, DES보다 안전하지만 여전히 취약할 수 있습니다.
  • AES (Advanced Encryption Standard): 대칭키 암호화 방식 중 가장 널리 사용되며, 보안성과 성능이 우수합니다. AES는 128, 192, 256비트 키를 사용합니다.
  • RC4: 스트림 암호 방식으로, 데이터가 전송될 때마다 순차적으로 암호화되는 방식입니다. 과거에 사용되었으나 보안상 취약점이 존재합니다.
  • Blowfish: 빠르고 효율적인 대칭키 암호화 알고리즘으로, 작은 크기의 암호화 키로도 강력한 보안을 제공합니다.
  • Twofish: Blowfish의 후속 알고리즘으로 보안과 성능이 더 향상된 알고리즘입니다.

2. 비대칭키 암호화 방식 (Asymmetric Encryption)

  • RSA (Rivest–Shamir–Adleman): 가장 널리 사용되는 비대칭키 암호화 알고리즘으로, 공개키와 개인키가 짝을 이룹니다. 데이터 암호화 및 디지털 서명에 사용됩니다.
  • ECC (Elliptic Curve Cryptography): 타원곡선 암호화 방식으로, RSA보다 짧은 키 길이로도 더 강력한 보안을 제공합니다. 특히 모바일 기기에서 많이 사용됩니다.
  • DSA (Digital Signature Algorithm): 디지털 서명 생성에 사용되는 알고리즘으로, 공개키 암호화 방식의 일종입니다.
  • ElGamal: 보안성이 뛰어나고 RSA와 비슷한 원리로 작동하지만, 효율성이 떨어져 실용성에서 RSA보다 적은 사용처를 가집니다.

3. 하이브리드 암호화 방식 (Hybrid Encryption)

  • SSL/TLS: 웹사이트의 보안을 위한 프로토콜로, 대칭키 암호화와 비대칭키 암호화를 결합하여 데이터 암호화 및 인증을 수행합니다. 웹 브라우저와 서버 간의 안전한 통신을 위해 사용됩니다.
  • PGP (Pretty Good Privacy): 이메일 보안을 위한 시스템으로, 대칭키 암호화와 비대칭키 암호화 방식을 결합하여 데이터를 암호화합니다.
  • IKE (Internet Key Exchange): IPsec VPN에서 사용되는 프로토콜로, 대칭키와 비대칭키 방식을 조합하여 키 교환과 인증을 수행합니다.

4. 해시 함수 (Hash Functions)

  • MD5 (Message Digest Algorithm 5): 128비트 해시 값을 생성하는 알고리즘으로, 한때 많이 사용되었으나 충돌 공격에 취약해 현재는 사용을 권장하지 않습니다.
    • 실무에서는 파일의 위변조 여부를 판별할 때 정도로 주로 쓰이며, 변경관리시스템에서 파일의 위변조가 있었는지 감사할 때 주로 사용합니다. 동일한 파일명을 서버에 넣더라도, MD5해쉬값이 기존에 등록된 값과 다르면, 파일의 변조가 있었다고 판단할 수 있습니다. (변경관리 프로세스를 타지 않은 파일의 수기 배포 라던가…)
  • SHA (Secure Hash Algorithm): MD5보다 더 강력한 해시 함수로, SHA-1, SHA-256, SHA-512 등이 있습니다. SHA-256과 SHA-512는 현재 많이 사용됩니다.
  • HMAC (Hash-based Message Authentication Code): 해시 함수와 비밀키를 결합한 메시지 인증 코드로, 데이터의 무결성을 확인하는 데 사용됩니다.

5. 디지털 서명 (Digital Signatures)

  • RSA 서명: RSA 알고리즘을 사용하여 디지털 서명을 생성하는 방식입니다. 개인키로 서명하고, 공개키로 서명을 검증합니다.
  • ECDSA (Elliptic Curve Digital Signature Algorithm): 타원곡선 암호화를 사용하여 디지털 서명을 생성하는 알고리즘입니다. 보안성과 효율성에서 RSA보다 우수합니다.

6. 기타 암호화 기법

  • OTP (One-Time Pad): 완벽하게 안전한 암호화 방식으로, 키와 평문이 같은 길이를 가지며 한 번만 사용되는 암호화 기법입니다. 그러나 키 분배와 관리가 매우 어려운 점이 단점입니다.
  • Homomorphic Encryption: 암호화된 데이터 위에서 직접 계산을 수행할 수 있는 암호화 기법으로, 클라우드 환경에서 데이터의 프라이버시를 보호할 수 있습니다. (한글로는 동형 암호화라고도 합니다.)

이처럼 암호화 방식은 각각의 목적과 사용 환경에 따라 다양하게 선택되어 사용됩니다.

Leave a Comment