Criptografia

Página Inicial
ESPAÇOS VETORIAIS
Espaços Vetoriais
Subespaços Vetoriais
Combinação Linear
Subespaços Gerados
Intersecção de Subespaços
Soma de Subespaços
Dependência Linear
Base e Dimensão
Mudança de Base

TRANSFORMAÇÕES LINEARES
Transformações Lineares
Núcleo e Imagem
Teorema do Núcleo e da Imagem
Isomorfismo e Automorfismo
Álgebra das Transformações Lineares
Matriz de uma Transformação

AUTOVALORES E AUTOVETORES
Autovalores e Autovetores
Polinômio Característico
Diagonalização

ESPAÇOS COM PRODUTO INTERNO
Produto Interno
Norma e Distância
Ortogonalidade

DETERMINANTES
Determinantes
Propriedades do Determinante
Cálculo de Determinantes

SISTEMAS LINEARES
Sistemas Lineares
Operações Elementares
Sistemas Triangulares
Eliminação Gaussiana

FATORAÇÕES MATRICIAIS
Fatoração LU
Fatoração de Cholesky
Fatoração Ortogonal
Fatoração QR - Processo de Gram-Schmidt
Fatoração QR - Transformações de Householder

QUADRADOS MÍNIMOS
Método de Quadrados Mínimos
Ajuste de Curvas
Problemas Aplicados

 OUTRAS APLICAÇÕES
Curvas e Superfícies por Pontos Especificados
Criptografia
Jogos de Estratégia
Classificação de Cônicas



    O estudo da codificação e decodificação de mensagens secretas é denominado Criptografia. Os códigos secretos foram bastante utilizados nas guerras, para transmitir mensagens sem que o inimigo conseguisse compreendê-las. Hoje em dia há um grande interesse no assunto, devido a necessidade de se transmitir informações privadas em vias públicas de comunicação, como a internet.
    As cifras são os códigos usados para transformar um texto comum em um texto cifrado. O processo de converter um texto comum em cifrado é chamado cifrar ou codificar, e o processo inverso é chamado decifrar ou decodificar.
   Vamos estudar as chamadas cifras de Hill que são baseadas em transformações matriciais. Para isto, utilizaremos a aritmética modular e conceitos da Álgebra Linear, mais especificamente: matrizes, eliminação Gaussiana, dependência linear e transformações lineares.

Aritmética Modular

    Definição: Dados um número inteiro positivo mm e dois inteiros aabb quaisquer, dizemos que aa é equivalente a bb módulo m, e escrevemos:

a=b(modm)a = b\;\;(mod\; m)
se a-ba-b é um múltiplo inteiro de mm.

    Dado um módulo mm, qualquer inteiro aa é equivalente, módulo mm, a um dos inteiros do conjunto:

Zm={0,1,2,...,m-1}Z_m = \left\lbrace 0, 1, 2, ..., m-1\right\rbrace
denominado conjunto dos resíduos de aa módulo mm.

    Teorema: Dados um inteiro aa e um módulo mm. Seja R o resto da divisão de |a||a| por mm. Então, o resíduo rr de aa módulo mm é dado por:

