케로⸝⸝◜࿀◝ ⸝⸝ 2024. 6. 7. 15:21

HMAC(Hash-based Message Authentication Code)

개념

  • HMAC는 암호화 해시 함수와 비밀 키를 사용하여 메시지의 무결성과 인증을 보장하는 방식
  • 주로 메시지의 무결성을 확인하고, 송신자의 인증을 보장하기 위해 사용됨

 

특징

  • 무결성 보장: 메시지가 전송 중에 변경되지 않았음을 확인할 수 있음
  • 인증: 송신자의 신원을 확인할 수 있음
  • 비밀 키 사용: 대칭 키 암호화 방식으로, 송신자와 수신자가 동일한 비밀 키를 공유
  • 속도: 해시 함수의 속도에 따라 HMAC의 생성 및 검증 속도가 결정되며 보통 MD5, SHA-1, SHA-256 등의 해시 함수를 사용

 

작동원리

  1. 메시지와 비밀 키를 결합해서 해시 값을 생성
  2. 생성된 해시 값이 메시지와 함께 전송
  3. 수신자는 동일한 비밀 키로 해시 값을 생성하여, 전송된 해시 값과 비교. 일치하면 메시지가 변경되지 않았음을 확인

 

RSA(Rivest-Shamir-Adleman)

개념

  • RSA는 공개 키 암호화 방식 중 하나로, 공개 키와 개인 키의 쌍을 사용하여 데이터를 암호화하고 복호화한다.
  • 주로 데이터의 암호화 및 복호화, 디지털 서명에 사용

 

특징

  • 비대칭 암호화: 공개 키와 개인 키의 쌍을 활용한다. 공개 키는 누구나 알 수 있지만, 개인 키는 비밀로 유지됨
  • 보안성: 큰 소수의 곱을 이용한 수학적 문제를 기반으로 하여 높은 보안성을 제공
  • 키 관리: 공개 키는 자유롭게 배포할 수 있지만, 개인 키는 비밀로 유지해야함
  • 사용 용도
    • 암호화: 데이터를 암호화하여 전송할 떄 사용. 수신자는 자신의 개인 키로 복호화할 수 있음
    • 디지털 서명: 메시지의 무결성과 송신자의 인증을 위해 사용. 송신자는 자신의 개인 키로 서명을 하고, 수신자는 공개 키로 서명을 검증

 

작동원리

  1. 키 생성: 두 개의 큰 소수를 선택하여 공개 키와 개인 키를 생성
  2. 암호화: 송신자는 수신자의 공개 키로 데이터를 암호화하여 전송
  3. 복호화: 수신자는 자신의 개인 키로 데이터를 복호화하여 원본 메시지를 획득
  4. 디지털 서명: 송신자는 개인 키로 메시지에 서명하고, 수신자는 공개 키로 서명을 검증

 

HMAC과 RSA의 차이점

1. 키 유형

  • HMAC: 대칭 키 암호화 (송신자와 수신자가 동일한 비밀 키를 공유)
  • RSA: 비대칭 키 암호화 (공개 키와 개인 키의 쌍)

 

2. 사용 목적

  • HMAC: 메시지의 무결성과 송신자 인증을 위해 사용
  • RSA: 데이터의 암호화/복호화 및 디지털 서명에 사용

 

3. 보안 모델

  • HMAC: 해시 함수와 비밀 키를 사용하여 빠르고 효율적으로 메시지 인증을 수행
  • RSA: 수학적 문제(큰 소수의 곱셈)을 기반으로 하여 더 높은 보안성을 제공

 

3. 속도

  • HMAC: 비교적 빠름 (해시 함수의 속도에 의존)
  • RSA: 비교적 느림 (복잡한 수학 연산 필요)

 

정리

HMAC은 빠르고 간단한 무결성 검증과 인증에 적합하고, RSA는 강력한 보안이 필요한 암호화 및 디지털 서명에 적합

반응형