HMAC 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
3번째 줄: | 3번째 줄: | ||
비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 [[메시지 인증 코드]] | 비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 [[메시지 인증 코드]] | ||
==사용되는 해시 함수== | == 사용되는 해시 함수 == | ||
모든 해시함수가 사용될 수 있다. HMAC 뒤에 사용 해시 알고리즘을 표기한다. | 모든 해시함수가 사용될 수 있다. HMAC 뒤에 사용 해시 알고리즘을 표기한다. | ||
'''예시)''' | '''예시)''' | ||
*HMAC-MD5 | * HMAC-MD5 | ||
*HMAC-SHA256 | * HMAC-SHA256 | ||
*HMAC-SHA3-256 | * HMAC-SHA3-256 | ||
HMAC의 안전성은 사용되는 해시 알고리즘의 안전성과 비밀키 관리 안전성에 기반한다. | HMAC의 안전성은 사용되는 해시 알고리즘의 안전성과 비밀키 관리 안전성에 기반한다. | ||
==HMAC 생성 방법== | == HMAC 생성 방법 == | ||
[[파일:HMAC | [[파일:HMAC 공식.svg|500x500픽셀]] | ||
*H = 암호화 해시 함수 | * H = 암호화 해시 함수 | ||
*m = 인증 대상 메시지 | * m = 인증 대상 메시지 | ||
*K = 기밀 키 | * K = 기밀 키 | ||
*K' = 기밀 키 K에서 파생된 블록 크기 키 | * K' = 기밀 키 K에서 파생된 블록 크기 키 | ||
*|| = 문자열 연결(concat) | * || = 문자열 연결(concat) | ||
*⊕ = 비트 배타적 논리합(XOR) | * ⊕ = 비트 배타적 논리합(XOR) | ||
*opad = 블록 크기의 외부 패딩으로서, 반복되는 0x5c 값 바이트로 구성 | * opad = 블록 크기의 외부 패딩으로서, 반복되는 0x5c 값 바이트로 구성 | ||
*ipad = 블록 크기의 내부 패딩으로서 반복되는 0x36 값 바이트로 구성 | * ipad = 블록 크기의 내부 패딩으로서 반복되는 0x36 값 바이트로 구성 | ||
'''HMAC-SHA1 생성 예시''' | '''HMAC-SHA1 생성 예시''' | ||
31번째 줄: | 31번째 줄: | ||
[[파일:HMAC-SHA1 생성 절차.png|600x600픽셀]] | [[파일:HMAC-SHA1 생성 절차.png|600x600픽셀]] | ||
==사용 사례== | == 사용 사례 == | ||
*[[IPSec]] | * [[IPSec]] | ||
*[[SSH]] | * [[SSH]] | ||
*[[TLS(SSL)]] | * [[TLS(SSL)]] | ||
*[[JWT]] | * [[JWT]] | ||
==HMAC 값 예시== | == HMAC 값 예시 == | ||
HMAC_MD5("key", "The quick brown fox jumps over the lazy dog") = 80070713463e7749b90c2dc24911e275 | 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_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_SHA256("key", "The quick brown fox jumps over the lazy dog") = f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8 | ||
==같이 보기== | == 같이 보기 == | ||
*[[메시지 인증 코드]] | * [[메시지 인증 코드]] | ||
*[[해시]] | * [[해시]] | ||
==참고 문헌== | == 참고 문헌 == | ||
*위키피디아 - HMAC | * 위키피디아 - HMAC |