Enigma Machine

Uma grande falha com o código Enigma era que uma letra nunca poderia ser codificada como ela mesma. Em outras palavras, um “M” nunca poderia ser codificado como um “M”. Esta era uma grande falha no código Enigma porque dava aos quebra-códigos uma informação que eles podiam usar para decifrar mensagens. Se os quebra-códigos pudessem adivinhar uma palavra ou frase que provavelmente apareceria na mensagem, eles poderiam usar essa informação para começar a quebrar o código. Como os alemães sempre enviavam um boletim meteorológico no início da mensagem, e geralmente incluíam a frase “Heil Hitler” no final da mensagem, havia frases que os decifradores sabiam que deveriam procurar. Os descodificadores podiam comparar uma determinada frase com as letras do código, e se uma letra da frase coincidisse com uma letra do código, eles sabiam que aquela parte do código não continha a frase. Os descodificadores podiam então começar a decifrar o código com um processo de eliminação.

Possíveis contendores para a codificação da palavra “RAIN” na cadeia codificada abaixo. (O símbolo % é usado para denotar letras desconhecidas).

Mensagem codificada E R W N I K O L K M M M M M
Frase R A I N % % % % % % % % %

RAIN não pode ser codificado como ERWN porque o N em RAIN e o N em ERWN coincidem. Como N não pode ser codificado como si mesmo, esta não é a codificação.

Vamos mudar a nossa mensagem uma ranhura para a direita, e ver se o resultado é uma codificação válida.

>

Mensagem codificada E R W N I K O L K M M M M M
Frase % R A I N % % % % % % % % %

RAIN não pode ser codificado como RWNI porque o R em RAIN coincide com o R em RWNI. Vamos mudar novamente.

Mensagem codificada E R W N I K O L K M M M M M
Frase % % R A I N % % % % % % % %

RAIN não pode ser codificado como WNIK porque o I em RAIN combina com o I em WNIK.

Mensagem codificada E R W N I K O L K M M M M M
Frase % % % R A I N % % % % % %

RAIN pode ser codificado como NIKO porque as duas frases não têm letras que coincidam. Portanto, NIKO é uma possível codificação de RAIN.

Se repetirmos este processo, veremos que NIKO, IKOL, KOLK, OLKM, LKMM, KMMM, e MMMM são codificações possíveis de RAIN já que nenhuma letra combina entre RAIN e a codificação. Não há problema que MMMM possa codificar RAIN mesmo que isso signifique que M codificaria R, A, I, e N porque lembre-se que a cada pressionamento de tecla, o mapeamento de letras em uma máquina Enigma muda.

Não é garantido que RAIN esteja codificado nesta string, mas isso deu aos decodificadores um bom ponto de partida para decodificar mensagens.

Alan Turing e Gordon Welchman desenharam uma máquina chamada Bombe machine que usava circuitos eléctricos para resolver uma mensagem codificada Enigma em menos de 20 minutos. A máquina Bombearia tentaria determinar as configurações dos rotores e da placa de encaixe da máquina Enigma usada para enviar uma determinada mensagem codificada.

A máquina Bombeadora Britânica padrão era essencialmente 36 máquinas Enigma interligadas, desta forma, a máquina Bombeadora simulava várias máquinas Enigma ao mesmo tempo. A maioria das máquinas Enigma tinha três rotores e para representar isto na Bomba, cada um dos simuladores Enigma na Bomba tinha três tambores, um para cada rotor.

Tambores da Bombeadora

Os tambores da Bombeadora foram codificados por cores para corresponder com qual rotor eles estavam simulando. Enquanto uma máquina Enigma de 3 rotores usou apenas três rotores de cada vez, há mais por onde escolher. Os tambores foram dispostos de modo que o superior dos três simulou o rotor esquerdo do scrambler Enigma, o do meio simulava o rotor do meio, e o inferior simulava o rotor direito. Os tambores giravam para experimentar uma nova configuração. Para cada rotação completa dos tambores superiores, os tambores médios eram incrementados por uma posição, e da mesma forma para os tambores médio e inferior, dando um total de 26 × 26 × 26 = 17.576 posições do scrambler Enigma de 3 rotores.

Então, para uma dada configuração de rotor (a cada volta dos tambores), a máquina Bombearia faria um palpite sobre uma configuração de Plugboard, dizendo “A está conectado a Z”. Em seguida, ela percorria e determinava em que todas as outras letras devem ser ajustadas na placa de encaixe. Se surgir alguma contradição, digamos, deduziu que “A estava ligado a W”, então deve ser que A não está ligado a Z na Plugboard, surge uma contradição. Como os outros mapeamentos de letras que a máquina acabou de descobrir foram determinados com base numa falsa suposição (nomeadamente a suposição de que A está ligado a Z), todas essas combinações são inválidas, e a máquina Bombeadora sabe que não deve perder tempo a verificar qualquer uma dessas combinações mais tarde. Então, digamos que a máquina adivinhou que A está ligada a Z, e então a máquina deduz que se A está ligado a Z, então B deve estar ligado a E. Se mais tarde determinar que A não está ligado a Z, sabe que B não está ligado a E. Depois de tal contradição surgir, a máquina Bombe não vai adivinhar que A está ligado a Z novamente, e sabe não adivinhar que B está ligado a E, e assim por diante. A máquina Bombeia desloca as posições do rotor, e escolhe um novo palpite e repete este processo até aparecer uma disposição satisfatória dos ajustes. Como os circuitos elétricos podem realizar cálculos muito rapidamente, a máquina Bombeadora pode passar por todas as combinações de rotores em cerca de 20 minutos.

Em cada posição dos tambores, a configuração seria testada para ver se a configuração leva a uma contradição lógica, descartando essa configuração. Se o teste não conduzisse a uma contradição, a máquina pararia e o descodificador notaria essa configuração como uma solução candidata. Em seguida, a máquina é reiniciada e mais configurações são testadas. Esses testes reduziriam a lista de configurações possíveis e as soluções candidatas seriam testadas para eliminar aquelas que não funcionariam. Geralmente havia muitas soluções candidatas sem sucesso antes que a correta fosse encontrada.

Deixe uma resposta

O seu endereço de email não será publicado.