GCM

agnusdei·2025년 11월 24일

Information Security

목록 보기
18/96

🚀 GCM (Galois/Counter Mode) 심층 분석: '봉인된 금고' 비유

GCM (Galois/Counter Mode, 갈루아/카운터 모드)을 쉽게 이해하려면, '금고 운반'이라는 비유를 사용하면 좋습니다. 일반적인 암호화는 금고 안에 내용을 숨기는 것뿐이지만, GCM은 금고가 변조되지 않았는지 확인하는 봉인까지 추가합니다.

GCM은 다음 두 가지 기능을 하나의 효율적인 과정으로 통합합니다.

  1. 기밀성 (Confidentiality): 내용을 숨김 \to CTR 모드를 통해 달성
  2. 무결성 및 인증 (Integrity & Authentication): 내용이 위변조되지 않았음을 보장 \to GHASH를 통해 달성

1. 🔑 CTR (Counter Mode): 기밀성 확보의 비결 (고속 병렬 처리)

GCM의 암호화 기반은 CTR (Counter Mode, 카운터 모드)입니다. CTR 모드가 고속 병렬 처리를 가능하게 하는 이유는 키 스트림 생성 방식에 있습니다.

💡 CTR 비유: '분업화된 키 공장'

개념비유설명
Nonce/IV금고 번호 (Unique ID)모든 암호화 세션에 고유하게 부여되는 초기값입니다. (두 번 다시 사용 금지)
Counter작업표 일련번호 (1, 2, 3...)암호화할 데이터 블록마다 부여되는 순차적인 번호입니다.
키 스트림맞춤형 열쇠Nonce와 Counter를 결합하여 블록 암호(AES)를 돌려 얻는 난수 값입니다.
암호화열쇠로 잠금 (XOR)생성된 맞춤형 열쇠를 평문과 XOR 하여 암호문을 만듭니다.

📈 병렬 처리 및 속도의 핵심

CBC와 같은 다른 모드는 이전 블록의 결과가 다음 블록에 필요합니다 (체인처럼 연결).

하지만 CTR 모드에서는, 100번째 블록의 키 스트림을 만들 때, 1번부터 99번까지의 결과를 알 필요가 없습니다. Nonce카운터 100만 알면 됩니다.

📝 결과: 여러 CPU 코어가 동시에 1번부터 100번까지의 맞춤형 열쇠(키 스트림)를 미리 만들 수 있습니다. 이것이 CTR 모드가 현대 고속 환경에서 가장 빠른 이유입니다.


2. 🛡️ GHASH: 무결성 및 인증 (위변조 방지 봉인)

CTR 모드로 암호화된 데이터는 안전하게 숨겨져 있지만, 공격자가 암호문을 임의로 조작할 수 있습니다. GCM은 이를 막기 위해 GHASH를 사용합니다.

💡 GHASH 비유: '마스터 키를 활용한 봉인'

개념비유설명
GHASH 키 (HH)마스터 봉인 인장GCM 시작 시 키를 이용해 미리 계산되는 값으로, 모든 인증 과정에 사용됩니다.
AAD운송장 및 금고 겉면 정보암호화는 하지 않지만 (모두에게 보여도 되지만), 변조되면 안 되는 데이터 (예: 패킷 헤더, 수신자 주소)
GHASH 연산인장 찍기 (Galois 필드 연산)암호문AAD 전체를 마스터 인장(HH)과 함께 수학적으로 매우 복잡하게 섞습니다.
인증 태그 (TT)최종 봉인 (Seal)GHASH 연산의 결과물로, 암호문과 함께 전송됩니다.

🚨 복호화 시 검증 과정

수신자가 암호문과 태그를 받으면:

  1. 복호화: CTR 모드로 암호문을 복호화하여 평문을 얻습니다.
  2. 봉인 재확인: 받은 암호문AAD를 가지고 송신자와 똑같은 GHASH 연산을 다시 수행하여 새로운 태그(TT')$를 만듭니다.
  3. 일치 확인:
    • T=TT = T' 일치: "금고가 열렸고, 운송장과 내용물이 변조되지 않았음. 인증 완료!" (평문을 안전하게 사용)
    • TTT \ne T' 불일치: "금고 내용물, 운송장, 혹은 암호문이 공격자에 의해 단 1비트라도 조작되었거나 키가 틀림. 즉시 폐기!"

즉, GCM은 공격자가 금고(암호문)를 조작하더라도, 그 조작된 내용이 봉인(TT)과 수학적으로 일치할 확률이 극히 낮기 때문에 변조를 즉시 탐지할 수 있습니다.


3. 🛡️ GCM이 현대 암호화의 대세인 이유

GCM은 암호화 기술에서 '두 마리 토끼'를 다 잡은 형태입니다.

  1. 보안성: 기밀성 (CTR)과 무결성/인증 (GHASH)을 모두 제공하여 능동적 공격으로부터 안전합니다.
  2. 효율성: GHASH 연산병렬 처리에 매우 적합하며, 현대 CPU의 명령어 집합(AES-NI 등)을 활용하여 하드웨어에서 매우 고속으로 구현될 수 있습니다.

이러한 이유로 GCM은 현재 가장 강력하고 빠른 인증 암호화 표준으로 자리 잡았으며, 웹 브라우저가 사용하는 TLS 1.3의 핵심입니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글