Hash-based Message Authentication Code
비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 메시지 인증 코드
사용되는 해시 함수
모든 해시함수가 사용될 수 있다. HMAC 뒤에 사용 해시 알고리즘을 표기한다.
예시)
- HMAC-MD5
- HMAC-SHA256
- HMAC-SHA3-256
HMAC의 안전성은 사용되는 해시 알고리즘의 안전성과 비밀키 관리 안전성에 기반한다.
HMAC 생성 방법
- H = 암호화 해시 함수
- m = 인증 대상 메시지
- K = 기밀 키
- K' = 기밀 키 K에서 파생된 블록 크기 키
- || = 문자열 연결(concat)
- ⊕ = 비트 배타적 논리합(XOR)
- opad = 블록 크기의 외부 패딩으로서, 반복되는 0x5c 값 바이트로 구성
- ipad = 블록 크기의 내부 패딩으로서 반복되는 0x36 값 바이트로 구성
HMAC-SHA1 생성 예시
사용 사례
HMAC 값 예시
HMAC_MD5("key", "The quick brown fox jumps over the lazy dog") = 80070713463e7749b90c2dc24911e275 HMAC_SHA1("key", "The quick brown fox jumps over the lazy dog") = de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9 HMAC_SHA256("key", "The quick brown fox jumps over the lazy dog") = f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
같이 보기
참고 문헌
- 위키피디아 - HMAC