Cifra de Hill
A Cifra de Hill foi criada por Lester S. Hill em 1929, com o objetivo de tornar a análise de
padrões mais difícil
de ser praticada. Ela utiliza matrizes para criptografar mensagens, tornando-as mais seguras. Veja mais sobre a
história da Cifra de Hill aqui.
A mensagem é convertida em números e dividida em blocos de tamanho igual à ordem da matriz chave. Cada bloco é
então organizado em uma matriz (vetor coluna). Essa matriz de bloco é multiplicada pela matriz chave, resultando
em uma matriz criptografada para aquele bloco.
A matriz criptografada de cada bloco pode ser revertida para o bloco original ao ser multiplicada pela matriz
inversa da chave.
Este guia tem dois passo a passos: um para criptografar e outro para descriptografar usando a Cifra de Hill.
Como Cifrar
1º passo: Escolher a chave
A matriz chave \(K\) deve atender às seguintes condições:
- Ser uma matriz quadrada \(n \times n\).
- O determinante não pode ser nulo no módulo \(m\): \[ \det(K) \not\equiv 0 \pmod{28} \]
- O determinante deve ser coprimo com \(m\), ou seja: \[ \gcd(\det(K), 28)=1 \]
- Deve existir a inversa da matriz no módulo \(m\): \[ K^{-1} \pmod{28} \text{ existe} \]
Escolha 3 elementos da matriz chave, e o quarto elemento será calculado automaticamente para garantir que o determinante seja válido.
2º passo: Converter a mensagem em números
Para usar a Cifra de Hill, você deve fornecer uma mensagem que deseja criptografar. As letras da mensagem devem ser convertidas em números, assim permitindo operações. A tabela abaixo mostra como a conversão será feita.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | . | |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
Vamos colocar a mensagem em um matriz de duas linhas e completar com espaços vazios para que o número de colunas seja par.
3º passo: Criptografar a mensagem
A matriz da mensagem será dividida em blocos de 2x1 (2 linhas e 1 coluna). Cada bloco será multiplicado pela
matriz chave \(K\). O resultado será uma nova matriz, que representa o bloco cifrado.
As multiplicações de matrizes são feitas da seguinte forma:
Passo a passo para Decodificar
1º passo: Inverter a matriz chave
Para descriptografar, precisamos multiplicar a mensagem cifrada pela matriz chave inversa. Para isso, vamos primeiro inverter a matriz chave:
2º passo: Decodificar a mensagem
Agora, multiplicaremos a mensagem cifrada pela inversa da matriz chave. O resultado será a mensagem original.
Conteúdos relacionados:
- Matrizes
- Aritmética modular