Emulador de bomba de Turing em Raspberry Pi e Arduino
" Enigma " - uma série de máquinas de codificação de rotores eletromecânicos alemães, usadas desde os anos vinte do século passado. A inclusão do tempo de transmissão ativa das mensagens criptografadas no Enigma cai durante a Segunda Guerra Mundial. Nesse sentido, um enorme valor prático apareceu para quebrar a criptografia do Enigma.Para invadir os códigos Enigma, o Departamento de Cifra polonês desenvolveu uma bomba Cryptological, usada para decifrar mensagens. No total, foram criadas seis máquinas para seis combinações de rotores, que tinham um escopo limitado devido à especificidade das condições para uma mensagem criptografada. As máquinas rapidamente perderam o significado com a introdução de novos rotores, e o lado polonês não tinha recursos para criar mais 54 "bombas". Depois disso, tive que voltar aos métodos manuais -folhas de Zygalsky . Com base nos desenvolvimentos poloneses , foi criada uma Bombe , uma máquina eletromecânica mais avançada , mais frequentemente associada à personalidade de Alan Turing. No total, foram construídas cerca de cem "Bombas" britânicas. Após o fim da Segunda Guerra Mundial, quase todas as bombas foram destruídas por razões de sigilo.Embora exista documentação no dispositivo em livre circulação, tentativas bem-sucedidas de recriar a bomba podem ser contadas nos dedos de uma mão. Esta, por exemplo, é uma reconstrução viável do Projeto de Reconstrução Bombe de uma equipe amadora liderada por John Harper. A réplica levou 13 anos para ser criada. Ontem na rede publicou seu projeto muito mais modestoamador da Nova Zelândia. Este é um emulador de três rotores. Na verdadeira "bomba" havia 26 triplos interconectados.A Enigma usou uma cifra polialfabética , cujo exemplo mais famoso é a cifra de Viginer . Podemos descrever brevemente o princípio de operação da cifra como a cifra dinâmica de César, na qual a profundidade da mudança muda de acordo com um determinado algoritmo. Os corações do Enigma são três rotores, embora mais tarde quatro cópias tenham sido criadas. Em cada um dos rotores dos dois lados, existem 26 contatos correspondentes às letras do alfabeto. As conexões elétricas dos trilhos entre os contatos não seguem uma linha reta, diferem de rotor para rotor. Os rotores podem ser removidos, alterados sua localização ou inserir outros rotores do conjunto. Desde janeiro de 1939, nas forças terrestres e na aviação, o conjunto consistia em 5 rotores, que deram 60 combinações, e na frota - 8 (336 combinações).
Uma medida adicional é o uso de um patch panel. As conexões elétricas com os fios no painel frontal da máquina permitem alterar as letras em pares: A pode se tornar R e R nesse caso se tornará A. Para ler a mensagem, você precisa conhecer a posição dos rotores no eixo, quais rotores e refletores do conjunto foram usados, o código de criptografia (3 caracteres latinos alfabeto) e a posição dos fios no painel de conexões. Em algumas versões, outras medidas foram introduzidas: o refletor também girou, um número maior de rotores foi usado e assim por diante.
Depois de pressionar a tecla, a corrente passava pelos caminhos elétricos da tecla, pelos contatos no painel de conexões, por três rotores com posições diferentes das trilhas, retornados pelo refletor e novamente por três rotores. Então uma luz se acendeu no painel com a letra correspondente da cifra. Pelo menos um rotor fez um movimento, alterando a combinação para criptografar a próxima letra. Os rotores giravam como um segundo, minuto e no sentido horário em um relógio mecânico: um rotor direito rápido fez uma rotação completa e, em seguida, uma rotação de 1/26 fez uma rotação média. Depois de uma volta completa do meio, a volta 1/26 fez a esquerda mais lenta.A bomba ajudou a estabelecer as possíveis configurações do Enigm nas forças alemãs. Ela não deu mensagens prontas. Para concluir o trabalho, era necessário o mesmo trabalho manual. As "bombas" ajudaram a reduzir o número de soluções possíveis para uma aceitável e acessível para processamento.Para descriptografar as mensagens, as chamadas "dicas" eram necessárias. Um conhecido ataque de texto simples foi realizado: o texto criptografado foi verificado quanto à possibilidade de conter palavras e frases familiares. Encontrar "pistas" exigia conhecimento das gírias militares alemãs e do estilo de comunicação dos operadores de telecomunicações. Um papel significativo foi desempenhado pelo design do refletor: a carta nunca poderia ser criptografada em si mesma. Depois de escolher uma dica, foi compilado o chamado “menu”, um programa para encontrar possíveis soluções. A execução do “menu” foi interrompida por paradas com soluções candidatas, que foram verificadas. Geralmente, havia muitas paradas com as decisões erradas antes de encontrar a correta.Um amador da Nova Zelândia recriou a bomba. Seria mais preciso dizer que ele recriou o emulador de um dos 26 blocos da máquina de descriptografia. O dispositivo criado é compacto - pode ser colocado em cima da mesa. Os cálculos são realizados no Raspberry Pi 2. O dispositivo nem esconde isso: o resultado é exibido até o final do movimento dos rotores. Três tambores da mesma cor (no original tinham cores especiais para a tarefa a ser executada) giram puramente para obter um efeito cosmético. Mas eles fazem isso de maneira convincente e na mesma velocidade que o original. O processo é agradável de assistir.O vídeo inicia o próprio "menu" com um relatório sobre o clima, que foi usado para demonstrar a verdadeira "bomba". É fácil entender o porquê: está claro.O projeto foi assistido pelo líder da equipe para criar uma réplica completa John Harper e vários outros especialistas. Antes disso, o amador criou um relógio de bomba - uma versão totalmente funcional da máquina de hackers Enigma, que pode ser usada no pulso.
Dentro da bomba de mesa, há uma placa Raspeberry Pi 2, Arduino, uma bateria de ácido-chumbo de 12 volts e um voltímetro. O emulador consome muita energia e consome facilmente 1,5-2 amperes cada. Inicialmente, o software para trabalho foi escrito em Basic, mas depois foi portado para C ++. O Raspberry Pi 2 se conecta ao Arduino e controla três motores de passo. O Arduino informa ao Raspeberry Pi 2 a posição dos motores como uma série de pulsos para que possam ser parados no momento certo. No lado é uma tela de cristal líquido, que desempenha o papel de um indicador mecânico da "bomba" original. Os botões de início e interrupção estão localizados na frente como uma amostra real.
A caixa é feita de aço com uma espessura de 0,8 mm e os tambores em escala 3/4 - a partir de latas comuns. Todas as partes do dispositivo são feitas à mão. O peso é de cerca de 10 kg. Os arquivos do "menu" são carregados a partir de uma unidade flash, que pode ser inserida abrindo a tampa na parte traseira. Também no lado há uma porta de rede para monitorar o emulador, que é fechada por uma tampa. Em operação, o dispositivo está barulhento com os motores, mesmo que o volume não possa ser comparado com o ruído de uma "bomba" real .O autor promete publicar o código fonte do programa do dispositivo, embora sem o hardware existente em uma única cópia, não haja nada para executá-lo. Resta desejar que o autor não leve sua criação para a escola e, mais ainda, não explique na prisão o que é.Página do projeto com fotosSimulador de bomba on-line de TuringSource: https://habr.com/ru/post/pt384917/
All Articles