Skip to content
research

Claude이 NSA 곡선 미스터리를 풀다

수십 년 된 암호학 수수께끼가 연구자들을 잊혀진 농담 문구와 36,864달러의 현상금 추적으로 이끌었습니다. 정답은 1990년대 난수 생성기 속에 버젓이 숨겨져 있었습니다.

Aki Tanaka
Claude이 NSA 곡선 미스터리를 풀다

HTTPS 뒤에 숨겨진 설명되지 않은 숫자들

타원 곡선 암호(ECC)는 브라우저가 웹사이트와 맺는 보안 연결의 기반이 되며, 공유 비밀 키를 공개적으로 교환할 수 있게 합니다. 이 수학적 위업은 elliptic curves에 의존하는데, 특정 연산은 계산적으로 수행하기는 쉽지만 역으로 계산하는 것은 사실상 불가능합니다. 2000년 NIST가 발표한 표준인 P-256 곡선은 TLS 1.3 및 HTTPS의 초석이 되었으며, 거의 모든 애플리케이션에서 필수적으로 사용됩니다.

20년 넘게 암호학자들은 이러한 NIST 곡선에 대해 깊은 불안감을 느껴왔습니다. 곡선의 형태를 정의하는 매개변수에는 NSA가 제공한 임의의 "시드(seeds)"가 포함되어 있었지만, 그 기원에 대한 공개적인 설명은 없었습니다. 이러한 투명성 부족은 추측을 불러일으켰습니다. NSA가 암호화된 통신에 독점적으로 접근할 수 있는 비밀 백도어를 심기 위해 의도적으로 이 시드들을 선택한 것은 아닐까요?

Dual_EC_DRBG 난수 생성기에 관한 악명 높은 스노든 폭로는 NSA의 영향을 받은 별도의 표준이 실제로 손상되었음을 보여주며 이러한 의심을 증폭시켰습니다. 그러나 Dual_EC_DRBG와 NIST 타원 곡선을 구분하는 것은 매우 중요합니다. 이전 사건이 P-256에 대한 음모론을 이해할 만한 것으로 만들었지만, 그것이 타원 곡선 자체에 백도어가 있다는 증거가 된 적은 없습니다.

Claude는 유명한 단서를 무시하고 타임스탬프를 찾아내다

수십 년 동안 NSA 수학자 Jerry Solinas의 말로 알려진 흥미로운 소문은 P-256 시드가 기억하기 쉬운 문구를 해싱하여 생성되었다는 것이었습니다. 이 설명은 완전히 입증되지는 않았지만, 연구자들이 2023년 그가 세상을 떠나기 전 기억해내지 못한 "Bob Reiter와 Jerry Solinas에게 급여를 인상해달라"와 같은 "농담 문구"를 헛되이 찾게 만들었습니다. 이는 해결책에 대한 오랜 현상금으로 이어져 추측을 더욱 부추겼습니다.

하지만 Claude는 이 유명한 단서를 무시했습니다. Anthropic 모델은 잊혀진 문구를 쫓는 대신 일반적인 의사 난수 생성기(PRNG) 패턴을 탐색했습니다. 모델은 특정 레거시 생성기의 특징인 일관되게 0으로 설정된 상위 비트와 같은 통계적 아티팩트를 식별했습니다. 격자 축소 알고리즘을 사용하여 Claude는 이러한 "지문"으로부터 역추적하여 생성기의 내부 상태를 재구성했습니다.

핵심 결과: P-256을 포함한 여러 NIST 소수 곡선의 시드가 lrand48의 출력값과 일치했습니다. 1990년대에 널리 사용된 이 친숙한 Unix 시대 C 라이브러리 생성기는 간단한 Unix 타임스탬프로 초기화되었습니다. 특히 P-256의 경우, 재구성 결과 lrand48이 1997년 8월 16일 01:52:34 UTC에 시드되었으며, 공식 P-256 시드는 생성된 1,842번째 숫자와 일치함을 보여줍니다. P-192와 같은 다른 NIST 곡선들도 1997년 5월부터 1998년 4월까지의 타임스탬프에 걸친 lrand48 출력값과 일치했습니다.

빠른 포렌식 돌파구 뒤에 숨겨진 수학

Claude의 돌파구는 시드 값 내의 미묘한 통계적 "지문"을 인식하는 데 달려 있었습니다. Claude는 NIST가 제공한 시드가 1990년대 C 라이브러리의 일반적인 의사 난수 생성기(PRNG)인 lrand48과 일치하는 특성을 보인다는 것을 식별했습니다. 특히 Claude는 생성된 출력값에서 상위 비트가 제한적으로 동작한다는 점에 주목했습니다.

