대칭키와 비대칭키 비교

대칭키와 비대칭키는 암호화 방식에서 데이터를 보호하기 위해 사용되는 두 가지 주요 암호화 기법입니다. 이 두 방식은 데이터를 암호화하고 복호화하는 데 사용하는 의 개념과 동작 방식에서 큰 차이를 보입니다.

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

개념

  • 대칭키 암호화는 하나의 키로 데이터를 암호화하고, 동일한 키로 복호화하는 방식입니다.
  • 암호화 키와 복호화 키가 동일하기 때문에, **"대칭"**이라는 이름이 붙었습니다.

특징

  • 빠른 처리 속도: 대칭키 방식은 비교적 계산이 단순하고, 속도가 빠르기 때문에 대용량 데이터를 암호화하는 데 적합합니다.
  • 키 분배 문제: 데이터를 안전하게 주고받기 위해서는 양측이 동일한 키를 공유해야 합니다. 이때, 키가 노출되지 않도록 안전하게 키를 전달하는 과정이 필요합니다. 이 과정에서 키가 유출되면 데이터가 안전하지 않게 됩니다.
  • 주요 알고리즘:
    • AES (Advanced Encryption Standard): 현재 가장 많이 사용되는 대칭키 알고리즘. 보안성과 효율성이 뛰어납니다.
    • DES (Data Encryption Standard): 한때 표준으로 사용되었으나, 키 길이가 짧아 보안성이 낮아져 현재는 거의 사용되지 않습니다.
    • 3DES (Triple DES): DES를 3번 반복하여 암호화하는 방식으로 보안을 강화한 방식이지만, AES에 비해 느리고 비효율적입니다.

예시

  • 파일 암호화: AES 같은 대칭키 알고리즘은 빠르기 때문에 파일을 암호화하거나 복호화하는 데 자주 사용됩니다.
  • 네트워크 통신: SSL/TLS 연결에서는 세션 중에 대칭키가 사용됩니다. TLS 초기 단계에서는 비대칭키로 키를 교환한 후, 실제 데이터 통신은 대칭키로 암호화하여 속도를 높입니다.

장점

  • 암호화/복호화 속도가 빠릅니다.
  • 계산이 간단해서 대용량 데이터를 처리하는 데 적합합니다.

단점

  • 키 분배 문제가 가장 큰 단점입니다. 안전한 방식으로 키를 공유하는 것이 어렵습니다. 중간에서 키를 탈취하면 보안이 무너집니다.

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

개념

  • 비대칭키 암호화는 서로 다른 두 개의 키를 사용하여 데이터를 암호화하고 복호화하는 방식입니다.
    • 공개키 (Public Key): 누구에게나 공개할 수 있는 키로, 데이터를 암호화할 때 사용됩니다.
    • 개인키 (Private Key): 본인만이 가지고 있어야 하는 비밀 키로, 암호화된 데이터를 복호화할 때 사용됩니다.
  • 이 두 키는 수학적으로 연결되어 있지만, 개인키가 없으면 공개키로 암호화된 데이터를 복호화할 수 없습니다.

특징

  • 키 분배 문제 해결: 공개키는 누구에게나 공개할 수 있기 때문에, 안전하게 키를 배포하는 문제가 상대적으로 덜 중요합니다. 상대방이 나에게 데이터를 보낼 때, 내 공개키로 데이터를 암호화하면, 나는 내 개인키로만 그 데이터를 복호화할 수 있습니다.
  • 주요 알고리즘:
    • RSA (Rivest-Shamir-Adleman): 가장 널리 사용되는 비대칭키 알고리즘. 큰 소수의 곱셈 문제에 기반한 알고리즘으로, 공개키와 개인키를 생성합니다.
    • ECC (Elliptic Curve Cryptography): RSA보다 더 짧은 키 길이로 동일한 수준의 보안을 제공하며, 상대적으로 더 빠릅니다.

예시

  • 전자 서명: 전자 서명은 개인키로 데이터를 암호화(서명)한 후, 상대방이 공개키로 복호화하여 서명의 유효성을 확인하는 방식입니다. 이를 통해 데이터가 원본 그대로이며, 특정 개인이 서명했다는 것을 보장할 수 있습니다.
  • SSL/TLS: 비대칭키는 주로 SSL/TLS 같은 보안 프로토콜에서 키를 교환하는 초기 단계에 사용됩니다. 클라이언트와 서버는 RSA 등의 비대칭키 암호화를 사용하여 세션 키(대칭키)를 안전하게 교환한 후, 실제 데이터 전송은 대칭키 암호화로 처리합니다.

장점

  • 공개키를 이용해 누구나 안전하게 데이터를 암호화할 수 있고, 개인키로만 복호화할 수 있기 때문에 키 분배 문제를 해결할 수 있습니다.
  • 전자 서명인증에 유용합니다. 개인키로 서명한 데이터를 공개키로 검증할 수 있어, 데이터의 무결성과 신원을 보장합니다.

단점

  • 대칭키에 비해 암호화 및 복호화 속도가 느립니다. 따라서 대용량 데이터를 처리하기에는 비효율적입니다.
  • 키 생성 및 계산이 복잡하여, 많은 자원을 소모합니다.

3. 대칭키와 비대칭키의 비교

특징 대칭키 암호화 비대칭키 암호화

사용하는 키의 개수 하나의 키로 암호화 및 복호화 공개키와 개인키, 두 개의 키 사용
속도 빠름 상대적으로 느림
보안성 키 분배 과정이 취약할 수 있음 키 분배 과정에서 더 안전함
키 관리 키를 안전하게 공유하는 것이 어려움 공개키를 누구에게나 공유할 수 있음
주요 용도 파일 암호화, 데이터 전송 암호화 인증, 전자 서명, 키 교환
알고리즘 예시 AES, DES, 3DES RSA, ECC, DSA

4. 대칭키와 비대칭키의 조합

현대의 암호화 시스템에서는 대칭키비대칭키를 혼합해서 사용하는 경우가 많습니다. 예를 들어:

  • SSL/TLS 프로토콜에서는 다음과 같은 방식으로 두 방식이 조합됩니다:
    1. 초기 연결 시, 비대칭키(예: RSA, ECC)를 사용하여 클라이언트와 서버 간에 세션 키(대칭키)를 안전하게 교환합니다.
    2. 이후의 데이터 전송은 대칭키(예: AES)로 암호화하여 빠르고 효율적인 통신을 수행합니다.

이런 방식은 보안성성능을 모두 고려한 최적의 방법입니다.

'Interview > Network' 카테고리의 다른 글

AES 알고리즘  (0) 2024.09.29
RSA 알고리즘  (0) 2024.09.29
TLS handshake 과정  (0) 2024.09.29
URL Parsing 내부 로직 C, Golang 구현  (0) 2024.09.29
웹브라우저에서 도메인을 접근하기 위한 내부 트래픽 로직  (1) 2024.09.28
김 정출