# Cifra Della Porta

A Cifra porta, é um tipo de cifra de substituição criada pelo italiano Giambattista della Porta, e como toda cifra de substituição ela funciona de acordo com um sistema pré-definido de substituição. A cifra de subistituição mais simples é a Cifra de César onde a partir dela muitas outras cifras foram criadas, entre elas a mais conhecida Cifra de Vigenère.
Giambattista Della Porta é tido como o inventor do primeiro sistema literal de chave dupla , ou seja, a primeira cifra na qual o alfabeto cifrante é trocado a cada letra cifrada. Este sistema polialfabético era extremamente robusto para a época, de modo que muitos consideram Della Porta como o "Pai da criptografia moderna". Della Porta inventou seu sistema em 1563 e esta cifra foi utilizada com sucesso por mais de três séculos.
A cifra de porta é um avanço quando comparado com a cifra de César, pois a cifra de César só faz uso de um alfabeto que se move com base em um valor para fazer a encriptação, o que tornava relativamente fácil a decriptação quando se conhecia o valor que foi usado para mover o alfabeto, mesmo por tentativa e erro era ainda possível em pouco tempo quebrar a cifra de César.
A cifra de porta por outro lado é comparável com a cifra de Cifra de Vigenère onde, 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.
A cifra de porta ao invés de usar 26 alfabetos, ela faz utilização de somente 13 alfabetos, e igual acontece na cifra de César, a decriptacão é feita utilizando o alfabeto inversamente.

## Descrição

A Cifra de porta usa a seguinte tabela para fazer suas encriptações:
Utilizando como "palavra chave" a palavra "turing" nós temos:
Para encriptar uma mensagem você precisa repetir a palavra chave escolhida durante todo o comprimento da mensagem, como foi feito no exemplo acima. Então para fazer a encriptação da mensagem você pega a primeira letra da sua palavra chave, que no caso é T e vai percorrendo a linha que possui a letra T (S,T) até chegar na primeira letra da sua mensagem a ser criptografada, que no caso é I, resultando na letra R.
O processo é repetido para todas as letras da mensagem até você ter encriptado completamente.
Uma coisa que você pode perceber, é que utilizando esse processo, é possível que duas palavras chave completamente diferentes acabem gerando o mesmo texto encriptado.

## Criptanálise

Como nossa tabela utiliza um sistema de chave dupla, é impossível que qualquer letra de uma metade do alfabeto (A-M ou N-Z) seja substituída por qualquer letra da mesma parte. Por exemplo, digamos que nós tenhamos a sequencia KAI, ela pode ser decriptada para SIM? Não, porque K não pode ser encriptado como S. A mesma lógica segue para várias outras palavras comumente utilizadas.
Para quebrar a cifra della porta, é utilizado o mesmo método efetivo contra a cifra de Vigenère, analise de frequência. Onde por meio de repetições de pequenas palavras como sim, oi, um, uma, não nós somos capazes de por tentativa inferir a palavra chave que foi utilizada para cifrar o texto, mas para isso é necessário uma quantidade de texto grande para ser feita a analise.