# Enigma (máquina)

Enigma foi uma máquina eletromecânica de criptografia com rotores. Utilizada tanto para criptografar como para descriptografar códigos de guerra, foi usada de várias formas na Europa a partir dos anos 1920.
A sua fama vem da sua adaptação pela maior parte das forças militares alemãs a partir de cerca de 1930. A facilidade de uso e a suposta indecifrabilidade do código foram as principais razões para a sua popularidade. O código foi, no entanto, decifrado, e a informação contida nas mensagens que ele não protegeu é geralmente tida como responsável pela antecipação do fim da Segunda Guerra Mundial em pelo menos dois anos.

## História

A Enigma foi patenteada por Arthur Scherbius em 1918. Os primeiros modelos (Enigma modelo A) foram exibidos nos congressos da União Postal Universal de 1923 e 1924. Tratava-se de um modelo semelhante a uma máquina de escrever, com as medidas de 65x45x35 cm e pesando cerca de 50 kg.
Três outras versões comerciais lhe sucedem, e a Enigma-D torna-se o modelo mais divulgado após suscitar o interesse da marinha alemã em 1926. A marinha alemã interessou-se pela Enigma e comprou alguns exemplares, adaptando-as ao seu uso em 1926. Estas primeiras máquinas de uso militar denominavam-se Funkschlüssel C.
Em 1928 o exército elaborou a sua própria versão - a Enigma G. A partir desse momento, o seu uso estende-se a toda a organização militar alemã e a uma grande parte da hierarquia nazi. A marinha chama a Enigma a máquina M.
Durante a Segunda Guerra Mundial, as versões da Enigma são usadas por praticamente todas as comunicações rádio alemãs (e também as de outras potências do Eixo), tal como para as comunicações telegráficas. Mesmo os boletins meteorológicos são codificados com a Enigma. Os espanhóis (durante a guerra civil) e os italianos (durante a Segunda Guerra Mundial) utilizam uma das versões comerciais da máquina, inalterada, para as suas comunicações militares. Esta imprudência beneficia os Britânicos que fazem a criptoanálise do código mais rapidamente.
O código foi de facto quebrado em 1933 por matemáticos da Polónia (Marian Rejewski, Jerzy Różycki e Henryk Zygalski) com a ajuda de meios eletromecânicos (as "bombas"). Um dos serviços secretos franceses consegue comprar a Hans-Thilo Schmidt, irmão do tenente-coronel Rudolf Schmidt que será em Maio e Junho de 1940 o superior direto do general Rommel, as chaves mensais da Enigma, que foram partilhadas com os polacos. Versões aperfeiçoadas das "bombas" polonesas criadas pelos britânicos em Bletchley Park, sob a liderança do matemático Alan Turing, aceleraram o processo de decodificação das Enigmas usadas pela marinha alemã.
Não bastava, no entanto, decifrar todas as comunicações secretas do inimigo: era necessário fazê-lo de forma a que ele o ignorasse. A destruição de cada navio alemão do qual a posição fosse conhecida era precedida do envio de um avião de reconhecimento que sobrevoava o local de forma que parecesse acidental. Este fazia-se ver com nitidez, e o ataque podia então ser feito sem alertar o estado-maior inimigo.
Em 2021 estima-se que existam 318 máquinas Enigma, 284 das quais estavam em uso durante ou antes da II Guerra Mundial.

## Funcionamento

Tal como outras máquinas com rotores, a Máquina Enigma é uma combinação de sistemas mecânicos e elétricos. O mecanismo consiste num teclado, num conjunto de discos rotativos chamados rotores, dispostos em fila; e de um mecanismo de avanço que faz andar alguns rotores uma posição quando uma tecla é pressionada. O mecanismo varia entre diversas versões da máquina, mas o mais comum é o rotor colocado à direita avançar uma posição com cada tecla premida, e ocasionalmente despoletar o movimento rotativo dos restantes rotores, à sua esquerda, à semelhança do mecanismo conta-quilómetros de um automóvel. O movimento contínuo dos rotores provoca diferentes combinações na criptografia.

### Cifrar um texto

A parte mecânica funciona de modo a variar um circuito elétrico que efetua a cifra de cada letra premida no teclado. Ao premir uma tecla, o circuito completa-se: a corrente elétrica flui pelos diversos componentes (pela ordem teclado, conexões para câmbio de codificação, rotores, rotor-espelho, rotores pela ordem inversa e placa de luzes). A luz que no fim do processo se acende codifica a letra premida no teclado. Por exemplo, ao codificar a mensagem RET..., o operador primeiro tecla em R, acende-se uma luz por exemplo, T - que será a primeira letra da cifra resultante. O operador prossegue teclando E, acende-se outra luz, e assim sucessivamente.

### Rotores

