Baixar este arquivo PDF

Propaganda
DESENVOLVIMENTO DE UM SIMULADOR DA MÁQUINA ENIGMA
UTILIZANDO O PARADIGMA ORIENTADO A OBJETOS EM JAVA
Ricardo Peixoto Robaina(1), Ânderson Fischoeder Soares(2), Carlos Michel Betemps(3)
Estudante; Universidade Federal do Pampa; Bagé, RS; [email protected] ;
Estudante; Universidade Federal do Pampa; Bagé, RS; [email protected];
(3)
Orientador; Universidade Federal do Pampa;
(1)
(2)
Palavras-Chave: criptografia, enigma, java, computação.
INTRODUÇÃO
Um dos primeiros grandes embates da história da computação aconteceu durante a Segunda Guerra
Mundial e esteve relacionado ao uso de mensagens criptografadas. Dentre outras máquinas, os alemães
usavam uma que ficou muito famosa, a Enigma. Essa máquina foi inventada logo depois do fim da Primeira
Guerra Mundial por Arthur Scherbius (WAZLAWICK, 2016). A técnica de criptografia usada pela Enigma era
extremamente difícil de decifrar de maneira manual. A tarefa tornava-se quase impossível pois a cada 24
horas os alemães trocavam as configurações da máquina. Assim, para tentar decifrar as mensagens da
Enigma, Alan Turing e outros cientistas foram contratados pelo governo britânico. Em 1939, Turing
conseguiu apoio para construir uma máquina eletromecânica chamada de “Bomba Criptológica” ou “Bomba
Eletromecânica”, com a qual se conseguiu quebrar a criptografia da Enigma. Em virtude da relevância da
Enigma para a história da computação, o objetivo do presente estudo foi desenvolver um simulador do
funcionamento dessa máquina, no qual o usuário possa ter uma experiência do seu uso, além de conhecer
e entender o seu complexo funcionamento. Este trabalho foi desenvolvido no contexto da disciplina de
Programação Orientada a Objetos do curso de Engenharia de Computação do Campus Bagé da
Universidade Federal do Pampa, visando aplicar os conceitos, as técnicas e as ferramentas estudadas.
METODOLOGIA
Para o desenvolvimento do trabalho, inicialmente, realizou-se um estudo acerca do funcionamento da
máquina Enigma. Para tanto, as principais fontes consultadas foram livros, artigos científicos e máquinas de
busca na Internet.
A metodologia também contou com a utilização do paradigma orientado a objetos, especificamente
por meio da linguagem de programação Java (DEITEL, 2005). Isso porque, através dele, torna-se possível
fazer uma analogia entre os objetos do paradigma com os objetos da máquina real, isto é, com as peças
componentes da Enigma. Dessa forma, cada parte da máquina foi implementada separadamente por uma
classe Java. Logo, o simulador, como um todo, nada mais é que a composição de objetos instanciados a
partir das classes programadas, que interagem para simular o funcionamento da Enigma, assim como
acontece com a própria máquina, que é uma composição de suas peças, cada uma com seu papel a
desempenhar.
Visto que mais de 50 modelos diferentes da máquina Enigma foram fabricados, optou-se pelo modelo
M3 como objeto de estudo desse trabalho, por ter sido o mais famoso. A grande diferença entre os modelos
das máquinas é o número de configurações disponíveis. O modelo escolhido possui três rotores, um refletor
tipo B e um painel de plugs.
O desenvolvimento do simulador ocorreu a partir da definição dos nove componentes (que foram
implementados como classes Java) do simulador da máquina Enigma. Esta definição teve por objetivo
claramente definir as classes Java que seriam implementadas, assim como facilitar o desenvolvimento e
testes do Simulador. O diagrama de classes da UML (DEITEL, 2005) da Figura 1c apresenta, de forma
simplificada, as classes construídas e o relacionamento estrutural existente entre os objetos destas classes
utilizados na implementação do simulador. Toda a interação do usuário com o simulador é dada através de
interfaces gráficas com o usuário (GUI´s), como pode ser visto na Figura 1a. A figura 1b apresenta uma foto
do modelo da máquina Enigma usado como base neste trabalho.
RESULTADOS E DISCUSSÃO
Para o correto processo de criptografia de uma mensagem, ambos os lados da máquina Enigma
envolvidos na comunicação deveriam conhecer sua configuração. Ou seja, remetente e destinatário de
Anais do 8º Salão Internacional de Ensino, Pesquisa e Extensão – Universidade Federal do Pampa
mensagens precisavam saber a ordem dos rotores, a posição de cada rotor, o ajuste do anel (para colocar
cada posição combinada os anéis de índices ajustáveis de cada rotor) e também a conexão dos plugues –
uma descrição completa do funcionamento da máquina Enigma pode ser encontrado no trabalho de
KRISCHER (2012). Dessa maneira, com o desconhecimento da configuração de qualquer um dos
participantes da comunicação, a codificação/decodificação não ocorreria de maneira correta.
Os testes no simulador basearam-se nesse princípio, isto é, foi colocada uma palavra como entrada
na máquina (simulador) e ajustada a configuração inicial dos rotores, anéis e conexão dos plugues. Através
disso, foi obtido uma codificação. A decodificação deu-se a partir do processo inverso. Ao utilizar a mesma
configuração da máquina, foi obtida a palavra inicial. Após a execução de vários testes com a obtenção de
resultados como esse foi comprovado que o simulador da máquina Enigma funcionava da maneira
esperada e corretamente (pelo menos para o conjunto de testes realizados).
Assim como na máquina original, o usuário clica em uma letra no teclado e obtém como resposta, no
painel de saída, uma luz (um destaque) na letra correspondente codificada. Por meio de uma interface
adicional disponível no simulador é possível ver todo o processo de cifragem/decifragem da máquina
Enigma, conforme Figura 1d. Esta experiência visual facilita o entendimento do usuário no aprendizado dos
conceitos básicos de criptografia desta máquina.
Figura 1 – Enigma: a) Interface do Simulador, b) Foto da Máquina Enigma Original, c) Diagrama de Classes UML
do Simulador e d) Interface Descritiva do Funcionamento do Simulador
CONCLUSÕES
O simulador implementado apresenta uma criptografia equivalente àquela da máquina original, já que
consegue utilizar todas as configurações de cifra disponíveis originalmente na Enigma. Além disso, pôde-se
verificar que a aparência da interface com o usuário do software é fiel à da máquina original.
Em suma, o simulador construído neste trabalho é uma ferramenta adicional para o ensino de
conceitos de criptografia, bem como no entendimento do contexto histórico e social que propiciou o
desenvolvimento da área de computação. Existe a intenção de tornar o simulador disponível via internet
para poder ser utilizado nos mais diversos fins por qualquer pessoa.
REFERÊNCIAS
DEITEL,
H.
M.;
Education, 2010.
DEITEL,
P.
J.
Java:
Como
Programar.
8.
Ed.
São
Paulo:
Pearson
KRISCHER, T. C. Um estudo da máquina Enigma [Trabalho de Conclusão de Curso]. Porto Alegre: Graduação em
Ciência
da
Computação
da
UFRGS,
2012.
98
f.:il.
Disponível
em:
<https://www.lume.ufrgs.br/bitstream/handle/10183/66106/000870987.pdf?sequence=1>. Acesso em: 26 set. 2016.
WAZLAWICK, R. S. História da Computação. 1ª ed. Rio de Janeiro: Elsevier, 2016.
Anais do 8º Salão Internacional de Ensino, Pesquisa e Extensão – Universidade Federal do Pampa
Download