👩💻 개발개념
HMAC과 RSA
케로⸝⸝◜࿀◝ ⸝⸝
2024. 6. 7. 15:21
HMAC(Hash-based Message Authentication Code)
개념
- HMAC는 암호화 해시 함수와 비밀 키를 사용하여 메시지의 무결성과 인증을 보장하는 방식
- 주로 메시지의 무결성을 확인하고, 송신자의 인증을 보장하기 위해 사용됨
특징
- 무결성 보장: 메시지가 전송 중에 변경되지 않았음을 확인할 수 있음
- 인증: 송신자의 신원을 확인할 수 있음
- 비밀 키 사용: 대칭 키 암호화 방식으로, 송신자와 수신자가 동일한 비밀 키를 공유
- 속도: 해시 함수의 속도에 따라 HMAC의 생성 및 검증 속도가 결정되며 보통 MD5, SHA-1, SHA-256 등의 해시 함수를 사용
작동원리
- 메시지와 비밀 키를 결합해서 해시 값을 생성
- 생성된 해시 값이 메시지와 함께 전송
- 수신자는 동일한 비밀 키로 해시 값을 생성하여, 전송된 해시 값과 비교. 일치하면 메시지가 변경되지 않았음을 확인
RSA(Rivest-Shamir-Adleman)
개념
- RSA는 공개 키 암호화 방식 중 하나로, 공개 키와 개인 키의 쌍을 사용하여 데이터를 암호화하고 복호화한다.
- 주로 데이터의 암호화 및 복호화, 디지털 서명에 사용
특징
- 비대칭 암호화: 공개 키와 개인 키의 쌍을 활용한다. 공개 키는 누구나 알 수 있지만, 개인 키는 비밀로 유지됨
- 보안성: 큰 소수의 곱을 이용한 수학적 문제를 기반으로 하여 높은 보안성을 제공
- 키 관리: 공개 키는 자유롭게 배포할 수 있지만, 개인 키는 비밀로 유지해야함
- 사용 용도
- 암호화: 데이터를 암호화하여 전송할 떄 사용. 수신자는 자신의 개인 키로 복호화할 수 있음
- 디지털 서명: 메시지의 무결성과 송신자의 인증을 위해 사용. 송신자는 자신의 개인 키로 서명을 하고, 수신자는 공개 키로 서명을 검증
작동원리
- 키 생성: 두 개의 큰 소수를 선택하여 공개 키와 개인 키를 생성
- 암호화: 송신자는 수신자의 공개 키로 데이터를 암호화하여 전송
- 복호화: 수신자는 자신의 개인 키로 데이터를 복호화하여 원본 메시지를 획득
- 디지털 서명: 송신자는 개인 키로 메시지에 서명하고, 수신자는 공개 키로 서명을 검증
HMAC과 RSA의 차이점
1. 키 유형
- HMAC: 대칭 키 암호화 (송신자와 수신자가 동일한 비밀 키를 공유)
- RSA: 비대칭 키 암호화 (공개 키와 개인 키의 쌍)
2. 사용 목적
- HMAC: 메시지의 무결성과 송신자 인증을 위해 사용
- RSA: 데이터의 암호화/복호화 및 디지털 서명에 사용
3. 보안 모델
- HMAC: 해시 함수와 비밀 키를 사용하여 빠르고 효율적으로 메시지 인증을 수행
- RSA: 수학적 문제(큰 소수의 곱셈)을 기반으로 하여 더 높은 보안성을 제공
3. 속도
- HMAC: 비교적 빠름 (해시 함수의 속도에 의존)
- RSA: 비교적 느림 (복잡한 수학 연산 필요)
정리
HMAC은 빠르고 간단한 무결성 검증과 인증에 적합하고, RSA는 강력한 보안이 필요한 암호화 및 디지털 서명에 적합
반응형