A Anthropic diz que uma versão de pesquisa de Claude ajudou sua equipe de criptografia a reconstruir a origem de várias sementes publicadas de curvas elípticas. O relatório de 16 de outubro liga cinco sementes de curvas NIST sobre corpos primos e quatro sementes de curvas binárias NIST às saídas de lrand48, um antigo gerador pseudoaleatório em C inicializado com valores derivados do relógio. Também apresenta código que imprime as sementes relatadas e reproduz determinadas coordenadas de pontos-base.

O resultado aborda uma questão sobre a história dos parâmetros padronizados. A Anthropic não relata um novo ataque nem uma quebra criptográfica. A reconstrução também deixa algumas escolhas sem explicação, incluindo por que certas curvas candidatas viáveis foram ignoradas.

A grande mudança

  • O que mudou: A Anthropic publicou uma receita específica de geração e código para as sementes de NIST P-192, P-224, P-256, P-384 e P-521, quatro curvas binárias NIST e cinco curvas de exemplo ANSI X9.62. Sua receita separada para os pontos-base corresponde a P-192 e cinco exemplos ANSI.
  • Como: A equipe relata que Claude reconheceu padrões nos bits das sementes publicadas, recuperou o estado do gerador e o percorreu de trás para frente até valores iniciais com características de valores de relógio. Para seis pontos-base, identificou um gerador usado em softwares antigos de inteiros longos.
  • Limite: O código permite inspecionar as correspondências propostas, mas uma receita que produz os mesmos valores não documenta todas as decisões históricas de seleção nem demonstra a segurança das curvas. O BIG CHANGE examinou a postagem pública e o padrão histórico; não executou uma reprodução independente.

O que uma semente de curva explica

O FIPS 186-2 arquivado pelo NIST, datado de 27 de janeiro de 2000, lista uma semente de 160 bits para cada uma de suas cinco curvas sobre corpos primos. Um processo especificado, baseado em SHA-1, transforma a semente em um coeficiente da curva. O padrão também lista separadamente o corpo, a ordem da curva e as coordenadas do ponto-base. Ele diz que a semente fornecida permite verificar se o coeficiente segue o processo especificado; não descreve como a própria semente foi escolhida. A semente também não determina o ponto-base, o ponto fixo usado para formar chaves públicas.

Essa distinção define o alcance da descoberta da Anthropic. Rastrear uma semente pode explicar uma entrada da curva padronizada. Explicar o ponto-base exige outra descrição, e uma saída correspondente não revela todas as decisões das pessoas que escolheram os parâmetros.

Como a Anthropic rastreou as sementes

Segundo a Anthropic, Claude primeiro procurou sinais de antigos geradores pseudoaleatórios em C nos valores publicados. Em algumas sementes de curvas binárias, o bit mais significativo de cada palavra de 32 bits era zero. A Anthropic diz que esse padrão apontou para lrand48, que retorna 31 bits de um estado interno de 48 bits. O modelo então recuperou estados possíveis e verificou se as saídas sucessivas correspondiam às sementes. Nas curvas sobre corpos primos, menos bits de cada saída eram mantidos, por isso, segundo a Anthropic, Claude usou um método de reticulados para recuperar o estado oculto.

O código na postagem da Anthropic começa em um estado no estilo de srand48, avança a recorrência de lrand48 e imprime sementes candidatas de 20 bytes. Sua tabela especifica registros de tempo e números de candidatos para P-192, P-224, P-256, P-384 e P-521, além dos exemplos ANSI prime192v2, prime192v3 e prime239v1 a prime239v3. Para P-256, a execução especificada chega à semente publicada no candidato 1.842. O valor P-256 impresso no exemplo da Anthropic corresponde à semente no FIPS 186-2.

A Anthropic relata uma correspondência relacionada para B-233, B-283, B-409 e B-571. Seu código usa um valor de relógio dividido por dois antes de inicializar o gerador. A Anthropic descreve essa interpretação do relógio pela metade como uma possibilidade: percorrer o estado recuperado de trás para frente produziu datas em fevereiro de 1984, enquanto dobrar os valores corresponde a 17 de abril de 1998. A correspondência publicada sustenta a receita do gerador; não estabelece qual opção de tratamento do relógio foi adotada pelos autores originais.

A Anthropic descreve o trabalho como uma colaboração entre a pergunta de um funcionário, a busca e o código do modelo de pesquisa interno e as verificações de sua equipe. O relatório fornece código e exemplos de saída que outras pessoas podem examinar. Não encontramos uma reprodução independente para citar neste artigo, e o BIG CHANGE não executou o código. Assim, a fonte sustenta a descrição como uma reconstrução relatada pela Anthropic, com os valores históricos do NIST servindo de registro externo dos parâmetros-alvo.

Seis pontos-base e as lacunas restantes

A Anthropic diz que outro gerador antigo, do pacote de inteiros longos FreeLIP de Arjen Lenstra e das primeiras versões do NTL de Victor Shoup, corresponde às coordenadas x dos pontos-base de P-192 e cinco exemplos ANSI. Sua segunda listagem de código inicializa esse gerador com pequenos inteiros, descarta sete saídas e depois extrai coordenadas x candidatas até que uma esteja na curva. Os seis exemplos são P-192, prime192v2, prime192v3 e prime239v1 a prime239v3. A Anthropic imprime uma correspondência para cada coordenada x publicada. A listagem histórica do NIST para P-192 fornece o valor usado nessa comparação.

Vários limites permanecem no próprio relato da Anthropic. A empresa não conseguiu recuperar a semente B-163. Não explicou os pontos-base de P-224, P-256, P-384 ou P-521, nem os das curvas binárias NIST. As execuções também pularam candidatos que, segundo a Anthropic, teriam atendido às condições declaradas de tamanho e ordem prima. O candidato 876 de P-256 é um exemplo anterior ao candidato publicado 1.842; a Anthropic relata três candidatos viáveis ignorados na execução de P-224 e sete no total de duas execuções de exemplos ANSI. A equipe não conhece o critério de seleção nem sabe se esses saltos eram um artefato.

Para os engenheiros de segurança, o novo resultado útil é uma descrição verificável da aparente trajetória de geração de muitos valores de parâmetros. Ele delimita uma antiga questão sobre sementes opacas sem responder a todas as perguntas sobre a seleção de curvas. A própria Anthropic diz que a descoberta não é motivo para os usuários mudarem suas práticas criptográficas.

Fontes e leituras adicionais