HMAC

IT위키
보안기사 (토론 | 기여)님의 2021년 6월 25일 (금) 14:54 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
인쇄용 판은 더 이상 지원되지 않으며 렌더링 오류가 있을 수 있습니다. 브라우저 북마크를 업데이트해 주시고 기본 브라우저 인쇄 기능을 대신 사용해 주십시오.

Hash-based Message Authentication Code

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

사용되는 해시 함수

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

예시)

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

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

HMAC 생성 방법

HMAC Formula.svg

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

HMAC-SHA1 생성 예시

HMAC-SHA1 생성 절차.png

사용 사례

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