메시지 인증과 디지털서명, 무결성 검증 방식의 차이

MAC, HMAC, CMAC과 디지털서명의 키 구조·검증 범위·부인방지 차이를 비교하고 보안 시스템 적용 방식을 정리한다.

2026-08-14 · 최초 발행 2025-06-15

메시지의 진위를 확인하는 방식

메시지인증기법과 디지털서명은 모두 전송 중 변경되지 않은 데이터와 발신자의 신원을 확인하기 위한 암호 기술이다. 다만 공유 비밀키를 전제로 하는지, 제3자도 검증할 수 있는지를 기준으로 역할이 갈린다.

메시지인증기법은 수신한 메시지가 의도한 발신자에게서 왔고 전송 중 변경되지 않았는지 확인한다. 핵심 목표는 메시지 무결성과 인증이며, 일부 방식은 제한적인 부인방지 기능을 제공한다.

디지털서명은 전자문서의 서명자를 증명하면서 문서 무결성을 보장한다. 서명자가 나중에 서명 사실을 부인하지 못하게 하는 부인방지가 이 방식의 중요한 특성이다.

공유 비밀키로 검증하는 메시지인증기법

MAC(Message Authentication Code)은 비밀키와 메시지를 입력으로 MAC 값을 생성한다. 송신자는 생성한 MAC을 메시지와 함께 보내고, 수신자는 같은 공유 비밀키로 MAC을 다시 계산해 수신값과 비교한다. 두 값이 일치하면 메시지의 진위를 확인할 수 있다.

HMAC(Hash-based Message Authentication Code)은 암호학적 해시 함수와 비밀키를 결합한다. SHA-256, SHA-3 등의 해시 함수를 활용하며, 중첩된 해싱 과정을 통해 보안을 제공한다.

CMAC(Cipher-based Message Authentication Code)은 블록 암호 기반의 MAC이다. AES, DES 등의 암호 알고리즘을 사용하며 가변 길이 메시지를 처리하는 데 적합하다.

이 방식은 비교적 계산 부하가 적어 빠른 인증에 유리하다. 반면 송신자와 수신자가 같은 비밀키를 관리해야 하고, 동일한 키를 보유한 당사자가 아닌 제3자에게 메시지의 진위를 증명하기는 어렵다. 통신 상대가 많아질수록 안전한 키 관리도 복잡해진다.

개인키로 서명하고 공개키로 확인하는 방식

디지털서명은 공개키와 개인키 쌍을 사용한다. 개인키는 서명자만 보유하고, 공개키는 검증에 사용할 수 있도록 공개한다.

서명자는 먼저 문서의 해시값, 즉 다이제스트를 계산한다. 이어 개인키로 이 해시값을 암호화해 디지털서명을 만들고, 원본 문서와 서명을 함께 전달한다. 수신자는 공개키를 얻어 서명을 복호화하고, 수신 문서에서 직접 계산한 해시값과 비교한다. 두 값이 같으면 서명이 유효하다.

서명 검증 (수신자)서명 생성 (송신자)일치불일치원본 문서해시 함수문서 다이제스트암호화개인키디지털 서명문서 + 서명 전송문서 수신서명 수신해시 함수계산된 다이제스트복호화공개키원본 다이제스트비교유효한 서명유효하지 않은 서명

RSA 서명은 소인수분해의 어려움에 기반하며 광범위하게 쓰이는 표준 알고리즘이다. 키 크기는 일반적으로 2048비트 이상이다.

DSA(Digital Signature Algorithm)는 미국 NIST에서 개발한 표준 알고리즘으로, 이산대수 문제의 복잡성에 기반한다. RSA보다 서명 생성은 빠르지만 검증은 느리다.

ECDSA(Elliptic Curve Digital Signature Algorithm)는 타원곡선 암호를 사용한다. 작은 키 크기로 높은 보안성을 제공해 모바일 및 IoT 환경에 적합하다.

EdDSA(Edwards-curve Digital Signature Algorithm)는 에드워드 곡선을 사용하는 알고리즘이다. 높은 보안성과 성능을 제공하며, Ed25519가 가장 널리 사용되는 변형이다.

