1. MAC(Message Authentication Code)

메시지 인증 코드(Message Authentication Code, 약칭 MAC)는 메시지의 인증에 쓰이는 작은 크기의 정보이다. 이 MAC을 이용하여, 메시지의 무결성 및 신뢰성을 보장하는데 사용한다. 


MAC의 Algorithm은 인증을 위한 Secret Key와 임의 길이의 Message를 입력 받아 MAC을 출력하는 Keyed Hash Function을 사용한다. 

MAC은 Cryptographic Hash Function과 같은 특성을 가진다. 그 메인 속성은 다음과 같다.


    • Hash value로 계산하기 쉽다.
    • 생성된 Hash를 통해서 Message를 generate 하는 것이 불가능하다.
    • Hash를 수정하지 않고, Message를 수정하는것이 불가능하다.
    • 다른 두 Message가 동일한 Hash를 보내는것이 불가능하다.

사용되는 Hash algorithm은 MD5, SHA-1, SHA-2 등 일반적인 암호화 알고리즘을 그대로 사용할 수 있으며, 사용된 알고리즘에 따라서 고정길이의 Hash value가 생성된다.


MAC을 간단하게 도식화 하면 다음과 같다.



MAC에 사용되는 Key에 따라서, CMAC, HMAC, UMAC, VMAC 등으로 나뉜다.




2. HMAC(Hash-based Message Authentication Code)

HMAC은 Keyed-Hash Message Authentication Code로  Key를 조합하여 Hash 함수를 구하는 방식이다.  


간단히 HMAC을 설명하면, 송신자와 수신자만이 공유하고 있는 Key와 Message를 혼합하여 Hash 값을 만드는 것이다.


채널을 통해 보낸 메시지가 훼손되었는지 여부를 확인하는데 사용할 수 있다. MAC의 특성상 역산이 불가능 하므로, 수신된 메시지와 Hash 값을 다시 계산하여,계산된 HMAC과 전송된 HMAC이 일치하는지를 확인하는 방식이다.


대칭블록암호에 기반을 둔 MAC 방식으로, 알고리즘에 따라서 HMAC value size가 달라진다. 


  • HMAC_MD5("", "")     = 0x74e6f7298a9c2d168935f58c001bad88
  • HMAC_SHA1("", "")    = 0xfbdb1d1b18aa6c08324b7d64b71fb76370690e1d
  • HMAC_SHA256("", "") = 0xb613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad 




'Mobile 진단 > 참고자료' 카테고리의 다른 글

해쉬함수 별 결과값 길이  (0) 2018.09.05

+ Recent posts