2020년 8월 11일 화요일

[암호] MAC(Message Authentication Code), HMAC, CMAC

보안에서 MAC( Message Authentication Code )은 메시지의 위변조를 확인하기 위해 쓰이는 작은 정보이다. 
비밀키를 이용하기 때문에 인증 역활도 수행가능하다.

MAC은 크게 HMAC과 CMAC이 존재 하는데 
MAC을 만들때 Hash 함수를 사용하면 HMAC( Hash-based Message Authentication Code )
Block 함수를 사용하면 CMAC( Cipher-based Message Authentication Code )가 된다.


HMAC은 Hash함수를 뭘로 쓰느냐에 따라 HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA512등등 여러 버전이 존재한다.

Hash함수를 간단히 하게 설명하자면 임의의 크기를 가진 데이터를 고정된 작은 데이터 크기로 변환시키는 알고리즘이다.
전체 메시지에서 작은 부분이라도 바뀌게되면 결과 값이 달라지기 때문에 데이터의 위변조를 쉽게 확인할 수 있다.
Message Digest라고도 한다.

HMAC의 주된 기능은 사용자 인증(authentication)과 데이터 무결성(data integerity) 보장이며 자세한 스펙은 RFC 2104(https://tools.ietf.org/html/rfc2104)에 정의 되어 있다.


 
CMAC은 알고리즘과 운영(mode)에 따라서 AES CBC-MAC, ARIA CBC-MAC 등이 존재한다

CMAC도 마찬가지로 주된 기능은 사용자 인증(authentication)과 데이터 무결성(data integerity)이다. 
자세한 스펙은 RFC 4493(https://tools.ietf.org/html/rfc4493)에 정의 되어 있다.




댓글 없음:

댓글 쓰기