AES-GCM (Advanced Encryption Standard in Galois/Counter Mode)
AES-GCM(Galois/Counter Mode)은 AES 블록 암호를 카운터(CTR) 모드로 사용해 데이터를 암호화하고, 갈루아 체 GF(2¹²⁸) 위의 GHASH 함수로 인증 태그를 붙이는 인증 암호화(AEAD) 방식입니다. NIST SP 800-38D(2007)에 표준화되었고, TLS 1.3의 기본 암호 스위트 중 하나입니다.
자세히 알아보기
AEAD는 기밀성(내용을 숨김)과 무결성·인증(변조 감지)을 한 번에 제공합니다. AES-GCM은 키, 초기화 벡터(IV, 논스), 평문, 그리고 암호화하지 않지만 함께 보호할 추가 데이터(AAD, 예: 헤더)를 입력받아 암호문과 태그(보통 128비트)를 출력합니다. 복호화할 때 태그가 맞지 않으면 평문을 전혀 내보내지 않고 실패해야 합니다. 키 길이는 128비트 또는 256비트를 씁니다.
가장 중요한 규칙은 '같은 키로 같은 IV를 절대 다시 쓰지 않는다'입니다. IV가 반복되면 두 평문의 XOR이 드러나고, 인증 키까지 복구되어 공격자가 임의의 메시지를 위조할 수 있습니다. IV는 96비트 길이가 권장되며, 무작위 IV를 쓸 경우 NIST는 하나의 키로 2³²회 이하로만 암호화하도록 제한합니다. IV 관리가 어려운 환경에서는 IV가 반복되어도 피해가 제한되는 AES-GCM-SIV(RFC 8452)나 더 긴 논스를 쓰는 XChaCha20-Poly1305를 고려합니다.
현대 CPU의 AES-NI와 캐리리스 곱셈 명령을 이용하면 AES-GCM은 매우 빠르고, 하드웨어 구현은 시간 차이로 키가 새는 부채널 위험도 줄여 줍니다. 반대로 하드웨어 가속이 없는 기기에서는 테이블 기반 소프트웨어 AES가 느리고 캐시 타이밍 공격에 취약할 수 있어 ChaCha20-Poly1305가 대안이 됩니다. 오래된 ECB 모드나 인증 없는 CBC 모드는 새 시스템에서 피해야 합니다.
블록체인·암호화폐에서는
거래소 웹사이트와 모바일 앱, 지갑 서비스의 API 통신은 대부분 TLS 1.3의 AES-GCM(또는 ChaCha20-Poly1305)으로 보호됩니다. 커스터디 업체의 키 백업 암호화, 하드웨어 보안 모듈(HSM)과 클라우드 키 관리 서비스의 데이터 암호화에도 널리 쓰입니다. 온체인 데이터는 공개가 원칙이라 블록체인 프로토콜 자체에서는 드물게 쓰입니다.
쉽게 말하면
내용을 숨기는 봉투와 뜯으면 표시가 나는 봉인 스티커를 한 번에 붙여 주는 방식입니다. 다만 같은 열쇠로 같은 일련번호의 봉투를 두 번 쓰면 봉인이 무력해집니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.