2. Tema: "Cifra de Vigenère"

O tema escolhido para este projecto foi um dos algoritmos de cifragem mais conhecidos, tendo sido conhecido pela "cifra indecifrável".
Os parágrafos que se seguem foram retirados da Wikipédia e são aqui transcritos após revisão feita pelo corpo docente da disciplina.
A cifra de Vigenère é um método de criptografia que usa uma série de diferentes cifras de César baseadas em letras de uma senha. Trata-se de uma versão simplificada de uma mais geral cifra de substituição polialfabética, inventada por Leone Battista Alberti cerca de 1465.
Figura 1: A cifra de Vigenère tem o nome de Blaise de Vigenère (na imagem), embora tenha sido inventada antes por Giovan Batista Belaso. Vigenère inventou uma cifra mais robusta
A invenção da cifra de Vigenère é erradamente atribuída a Blaise de Vigenère; encontra-se originalmente descrita por Giovan Batista Belaso no seu livro datado de 1553 com o título La cifra del. Sig. Giovan Batista Belaso.
Esta cifra é muito conhecida porque é fácil de perceber e de pôr em prática, parecendo, a quem tem pouca prática, que é inquebrável (indecifrável). Consequentemente, muitos programadores implementaram esquemas de criptografia nas suas aplicações que são no essencial cifras de Vigenère, e que são facilmente quebradas por qualquer criptanalista.
Numa cifra de César, cada letra do alfabeto é deslocada da sua posição um número fixo de lugares; por exemplo, se tiver uma deslocação de 3, A torna-se D, B fica E, etc. A cifra de Vigenère consiste no uso de várias cifras de César em sequência, com diferentes valores de deslocamento ditados por uma "palavra-chave".
Para cifrar, é usada uma tabela de alfabetos que consiste no alfabeto escrito 26 vezes em diferentes linhas, cada um deslocado ciclicamente do anterior por uma posição. As 26 linhas correspondem às 26 possíveis cifras de César. Uma palavra é escolhida como "palavra-chave", e cada letra desta palavra vai indicar a linha a ser utilizada para cifrar ou decifrar uma letra da mensagem.
Figura 2: A grelha de Vigenère, conhecido também por tabula recta, usado para criptografia e descriptografia
Por exemplo, supondo que se quer criptografar o texto:
ATACARBASESUL ("atacar base Sul")
Escolhendo a chave e repetindo-a até ter o comprimento do texto a cifrar, por exemplo, se a chave for"LIMAO":
LIMAOLIMAOLIM
A primeira letra do texto, A, é cifrada usando o alfabeto na linha L, que é a primeira letra da chave. Basta olhar para a letra na linha L e coluna A na grelha de Vigenère, e que é um L. Para a segunda letra do texto, ver a segunda letra da chave: linha I e coluna T , que é B, continuando sempre até obter:
Texto: ATACARBASESUL Chave: LIMAOLIMAOLIM Texto cifrado: LBMCOCJMSSDCX
A decriptação é feita inversamente.
A cifra de Vigenère pode ser vista algebricamente. Se as letras A-Z forem mapeadas nos números inteiros 0-25, e a adição módulo 26 for aplicada, a criptografia pode ser escrita:
Ci = Pi + Ki mod 26
e a decriptação,
Pi = Ci - Ki + 26 mod 26