HMAC

From CS Wiki

Hash-based Message Authentication Code

비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 메시지 인증 코드

사용되는 해시 함수[edit | edit source]

모든 해시함수가 사용될 수 있다. HMAC 뒤에 사용 해시 알고리즘을 표기한다.

예시)

  • HMAC-MD5
  • HMAC-SHA256
  • HMAC-SHA3-256

HMAC의 안전성은 사용되는 해시 알고리즘의 안전성과 비밀키 관리 안전성에 기반한다.

HMAC 생성 방법[edit | edit source]

350x350픽셀

  • H = 암호화 해시 함수
  • m = 인증 대상 메시지
  • K = 기밀 키
  • K' = 기밀 키 K에서 파생된 블록 크기 키
  • || = 문자열 연결(concat)
  • ⊕ = 비트 배타적 논리합(XOR)
  • opad = 블록 크기의 외부 패딩으로서, 반복되는 0x5c 값 바이트로 구성
  • ipad = 블록 크기의 내부 패딩으로서 반복되는 0x36 값 바이트로 구성

HMAC-SHA1 생성 예시

600x600픽셀

사용 사례[edit | edit source]

HMAC 값 예시[edit | edit source]

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

같이 보기[edit | edit source]

참고 문헌[edit | edit source]

  • 위키피디아 - HMAC