r={Rsea0m-Rsea<0eR00sea<0eR=0r = \left\lbrace \begin{array}{lcl} R \;& se & a\geq0\\ m-R \;& se & a < 0 \;\; e \;\;R \neq 0\\ 0 \;& se & a<0 \;\; e \;\;R = 0 \end{array} \right.
    Definição: Dado um número aa em ZmZ_m. Dizemos que a-1Zma^{-1} \in Z_m é o inverso multiplicativo de aa módulo mm se a a-1=a-1a=1(modm)a^{-1} = a^{-1} a = 1\; (mod\;m).

    Podemos mostrar que se aamm não têm fatores primos comuns, então aa tem um único inverso multiplicativo módulo mm. E se aamm têm fatores primos comuns, então aa não possui inverso multiplicativo módulo mm. Além disso, se mm for primo, então todo aZma \in Z_m tem único inverso multiplicativo em ZmZ_m.
    Com estas definições e resultados, podemos operar com os elementos de ZmZ_m, no que denominamos aritmética modular, que utilizaremos mais adiante para estudar a codificação e decodificação das cifras de Hill.

    Exemplo 1: 4=0(mod2)4 = 0\;(mod\;2), pois 4-0=44 - 0 = 4 é um múltiplo inteiro de 22.

    Exemplo 2: -2=24(mod26)-2 = 24\; (mod\; 26), pois -2-24=-26-2-24 = -26 é um múltiplo inteiro de 2626.

    Exemplo 3: O resíduo módulo 2626 de 103103 é 2525.
        Dividindo |103|=103|103| = 103 por 2626, obtemos um resto R = 25, ou seja, r=25r = 25. Assim, 103=25(mod26)103 = 25\; (mod\;26).

    Exemplo 4: O resíduo módulo 2626 de -64-64 é 1414.
        Dividindo |-64|=64|-64| = 64 por 2626, obtemos um resto R = 12. Como -64<0-64 < 0, temos, r=26-12=14r = 26 - 12 = 14. Assim, -64=14(mod26)-64 = 14\;(mod\;26).

    Exemplo 5: 1+1=0(mod2)1+1 = 0\;(mod\;2).
      Na aritmética comum, temos 1+1=21+1 = 2. Mas dividindo 22 por 22, obtemos resto 00, ou seja, 2=0(mod2)2 = 0 \;(mod\;2). Assim, na aritmética módulo 22, temos 1+1=0(mod2)1+1 = 0\;(mod\;2).

    Exemplo 6:  1515 é inverso multiplicativo de 77 módulo 2626, pois 7×15=105=1(mod26)7\times15 = 105 = 1\;(mod\;26).

   
Voltar ao Topo.

Cifras de Hill

    Uma maneira de tornar o código mais difícil de ser quebrado é dividir o texto em grupos e criptografar o texto comum por grupos. Um sistema poligráfico é um sistema de criptografia no qual o texto é separado em conjuntos de nn letras, cada qual é substituído por um conjunto de nn letras cifradas. As cifras de Hill são uma classe de sistemas poligráficos, baseados em transformações matriciais.

    Vamos numerar cada letra do alfabeto de 11 a 2525, e ao Z daremos o valor 00. Cada letra estará bem determinada por seu número correspondente.

ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789101112131415161718192021222324250\begin{array}{c} 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 \\ 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 & 0 \end{array
    No caso mais simples da cifra de Hill, vamos dividir o texto comum em pares de letras e codificá-lo através do seguinte procedimento:

1o_1^{\underline{o}}) Escolhemos uma matriz 2×22 \times 2 com entradas inteiras:

A=[a11a12a21a22]A = \left[ \begin{array}{ll} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right]
AA é denominada matriz codificadora.

2o_2^{\underline{o}}) 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.

3o_3^{\underline{o}}) Substituímos cada letra por seu número correspondente. Escrevemos cada par de números p1p_1p2p_2 como um vetor coluna:

p=[p1p2]p = \left[ \begin{array}{l} p_1 \\ p_2 \end{array}\right]
Obtemos então os vetores q=Apq = Ap cifrados.

4o_4^{\underline{o}}) Por fim, substituímos cada número dos vetores cifrados qq, por suas letras equivalentes. Caso algum número do vetor qq não pertença ao conjunto Z26Z_{26}, ou seja, não esteja entre 00 e 2525, obtemos o seu equivalente módulo 2626, que esteja em Z26Z_{26}, 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 22-cifra de Hill. Em casos mais gerais de uma
nn-cifra de Hill, basta separarmos o texto em grupos de nn letras e escolher no 1o_1^{\underline {o}} passo uma matriz codificadora n×nn \times n.

    Exemplo: Vamos codificar o seguinte texto: ALGEBRA LINEAR, utilizando uma 22-cifra de Hill, com a seguinte matriz codificadora:

A=[1235]A = \left[ \begin{array}{ll} 1 & 2 \\ 3 & 5 \end{array} \right]
    Primeiramente separamos o texto em pares de letras, da forma:

