HMAC와 RSA의 암호화 방식: 대칭키와 비대칭키 차이 이해

Kkd·2025년 1월 10일
0

매일메일 개념정리

목록 보기
64/93

1. 대칭키와 비대칭키 개념

  1. 대칭키(Symmetric Key)

    • 하나의 키로 데이터를 암호화(Encrypt)하고 복호화(Decrypt)합니다.
    • 송신자와 수신자가 동일한 키를 공유해야 합니다.
    • 장점: 연산 속도가 빠르고 구현이 간단합니다.
    • 단점: 키를 안전하게 공유하기 어려움(키 배포 문제).

    예시:

    • 메시지를 암호화: Encrypt(message, key)
    • 메시지를 복호화: Decrypt(encryptedMessage, key)
  2. 비대칭키(Asymmetric Key)

    • 두 개의 키를 사용합니다:
      • 공개키(Public Key): 데이터를 암호화할 때 사용.
      • 개인키(Private Key): 데이터를 복호화할 때 사용.
    • 공개키는 누구나 알 수 있지만, 개인키는 소유자만 알고 있어야 합니다.
    • 장점: 키 배포 문제를 해결(공개키를 자유롭게 공유 가능).
    • 단점: 연산 속도가 느림.

    예시:

    • 메시지를 암호화: Encrypt(message, publicKey)
    • 메시지를 복호화: Decrypt(encryptedMessage, privateKey)

2. HMAC (대칭키 방식)

  • HMAC(Hash-based Message Authentication Code)는 대칭키를 사용하는 데이터 무결성 확인 및 인증 방식입니다.
    • 특정 키와 메시지를 조합하여 해시 값을 생성.
    • 이 해시 값을 통해 데이터가 위변조되지 않았음을 확인.
  • 특징:
    • 키를 공유한 두 당사자만 해시 값을 생성하고 검증할 수 있음.
    • 빠르고 간단하지만, 키를 안전하게 공유해야 함.

HMAC 동작 원리 예시:
1. 송신자:

  • 메시지: "Hello"
  • 키: "secret"
  • HMAC: HMAC("Hello", "secret") = hashValue
  1. 수신자:
    • 동일한 키("secret")로 메시지 검증:
      HMAC("Hello", "secret") == hashValue

3. RSA (비대칭키 방식)

  • RSA는 비대칭키를 사용하는 암호화 알고리즘입니다.
    • 데이터를 암호화할 때는 공개키를 사용.
    • 데이터를 복호화할 때는 개인키를 사용.
    • 반대로, 데이터에 개인키로 서명을 생성하고 공개키로 검증할 수도 있음(디지털 서명).

RSA 동작 원리 예시:
1. 송신자:

  • 메시지: "Hello"
  • 수신자의 공개키 사용:
    Encrypt("Hello", publicKey) = encryptedMessage
  1. 수신자:
    • 자신의 개인키 사용:
      Decrypt(encryptedMessage, privateKey) = "Hello"

4. 대칭키와 비대칭키 비교

특성대칭키 (HMAC)비대칭키 (RSA)
키의 개수하나의 키공개키 + 개인키 (두 개의 키)
보안성키가 유출되면 모든 정보가 위험공개키를 사용하므로 키 유출 위험 낮음
속도빠름느림
사용 예HMAC, AESRSA, SSL/TLS 인증
키 공유 문제키를 안전하게 전달해야 함공개키를 통해 문제 해결

추가 학습 자료

profile
🌱

0개의 댓글