TLS의 포스트 양자 암호가 공상과학이기를 멈춘 건, 사람들이 “지금 수집하고 나중에 해독한다(harvest now, decrypt later)“를 진지한 위협 모델로 받아들인 순간이다.

이 위협이 의미를 가지려고 오늘 쓸 만한 양자 컴퓨터가 있어야 하는 건 아니다. 암호화된 트래픽을 지금 녹화해 두고 기다릴 상대만 있으면 된다. 그 안의 비밀이 몇 년 뒤에도 중요하다면 — 정부 통신, 의료 기록, 기반시설 제어 명령, 금융 데이터 — 인내심 자체가 공격의 일부가 된다.

오늘 오후에 양자 컴퓨터로 주류 TLS를 깨는 사람이 아무도 없는데도 전환이 이미 진행 중인 이유다.

양자 위협이 실제로 깨는 것

지금의 TLS는 인증과 키 교환을 RSA와 타원곡선 같은 공개키 암호에 기댄다. 문제는 쇼어 알고리즘이다. 충분히 강력한 양자 컴퓨터는 RSA 모듈러스를 인수분해하고 이산 로그를 효율적으로 푼다. RSA 서명, ECDSA 서명, 타원곡선 디피-헬먼 키 교환이 모두 깨질 수 있게 된다.

TLS에서 무서운 부분은 키 교환에서 먼저 온다. 상대가 오늘 TLS 핸드셰이크를 녹화해 두었다가 나중에 키 교환을 깨면, 세션 키를 끌어내 녹화한 대화 전체를 해독할 수 있다. 전방 비밀성(forward secrecy)은 고전적인 키 유출은 막아 주지만, 밑바닥의 수학 문제 자체를 풀 수 있는 상대는 막지 못한다.

대칭 암호 — AES, ChaCha20 — 는 영향이 덜하다. 그로버 알고리즘은 무차별 대입을 제곱근 수준으로 빠르게 해서, 계산상으로는 양자 공격자 앞에서 AES-128을 약 64비트, AES-256을 128비트 보안으로 떨어뜨린다. 실제로는 그로버가 병렬화에 몹시 약해서 NIST는 지금도 AES-128을 충분하다고 본다. AES-256이면 논쟁의 여지도 없다. 대칭 쪽은 비상 상황이 아니다.

비상은 비대칭 쪽, 즉 키 교환과 서명이다.

지금 수집하고 나중에 해독한다

일정을 급하게 만드는 게 이 위협이다.

정보기관과 고도화된 공격자들이 암호화된 트래픽을 대규모로 녹화하고 있다는 건 널리 받아들여지는 가정이다. 오늘은 해독하지 못한다. 하지만 암호화된 데이터에는 유통기한이 없다. 녹화한 TLS 세션을 페타바이트 단위로 쌓아 두고, 양자 컴퓨터가 무르익기를 기다렸다가, 느긋하게 해독하면 된다.

한 시간이면 만료되는 세션 토큰처럼 수명이 짧은 비밀에는 상관없다. 외교 통신, 환자 기록, 십 년 넘게 가치가 남는 영업 비밀처럼 수명이 긴 비밀에는 시계가 이미 몇 년 전에 돌기 시작했다.

지금 수집되는 데이터가 바로 지금 포스트 양자 보호가 필요한 데이터다. 양자 컴퓨터가 나왔을 때가 아니라, 지금.

NIST의 포스트 양자 표준

NIST는 경쟁을 연 지 8년 만인 2024년 8월에 첫 포스트 양자 암호 표준(FIPS 203, 204, 205)을 확정했다. TLS에 가장 중요한 건 두 가지다.

ML-KEM(옛 이름 CRYSTALS-Kyber) — 모듈 격자 문제에 기반한 키 캡슐화 메커니즘. TLS에서 타원곡선 디피-헬먼 키 교환을 대신한다. ML-KEM-512, ML-KEM-768, ML-KEM-1024 세 가지 파라미터 세트가 있고, 보안 수준과 성능 사이의 균형이 다르다.

ML-DSA(옛 이름 CRYSTALS-Dilithium) — 역시 격자 기반인 디지털 서명 방식. 인증서 서명에서 RSA와 ECDSA를 대신하게 된다.

이들이 기대는 격자 문제는 고전 컴퓨터에도 양자 컴퓨터에도 어렵다고 여겨진다. 증명된 건 아니다. 전환이 조심스러운 이유다.

하이브리드: 허리띠에 멜빵까지

갓 나온 암호에 전부를 걸 만큼 믿는 사람은 없다. 지금의 배포 전략은 하이브리드다. 고전 알고리즘과 포스트 양자 알고리즘을 함께 쓴다. 포스트 양자 알고리즘에 결함이 드러나도 고전 알고리즘이 고전 공격자를 막는다. 양자 컴퓨터가 나오면 포스트 양자 알고리즘이 막는다.

실제로 TLS 키 교환은 X25519 + ML-KEM-768로 옮겨 가고 있다. 클라이언트가 ClientHello에 두 키 공유를 함께 보내고, 서버는 둘을 합쳐 공유 비밀을 만든다. 세션을 뚫으려면 둘 다 깨야 한다.