키의 성격이 검증 범위를 가른다

메시지인증기법은 대칭키, 즉 비밀키를 송수신자가 함께 사용한다. 따라서 무결성과 인증에는 적합하지만, 같은 키를 가진 양쪽 모두 MAC을 만들 수 있으므로 제3자 검증과 부인방지에는 제약이 있다.

디지털서명은 개인키와 공개키로 구성되는 비대칭키 방식을 사용한다. 개인키를 보유한 서명자만 서명을 생성하고, 공개키를 가진 누구나 검증할 수 있다. 무결성·인증·부인방지가 모두 필요한 문서에 적합하지만 비대칭 암호화에 따른 계산 부하가 더 크다.

빠른 인증이 필요하거나 이미 보안 채널이 설정된 환경에는 메시지인증기법을 적용할 수 있다. 법적 구속력이 필요한 문서나 부인방지가 핵심인 상황에는 디지털서명이 맞는다.

프로토콜과 서비스에서의 활용

금융 거래 프로토콜에서는 국제 은행 간 통신의 SWIFT 메시지 인증에 MAC을 사용하고, 실시간 결제 시스템에서는 빠른 트랜잭션 검증이 요구된다. IoT 환경에서는 제한된 리소스에서 경량 인증을 제공하기 위해 HMAC을 활용할 수 있으며, 스마트홈 기기 간 통신 보안도 그 대상이다.

API 인증도 메시지인증기법의 적용 영역이다. HMAC을 이용해 API 요청에 서명할 수 있고, AWS와 Google Cloud 등의 API 인증에 활용된다. IPsec의 인증 헤더(AH)는 패킷 무결성을 검증하며, TLS/SSL 핸드셰이크 과정에도 메시지 인증이 사용된다.

디지털서명은 전자계약의 계약서 서명, 전자정부 공문서의 인증과 처리에 쓰인다. 소프트웨어 배포에서는 코드 서명으로 개발자를 확인하고, 앱스토어 배포에서는 앱 개발자 확인과 무결성 검증에 사용한다.

PKI(Public Key Infrastructure)에서는 SSL/TLS 인증서가 웹사이트 신원을 증명하고, S/MIME 프로토콜은 이메일 서명을 제공한다. 블록체인에서는 암호화폐 트랜잭션의 소유권 증명과 거래 인증, 스마트 계약의 실행 조건 검증에 디지털서명을 활용한다.

메시지 인증과 디지털서명을 결합하는 프로토콜 설계

실제 시스템은 메시지인증과 디지털서명을 분리해 쓰기보다 서로의 역할을 결합하는 경우가 많다.

SSL/TLS는 초기 핸드셰이크에서 디지털서명으로 인증하고, 세션 통신에서는 협상된 대칭키로 MAC을 사용한다. S/MIME 기반의 암호화된 이메일은 메시지 내용을 대칭키로 암호화하고 디지털서명으로 메시지 서명을 제공하며, 수신자의 공개키로 대칭키를 보호한다.

JWT(JSON Web Token)는 서명된 토큰으로 인증 정보를 전달한다. HMAC으로 서명된 JWT와 RSA로 서명된 JWT를 모두 지원한다.

양자 위협과 확장되는 인증 요구

양자 컴퓨팅 위협에 대응하기 위한 포스트 양자 암호화(PQC)에서는 격자 기반, 해시 기반, 코드 기반 등 다양한 알고리즘 접근이 개발되고 있다. 양자 내성 디지털서명으로는 CRYSTALS-Dilithium, FALCON, Rainbow 등이 있으며 NIST 표준화 과정이 진행 중이다.

분산 신원(DID, Decentralized Identity)은 블록체인 기반의 자기주권 신원 시스템에서 디지털서명을 통한 신원 증명과 인증을 사용한다. IoT에서는 제한된 자원에서도 효율적으로 동작하는 서명과 인증 기법이 요구된다. 영지식 증명과 결합하면 정보를 노출하지 않고 인증하는 프라이버시 보존형 프로토콜도 구성할 수 있다.

메시지 인증디지털서명MAC공개키 암호정보보안