Os rotores (também chamados rodas ou tambores — Walzen em alemão) são o coração da máquina Enigma. Com aproximadamente 10 cm de diâmetro, cada um é um disco feito de borracha dura ou baquelite com uma série de pinos de metal salientes dispostos em círculo num dos lados; no outro lado situa-se uma série de contactos eléctricos. Os pinos e os contactos eléctricos representam o alfabeto — tipicamente as 26 letras de A até Z. Quando colocados lado-a-lado, os pinos de um rotor tocam nos contactos do rotor vizinho, formando um circuito eléctrico. No interior de cada rotor, um conjunto de 26 fios eléctricos liga cada pino de um lado a um contacto eléctrico do outro segundo um padrão fixo complexo. Cada rotor tem um esquema destes diferente.
Apenas por si próprio, um rotor não permite fazer mais que uma criptografia simples: uma cifra de substituição. Por exemplo, o pino correspondente à letra E pode ser ligado ao contacto para a letra T no lado oposto. A complexidade resulta do uso de vários rotores em sequência (habitualmente três ou mais) e no movimento regular dos rotores. Isto leva a uma criptografia muito mais complexa e robusta.
| Três rotores em sequência quando colocados no interior da máquina Enigma Três rotores Enigma e o eixo no qual são colocados quando em uso | Diagrama de um rotor Enigma. anel dentado (uma ranhura) ponto de marca do contacto "A" círculo com alfabeto contactos fios eléctricos pinos encaixe do eixo hub roda dentada movível com os dedos ratchet |
Quando colocado na máquina, um rotor pode ter uma de 26 posições. Pode ser rodado à mão usando uma roda dentada que sai da caixa fechada por uma ranhura, suficiente para permitir o seu movimento com um dedo. Assim, se um operador conhece a posição inicial, coloca cada rotor na posição correcta para formar esse código inicial. Quando atinge a posição do anel dentado, o mecanismo da ranhura provoca a rotação do rotor vizinho, à semelhança dos conta-quilómetros mecânicos dos automóveis.
As máquinas Enigma do exército e força aérea alemãs estavam equipadas com vários rotores; numa primeira versão eram três. Em 15 de Dezembro de 1938 mudaram para cinco, dos quais três eram escolhidos para inserção na máquina. Estes rotores estavam numerados (segundo a numeração romana) para ser fácil distingui-los. As máquinas da marinha alemã tiveram desde o início cinco rotores, e mais tarde ampliaram a colecção para sete, e depois oito. Todos os rotores de I a VIII tinham esquemas de ligação internos - entre pinos e contactos - diferentes. Além disso, alguns rotores podiam ter mais que uma ranhura, o que provocava uma rotação dos rotores mais frequente.
A marinha alemã (M4) dispunha de uma máquina de quatro rotores, colocados no espaço previsto para três. Isto era conseguido à custa da substituição do reflector original por um de menor espessura e adicionando o quarto rotor, fixo mas configurável em qualquer das 26 posições.

## Outras máquinas semelhantes

A máquina de criptografia britânica, Typex, e várias americanas, como a SIGABA ou a M-134-C, eram semelhantes à Enigma nos seus princípios básicos, mas muito mais seguras. A primeira máquina de criptografia com rotores moderna, criada por Edward Hebern, era bastante menos segura, o que foi apontado por William F. Friedman quando ela foi oferecida ao governo dos Estados Unidos.

## Simuladores

Existem alguns simuladores disponíveis na Internet
| Nome | Plataforma | Tipos | Uhr | UKW-D |
| Franklin Heath Enigma Simulator | Android | K Railway, Kriegsmarine M3,M4 | Não | Não |
| EnigmAndroid | Android | Wehrmacht I, Kriegsmarine M3, M4, Abwehr G31, G312, G260, D, K, Swiss-K, KD, R, T | Não | Não |
| Andy Carlson Enigma Applet (Standalone Version) | Java | Kriegsmarine M3, M4 | Não | Não |
| Minarke (Minarke Is Not A Real Kriegsmarine Enigma) | C/Posix/CLI (MacOS, Linux, UNIX, etc.) | Wehrmacht, Kriegsmarine, M3, M4 | Não | Não |
| Russell Schwager Enigma Simulator | Java | Kriegsmarine M3 | Não | Não |
| PA3DBJ G-312 Enigma Simulator | Javascript | G312 Abwehr | Não | Não |
| Daniel Palloks Universal Enigma | Javascript | I (Wehrmacht), M3 (Kriegsmarine), M4 (Shark), D (commercial), K (Swiss), KD (Sweden), N (Norenigma), R (Railway), S (Sondermaschine), T (Tirpitz/Japan), A-865 (Zählwerk), G-111 (Hungary/Munich), G-260 (Abwehr/Argentina), G-312 (Abwehr/Bletchley Park) | Sim | Sim |
| Universal Enigma Machine Simulator | Javascript | D, I, Norway, M3, M4, Zählwerk, G, G-111, G-260, G-312, K, Swiss-K, KD, Railway, T | Sim | Sim |
| Terry Long Enigma Simulator | MacOS | Kriegsmarine M3 | Não | Não |
| Paul Reuvers Enigma Simulator for RISC OS | RISC OS | Kriegsmarine M3, M4, G-312 Abwehr | Não | Não |
| Dirk Rijmenants Enigma Simulator v7.0 | Windows | Wehrmacht, Kriegsmarine M3, M4 | Não | Não |
| Frode Weierud Enigma Simulators | Windows | Abwehr, Kriegsmarine M3, M4, Railway | Não | Não |
| Alexander Pukall Enigma Simulator | Windows | Wehrmacht, Luftwaffe | Não | Não |
| CrypTool 2 — Enigma component and cryptanalysis | Windows | A/B/D (commercial), Abwehr, Reichsbahn, Swiss-K, Enigma M3, Enigma M4 | Não | Não |
| Marcos Velasco - MV Enigma Simulator | Windows | Enigma M3 | Não | Não |