구글은 일찍이 2016년에 Chrome에서 포스트 양자 키 교환을 처음 시험했다. Kyber 하이브리드는 2024년 4월 Chrome 124에서 기본값이 됐고, 같은 해 Chrome 131에서 최종 표준인 ML-KEM 버전으로 바뀌었다. Firefox도 132 버전부터 같은 하이브리드를 기본으로 켰다. Cloudflare는 표준이 확정되기 전부터 엣지에서 이를 제공해 왔다. 생태계가 움직이고 있다.

프로토콜로 보면 바뀌는 건 작다. TLS 1.3 핸드셰이크에서 클라이언트가 supported_groups와 key_share 확장에 새 그룹 X25519MLKEM768을 제안하고, 서버가 지원하면 그걸 고른다. 인증서도, 암호 스위트도, 나머지 핸드셰이크도 그대로다. 이 그룹은 TLS 1.3에만 있다. TLS 1.2에 머문 서버는 아예 협상할 수 없다. 서버 쪽에서는 OpenSSL 3.5(2025년 4월)가 하이브리드를 기본 지원하므로, 많은 서버에서 업그레이드는 라이브러리 업데이트 한 번이다.

핸드셰이크에서 달라지는 것

실질적인 영향은 메시지가 커진다는 것이다.

X25519 공개키는 32바이트다. ML-KEM-768 공개키는 약 1,184바이트다. 둘을 함께 실은 하이브리드 ClientHello는 고전 방식보다 눈에 띄게 크다. 서버 응답에 실리는 암호문도 커서, ML-KEM-768은 약 1,088바이트다.

요즘 네트워크의 연결 대부분에서 이 1킬로바이트 남짓은 티도 안 난다. 하지만 가장자리에서는 문제가 된다. 자원이 빠듯한 기기, 지연이 큰 위성 링크, MTU가 작은 네트워크. 일부 미들박스는 TLS 핸드셰이크가 일정 크기 안에 들어온다고 가정하고 만들어져서, 커진 ClientHello에 체한다.

서명 전환은 더 어렵다. ML-DSA 서명은 ECDSA보다 훨씬 크다. 가장 작은 ML-DSA-44가 2,420바이트, ML-DSA-65는 3,309바이트로, ECDSA P-256의 64바이트와 비교가 안 된다. 인증서 체인에는 서명이 여러 개 들어간다. 체인이 포스트 양자 서명을 달면 핸드셰이크마다 수 킬로바이트가 붙을 수 있다. 성능에는 키 교환보다 이쪽이 더 크게 영향을 준다.

그래서 키 교환이 먼저, 서명은 나중이다. 키 교환은 “지금 수집, 나중에 해독”을 막는다. 서명은 실시간 사칭을 막는데, 그건 실제로 돌아가는 양자 컴퓨터가 있어야 가능한, 나중의 위협이다.

일정

키 교환 전환은 지금 일어나고 있다. Chrome, Firefox, Cloudflare가 이미 하이브리드 키 교환을 기본으로 쓴다. 최신 Chrome으로 Cloudflare 뒤의 사이트에 접속하면, 모르는 사이에 이미 X25519 + ML-KEM-768을 쓰고 있을 수 있다.

서명 전환은 느리고 어렵다. 인증 기관이 포스트 양자 인증서를 발급해야 하고, 브라우저가 검증해야 하고, PKI 체인 전체가 호환성을 깨지 않고 더 큰 서명을 감당해야 한다. 몇 년짜리 일이다.

고전 알고리즘을 아예 빼 버린 순수 포스트 양자 TLS는 일반 웹에서는 아직 한참 멀었다. 앞으로 몇 년은 하이브리드가 표준일 것이다.

공상과학이 아니다

RSA를 깨는 양자 컴퓨터는 아직 없다. 암호학적으로 의미 있는 기계가 언제 나올지에 대한 전문가들의 추측은 “10년 안”부터 “영영 안 나온다”까지 갈린다. 아무도 모른다.

하지만 전환에도 몇 년이 걸린다. 인터넷의 암호 기반을 바꾸는 건 주말에 끝낼 일이 아니다. NIST는 알고리즘을 고르는 데만 8년을 썼다. 그걸 브라우저, 서버, 인증 기관, 미들박스, 임베디드 기기, 레거시 시스템 전체에 까는 데는 더 오래 걸린다.

경주는 “양자 컴퓨터가 나오기 전에 포스트 양자를 배포하라”가 아니다. “오늘 수집되는 데이터가 해독 가능해지기 전에 배포하라”다. 어떤 비밀에게는 그 경주가 이미 불편할 만큼 아슬아슬하다.

하이브리드 키 교환부터 시작하자. 지금 쓸 수 있다. 비용은 핸드셰이크당 1킬로바이트 남짓이다. 그 대가로 드는 보험은, 다들 편하게 인정하는 것보다 빨리 올지도 모르는 위협에 대한 것이다.