GCM 모드
IT위키
더 많은 작업
GCM 모드(Galois/Counter Mode, GCM)는 카운터(CTR) 모드로 데이터를 암호화하고 갈루아 체(유한체) 위의 곱셈으로 만든 인증 태그를 함께 붙여, 기밀성과 무결성·인증을 한 번에 제공하는 블록 암호의 인증 암호(AEAD) 운용 모드이다.
GCM 의 인증 암호 함수는 키 K, 초기화 벡터 IV, 평문 P, 추가 인증 데이터 A 를 받아 암호문 C 와 인증 태그 T 를 낸다.[1]
- 해시 부분키 H 를 만든다. 128비트 0 블록을 키 K 로 암호화한 값이다.
- IV 로 첫 카운터 블록 J0 를 만든다. IV 는 96비트를 권장하며, 이 경우 IV 뒤에 1 을 붙여 J0 로 쓴다.
- GCTR - J0 를 하나씩 늘린 카운터 블록들을 암호화해 키 스트림을 만들고 평문과 XOR 해 암호문 C 를 얻는다. 카운터 모드이므로 블록마다 따로 계산할 수 있다.
- GHASH - 추가 인증 데이터 A 와 암호문 C, 그리고 두 길이를 이어 붙인 것을 H 와의 GF(2128) 곱셈으로 차례로 누적한다. 이것이 GCM 의 해시 함수이다.
- GHASH 결과를 J0 로 암호화한 블록과 XOR 하고 정해진 길이로 잘라 태그 T 를 만든다.
복호화하는 쪽은 받은 C 와 A 로 태그를 다시 계산해 받은 T 와 비교하고, 다르면 평문을 내주지 않고 실패를 돌려준다.
- 기밀성 + 무결성 + 인증 - 암호문이나 추가 데이터가 한 비트라도 바뀌면 태그 검증에 실패한다. 우연한 변경과 의도적 위조를 모두 잡아낸다.[1]
- 추가 인증 데이터 - 패킷 헤더처럼 암호화하지 않고 평문으로 보내야 하지만 변조는 막아야 하는 데이터를 A 로 넣어 인증만 받을 수 있다.
- 병렬 처리와 고속 - 카운터 블록 암호화는 서로 독립이고 GHASH 의 곱셈도 미리 계산·파이프라인화할 수 있어, 하드웨어와 소프트웨어 모두에서 처리량이 높다. 이 성질 덕분에 TLS 1.2·1.3, IPSec ESP 등에서 AES-GCM 이 기본 암호 스위트로 널리 쓰인다.[2]
- IV 재사용 금지 - 같은 키로 같은 IV 를 두 번 쓰면 키 스트림이 겹쳐 평문 관계가 드러나고, 해시 부분키 H 가 노출되어 태그 위조까지 가능해진다.
- GMAC - 암호화할 데이터 없이 A 만 넣으면 인증 태그만 만드는 메시지 인증 코드가 되며, 이를 GMAC 이라 부른다.
- ↑ 1.0 1.1 1.2 「Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC」(NIST SP 800-38D), NIST, https://doi.org/10.6028/NIST.SP.800-38D, 확인일: 2026-11-04.
- ↑ 「AES Galois Counter Mode (GCM) Cipher Suites for TLS」(RFC 5288), IETF, https://www.rfc-editor.org/rfc/rfc5288, 확인일: 2026-11-04.