segunda-feira, setembro 15, 2008

Livro: From Fish To Colossus - Parte 1

A Segunda Guerra Mundial teve inúmeros segredos. É no mínimo curioso comparar a bomba atômica com a criptografia. A maior parte da teoria da bomba atômica foi rapidamente divulgada, ficando o segredo mais restrito aos aspectos práticos de construção da bomba. Já o uso da criptografia na Segunda Guerra ficou em sigilo por praticamente meio século.

A partir da metade dos anos 90 é que começaram a ser liberados documentos sobre o assunto, o que gerou uma leva de livros. O maior destaque foi dado à quebra da criptografia da máquina alemã conhecida como Enigma. Somente mais recentemente surgiram livros sobre uma outra cifra alemã, a Lorenz.

Li recentemente o livro 'From Fish To Colossus' de Harvey G. Cragon sobre a quebra da Lorenz e as máquinas desenvolvidas para isto. Nesta primeira parte vamos ver um pouco sobre o assunto do livro.

Criptografia I

Os princípio básicos da criptografia surgiram quase junto com a escrita e são hoje bastante conhecidos. A forma mais simples de codificação, chamada às vezes de Código de César, consiste na substituição simples de uma letra por outra, segundo uma tabela fixa. Este tipo de código se mostrou bastante vulnerável a ataques baseados na frequência de ocorrência das letras e das sequências de letras (vide, por exemplo, "A Adventura dos Dançarinos" em "O Retorno de Sherlock Holmes" de Conan Doyle).

Uma forma de deixar este tipo de criptografia (cifra de substituição) mais segura é utilizar várias tabelas de substituição (a chamada cifra polialfabética). Levando esta idéia ao limite, temos uma tabela diferente para cada caracter da mensagem - o chamado "one time pad".

A dificuldade prática de ter um número infinito (ou pelo menos muito grande) de tabelas de substituição levou ao uso de sequências pseudo-aleatórias, geradas automaticamente a partir de um valor inicial. Nos tempos da Segunda Guerra estas sequências eram geradas mecanicamente através de discos (ou rotores) que viravam a cada caracter codificado.

A Maquina Lorenz

A máquina criptográfica Lorenz era um dispositivo eletro-mecânico instalado entre um transmissor/receptor e uma teleimpressora.

A teleimpressora era capaz de transmitir caracteres digitados no seu teclado (ou a partir de uma fita perfurada) e de imprimir em papel os caracteres recebidos (ou perfurar uma fita com eles). Em um modo "off-line" era possível perfurar uma fita diretamente com os caracteres digitados no teclado. Para codificação dos caracteres era usado o código Baudot, com 5 bits (ou canais) para cada caracter.

A máquina Lorenz recebia os 5 canais e gerava 5 canais criptografados (e vice versa). Cada rotor possuia um número de posições (variando de 23 a 61) que podiam ou não conter um pino. Cada canal era criptografado de forma independente, através de um ou-exclusivo (XOR) com os valores definidos por dois rotores (chamados de Xn e Sn no livro). Dois rotores adicionais (M1 e M2) controlavam a rotação dos rotores Sn: M1 e os rotores Xn eram rodados a cada caracter, M2 era rodado a cada pino de M1 e os rotores Sn eram rodados a cada pino de M2. Eram portanto 12 rotores, com um total de 501 pinos, permitindo gerar uma sequência de 1.6x 10^19 caracteres sem repetição. Como comparação, a máquina Enigma possuia 3 rotores e gera uma sequência de 17.576 caracteres.

A segurança da criptografia Lorenz era fornecida por duas formas independentes. A primeira era a posição dos pinos nos rotores; inicialmente os rotores S eram alterados a cada 3 meses, os rotores X uma vez por mês e os rotores M diariamente (com o andar da guerra as posições dos pinos foram sendo trocadas cada vez mais frequentemente, até serem todas trocadas diariamente a vartir do verão de 1944). A segunda forma era a posição inicial dos rotores, que era escolhida alatoriamente pelo operador da máquina origem; esta informação tinha que ser transmitida para o operador da máquina destino.

Fish

Em 1940 a Alemanha começou a montar um conjunto de links de comunicação ponto-a-ponto, usando teleimpressoras, entre o quartel general de Hitler e os quarteis generais do exército. Quando os ingleses descobriram estes links, o codinome Fish foi dado ao sistema.

Após um breve período de teste, com transmissões abertas, os alemães passaram a usar as máquinas Lorenz. No final da guerra existiam cerca de 40 links em operação.

A quantidade de máquinas Lorenz e de mensagens criptografadas com elas foi bem menor que com a Enigma. Por outro lado, elas continham informações mais valiosas, por se tratar da comunicação entre os quarteis generais alemães.

Nenhum comentário: