Cifra de Hill
Este artigo não cita fontes confiáveis. (Setembro de 2020) |
Cifra de Hill é um tipo de cifra de substituição baseado em álgebra linear usado para codificação de mensagens. Foi inventada pelo matemático norte americano Lester S. Hill em 1929.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Hill%27s_message_protector.png/220px-Hill%27s_message_protector.png)
Uma mensagem codificada com uma matriz NxN é chamada de "N-Cifra de Hill". Logo, uma mensagem codificada com uma matriz 2x2 é chamada "2-Cifra de Hill".
Procedimento
editarUm sistema poligráfico é um sistema de criptografia no qual o texto é separado em conjuntos de n letras, cada qual é substituído por um conjunto de n letras cifradas. As cifras de Hill são uma classe de sistemas poligráficos, baseados em transformações matriciais.[1]
CODIFICAÇÃO:
Primeiro converte-se as letras em números, depois agrupa-se os números n a n e multiplica-se cada grupo por uma matriz quadrada de ordem invertível (ou seja determinante diferente de 0). Os números resultantes são novamente passados para letras, e assim tem-se a mensagem codificada.
Caso algum resultado da multiplicação seja um número maior que o número de letras do alfabeto utilizado, então deve-se utilizar o resto desse número pelo número de letras do alfabeto.
Numerar cada letra do alfabeto de 1 a 25 e daremos o valor de 0 a letra A. Cada letra é representada por um número módulo 26. Embora esta não seja uma característica essencial da cifra, este esquema simples é frequentemente usado: [2]estará bem determinada por seu número correspondente.
letras | 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 |
Nº | 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 |
No caso mais simples da cifra de Hill, vamos dividir o texto comum em pares de letras e codificá-lo através do seguintes procedimentos:
1º Escolhemos uma matriz 2 X 2 com entradas inteiras: onde A matriz é a matriz codificadora
2º Dividimos o texto que queremos codificar em pares de letras. Caso o texto tenha um número ímpar de letras, adicionamos no final uma letra fictícia.
3º Substituímos cada letra por seu número correspondente. Escrevemos cada par de números p1 e p2 como um vetor coluna
obtemos então os valores q=ap cifrados.
4º Por fim, substituímos cada número dos vetores cifrados q , por suas letras equivalentes. Caso algum número do vetor q não pertença ao conjunto Z26 , ou seja, não esteja entre 0 e 25 , obtemos o seu equivalente módulo 26 , que esteja em Z26, para podermos substituí-los por suas letras correspondentes. Assim, juntando as letras de cada par cifrado, teremos o texto codificado.
Nesse caso mais simples, no qual separamos o texto comum em pares de letras, teremos uma 2-cifra de Hill. Em casos mais gerais de uma n-cifra de Hill, basta separarmos o texto em grupos de n letras e escolher 1º no passo uma matriz codificadora n x m .
EXEMPLO: vamos codificar a palavra LINEAR utilizando 2-cifra de Hill com a seguinte matriz codificadora:
A =
Primeiramente separamos o texto em pares de letras, da forma:
L | I | N | E | A | R |
---|
Substituímos então cada letra por seu correspondente numero
11 | 8 | 13 | 4 | 0 | 17 |
---|
Escrevemos cada par de números como um vetor coluna p e obtemos os vetores cifrados ,q da forma:q=Ap . Para o par LI, teremos: . = =
Para o par NE, teremos: . = =
Para o par AR, teremos: . = =
Portanto, obtemos os respectivos pares de letras cifrados : BV , VH , RH Assim, juntando todos os pares de texto codificados, teremos a mensagem codificada: BVVHRH.
DECODIFICAÇÃO:
Para decodificar a mensagem basta aplicar o mesmo processo, porém utilizando a matriz inversa. Por isso que deve-se usar apenas matrizes invertíveis.
Supondo que recebemos um texto cifrado e conhecemos a matriz codificadora de uma 2-cifra de Hill
Na qual deve ser invertível módulo 26
Se p é um vetor com os correspondentes numéricos de um par de letras de texto comum, sabemos pela regra de codificação que os vetores q , de correspondentes numéricos dos pares de letras cifradas, são obtidos da forma:
q= p
Assim, podemos dividir o texto cifrado que conhecemos em pares de letras, substituí-los por seus correspondentes numéricos, escrever cada vetor coluna q e por fim obter os correspondentes vetores p da forma:
p = q
Onde, nesse caso, é a inversa módulo 26 de A . Substituindo cada número dos vetores p por suas letras correspondentes, conseguimos decifrar qual é a mensagem.
EXEMPLO: Vamos decodificar a palavra MTUYFM utilizando a cifra de Hill com a seguinte matriz:
A=
p= .q
=
A = = 11 -90 =29 = 3
adj
= 9
=
p=
q= MTUYFM
Primeiramente separamos o texto em pares de letras, da forma:
M | T | U | Y | F | M |
---|
Substituímos então cada letra por seu correspondente numero:
12 | 19 | 20 | 24 | 5 | 12 |
---|
Escrevemos cada par de números como um vetor coluna :
Para o par MT, teremos: . = = =
Para o par UY, teremos: = =
Para o par FM , teremos: =
Portanto, obtemos os respectivos pares de letras cifrados : TH , EO , RY Assim, juntando todos os pares de texto teremos a mensagem decodificada: THEORY.
- ↑ «Algebra Linear e Aplicações». www.ime.unicamp.br. Consultado em 17 de setembro de 2024
- ↑ «Algebra Linear e Aplicações». www.ime.unicamp.br. Consultado em 20 de setembro de 2024