이러한 잘린 출력값으로부터 Claude는 PRNG의 내부 상태를 독창적으로 재구성했습니다. Claude는 고차원 격자에서 짧은 벡터를 찾는 정교한 기법인 lattice-reduction methods를 사용하여 정보가 불완전한 상황에서도 생성기의 상태를 역설계했습니다. 이를 통해 난수를 초기 조건까지 추적할 수 있었습니다.

이 재구성 속도는 놀라웠습니다. 5개의 NIST 곡선을 분석하는 데 30분도 채 걸리지 않았습니다. Claude의 내부 스크래치패드에는 빠른 성공에 놀라워하며 자신이 시뮬레이션 테스트 환경에 있는 것인지 의문을 제기하는 모습까지 나타났습니다. P-256의 경우, 생성기는 1997년 8월 16일 01:52:34 UTC에 시작되었으며, 공식 시드는 생성기가 만들어낸 1,842번째 숫자였습니다.

Anthropic은 이러한 발견을 엄격하게 검증했으며, 독립적인 연구자들이 몇 초 만에 보고된 시드를 그대로 재현할 수 있는 재현 가능한 코드를 공개했습니다. 이 과정은 또한 여러 ANSI X9.62 및 NIST 기본 포인트의 기원을 밝혀내어 Arjen Lenstra의 FreeLIP 라이브러리와 연결했습니다. Anthropic은 이 발견으로 오랫동안 해결되지 않았던 36,864달러의 현상금을 수령하여 Internet Security Research Group (ISRG)에 기부했습니다. 연구 논문을 포함한 자세한 내용은 Anthropic Research: ECDSA Curve Origins에서 확인할 수 있습니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

안심할 수 있는 답변, 그러나 남은 의문들

타임스탬프의 기원을 밝혀낸 것은 암호학적 위기가 아니라 오히려 큰 안심을 줍니다. 약 30비트의 선택권을 제공하는 Unix 타임스탬프는 의도적으로 설계된 백도어에 필요한 것보다 훨씬 작은 탐색 공간을 제시합니다. 이러한 제한된 자유도는 숨겨진 취약점이 존재할 가능성이 매우 낮음을 의미합니다.

중요한 점은 이번 발견이 TLS를 깨뜨리거나, 개인 키를 노출하거나, 서명을 위조하는 것이 아니라는 사실입니다. P-256은 여전히 안전하며 긴급한 패치나 프로토콜 전면 수정이 필요하지 않습니다. Anthropic의 분석과 후속 독립적 검증을 통해 해당 곡선들이 더 깨끗해졌을 뿐 약해지지 않았음이 확인되었습니다.

그러나 여전히 풀리지 않은 의문들이 남아 있습니다. 예를 들어 B-163 이진 곡선의 시드는 아직 완전히 설명되지 않았습니다. 타원 곡선의 초기 좌표인 특정 base points의 정확한 기원 역시 일부는 Arjen Lenstra의 FreeLIP 라이브러리와 연결되었음에도 불구하고 아직 완전히 밝혀지지 않았습니다.

게다가 암호학자들은 왜 여러 P-256 후보 중 하나가 선택되었는지에 대해 여전히 의문을 품고 있습니다. Claude의 작업은 NIST 곡선을 둘러싼 의심을 크게 줄였지만, 이는 모든 설계 선택에 대한 최종적인 설명이 아니라 그 역사에서 중요한 한 장을 제공한 것입니다.

자주 묻는 질문

Claude는 NIST 곡선 시드에 대해 무엇을 발견했나요?

Anthropic의 Claude는 여러 NIST 곡선 시드가 Unix 타임스탬프로 초기화된 lrand48 난수 생성기의 출력값에서 비롯되었음을 추적했습니다.

이번 발견이 P-256에 백도어가 있었다는 것을 의미하나요?

아닙니다. 타임스탬프 기반의 과정은 의도적인 백도어를 만들기에는 너무 적은 자유도를 가지며, 이번 발견은 P-256에 대한 공격을 가능하게 하지 않습니다.

Claude는 어떻게 시드를 재구성했나요?

lrand48 출력값에서 통계적 패턴을 인식하고, 격자 축소(lattice reduction)를 포함한 수학적 기법을 사용하여 생성기의 상태를 복구했습니다.

이제 모든 곡선의 기원이 밝혀졌나요?

아닙니다. B-163 이진 곡선 시드와 P-256 후보 선택을 포함하여 일부 시드 기원과 기본 포인트 선택 문제는 여전히 해결되지 않았습니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

빌더를 위해

이 페이지는 지금 다른 사람의 도구를 위해 일하고 있습니다.

AI 에이전트가 읽고, 구매자가 도착합니다. 8개 언어와 MCP로 답합니다. 당신의 도구도 가질 수 있습니다 — 24시간 안에 공개.