1. `메세지 인증 코드(MAC)` 또는 `메세지 무결성 코드(MIC)`
ㅇ 송신자와 수신자가 공유하는 비밀키(Secret Key)를 이용하여,
- 메시지의 무결성(Integrity)과 송신자 인증(Authentication)을 확인하기 위해,
- 원본 메시지로부터 계산되는 고정 길이의 인증 코드
ㅇ 특징
- 원 메세지 내 1 비트 만 변해도, 그에따라 값이 크게 변하는 짧은 코드
- MAC은 메시지 끝에 함께 전송되며, 수신 측은 동일한 비밀키로 다시 계산하여 비교함
ㅇ 구성
- 입력 : `임의 길이의 메세지` + `송신,수신자의 공유 키`
- 출력 : `고정 길이의 코드값`
ㅇ 기능
- 메세지 내용의 무결성 확인 (변경 검출)
. 물론, 송수신 간에 공유하는 비밀키 또는 개인키 (공유 키)가 필요함
- 메세지 송신자가 진짜인지 인증 (인증 확인)
. 물론, 키 누출시에는 조작이나 거짓 행세에 당할 위험 있게됨
2. HMAC (Hash MAC 코드)
ㅇ 암호학적 해시 함수를 이용하여, 메시지 인증 코드(MAC)를 생성하는 대표적인 방식
- RFC 2104에서 정의
- 현재 가장 널리 사용되는 MAC 생성 방식
ㅇ 주요 일방향 해시 함수 종류
- SHA-1 (HMAC-SHA-1), SHA-224 (HMAC-SHA-224), SHA-256 (HMAC-SHA-256),
SHA-384 (HMAC-SHA-384), SHA-512 (HMAC-SHA-512) 등
ㅇ 특징
- 비밀키와 메시지를 단순히 연결하여 해시하는 것이 아니라,
. 내부 패딩(ipad), 외부 패딩(opad)을 이용하여 두 번의 해시 연산을 수행
- 해시 함수의 충돌 공격 위험을 줄이도록 설계됨
ㅇ 장점
- 기존 해시 함수를 그대로 활용 가능
- 구현이 간단
- 매우 빠른 계산 속도
- 해시 함수의 일부 취약점을 상당 부분 보완
- 키가 없으면 올바른 MAC 생성이 사실상 불가능