A Enigma: 159 quintilhões de chaves e um defeito
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
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 →