메시지 인증 코드 (Message Authentication Code)
한 줄 정의: 비밀 키를 이용해 메시지가 변조되지 않았고 정당한 송신자로부터 왔음을 확인할 수 있게 해주는 짧은 검증 값입니다.
쉽게 풀면
메시지 인증 코드는 편지에 함께 넣는 봉인 도장과 비슷합니다. 보내는 사람이 비밀 키와 메시지 내용을 함께 이용해 짧은 인증 값을 만들어 붙이면, 받는 사람도 같은 키로 같은 계산을 해서 값이 일치하는지 확인합니다. 중간에 누군가 메시지를 살짝 바꾸면 인증 값이 달라지기 때문에 위변조 여부를 알 수 있습니다. 다만 이 인증 값 자체는 내용을 숨기지는 않으므로, 기밀성이 필요하면 암호화와 별도로 함께 사용해야 합니다.
왜 중요한가
메시지 인증 코드는 데이터가 전송 중에 변조되지 않았는지를 확인하는 무결성 검증의 핵심 도구로 정보보안학 전반에서 중요하게 다루어집니다. 통신 프로토콜, 파일 무결성 검사, API 요청 검증 등 다양한 상황에서 폭넓게 활용됩니다. 암호화와 함께 사용될 때 기밀성과 무결성을 동시에 보장하는 인증 암호화 설계의 기본 구성요소이기도 합니다.
논문에서는 이렇게 쓰입니다
"제안된 프로토콜은 각 메시지에 메시지 인증 코드를 첨부하여 전송 도중의 위변조를 탐지한다."
통신 과정에서 데이터 무결성을 확보하는 목적으로 메시지 인증 코드가 사용되는 예시입니다.
"본 연구는 CMAC과 HMAC 두 가지 메시지 인증 코드 방식의 연산 성능을 비교하였다."
서로 다른 구현 방식의 메시지 인증 코드를 성능 측면에서 비교하는 연구입니다.
조금 더 깊게 보면
메시지 인증 코드는 해시 함수를 기반으로 만드는 HMAC 방식과 블록 암호를 기반으로 만드는 CMAC 방식이 대표적입니다. 안전한 메시지 인증 코드는 키를 모르는 공격자가 유효한 인증 값을 위조하기 어렵다는 성질을 가져야 하며, 이는 위조 불가능성이라는 조건으로 평가됩니다.
주의할 점
메시지 인증 코드는 데이터의 무결성과 출처를 확인해줄 뿐, 그 자체로 데이터의 내용을 숨겨주지는 않습니다.