Uma máquina Enigma de três rotores, exposta no Museu Nacional de Criptologia, da agência de segurança americana. Em cima, os rotores; no meio, as lâmpadas; embaixo, o teclado; na frente, o painel de conexões.
Uma máquina Enigma de três rotores, exposta no Museu Nacional de Criptologia, da agência de segurança americana. Em cima, os rotores; no meio, as lâmpadas; embaixo, o teclado; na frente, o painel de conexões.National Security Agency · Wikimedia Commons · domínio público

A Enigma parecia uma máquina de escrever dentro de uma caixa de madeira. O operador apertava uma letra no teclado e outra letra se acendia num painel de lâmpadas. Um segundo operador anotava as letras acesas, e essa sequência era transmitida por rádio, em código Morse. Do outro lado, um operador com uma máquina igual, ajustada da mesma maneira, digitava a mensagem cifrada e lia o texto original nas lâmpadas.

Entre a tecla e a lâmpada, a corrente elétrica passava por um labirinto: um painel de conexões, três rotores com fios cruzados por dentro, um refletor que mandava a corrente de volta, os três rotores de novo e o painel de novo. E, a cada tecla, o primeiro rotor girava uma posição, mudando o labirinto inteiro.

Contar as chaves

Os alemães confiavam na Enigma por causa do número de ajustes possíveis. Vamos contá-los para o modelo do exército em 1939, com a combinatória que Pascal ensinou.

Os rotores. Escolhem-se 3 rotores de uma caixa com 5, e a ordem importa:

$$5\cdot4\cdot3=60.$$

As posições iniciais. Cada rotor começa numa das 26 letras:

$$26^3=17\,576.$$

O painel de conexões. Dez cabos ligam letras aos pares, trocando-as. Quantas maneiras há de formar 10 pares com 26 letras? Ponha as 26 letras em fila, em qualquer das $26!$ ordens, e forme os pares com as 20 primeiras, de duas em duas. As 6 últimas ficam soltas, e a ordem delas não importa: divida por $6!$. A ordem dos 10 pares não importa: divida por $10!$. A ordem dentro de cada par não importa: divida por $2^{10}$. O resultado é

$$\frac{26!}{6!\cdot10!\cdot2^{10}}=150\,738\,274\,937\,250.$$

O total. Multiplicando:

$$60\cdot17\,576\cdot150\,738\,274\,937\,250\approx1{,}59\times10^{20}.$$

São cerca de 159 quintilhões de chaves, sem contar os anéis dos rotores. Testando um milhão de chaves por segundo, seriam precisos uns cinco milhões de anos para experimentar todas.

O defeito

O refletor tinha uma vantagem prática: com a mesma regulagem, a máquina servia para cifrar e para decifrar. Mas trazia um defeito de nascença: como a corrente sempre voltava por um caminho diferente, nenhuma letra podia ser cifrada como ela mesma. Um A nunca virava A.

Isso parece pouco, e era decisivo. Os criptoanalistas sabiam que muitas mensagens continham palavras previsíveis, que chamavam de cribs, “colas”: a previsão do tempo das 6 horas começava com WETTERVORHERSAGE, e muitos relatórios diziam KEINE BESONDEREN EREIGNISSE, “nada a relatar”. Para descobrir onde a cola estava na mensagem cifrada, bastava deslizá-la sobre o texto e descartar toda posição em que alguma letra coincidisse com a letra cifrada embaixo dela.

Q F Z W R W I K T Y R E S X B F O G K U H Q
W E T T E R V O R H E R S A G E              ← S sobre S: impossível
        W E T T E R V O R H E R S A G E      ← nenhuma coincidência: possível

Na primeira posição, o S da cola cairia sobre um S cifrado, o que a Enigma nunca faz: a posição é descartada. Quatro casas adiante, nenhuma letra coincide, e a posição continua candidata.

A bomba

Reconstrução da bomba de Turing e Welchman em Bletchley Park. Cada trio de tambores coloridos imita os três rotores de uma Enigma; a máquina testava as posições em sequência, eliminando as que contradiziam a cola.
Reconstrução da bomba de Turing e Welchman em Bletchley Park. Cada trio de tambores coloridos imita os três rotores de uma Enigma; a máquina testava as posições em sequência, eliminando as que contradiziam a cola.Mike Peel · Wikimedia Commons · CC BY-SA 4.0

Os poloneses Marian Rejewski, Jerzy Różycki e Henryk Zygalski já liam mensagens da Enigma desde 1932 e tinham construído uma máquina para isso, a bomba. Em julho de 1939, semanas antes da invasão da Polônia, entregaram tudo aos britânicos e franceses. Mas os alemães tinham complicado a Enigma, e o método polonês dependia de um hábito que eles abandonaram.

Turing projetou uma máquina nova, mais geral, baseada nas colas. A ideia era lógica: uma cola posta numa posição impõe ligações entre letras, como “se A está ligado a E no painel, então, três passos depois, T está ligado a R”. Essas implicações formam ciclos, e uma regulagem errada dos rotores logo leva a uma contradição, como “A está ligado a A e a B ao mesmo tempo”. A bomba percorria as 17 576 posições dos rotores, de modo elétrico, e parava só nas que não geravam contradição. Gordon Welchman acrescentou um “tabuleiro diagonal” que tornou a busca muito mais eficiente. A primeira bomba funcionou em março de 1940; no fim da guerra eram mais de duzentas.

Exercício: e com 8 rotores?

A marinha alemã escolhia os 3 rotores de uma caixa com 8. Quantas ordens de rotores havia?

$8\cdot7\cdot6=336$, mais de cinco vezes as 60 do exército. Por isso a Enigma naval, a que Turing atacou, era a mais difícil.

Exercício: um só cabo

Quantas maneiras há de ligar um único cabo no painel? E dois cabos?

Um cabo é a escolha de um par de letras: $\binom{26}2=\frac{26\cdot25}2=325$. Para dois cabos, escolhe-se o primeiro par, depois o segundo entre as 24 letras restantes, e divide-se por 2 porque a ordem dos cabos não importa: $\frac{325\cdot276}{2}=44\,850$. A fórmula geral dá o mesmo: $\frac{26!}{22!\cdot2!\cdot2^2}=44\,850$.

Fontes: Andrew Hodges, Alan Turing: The Enigma (1983) · Simon Singh, The Code Book (1999) · The Turing–Welchman Bombe, The National Museum of Computing.


Todos os tópicos de Alan Turing · ← A máquina universal: o programa também é um dado · Banburismo: pesar indícios em decibans →

Créditos das imagens.