HMAC 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
3번째 줄: 3번째 줄:
비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 [[메시지 인증 코드]]
비밀키를 이용하여 메시지를 해싱함으로써 무결성과 부인방지 기능을 부여하는 [[메시지 인증 코드]]


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


'''예시)'''
'''예시)'''


*HMAC-MD5
* HMAC-MD5
*HMAC-SHA256
* HMAC-SHA256
*HMAC-SHA3-256
* HMAC-SHA3-256


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


==HMAC 생성 방법==
== HMAC 생성 방법 ==
[[파일:HMAC Formula.svg|350x350픽셀]]
[[파일: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
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)
원본 주소 "https://itwiki.kr/w/HMAC"