개인공부용
출처 : ChatGPT
🔐 MAC이 먼저 뭐냐면?
MAC (Message Authentication Code)
“이 메시지가 변조되지 않았고, 같은 비밀키를 가진 쪽에서 보낸 게 맞는지 확인하는 값”
- 암호화 ❌ (내용은 안 숨김)
- 위·변조 탐지 ⭕
- 송신자 인증 ⭕
1️⃣ CMAC (Cipher-based MAC)



▶ 이름 뜻
- Cipher-based MAC
- 👉 블록 암호(AES) 를 이용한 MAC
▶ 내부 원리 (쉽게)
- 비밀키 K 하나 있음
- 메시지를 블록으로 나눔
- AES로 체인처럼 암호화
- 마지막 블록 결과 = CMAC
M1 → AES → X1 M2 → AES → X2 ... Mn → AES → CMAC
(중간에 서브키 K1/K2 생성 규칙 있음)
▶ 특징 요약
항목내용
| 기반 | 블록암호 (보통 AES) |
| 키 | 대칭키 1개 |
| 출력 | 고정 길이 (보통 128bit) |
| 장점 | HW 구현 매우 쉬움 |
| 단점 | AES 필요 |
▶ 언제 쓰나?
- SoC / MCU / 보안카메라
- 하드웨어 AES 엔진이 있을 때
- CC·FIPS 인증 시스템
📌 실무 한 줄
“AES 있는 칩이면 CMAC이 제일 싸고 빠름”
2️⃣ HMAC (Hash-based MAC)



▶ 이름 뜻
- Hash-based MAC
- 👉 해시 함수(SHA-256 등) 기반
▶ 내부 원리 (쉽게)
- 비밀키 K 준비
- key ⊕ ipad → 해시
- 결과 ⊕ opad → 다시 해시
H( (K ⊕ opad) || H( (K ⊕ ipad) || message ) )
▶ 특징 요약
항목내용
| 기반 | 해시함수 (SHA-256 등) |
| 키 | 대칭키 1개 |
| 출력 | 해시 길이 |
| 장점 | 구조 단순, 안전성 검증 풍부 |
| 단점 | 연산량 상대적으로 큼 |
▶ 언제 쓰나?
- 서버 / 클라우드 / API 인증
- TLS, JWT, REST API
- SW 환경
📌 실무 한 줄
“서버·네트워크 세계의 표준 MAC”
🔁 CMAC vs HMAC 핵심 비교
구분CMACHMAC
| 기반 | AES 같은 블록암호 | SHA 같은 해시 |
| HW 가속 | ⭐⭐⭐⭐⭐ | ⭐⭐ |
| SW 구현 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 성능 | 빠름 (HW) | 빠름 (CPU) |
| 표준 | NIST SP 800-38B | RFC 2104 |
| 대표 알고리즘 | AES-CMAC | HMAC-SHA256 |
🔐 보안성 차이는?
👉 둘 다 현재 기준으로 안전
- CMAC ≠ CBC-MAC (취약 버전)
- HMAC은 해시 취약성과 거의 독립
⚠️ 단, 키 관리가 제일 중요
🎯 실무 선택 가이드
환경추천
| 카메라 SoC / MCU | AES-CMAC |
| Secure Boot | CMAC |
| API 인증 | HMAC-SHA256 |
| PUF Helper Data 보호 | CMAC or HMAC |
| 클라우드 연동 | HMAC |
'C.S. > Security' 카테고리의 다른 글
| LDAP (Lightweight Directory Access Protocol) (0) | 2026.01.13 |
|---|---|
| ECDSA & EdDSA (0) | 2026.01.08 |
| ECDSA (Elliptic Curve Digital Signature Algorithm) (0) | 2026.01.08 |
| PUF 세부 특징 (0) | 2026.01.08 |
| PUF 분류 (0) | 2026.01.08 |