Bóson Treinamentos em Ciência e Tecnologia

Criptografia – Cifra de Vigenère

Cifra de Vigenère - Criptografia

Cifra de Vigenère

A cifra de Vigenère é uma técnica de criptografia por substituição polialfabética que utiliza uma série de cifras de César diferentes, baseadas nas letras de uma palavra-chave.

Esse método de criptografia foi descrito originalmente pelo criptologista italiano Giovan Battista Bellaso em um livro de 1553 de nome “La cifra del. Sig. Giovan Battista Bellaso”. Curiosamente, o método foi atribuído posteriormente – e de forma errônea – a Blaise de Vigenère no século XIX, e por isso é conhecida até os dias de hoje por “Cifra de Vigenère”.

Trata-se de uma cifra muito simples de entender, implementar e até mesmo quebrar, mas mesmo assim três séculos se passaram até que alguém conseguisse quebrá-la (decifrar mensagens). Chegou a receber a alcunha de “le chiffre indéchiffrable” (“A cifra indecifrável”, em francês). Um método geral de decifrá-la foi publicado pelo criptógrafo e arqueólogo alemão Friedrich Kasiski em 1863 apenas.

Funcionamento da cifra

Essa cifra consiste em várias cifras de César utilizadas em sequência, com valores de deslocamento diferentes e obtidos a partir de uma palavra-chave (uma espécie de “senha”).

A cifragem é realizada com o uso de uma tabela de alfabetos, denominada tabula recta, ou “quadrado de Vigenère”, que consiste no alfabeto escrito 26 vezes em linhas diferentes, cada um deslocado ciclicamente para a esquerda comparado com o alfabeto anterior, de forma a corresponder às 26 cifras de César possíveis. Durante o processo de criptografia, a cifra usa um alfabeto diferente de uma das linhas, e o alfabeto a ser utilizado em cada ponto depende da palavra-chave, que é repetida caso a mensagem a ser cifrada seja maior do que ela.

Quadrado de Vigenère

A figura a seguir mostra um quadrado de Vigenère, com as combinações de alfabetos

By Brandon T. Fields (cdated) – Based upon Vigenere-square.png by en:User:Matt Crypto. This version created by bdesham in Inkscape, and modified by cdated to include visual guides. Public Domain, https://commons.wikimedia.org/w/index.php?curid=15037524

Exemplo:
Vamos encriptar a frase “Adoro programar”, usando como palavra-chave a palavra “python”. A palavra-chave deve ser repetida até completar o comprimento da mensagem a ser enviada, da seguinte forma:

Mensagem: adoro programar
Palavra-chave: pytho npythonpy
Texto cifrado: pbhyc cgmzyozpp

A primeira letra do texto, que é a letra “a”, é cifrada com o alfabeto da linha “p”, que é a primeira letra da palavra-chave. Procuramos a letra na linha p que esteja na coluna a, que no caso é a letra “p”. Esta será a primeira letra do texto cifrado.

Passando para a segunda letra do texto normal, que é “d”, procuramos a linha correspondente à letra “y”, segunda letra da chave, e localizamos a letra que esteja na intersecção dessa linha com a coluna da letra procurada, d. No caso, a letra é “b”, segunda letra do texto cifrado.

E assim sucessivamente, até o final da cifragem.

Para decriptar o texto, vamos à tabela na linha correspondente à chave, encontramos a letra do texto cifrado na linha, e então usamos o rótulo da coluna como texto plano (decriptado). No exemplo acima, na linha p (de python), a letra P do texto cifrado (primeira letra), aparece na coluna A, que é então a primeira letra do texto decifrado. Na linha da segunda letra da chave, y, encontramos a segunda letra do texto cifrado, b, que corresponde à coluna D – esta é a segunda letra do texto original – e assim sucessivamente até o final.

Podemos testar a cifra de Vigenère usando uma ferramenta online para cifragem e decifragem no site:  http://www.vigenere.net/

Outro site muito interessante, que permite decifrar textos cifrados em Vigenère escolhendo idiomas-alvo (inglês, alemão ou espanhol) é o www.guballa.de/vigenere-solver

Anterior: Cifra de César

Próximo: Técnica de criptografia One Time Pad

Sair da versão mobile