폴리1305 메시지인증코드 (Poly1305 Message Authentication Code)
한 줄 정의: Poly1305는 메시지를 다항식으로 취급해 소수 2^130-5를 법으로 계산하는 방식으로 메시지 인증 태그를 생성하는 원타임(one-time) 메시지 인증 코드(MAC) 알고리즘입니다.
쉽게 풀면
메시지 인증 코드는 데이터가 전송 중 변조되지 않았는지 확인하는 일종의 봉인 도장입니다. Poly1305는 메시지를 여러 개의 숫자 조각으로 나눈 뒤, 이 숫자들을 다항식의 계수처럼 취급해 특정 비밀값을 대입해 계산한 결과를 도장으로 사용합니다. 매번 새로운 일회용 키를 사용해야 안전하다는 특징 때문에 "원타임"이라는 이름이 붙어 있습니다.
왜 중요한가
속도가 빠르면서도 수학적으로 엄밀하게 증명 가능한 안전성을 갖춘 메시지 인증 방식이 필요하기 때문에, 정보보안학 분야에서는 ChaCha20과 결합된 형태로 TLS, SSH 등 최신 프로토콜의 인증암호 구성 요소로서 Poly1305를 다루는 연구가 이루어집니다.
논문에서는 이렇게 쓰입니다
"ChaCha20-Poly1305 구조에서 Poly1305는 ChaCha20이 생성한 일회용 키를 이용해 메시지마다 새로운 인증 키를 사용함으로써 원타임 MAC의 안전성 요건을 만족한다."
ChaCha20-Poly1305 결합 구조에서 Poly1305의 역할을 설명하는 문맥입니다.
"본 연구는 소프트웨어 환경에서 Poly1305와 GHASH(GCM의 인증 함수)의 연산 속도를 비교 측정하였다."
다른 인증 함수와의 성능 비교 실험을 다루는 문맥입니다.
조금 더 깊게 보면
Poly1305는 메시지를 16바이트 블록으로 나누어 다항식의 계수로 사용하고, 128비트 비밀값 r을 이용해 소수 2^130-5를 법으로 하는 유한체 연산을 수행한 뒤 128비트 비밀값 s를 더해 최종 태그를 만듭니다. 이러한 구조 덕분에 정보이론적으로 엄밀한 안전성 증명이 가능하다는 특징이 있으며, RFC 8439에 ChaCha20과 함께 표준화되어 있습니다.
주의할 점
Poly1305는 이름 그대로 반드시 매 메시지마다 새로운 키(원타임 키)를 사용해야 하며, 같은 키를 재사용하면 인증 안전성이 무너지므로 키 관리에 주의가 필요합니다.