ALGEBRALINEARAL \;\; GE \;\; BR \;\; AL \;\; IN \;\; EA \;\; R
    Como temos um número ímpar de letras, completamos o último par com uma letra fictícia qualquer:

ALGEBRALINEARZAL \;\; GE \;\; BR \;\; AL \;\; IN \;\; EA \;\; RZ
    Substituímos então cada letra por seu correspondente numérico:

11275218112914511801\;12 \;\;\; 7\;5 \;\;\; 2\;18 \;\;\; 1\;12 \;\;\; 9\;14 \;\;\; 5\;1 \;\;\; 18\;0
    Escrevemos cada par de números como um vetor coluna pp e obtemos os vetores cifrados qq, da forma: q=Apq = Ap. Para o par AL, teremos:

[1235][112]=[2563]\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 1 \\ 12 \end{array}\right] = \left[ \begin{array}{c} 25 \\ 63 \end{array}\right]
   Neste caso, o número 6363 não está entre 002525 e não podemos substituí-lo por sua letra correspondente. Assim, obtemos o seu equivalente módulo 2626, que esteja em Z26Z_{26}.
    Dividindo |63|=63|63| = 63 por 2626, obtemos um resto R = 11, assim, 63=11(mod26)63 = 11\;(mod\;26). Dessa forma, obtemos o vetor cifrado do par de letras AL:

q=[2563]=[2511](mod26)q = \left[ \begin{array}{c} 25 \\ 63 \end{array}\right] = \left[ \begin{array}{c} 25 \\ 11 \end{array}\right] \; (mod\; 26)
    Substituindo pelas letras correspondentes, obtemos o par cifrado: YK. Fazendo o mesmo para os demais pares de letras, teremos:

[1235][75]=[1746]=[1720](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \;\left[ \begin{array}{c} 7 \\ 5 \end{array}\right] = \left[ \begin{array}{c} 17 \\ 46 \end{array}\right] = \left[ \begin{array}{c} 17 \\ 20 \end{array}\right]\; (mod\; 26)
[1235][218]=[3896]=[1218](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 2 \\ 18 \end{array}\right] = \left[ \begin{array}{c} 38 \\ 96 \end{array}\right] = \left[ \begin{array}{c} 12 \\ 18 \end{array}\right]\; (mod\; 26)
[1235][112]=[2563]=[2511](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 1 \\ 12 \end{array}\right] = \left[ \begin{array}{c} 25 \\ 63 \end{array}\right] = \left[ \begin{array}{c} 25 \\ 11 \end{array}\right]\; (mod\; 26)
[1235][914]=[3797]=[1119](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 9 \\ 14 \end{array}\right] = \left[ \begin{array}{c} 37 \\ 97 \end{array}\right] = \left[ \begin{array}{c} 11 \\ 19 \end{array}\right]\; (mod\; 26)
[1235][51]=[720]=[720](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 5 \\ 1 \end{array}\right] = \left[ \begin{array}{c} 7 \\ 20 \end{array}\right] = \left[ \begin{array}{c} 7 \\ 20 \end{array}\right]\; (mod\; 26)
[1235][180]=[1854]=[182](mod26)\left[ \begin{array}{cc} 1 & 2 \\ 3 & 5 \end{array} \right] \; \left[ \begin{array}{c} 18 \\ 0 \end{array}\right] = \left[ \begin{array}{c} 18 \\ 54 \end{array}\right] = \left[ \begin{array}{c} 18 \\ 2 \end{array}\right]\; (mod\; 26)
    Portanto, obtemos os respectivos pares de letras cifrados: QT,LR,YK,KS,GT,RBQT, \;\; LR, \;\; YK, \;\; KS, \;\; GT, \;\; RB. Assim, juntando todos os pares de texto codificados, teremos a mensagem codificada:

YWQTLRYKKSGTRBYWQTLRYKKSGTRB
    Voltar ao Topo.

Inversa de uma matriz módulo m

    Para conseguir decodificar uma cifra de Hill, iremos usar a inversa módulo 2626 da matriz AA codificadora. Usamos o número 2626 pois estamos trabalhando apenas com as 2626 letras do alfabeto, caso se queira utilizar acentuações e pontuação, por exemplo, seria necessário trabalhar com outro módulo e seguir os mesmos passos.

    Definição: Seja mm um inteiro positivo. Dizemos que uma matriz AA, com entradas em ZmZ_m, é invertível se existir uma matriz BB, com entradas em ZmZ_m, tal que:
AB=BA=I(modm)AB = BA = I\; (mod\;m)
BB é a matriz inversa de AA módulo mm, que denotamos por A-1(modm)A^{-1}\; (mod\;m). Dizer que uma matriz está em módulo mm significa que cada uma das suas entradas está em módulo mm.

  Teorema: Uma matriz quadrada AA com entradas em ZmZ_m possui inversa módulo mm, se e somente se, det(A)(modm)det(A)\;(mod\;m) possui inverso multiplicativo módulo mm.

    Com isso, podemos determinar quais as matrizes quadradas que são invertíveis em ZmZ_m, para qualquer mm. Isso nos ajuda pois ao codificar algum texto é preciso que a pessoa que receba a mensagem seja capaz de decifrá-la, caso contrário o texto ficaria para sempre codificado e não transmitiria nenhuma informação. Para podermos decifrar o código, no primeiro passo da codificação precisamos escolher uma matriz AA que seja invertível.

    Teorema: Seja

A=[abcd]A = \left[ \begin{array}{rr} a & b \\ c & d \end{array} \right]uma matriz 
2×22 \times 2 com entradas em ZmZ_m, invertível módulo mm, isto é, det(A)(modm)det(A)\; (mod\; m) possui inverso multiplicativo módulo mm. Então a inversa de AA módulo mm é:

A-1=det(A)-1[d-b-ca]A^{-1} = det(A)^{-1} \; \left[ \begin{array}{rr} d & -b \\ -c & a \end{array} \right]
Onde det(A)-1det(A)^{-1} é o inverso multiplicativo módulo mm do determinante de AA.

    Esse teorema nos dá um meio para calcular a inversa módulo mm de uma matriz 2×22 \times 2, que para os propósitos desta aplicação é suficiente. O cálculo de inversas de matrizes de ordem maior envolveria outros cálculos e definições, que não faremos aqui.

    Exemplo: Calcule a inversa módulo 2626 da matriz:

A=[1235]A = \left[ \begin{array}{ll} 1 & 2 \\ 3 & 5 \end{array} \right]
    Temos que det(A)=5-6=-1=25(mod26)det(A) = 5 - 6 = -1 = 25\;(mod\;26). O determinante de AA módulo 2626, portanto, possui inverso multiplicativo módulo 2626. Temos: 25×25=625=1(mod26)25\times 25 = 625 = 1\;(mod\;26). Logo, 2525 é o inverso multiplicativo de 2525 módulo 2626. Assim, a inversa de A módulo 26 é dada por:

A-1=25[5-2-31]=[125-50-7525]=[212325](mod26)A^{-1} = 25 \; \left[ \begin{array}{rr} 5 & -2 \\ -3 & 1 \end{array} \right] = \left[ \begin{array}{rr} 125 & -50 \\ -75 & 25 \end{array} \right] = \left[ \begin{array}{cc} 21 & 2 \\ 3 & 25 \end{array} \right]\;(mod\;26)

    Voltar ao Topo.

Decodificação de uma Cifra de Hill

    Suponha que recebemos um texto cifrado e conhecemos a matriz codificadora de uma 22-cifra de Hill:

A=[a11a12a21a22]A = \left[ \begin{array}{ll} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right]
que deve ser invertível módulo 2626.

    Se pp é um vetor com os correspondentes numéricos de um par de letras de texto comum, sabemos pela regra de codificação que os vetores qq, de correspondentes numéricos dos pares de letras cifradas, são obtidos da forma:

q=Apq = Ap
    Assim, podemos dividir o texto cifrado que conhecemos em pares de letras, substituí-los por seus correspondentes numéricos, escrever cada vetor coluna qq e por fim obter os correspondentes vetores pp da forma:

p=A-1qp = A^{-1}q
Onde, nesse caso, A-1A^{-1} é a inversa módulo 2626 de AA. Substituindo cada número dos vetores pp por suas letras correspondentes, conseguimos decifrar qual é a mensagem.

    Exemplo: Suponha que recebemos a mensagem: LQPQEECWBY, que foi criptografada por uma 22-cifra de Hill, com a seguinte matriz codificadora:

A=[3021]A = \left[ \begin{array}{ll} 3 & 0 \\ 2 & 1 \end{array} \right]
Vamos obter a mensagem decodificada.

    Para isso, vamos obter a matriz inversa módulo 2626 da matriz AA. Efetuando os cálculos, temos:

A-1=[9081](mod26)A^{-1} = \left[ \begin{array}{ll} 9 & 0 \\ 8 & 1 \end{array} \right]\; (mod\; 26)
    Separamos o texto cifrado em pares de letras, da forma:

LQPQEECWBYLQ\;\; PQ\;\; EE\;\; CW\;\; BY
    E substituindo cada letra por seu correspondente numérico, teremos:

121716175532322512\;17 \;\;\;\; 16\;17 \;\;\;\; 5\;5 \;\;\;\; 3\;23 \;\;\;\; 2\;25
    Escrevemos cada par de números como um vetor qq e obtemos os correspondentes vetores de texto comum pp em módulo 2626, da forma: p=A-1qp = A^{-1}q. Teremos:

[9081][1217]=[108113]=[49](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 12\\ 17 \end{array} \right] = \left[ \begin{array}{c} 108 \\ 113 \end{array} \right] = \left[ \begin{array}{r} 4 \\ 9 \end{array} \right]\; (mod\;26)
[9081][1217]=[108113]=[49](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 12\\ 17 \end{array} \right] = \left[ \begin{array}{c} 108 \\ 113 \end{array} \right] = \left[ \begin{array}{r} 4 \\ 9 \end{array} \right]\; (mod\;26)
[9081][1617]=[144145]=[1415](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 16\\ 17 \end{array} \right] = \left[ \begin{array}{c} 144 \\ 145 \end{array} \right] = \left[ \begin{array}{r} 14 \\ 15 \end{array} \right]\; (mod\;26)
[9081][55]=[4545]=[1919](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 5\\ 5 \end{array} \right] = \left[ \begin{array}{c} 45 \\ 45 \end{array} \right] = \left[ \begin{array}{r} 19 \\ 19 \end{array} \right]\; (mod\;26)
[9081][323]=[2747]=[121](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 3\\ 23 \end{array} \right] = \left[ \begin{array}{c} 27 \\ 47 \end{array} \right] = \left[ \begin{array}{c} 1 \\ 21 \end{array} \right]\; (mod\;26)
[9081][225]=[1841]=[1815](mod26)\left[ \begin{array}{cc} 9 & 0 \\ 8 & 1 \end{array} \right] \; \left[ \begin{array}{c} 2\\ 25 \end{array} \right] = \left[ \begin{array}{c} 18 \\ 41 \end{array} \right] = \left[ \begin{array}{r} 18 \\ 15 \end{array} \right]\; (mod\;26)
    Assim, substituindo cada número, dos pares de vetores pp obtidos, por suas letras correspondentes, obtemos os pares de letras de texto comum:

DINOSSAURODI\;\; NO \;\; SS \;\; AU \;\; RO
    Juntando os pares de letras, descobrimos que a palavra codificada era: DINOSSAURO.

   Suponha agora, que recebemos um texto cifrado e sabemos uma parte do texto decodificado. Vamos utilizar conceitos da Álgebra Linear e eliminação Gaussiana para obter a matriz decodificadora A-1A^{-1}. Da Álgebra Linear, sabemos que uma transformação fica bem determinada por seu efeito nos elementos de uma base. Com esse princípio, teremos o seguinte teorema:

    Teorema: Sejam p1,...,pnp_1, ..., p_n vetores de texto comum, linearmente independentes, e q1,...,qnq_1, ..., q_n os correspondentes vetores cifrados de uma
nn-cifra de Hill. Seja:

P=[p1tpnt]P = \left[ \begin{array}{c} p_1^t \\ \vdots \\ p_n^t \end{array} \right]
a matriz n×nn \times n de vetores linha p1,...,pnp_1, ..., p_n transpostos. E seja:

Q=[q1tqnt]Q = \left[ \begin{array}{c} q_1^t \\ \vdots \\ q_n^t \end{array} \right]
a matriz n×nn \times n de vetores linha q1,...,qnq_1, ..., q_n transpostos. Então, as operações elementares de linha que reduzem QQ a matriz identidade InI_n, transforma PP na matriz (A-1)t(A^{-1})^t, sendo A-1A^{-1} a matriz decodificadora.

   Assim, para encontrar a transposta da matriz decodificadora A-1A^{-1}, basta sabermos uma sequência de operações elementares de linha que reduzem QQInI_n e aplicarmos essas operações na matriz PP.

    Exemplo 1: Suponha que recebemos a mensagem criptografada BEWIXSMFNC e sabemos apenas que o texto original começa com a palavra MOVA. Vamos obter a mensagem decodificada.

    Separamos o texto comum conhecido em pares de letras e substituímos por seu equivalente numérico:

MOVAMO \;\;\;\131522113\;15 \;\;\;\;\; 22\;1
    Fazemos o mesmo com o correspondente texto cifrado:

BEWIBE \;\;\;\; WI252392\;5 \;\;\;\;\; 23\;9
    De modo que os vetores p de texto comum e seus correspondentes vetores cifrados qq são:

p1=[1315],q1=[25]p_1 = \left[ \begin{array}{c} 13 \\ 15 \end{array} \right], \;\;\;\; q_1 = \left[ \begin{array}{c} 2 \\ 5 \end{array} \right]
p2=[221],q2=[239]p_2 = \left[ \begin{array}{c} 22 \\ 1 \end{array} \right], \;\;\;\; q_2 = \left[ \begin{array}{c} 23 \\ 9 \end{array} \right]

    Queremos reduzir a matriz
Q=[q1tq2t]=[25239]Q = \left[ \begin{array}{c} q_1^t \\ q_2^t \end{array} \right] = \left[ \begin{array}{cc} 2 & 5 \\ 23 & 9 \end{array} \right]
a matriz identidade de ordem 22, aplicando operações elementares de linhas, e simultaneamente, aplicar essas mesmas operações na matriz

P=[p1tp2t]=[1315221]P = \left[ \begin{array}{c} p_1^t \\ p_2^t \end{array} \right] = \left[ \begin{array}{cc} 13 & 15 \\ 22 & 1 \end{array} \right]obtendo assim a matriz (A-1)t(A^{-1})^t. Isso pode ser feito juntando PP à direita de QQ e aplicando as operações elementares de linhas na matriz resultante [Q|P][Q|P] até que o lado esquerdo seja reduzido a matriz I2I_2. A matriz no lado direito será a que queremos.

[251315239221]l1l2[239221251315]multiplicamosalinha1por23-1=17(mod26)\left[ \begin{array}{cccc} 2 & 5 & 13 & 15 \\ 23 & 9 & 22 & 1 \end{array} \right] \rightarrow l_1 \leftrightarrow l_2 \rightarrow \left[ \begin{array}{cccc} 23 & 9 & 22 & 1 \\ 2 & 5 & 13 & 15 \end{array} \right] \rightarrow multiplicamos\; a \; linha \; 1 \; por \; 23^{-1} = 17\;(mod\;26) \rightarrow
[115337417251315]substituímoscadaentradadamatrizporseuequivalentemódulo26\rightarrow \left[ \begin{array}{cccc} 1 & 153 & 374 & 17 \\ 2 & 5 & 13 & 15 \end{array} \right] \rightarrow substituímos \; cada \; entrada \; da \; matriz \; por \; seu \; equivalente \; módulo \; 26 \rightarrow
[1231017251315]l2l2-2l1[12310170-41-7-19]mod26[1231017011197]\rightarrow \left[ \begin{array}{cccc} 1 & 23 & 10 & 17 \\ 2 & 5 & 13 & 15 \end{array} \right] \rightarrow l_2 \leftrightarrow l_2 - 2l_1 \rightarrow \left[ \begin{array}{cccc} 1 & 23 & 10 & 17 \\ 0 & -41 & -7 & -19 \end{array} \right] \rightarrow mod \; 26 \rightarrow \left[ \begin{array}{cccc} 1 & 23 & 10 & 17 \\ 0 & 11 & 19 & 7 \end{array} \right] \rightarrow
multiplicamosalinha2por11-1=19(mod26)[123101701361133]mod26\rightarrow multiplicamos \; a \; linha \; 2 \; por \; 11^{-1} = 19\;(mod\;26) \rightarrow \left[ \begin{array}{cccc} 1 & 23 & 10 & 17 \\ 0 & 1 & 361 & 133 \end{array} \right] \rightarrow mod\; 26 \rightarrow 
[123101701233]l1l1-23l2[10-519-5201233]mod26[101001233]\rightarrow \left[ \begin{array}{cccc} 1 & 23 & 10 & 17 \\ 0 & 1 & 23 & 3 \end{array} \right] \rightarrow l_1 \leftrightarrow l_1 - 23l_2 \rightarrow \left[ \begin{array}{cccc} 1 & 0 & -519 & -52 \\ 0 & 1 & 23 & 3 \end{array} \right] \rightarrow mod \; 26 \rightarrow \left[ \begin{array}{cccc} 1 & 0 & 1 & 0 \\ 0 & 1 & 23 & 3 \end{array} \right]
    Assim, do lado direito, obtemos a matriz transposta da matriz decodificadora, logo, temos:

A-1=[12303](mod26)A^{-1} = \left[ \begin{array}{cc} 1 & 23 \\ 0 & 3 \end{array} \right] \; (mod\; 26)
    Agora, para decifrar a mensagem, separamos o texto criptografado em pares de letras e substituímos cada letra por seu número correspondente:

BEWIXSMFNCBE \;\;\; WI \;\;\; XS \;\;\; MF \;\;\; NC2523924191361432\;5 \;\;\; 23\;9 \;\;\; 24\;19 \;\;\; 13\;6 \;\;\; 14\;3
    Escrevemos cada par de números como um vetor qq e obtemos os correspondentes vetores de texto comum pp em módulo 2626. Precisamos fazer isso apenas para a parte do texto que ainda não conhecemos:

[12303][2419]=[46157]=[195](mod26)\left[ \begin{array}{cc} 1 & 23 \\ 0 & 3 \end{array} \right] \; \left[ \begin{array}{c} 24\\ 19 \end{array} \right] = \left[ \begin{array}{c} 461 \\ 57 \end{array} \right] = \left[ \begin{array}{c} 19 \\ 5 \end{array} \right]\; (mod\;26) [12303][136]=[15118]=[2118](mod26)\left[ \begin{array}{cc} 1 & 23 \\ 0 & 3 \end{array} \right] \;\left[ \begin{array}{c} 13\\ 6 \end{array} \right] = \left[ \begin{array}{c} 151 \\ 18 \end{array} \right] = \left[ \begin{array}{c} 21 \\ 18 \end{array} \right]\; (mod\;26)[12303][143]=[839]=[59](mod26)\left[ \begin{array}{cc} 1 & 23 \\ 0 & 3 \end{array} \right] \; \left[ \begin{array}{c} 14\\ 3 \end{array} \right] = \left[ \begin{array}{c} 83 \\ 9 \end{array} \right] = \left[ \begin{array}{c} 5 \\ 9 \end{array} \right]\; (mod\;26)
    Assim, substituindo os pares de números pelas letras correspondentes, obtemos o restante do texto: SEUREISE\;\;UR\;\;EI. Logo, conseguimos decifrar a mensagem: MOVASEUREIMOVA \;\; SEU \;\; REI.

   Exemplo 2: Suponha que recebemos um texto que foi criptografado com uma 33-cifra de Hill e sabemos que a palavra criptografada FIKYRVMWG, corresponde a palavra de texto comum UNICORNIO. Vamos obter a matriz inversa A-1A^{-1} da matriz codificadora A, módulo 2626, com a qual podemos decifrar o restante do texto.

    Como o texto foi criptografado por uma 33-cifra de Hill, vamos separar o texto comum conhecido em grupos de 33 letras e substituí-las por seus equivalentes numéricos:

UNICORNIOUNI \;\;\;\;\;\; COR \;\;\;\;\;\; NIO21149315181491521\;14\;9 \;\;\;\; 3\;15\;18 \;\;\;\; 14\;9\;15
    Fazemos o mesmo com o correspondente texto cifrado:

FIKYRVMWGFIK \;\;\;\;\;\; YRV \;\;\;\;\;\; MWG6911251822132376\;9\;11 \;\;\;\; 25\;18\;22 \;\;\;\; 13\;23\;7
    De modo que, os vetores pp de texto comum e seus correspondentes vetores cifrados qq são:

p1=[21149],q1=[6911]p_1 = \left[ \begin{array}{c} 21 \\ 14 \\ 9 \end{array} \right], \;\;\;\; q_1 = \left[ \begin{array}{c} 6 \\ 9 \\ 11 \end{array} \right]
p2=[31518],q2=[251822]p_2 = \left[ \begin{array}{c} 3 \\ 15 \\ 18 \end{array} \right], \;\;\;\; q_2 = \left[ \begin{array}{c} 25 \\ 18 \\ 22 \end{array} \right]
p3=[14915],q3=[13237]p_3 = \left[ \begin{array}{c} 14 \\ 9 \\ 15 \end{array} \right], \;\;\;\; q_3 = \left[ \begin{array}{c} 13 \\ 23 \\ 7 \end{array} \right]
    Queremos reduzir a matriz Q=[q1tq2tq3t]Q = \left[ \begin{array}{c} q_1^t \\ q_2^t \\ q_3^t \end{array} \right]
a matriz identidade de ordem 33, aplicando operações elementares de linhas, e simultaneamente, aplicar as mesmas operações na matriz

P=[p1tp2tp3t]P = \left[ \begin{array}{c} p_1^t \\ p_2^t \\ p_3^t \end{array} \right]obtendo a matriz (A-1)t(A^{-1})^t. Para isso, fazemos do mesmo modo que no exemplo anterior e obtemos:

[69112149251822315181323714915][1009171801010000181817]\left[ \begin{array}{cccccc} 6 & 9 & 11 & 21 & 4 & 9 \\ 25 & 18 & 22 & 3 & 15 & 18 \\ 13 & 23 & 7 & 14 & 9 & 15 \end{array} \right] \longleftrightarrow \left[ \begin{array}{cccccc} 1 & 0 & 0 & 9 & 17 & 18 \\ 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 8 & 18 & 17 \end{array} \right]
    Assim, a matriz inversa da matriz codificadora AA, módulo 2626 é:

A-1(mod26)=[9181701818017]A^{-1}\; (mod\; 26) = \left[ \begin{array}{ccc} 9 & 1 & 8 \\ 17 & 0 & 18 \\ 18 & 0 & 17 \end{array} \right]
    Com esta matriz, podemos decifrar o restante do texto. Observe que quando utilizamos uma 33-cifra de Hill para a codificação, precisamos conhecer pelo menos 99 letras de uma palavra de texto comum para conseguirmos decodificá-lo. Quanto maior a dimensão da matriz codificadora AA, mais difícil se tornam os cálculos e mais segura se torna a mensagem codificada.


    Voltar ao Topo.
Última Atualização: 27/07/2015.