A Anthropic publicou em 16 de outubro que o Claude, em uso interno, descobriu como foram produzidas as "sementes" das curvas elípticas do NIST usadas no ECDSA, um mistério aberto desde que o padrão FIPS 186-2 as divulgou, em 2000. Segundo a empresa, as sementes saíram de um gerador de números pseudoaleatórios comum nos anos 1990, iniciado com um carimbo de data Unix, e não do hash de uma frase, como um relato antigo sugeria. A própria Anthropic ressalta que isso não é uma falha nas curvas.
Por que essas sementes eram um mistério
Curvas como a P-256 são definidas por parâmetros e por uma semente que, em tese, comprova que eles não foram escolhidos a dedo. As sementes das curvas do NIST vieram da NSA sem explicação, o que alimentou por anos a desconfiança sobre possíveis brechas escondidas. A Anthropic lembra o artigo de 2015 de Koblitz e Menezes sobre o tema e o relato de Jerry Solinas, que sugeria um hash de uma frase bem-humorada. Solinas morreu em 2023, e a pergunta seguiu sem resposta, com uma recompensa aberta para quem a resolvesse.
Como o Claude chegou lá
Segundo a Anthropic, um funcionário pediu a um modelo interno que descobrisse a origem das sementes, sem apontar a pista da frase. O Claude levantou a hipótese de um gerador de números aleatórios que vinha com bibliotecas C dos anos 1990 e escreveu um scanner que testou 34 combinações de gerador e fatias de saída. Ele notou que os bits mais altos de algumas sementes eram zero, o que apontava para o lrand48, um gerador congruencial linear.
Nas curvas primas, que guardam menos bits por saída, o modelo recuperou o estado interno do gerador com o algoritmo de redução de reticulado LLL, voltou o estado até a chamada srand48 inicial e leu os carimbos de data. A empresa também examinou como os pontos de base foram gerados.
O que foi encontrado
- Curvas primas: as sementes de P-192, P-224, P-256, P-384 e P-521 vieram do
lrand48iniciado com um carimbo de data. Dez sementes de curvas primas correspondem a datas entre maio de 1997 e abril de 1998. - Curvas binárias: as quatro sementes se inicializam em carimbos de fevereiro de 1984. Dobrados, chegam a 17 de abril de 1998, duas semanas depois da execução da P-224; a Anthropic trata a ideia de que o programa dividia o valor do relógio por dois como hipótese.
- Pontos de base: seis pontos (o da P-192 e os de cinco curvas de exemplo do ANSI X9.62) vêm do gerador do FreeLIP, pacote de inteiros longos de Arjen Lenstra, que versões iniciais da biblioteca NTL de Victor Shoup também incluíam.
A Anthropic publicou código em Python que regenera as sementes listadas e alguns pontos de base, com saída igual aos valores publicados. Segundo ela, o resultado foi conferido por Filippo Valsorda, que organizou a recompensa; essa verificação é relatada pela cobertura secundária, e não pelo resumo oficial que consultamos.
O que a Anthropic diz que isso não é
A empresa afirma que "isto não é uma quebra criptográfica, um novo ataque ou uma fraqueza nas curvas ECDSA". O argumento é o contrário: como as sementes saíram de um processo simples e reproduzível, a tese de uma porta dos fundos fica menos plausível. A recompensa de US$ 36.864 será doada à Internet Security Research Group. Participaram do trabalho John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini e Steve Weis.
O que ainda não se sabe
- A semente da curva binária B-163 continua sem explicação.
- Os pontos de base de P-224, P-256, P-384, P-521 e das curvas binárias do NIST seguem sem origem conhecida.
- Alguns candidatos válidos foram pulados na geração (por exemplo, o candidato 876 da P-256), sem motivo conhecido. Os autores dizem que o número de pulados é pequeno demais para sugerir curvas enfraquecidas de propósito.
- Nada nos números mostra quantas execuções de geração ocorreram.
Por que importa para o portal
O caso é parente das histórias de engenharia reversa com IA que o Portal GTA 6 acompanha, como a decompilação completa de Super Smash Bros. Melee: um modelo parte de pistas parciais, testa hipóteses e valida o resultado contra algo verificável. Aqui, a validação é a regeneração exata de valores publicados há mais de 25 anos. Como o relato vem da própria Anthropic, vale ler também o código aberto e as análises independentes.