다섯 살도 알 수 있게 · 정보보안

MAC/HMAC이 뭐예요?

메시지 인증 코드(MAC/HMAC)를, 보낸 사람과 받는 사람만 가진 비밀 도장틀로 찍는 확인 도장 이야기로 풀어봤어요.

지문(해시)만 찍었어요받는 사람이 쪽지 내용이 안 바뀌었나 지문으로 확인하려고 해요

보낸 사람이 쪽지에 지문(해시)만 찍어 보냈어요.지문은 내용이 안 바뀌었는지는 보여주지만, 누가 보냈는지는 못 보여줘요.

위조자가 내용을 바꾸고지문도 새로 찍어요지문은 맞는데… 누가 보냈지?지문은 비밀이 필요 없어서, 내용을 바꾼 사람도 새 지문을 찍을 수 있어요

아무나 지문을 다시 찍을 수 있어요.지문은 비밀이 필요 없는 셈이라, 내용을 바꾼 사람도 새 지문을 똑같이 만들 수 있어요.

비밀 도장틀내용 + 도장틀로 찍어요받는 사람이 같은 도장틀로 다시 찍어 비교MAC/HMAC = 비밀 도장틀 없인 아무도 못 찍는 확인 도장

MAC/HMAC은 비밀 도장틀로 찍는 확인 도장이에요.도장틀(비밀 열쇠) 없인 아무도 맞는 도장을 못 찍어요. → 지문에 비밀을 더한 것이라고 보면 돼요.

비밀 도장틀이 필요해요보낸 사람과 받는 사람만 가져요
내용 + 도장틀로 찍어요HMAC = 지문 + 비밀 열쇠
도장틀 없인 위조 불가지문만 바꿔선 안 맞아요
받는 쪽도 같은 틀이 있어야 해요도장틀은 미리 나눠 가져야 해요
도구지키는 것누가 만들 수 있나지문(해시)안 바뀌었나만아무나비밀 도장(MAC/HMAC)안 바뀌었나 + 누가 보냈나도장틀 가진 사람만봉인 편지(암호화)남이 못 읽게만읽는 건 열쇠 가진 사람만

지문·비밀 도장·봉인 편지를 나란히 보면 이래요.지문·비밀 도장·봉인 편지는 서로 다른 약속을 지켜요. 하나가 다른 걸 대신하지 않아요.

둘 다 미리 도장틀을 나눠 가져야 해요비밀 도장은 '내가 안 찍었다'는 말을 못 막아요제3자 증명이 필요하면 왕의 도장(PKI 서명)을 써요

도장틀을 미리 나눠야 하고, '내가 안 찍었다'는 부인은 못 막아요.열쇠를 미리 나누는 문제가 남고, 제3자가 증명할 증거(부인 방지)가 필요하면 왕의 도장이 찍힌 신분증(디지털 서명)을 써요.

한 줄로

MAC/HMAC = 보낸 사람과 받는 사람만 가진 비밀 도장틀로 메시지 위에 찍는 확인 도장. 틀 없인 아무도 못 찍어서, 안 바뀌었는지와 누가 보냈는지를 같이 증명해요.

Message Authentication Code(MAC), 그중 해시 함수를 쓰는 방식이 HMAC(Hash-based MAC)이에요. 메시지와 공유 비밀키로 태그를 만들고(HMAC은 해시 함수로, CMAC은 블록 암호로), 같은 키를 가진 수신자만 같은 태그를 재계산해 검증할 수 있어요. 키 없는 해시(지문)는 우연한 변경만 잡아내고 일부러 고친 것은 못 막지만, MAC은 무결성과 발신자 인증을 함께 지켜요. 다만 키를 사전에 공유해야 하고, 부인 방지는 제공하지 않아요 — 그건 공개키 기반 전자서명(PKI)의 몫이에요.

어른들은 이렇게 불러요

MAC
Message Authentication Code
비밀 도장틀로 찍는 확인 도장. 메시지와 공유 비밀키로 함께 만든 태그예요.
HMAC
HMAC
해시로 만드는 비밀 도장. 해시 함수를 이용해 MAC을 만드는 가장 흔한 방식이에요.
해시(지문)
Hash (fingerprint)
비밀 없이 누구나 계산해요. 우연히 바뀐 것은 잡지만, 일부러 고치면 지문도 새로 찍을 수 있어요. → 물건마다 찍는 지문
무결성
Integrity
몰래 못 바꾸게. 해시도 MAC도 이걸 지켜요. → 지키는 것 세 가지
발신자 인증
Sender authentication
정말 그 사람이 보냈는지. 도장틀을 가진 사람만 맞는 도장을 찍을 수 있어서 증명돼요.
키 공유 문제
Key-distribution problem
도장틀을 미리 나눠야 하는 숙제. MAC/HMAC이 풀지 못하는 남은 문제예요.
부인 방지
Non-repudiation
'내가 안 보냈다'를 못 하게 막는 것. MAC은 못 해요. 왕의 도장(서명)이 해줘요. → 왕의 도장이 찍힌 신분증
TLS
TLS
봉인 편지를 주고받는 약속. 실제로는 봉인(암호화)과 비밀 도장(MAC) 둘 다 같이 써요. → 상점과 주고받는 봉인 약속
다음 이야기
비밀은 안 새게, 거짓은 안 섞이게 — 사다리 두 규칙 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →