A maioria dos códigos que aparecem em documentos históricos e trabalhos de ficção pertencem a família dos códigos monoalfabéticos. Nós já exploramos a principal vulnerabilidade desse método de criptografia, que consiste na possibilidade de desincriptação ao se analisar o padrão de frequência dos símbolos. Essa questão já havia sido avaliada antes mesmo da existência do primeiro computador.
Uma das mais renomadas e interessantes cifras projetadas com o objetivo de eliminar essa falha foi a Cifra de Vigenere. Apesar de ter tido sua autoria atribuída ao diplomata francês do século XVII, foi de fato criada por duas outras pessoas independentemente. Blaise Vigenere não era uma delas -na verdade, foi ele que propôs a cifra a Henrique III e ela passou a ser conhecida por esse nome a partir do século XIX.
A primeira aparição da cifra foi encontrada em Tactate on Ciphers, escrito por Leo Battista. Ele é famoso por ter sido o primeiro a propor a teoria que mais tarde se tornaria a perspectiva linear em pinturas. A ideia central era simples, porém foi capaz de revolucionar a criptografia, marcando o surgimento das cifras polialfabéticas.
Em uma cifra monoalfabética, cada símbolo do texto original é trocado por um outro do texto cifrado, como se substituísse um alfabeto pelo outro. Não importa se os substitutos são aleatórios ou baseados em um valor de troca predeterminado (como na Cifra de Caesar) ou ainda letras, números e qualquer outro símbolo.
Como muito bem retratado por Sir Arthur Conan Doyle em Os Dançarinos, a substituição de símbolos pode consistir até em pictogramas, porém isso não poupa a cifra da sua vulnerabilidade comum: as senhas podem ser descobertas mesmo utilizando um texto criptografado, por meio da análise da frequência de certos símbolos na mensagem ou ainda simplesmente por palpite.
Inclusive, já tentei usar esse método para desvendar um e-mail que foi enviado em um esquema de codificação diferente. E não foi tão difícil, até mesmo sem habilidades específicas ou computadores poderosos.
As cifras polialfabéticas utilizam diferentes quantidades de alfabetos em ciclos. Por exemplo, a Cifra de Vigenere, o padrão usaria como base a Cifra de César e compilaria em uma tabela todos os possíveis valores de troca:
Portanto, tem-se 26 caracteres substitutos e agora é necessário decidir o princípio de substituição. Uma troca simples que representaria uma sofisticação decente seria a simples substituição da letra atual pelo próximo caractere, porém assim que a frase-chave é empregada, a cifra torna-se muito mais difícil de ser decodificada.
Como começamos com histórias antigas, usemos VINTAGE como nossa palavra-chave. De modo a encriptar uma frase como “THINK ABOUT” (PENSE NISSO), precisaremos repetir a frase-chave até que se alcance o tamanho do texto original.
Então, para cada símbolo do texto base um substituto é colocado, localizado na linha começando com a letra correspondente da palavra chave e na coluna começando com a letra do texto base. Por exemplo, a primeira letra é substituída pelo caractere localizado no cruzamento da coluna T e da linha V, que nesse caso é o ” O”.
Para descobrir o código, o processo é o oposto: encontramos as linhas que correspondem às letras da palavra-chave, encontrada a cifra nessa linha, o texto base corresponderá a letra da coluna.
A fascinante ideia original de Alberti previa um disso com anéis giratórios alfabéticos, a tabela descrita acima foi proposta mais tarde por outro desenvolvedor. O disco descrito na publicação de 1446 foi utilizado pelos Confederados na guerra Civil dos EUA.
A cifra ficou marcada como confiável e chegou a ser classificada como inquebrável pelo matemático Charles Lutwidge Dodgson (a.k.a. Lewis Carrol) e elogiada pela revista Scientific America. Ainda assim, sua interação mais famosa foi introduzida mais tarde como “Cifra de Gronsfeld”. A principal diferença de sua predecessora foi a limitação dos caracteres de substituição para 10 (de acordo com o número de dígitos) além do fato de que a palavra chave era um número.
É interessante comentar que a Cifra de Vigenere era suscetível à análise criptográfica em determinadas condições. Avaliando algumas características era possível definir o tamanho da palavra-chave e a partir disso, analisar as linhas de letras cifradas pela mesma linha da tabela, de modo que passava a ser possível empregar um método padrão baseado na frequência de certas letras na linguagem.
O primeiro que realizou a decodificação de uma modificação da Cifra de Vigenere em 1854 foi ninguém menos que Charles Babbage, pioneiro da computação, porém a análise foi publicada por outro pesquisador, Friedrich Kasiski, nove meses depois.
Por mais estranho que pareça, esse acontecimento ajudou a fortificar a cifra. Um dos melhoramentos foi a utilização de uma palavra chave com o mesmo tamanho da mensagem, o que prevenia análises de frequência.
No entanto, essa melhoria trouxe consigo outra vulnerabilidade: o uso de sensible texts como frase-chave resultava em uma criptoanálise com informações estatísticas sobre a senha, oferecendo outra pista na tentativa de decifrar o texto.
Contudo essa ideia deu origem a próxima atualização, a utilização de sequências aleatórias de símbolos como palavra-chave.
Como resultado, esta ideia foi desenvolvida no conceito de senhas de uso único. Essas tornaram-se então indecifráveis e passaram a ser utilizadas no meio civil e militar. Mas isso já é uma outra história.