# Cifra Playfair

Criada por Charles Wheatstone, a cifra Playfair foi apresentada em 1854 em um jantar oferecido pelo lorde Granville. Estava presente o ilustre (e muito rico) lorde Palmerstone. Wheaststone demonstrou seu sistema usando a palavra chave Palmerstone.
A cifra Playfair é uma substituição polialfabética em bloco bigrâmico (ou digrâmico). Nesta substituição, as letras são tomadas duas a duas (bloco bigrâmico), de acordo com regras aplicadas a uma grade de 5 por 5 que contém o alfabeto cifrante.
A segurança desta cifra é baixa e seu interesse é apenas histórico. A criptoanálise pode ser feita através da análise da frequência de dígrafos. Por ser uma cifra polialfabética, a Playfair dificulta um pouco a criptoanálise e, por ser uma cifra de dígrafos, é preciso fazer uma análise da frequência de dígrafos. Como existem mais dígrafos do que letras, o número de elementos disponíveis para a análise diminui. Por exemplo: numa mensagem de 100 letras, cifrada com uma substituição simples, temos 100 elementos derivados de uma escolha de 26; numa mensagem de 100 letras, cifrada em dígrafos, temos 50 elementos derivados de uma escolha de 676.
A Playfair possui outras vantagens: não precisa de tabelas ou dispositivos complicados, possui uma palavra-chave que pode ser memorizada ou trocada com facilidade, é muito fácil de ser implementada e pouco sujeita a erros. Devido a estas características o sistema é perfeito para ser usado como uma "cifra de campo".

# Funcionamento

A codificação de um texto utilizando a cifra Playfair envolve quatro passos: escolha da mensagem e senha, criação da matriz de cifragem, formatação da mensagem e a cifragem.

## Passo 1: Escolha da mensagem e da senha.

Para começar, escolhemos um texto que será cifrado.
Por exemplo: Os inimigos estão avançando.
Depois, escolhemos uma palavra ou frase que atuará como senha para cifrar a mensagem.
Por exemplo: Codificar.

## Passo 2: Criação da matriz de cifragem.

Agora que já temos a mensagem e a senha, precisamos preencher a matriz de com as letras do alfabeto. Para cifrar e decifrar os textos, a cifra Playfair usa uma matriz 5×5 preenchida com as 26 letras do alfabeto latino. Para isso, no modo clássico da cifra, a letra I passa a valer tanto como I quanto como J, o que dependerá da interpretação de quem decodificar a mensagem.
O primeiro passo do preenchimento é adicionar as letras da senha à matriz, removendo as letras que se repetem. No caso da senha escolhida acima, as letras I e C aparecem mais de um vez na palavra. Ao fim desta etapa, a matriz ficará da seguinte forma:
Agora preenchemos os espaços em branco com as 19 letras que faltam para completas o alfabeto. Sempre da esquerda para a direita, de cima para baixo e seguindo a ordem alfabética das letras. Por exemplo, como a letra A já está na matriz, o próximo espaço vazio irá receber a letra B. Já a célula depois desta, seguido a ordem alfabética, deveria receber a letra C, mas as letras C e D também já estão na matriz, por isso ela receberá a letra E. Ao fim da segunda etapa, a matriz de cifragem está pronta, ficando da seguinte forma:

## Passo 3: Formatação da mensagem.

A mensagem deve ser formatada de acordo com as seguintes regras:
* Todas a letras de ser escritas em maiúsculo.
Ex: Mensagem > MENSAGEM
* Sinais gráficos devem ser retirados (acentos, cedilha).
Ex: VOCÊ > VOCE
* As letras devem ser agrupadas em pares.
Ex: MENSAGEM > ME NS AG EM
* Se a quantidade for ímpar, deve ser adicionada uma "letra falsa" para formar o último par (normalmente X ou Z).
Ex: NUNCA > NU NC AX
* Se um par for formado por letras iguais, a segunda letra deve ser colocada no par seguinte e adiciona-se uma "letra falsa" (normalmente X ou Z).
Ex: CARRO > CA RX RO
No nosso caso, a mensagem formatada ficará assim:
OS IN IM IG OS ES TA OA VA NC AN DO

## Passo 4: Cifragem.

A cifragem obedece a três regras:

### Regra 1.

Para substituir cada par, buscamos na matriz a célula onde a linha da primeira letra do par se encontra com a coluna da segunda letra. Depois, buscamos na matriz a célula onde a linha da segunda letra do par se encontra com a coluna da primeira letra. Fazemos isso para todos os pares.
Ex: OS
A letra O está na linha 1, S está na coluna 3; a célula onde elas se encontram possui a letra D.
A letra S está na linha 4, O está na coluna 2; a célula onde elas se encontram possui a letra Q.
Desta forma o par OS, apos a cifragem, se torna DQ.

### Regra 2.

Se as letras estão na mesma linha, cada letra é trocada pela letra da coluna da direita. Caso a letra esteja no final da linha troca-se pela primeira letra da mesma linha.
Ex: DO
D e O estão na mesma linha, por isso cada uma substituída pela próxima letra à direita. Sendo D substituído por I/J e O substituído por D.
Desta forma o par DO, apos a cifragem, se torna ID.

### Regra 3.

Se as letras estão na mesma coluna, cada letra é trocada pela letra da linha logo abaixo. Caso a letra esteja no final da coluna, troca-se a letra pela primeira letra da mesma coluna.
Ex: IM
I e M estão na mesma coluna, por isso cada uma substituída pela próxima letra a abaixo. Sendo I substituído por E e M substituído por T.
Desta forma o par IM, apos a cifragem, se torna ET.
Por último, removemos os espaços. Ao fim do processo de cifragem teremos a mensagem:
DQFMETFEDQBTEPCRCHHFGHID