Uma mensagem de 27 de novembro de 1918 que ninguém conseguia ler
GPT-6 Astra acabou de entrar em um território onde modelo de linguagem não costuma se dar bem: criptografia militar histórica com chave desconhecida e texto curto. O alvo era uma mensagem de rádio alemã da Primeira Guerra Mundial, codificada em ADFGVX, listada em um portal alemão de ciência entre 50 cifras não resolvidas. Essa lista vai de criptogramas deixados por criminosos até o famoso manuscrito Voynich. É um cemitério de tentativas frustradas. E foi exatamente ali que o modelo teria conseguido ler o que especialistas humanos, incluindo nomes como George Lasry, ainda não tinham fechado.
O caso prende porque não é um benchmark sintético. São 170 caracteres transmitidos em 27 de novembro de 1918, já depois do armistício, quando a confusão no leste europeu e no Mar Negro ainda gerava tráfego militar real. Durante mais de um século, mais de uma dezena dessas mensagens alemãs resistiu mesmo com a lista de chaves conhecidas em mãos. Quando um sistema atual propõe uma leitura completa, em alemão coerente, com data, local e movimento naval, a gente precisa parar e dissecar. Não para comemorar, mas para entender se foi sorte, vazamento de memória ou raciocínio criptanalítico de verdade.
O fato
O que foi anunciado é direto. O modelo testou como palavra de cifragem 'TRUPPENVERSCHIEBUNG', termo que aparece nas páginas 214 e 215 do livro de J. Rives Childs sobre cifras militares alemãs entre 1914 e 1918. Com essa chave, ele reconstruiu a tabela ADFGVX de 6 por 6 e aplicou a transposição colunar para chegar ao texto claro: 'EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X'. Em português, algo como um cruzador inglês aportado em Sebastopol no dia 24, com um esquadrão aliado vindo em seguida no dia 26. O 'X' funciona como espaço ou separador, prática comum em tráfego Morse da época, e o 'S4STEN' provavelmente indica erro de leitura de um dígito ou ruído na transmissão original.
O ponto que chamou atenção não foi só a decodificação, mas a checagem posterior. O modelo teria cruzado a hipótese com diários de bordo britânicos. O HMS Canterbury realmente esteve em Sebastopol em 24 de novembro de 1918, e há registro de um esquadrão aliado chegando logo depois, em 26 de novembro. Esse encaixe histórico é o que transforma uma sequência plausível em algo difícil de ignorar. Em criptografia clássica, texto claro com sentido e contexto externo correto é o sinal mais forte de que a chave está certa. Ainda assim, falta revisão independente por criptólogos, com reimplementação passo a passo a partir dos 170 símbolos brutos.
Como funciona, na visão de quem opera
O ADFGVX alemão tem duas camadas. Primeiro, uma substituição fracionada. Você monta uma grade 6 por 6 rotulada com as letras A, D, F, G, V e X nas linhas e colunas. Essas letras foram escolhidas porque em Morse elas são bem distintas e reduzem erro em rádio com chiado. Cada célula recebe uma letra, número ou símbolo do alfabeto da cifra. No exemplo didático com a chave 'HOUSE', o H vira AA, o O vira AD, o B vira DA e assim por diante. A palavra 'PRINZ', por exemplo, seria codificada como FX GD DX FV VD. Trocar a palavra chave embaralha a grade inteira, então sem a chave exata a substituição parece aleatória.
A segunda camada é a transposição. Depois de fracionar a mensagem em pares de letras ADFGVX, você escreve esses pares sob a palavra chave estendida na horizontal, em fileiras de 19 símbolos neste caso específico. Como são 170 caracteres, isso gera oito fileiras de 19 mais uma fileira final de 18. Depois, você reordena as colunas por ordem alfabética das letras da chave. 'TRUPPENVERSCHIEBUNG' tem 19 letras, então você tem 18 colunas com 9 símbolos e uma coluna, a do G, com apenas 8. Para decodificar, é preciso inverter essa permutação com precisão cirúrgica. Um erro de uma posição quebra tudo. No relato, a letra T, que é a décima sexta em ordem alfabética, puxa o 135o símbolo da mensagem cifrada, que é um A. A letra R puxa o 108o símbolo, um V. E AV na tabela reconstruída corresponde a E, a primeira letra de 'EIN'. O processo se repete até o fim.
Como operador, o que me interessa aqui é o custo de busca. Resolver ADFGVX sem a chave exige testar milhares de palavras candidatas, reconstruir grades e pontuar o texto decifrado por fluência em alemão abreviado militar. Isso é clássico para solver com hill climbing e modelos de linguagem de n-gramas, mas costuma travar em mensagens curtas. A inferência plausível é que o Astra agiu como um orquestrador híbrido: gerou hipóteses de chave a partir de literatura histórica, aplicou a transposição de forma programática ou simulada, e usou seu próprio modelo de língua como função de pontuação para reconhecer alemão militar com separadores X. Em termos de API, isso não é uma chamada única. É um loop com dezenas ou centenas de tentativas, cada uma com latência de segundos e custo de tokens de raciocínio. Funciona, mas não é barato se você escalar para milhares de documentos.
O que isso muda na prática
Quem ganha primeiro são arquivos, museus, historiadores e equipes de humanidades digitais que têm caixas de mensagens ADFGVX, M-94, códigos de trincheira e diários cifrados parados por falta de especialista. Até hoje, decifrar exigia um criptólogo raro que conhecesse alemão antigo, estrutura de comando e truques de transposição. Se um modelo forte consegue propor chave, tabela e transposição e ainda buscar validação externa em logs, o gargalo muda de 'saber cripto' para 'saber validar'. Quem perde, pelo menos um pouco, é a ideia de que cifra histórica não resolvida equivale a cifra segura para sempre. Não equivale. Tempo e ferramenta nova reabrem casos frios.
Na prática, se você lida com acervo ou forense, a ação imediata é montar um pipeline simples e auditável. Primeiro, digitalize o material bruto sem normalizar demais, porque um 4 lido como A pode ser a diferença entre sentido e lixo. Segundo, peça ao modelo para listar chaves candidatas com fonte histórica, como manuais e datas de vigência, em vez de chutar no escuro. Terceiro, separe a execução criptográfica do julgamento linguístico: rode a decodificação em código determinístico em Python e use o modelo só para pontuar fluência e propor ajustes. Por fim, exija validação externa, como nomes de navios, datas e locais em arquivos independentes. Sem essa amarração, texto claro bonito pode ser apenas uma alucinação bem escrita.
- Regra de ouro: nunca aceite um texto decifrado sem a tabela, a permutação e o passo a passo reproduzível.
- Teste cego: valide o pipeline em mensagens ADFGVX já resolvidas antes de atacar as não resolvidas.
- Registre custo: meça tokens e tempo por hipótese, porque busca exaustiva em acervo grande estoura orçamento rápido.
A tensão que fica
Aqui está o incômodo que não dá para varrer para baixo do tapete. A própria hipótese levanta uma inconsistência de datas. A chave 'TRUPPENVERSCHIEBUNG' teria entrado em vigor em 9 de dezembro de 1918, mas a mensagem foi transmitida em 27 de novembro. Como uma chave futura cifra uma mensagem passada. As explicações possíveis são todas interessantes e todas problemáticas. Pode ser erro na documentação histórica sobre vigência. Pode ser reuso local, teste ou atraso na troca de chaves no caos do pós-guerra. Pode ser que a mensagem tenha sido recifrada depois para arquivo. Ou pode ser que a solução esteja parcialmente certa, com a grade correta mas a transposição ajustada à força para produzir alemão legível.
Isso escala. Resolver uma mensagem com contexto forte como Sebastopol e Canterbury é diferente de resolver doze mensagens sem âncora externa. Modelo de linguagem é ótimo em completar padrões quando tem onde se agarrar, e péssimo em admitir que forçou a barra. O custo também importa. Se cada cifra exige centenas de iterações com raciocínio longo e busca na web em arquivos, o projeto vira um trabalho de curadoria cara, não um botão mágico. E ainda há o risco de contaminação: se logs e livros sobre essa mensagem já estavam nos dados de treino, o modelo pode ter lembrado em vez de decifrado. Só um teste reproduzível, com código aberto e mensagem mantida em sigilo até a hora do teste, separa memória de criptanálise.
Conclusão
No fim, o feito é pequeno no tamanho e grande no recado: IA atual já consegue operar como assistente de criptanálise histórica quando tem chave candidata, execução rigorosa e validação externa. Será que esse método se mantém sem uma Sebastopol para confirmar o texto, ou ele só move o gargalo da decifração para a validação.



Comentários
0 comentáriosNenhum comentário ainda. Seja o primeiro a comentar.