A equipa Frontier Red Team da Anthropic anunciou a 16 de outubro de 2026 que o Claude esclareceu de onde vieram as sementes das curvas elípticas do NIST, uma dúvida que divide os criptógrafos há cerca de 25 anos. Estas curvas, adotadas em 2000 na norma de assinatura digital FIPS 186-2 e usadas pelo ECDSA, foram geradas a partir de valores-semente entregues pela NSA sem qualquer justificação. Segundo a Anthropic, as sementes das curvas P-192, P-224, P-256, P-384 e P-521 não resultaram de nenhuma função de hash: são saídas do gerador pseudoaleatório lrand48 da biblioteca C, iniciado com marcas temporais Unix.

A origem tinha importância porque cada semente publicada é transformada por hash no coeficiente b da curva. Sem explicação sobre a escolha, houve quem suspeitasse de curvas escolhidas com fragilidades escondidas. A versão mais conhecida vinha de Jerry Solinas, funcionário de longa data da NSA, que contou em 2015 que as sementes tinham saído do hash de uma frase humorística. Solinas morreu em 2023 e, segundo a Anthropic, vários dos seus próprios funcionários seguiram essa pista sem resultado.

Posta de lado essa pista, tudo foi rápido. Em outubro, um funcionário pediu a um modelo interno de investigação que descobrisse como as sementes tinham sido geradas, e o Claude resolveu o enigma em menos de meia hora. Partiu da hipótese de que o programa original usara um gerador fraco das bibliotecas C dos anos 1990, cuja saída é reconhecível, e escreveu um analisador que testou 34 combinações de gerador e segmento de saída. Reparou depois que, em quatro das dez sementes, o bit mais significativo de cada palavra de 32 bits era sempre zero, padrão com uma probabilidade ao acaso de cerca de 1 em 5810 e típico do lrand48, que devolve apenas os 31 bits superiores de um estado de 48 bits. Testar por força bruta os 17 bits escondidos permitiu recuperar esses estados. Nas sementes das curvas sobre corpos primos, que guardam menos bits de cada saída, o modelo tratou a recuperação como um problema de reticulados e resolveu-o com o algoritmo LLL. Cinco sementes do NIST e cinco da norma ANSI X9.62 seguem o mesmo padrão, e cada estado de 48 bits recuperado reproduz os 160 bits da respetiva semente.

Como este gerador anda para trás com a mesma facilidade com que anda para a frente, o Claude recuou cada estado até à forma criada pela inicialização srand48. Nas dez sementes de curvas primas, esses valores correspondem a datas Unix entre maio de 1997 e abril de 1998. Os quatro valores das curvas binárias apontam para fevereiro de 1984, mas, duplicados, dão 17 de abril de 1998, duas semanas depois da execução da P-224, o que sugere que o programa original dividia o relógio por dois. A semente publicada da P-256 foi o candidato número 1842 da sua execução.

O modelo explicou ainda alguns pontos base, o ponto fixo de que todas as chaves públicas ECDSA são múltiplos. Os pontos base de seis curvas geradas em maio de 1997, a P-192 e cinco curvas de exemplo da ANSI X9.62, vêm do gerador aleatório da biblioteca FreeLIP, de Arjen Lenstra, iniciado com inteiros pequenos, como 20000 no caso da P-192. Tanto quanto a Anthropic sabe, nenhum ponto base do NIST tinha sido explicado antes. Continuam por esclarecer os pontos base da P-224, P-256, P-384 e P-521, bem como a semente da curva binária B-163.

A Anthropic insiste que não se trata de uma quebra, de um novo ataque nem de uma fragilidade das curvas, e que ninguém precisa de mudar nada. Para a empresa, a descoberta torna muito menos plausível uma porta das traseiras deliberada, já que as sementes saíram de um processo simples e reproduzível. Fica uma pergunta em aberto: alguns candidatos que também dariam curvas válidas foram ignorados, como o número 876 na execução da P-256. A Anthropic considera esse número demasiado pequeno para indicar a escolha de curvas enfraquecidas, mas reconhece que os critérios de seleção são desconhecidos.

A análise foi publicada num artigo de blogue e não num trabalho revisto por pares, e não foi encontrada nenhuma reprodução independente por criptógrafos externos, embora o método seja determinístico e esteja descrito com detalhe suficiente para ser verificado.

Referências