terça-feira, setembro 16, 2008

Livro: From Fish To Colossus - Parte 2

Continuando o post anterior, vamos ver como a cifra Lorenz foi quebrada e alguns comentários sobre o livro.

A Quebra da Cifra Lorenz

A quebra da cifra foi obtida graças a conhecimentos de criptografia, erros de projeto ou operação das máquinas Lorenz e, principlamente, muita tentativa e erro.

O primeiro passo era ter uma idéia de como a máquina era internamente. Os ingleses conheciam patentes públicas e protótipos de máquinas com rotores, e deduziram que a Lorenz usava uma máquina deste tipo para codificar independentemente cada um dos 5 canais do código Baudot. As mensagens encriptadas eram sempre precedidas por uma lista de 12 nomes não criptografados. Isto sugeria que a chave da mensagem (posição inicial dos rotores) tinha tamanho doze e portanto esta era a quantidade de rotores na máquina. Era razoável supor que eram usados dois rotores para cada canal e que os dois rotores restantes controlavam o movimento dos demais. Somente no final de 1945 uma máquina Lorenz foi capturada e estas deduções confirmadas.

O passo seguinte era tentar determinar o número de posições para os pinos em cada rotor. Isto era facilitado pelo fato dos canais serem codificados independentemente e dos rotores Sn serem movidos bem espaçadamente. Desta forma, durante o período de tempo que o rotor Sn ficava parado cada canal era criptografado apenas pelo rotor Xn. Mais importante, um operador alemão cometeu um erro crasso em 30 de agosto de 1941: ele digitou duas vezes uma mesma mensagem longa usando a mesma chave. Devido a pequenas diferenças na segunda digitação os ingleses ficaram com dois textos parecidos codificados com a mesma chave.

Fazendo o xor das duas mensagens criptografadas a chave foi cancelada e restou somente o xor das mensagens originais. Assumindo que o início do texto de uma delas era "SPRUCHNUMMER" (mensagem número em alemão), John Tiltman descobriu que o a outra começava com "SPRUCHNR" (o operador abreviou na segunda vez). Com uma das mensagens "andando na frente" da outra, pôde pacientemente recuperar as duas mensagens e, a partir delas, a chave. As chaves foram analisadas (à mão, ao longo de dois meses) por Bill Tutte que verificou repetições de padrão em cada canal e com isto determinou a quantidade de posições em cada rotor e como eles estavam interligados.

Uma máquina eletrônica foi construída para emular a Lorenz. Construída com reles, foi chamada de Tunny.

Análises estatísticas revelaram algumas fraquezas na criptografia Lorenz, o que permitiu a descoberta das chaves por tentativa e erro automatizados. Um primeiro tipo de máquina foi denominada Heath Robinson. Basicamente esta máquina processava duas fitas perfuradas (uma com a mensagem criptografada e a outra com uma possível chave) e apresentava contadores com estatísticas. Repetindo o processo variando a fita com a possível chave, o resultado nos contadores indicava a chave correta. Esta máquina era bastante complicada do ponto de vista mecânico, dada a necessidade de mover em sincronismo e em alta velocidade as duas fitas.

O Colossus foi a evolução da Robinson. Ela gerava a chave eletrônicamente, dispensando a segunda fita. Embora seja considerado um ancestral dos computadores, o Colossus era mais uma calculadora, não tendo capacidade de programação ou decisão. Por outro lado, ele possuia alguns circuitos digitais básicos, como XOR, shift e contadores, implementados com válvulas eletrônicas.

O Livro

Um primeiro aspecto negativo é a apresentação, que mais parece um trabalho acadêmico encadernado em casa. Considerando-se os recursos atuais de editoração eletrônica, o livro poderia ter um acabamento melhor e uma formatação gráfica mais sofisticada.

Deve-se louvar o esforço de pesquisa do autor (Harvey G. Cragon). O livro contém muita teoria e uma grande quantidade de fotos, diagramas e esquemos elétricos.

Infelizmente, o livro é bastante confuso. Em alguns momentos parece que os capítulos não seguem uma ordem totalmente lógica e que trechos são repetidos. O autor não conseguiu explicar de forma clara (pelo menos para mim) a teoria por trás da quebra da criptografia.

Em resumo, o assunto é muito interessante mas o livro acaba sendo cansativo pela falta de clareza.

Para quem quiser saber um pouco mais, sugiro dar uma olhada na seguinte página:

http://www.codesandciphers.org.uk/lorenz/fish.htm

Nenhum comentário: