Beruflich Dokumente
Kultur Dokumente
Dissertao apresentada ao Programa de PsGraduao Mestrado Prossional em Matemtica em Rede Nacional como requisito parcial para a obteno do grau de Mestre.
Orientador
2016
TERMO DE APROVAO
Gilberto Aparecido Tenani
Criptografia Clssica, Matrizes e Tecnologia
Examinador I
Examinador II
Dedico esta Dissertao Leiliane e Paula, pela ausncia que a mesma me fez
prescindir da companhia de ambas.
Agradecimentos
minha querida esposa Leiliane, minha amada lha Paula e a todos meus amigos
por me darem o suporte necessrio para esta caminhada.
Aos meus pais, por terem-me dado educao, valores e por terem-me ensinado a andar.
Universidade Estadual de Maring, seu corpo docente, direo e administrao que
oportunizaram a janela por onde vislumbro um horizonte superior.
Ao meu orientador Prof.
Dr.
Dr.
Laerte
Mesmo que a rota da minha vida me conduza a uma estrela, nem por isso fui
dispensado de percorrer os caminhos do mundo.
Jos Saramago
Resumo
Neste trabalho apresentamos mtodos criptogrcos e de criptoanlise clssicos utilizando lgebra matricial. Aps fazermos uma breve introduo criptograa clssica,
introduzimos os mtodos conhecidos como cifras de Hill, mostramos como criptografar
e descriptografar mensagens usando essas cifras. Ainda, mostramos quando e como
possvel quebrar esses mtodos e apresentamos uma ferramenta computacional, auxiliar
na realizao de clculos baseado na linguagem de programao Julia e no ambiente
interativo JuliaBox. Alm disso, destacamos os principais resultados matemticos que
justicam o funcionamento desses mtodos, tais como: divisibilidade,congruncias e
congruncias lineares.
Palavras-chave:
Cifras Hill.
Abstract
This work presents classic criptography and cryptanalysis methods based on matrix
algebra. After a brief introduction about classic criptography we introduce the methods
known as the Hill's ciphers. We also show when and how it is possible to break this
method and an additional computing tool for based on Julia programming language and
the interaction enviroment JuliaBox. Furthermore, we focus the main mathematical
results that justify the operation of these methods, such as: divisibility, congruences
and linear congruences.
Keywords:
Ciphers.
Lista de Figuras
2.1
. . . . . . . . . . . . . . . . . . . . . .
18
A.1
49
A.2
49
A.3
Execuo de um clula . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
Sumrio
Introduo
1 Divisibilidade e Congruncias
1.1
Divisibilidade
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Nmeros Primos
1.3
Congruncias
1.4
Congruncias Lineares
1.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
22
. . . . . . . . . . . . . . . . .
2.2
Viso Geral
12
15
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.1.1
19
2.1.2
Cifras
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.1.3
Comprimento da chave . . . . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . .
21
28
3.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2
Congruncias e Matrizes
. . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.3
. . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4
3.3.1
O processo de encriptao
. . . . . . . . . . . . . . . . . . . . .
3.3.2
O processo de Descriptograa
3.3.3
34
. . . . . . . . . . . . . . . . . . .
37
. . . . . . . . . . . . . . . . . . . . .
38
Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4 Concluso
46
Referncias Bibliogrcas
47
48
A.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
A.2
Usando o JuliaBox
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2.1
Aritmtica Matricial
. . . . . . . . . . . . . . . . . . . . . . . .
50
A.2.2
Aritmtica Modular . . . . . . . . . . . . . . . . . . . . . . . . .
51
A.2.3
Matrizes e Congruncias
51
. . . . . . . . . . . . . . . . . . . . . .
Introduo
Pessoas sempre tiveram fascinao em manter informao escondida de outros. Quando
crianas, muito de ns tnhamos maneiras secretas de enviar mensagens codicadas
para nossos amigos mantendo segredo de irmos, pais e professores.
A histria nos
mostra muitos exemplos de pessoas e naes que tentaram manter informaes longe
do alcance de inimigos. Uma das formas de se fazer isso a codicao da mensagem.
Com a evoluo da sociedade, novos e mais sosticados mtodos de proteger informao atravs da codicao surgiram. As tcnicas necessrias para codicar informaes
pertencem ao campo de estudo conhecido como
criptograa.
Naturalmente, junto
criptoanlise
que consiste justamente no processo inverso da criptograa, ou seja, as tcnicas necessrias para descobrir as informaes verdadeiras contidas em mensagens codicadas.
Segundo [8], tecnicamente, a
comunicao em canais no seguros e seus problemas relacionados. A criptologia moderna um campo de conhecimento que exige forte domnio de contedo matemtico
e computacional.
Nesse trabalho, trataremos da parte da criptologia conhecida como clssica. Os mtodos criptogrcos e de criptoanlise chamados clssicos foram desenvolvidos antes
da era do computador pessoal (por volta de 1970) e continuam ainda sendo aplicados
em inmeras situaes. Em particular, trabalharemos com mtodos de criptogrcos
e de criptoanlise conhecidos como
matriciais. Apresentaremos vrios exemplos que podem ser utilizados no ensino mdio
e como o uso de ferramentas tecnolgicas pode nos auxiliar nessa tarefa.
Um dos requisitos bsicos para os mtodos criptogrcos so as ideias de divisibilidade e
a
e b, dizemos que a congruente a b mdulo m e escrevemos a b(mod m) se m|(a b).
A congruncia mdulo m nos permite denir o conjunto Zm = {0, 1, 2, . . . , m 1},
denominado um conjunto completo de resduos mdulo m ( os elementos desse conjunto
so os possveis restos da diviso de um inteiro a por m). No captulo 1 estudaremos
congruncias. A ideia bsica de congruncia bem simples. Dado dois nmero inteiros
criptoanlise.
Segundo [6] criptograa o estudo dos mtodos de enviar mensagens de maneira disfarada de tal forma que somente o destinatrio original possa remover o disfarce e ler
a mensagem. Com a evoluo da sociedade , mtodos mais sosticados de proteo de
dados foram criados. A maioria dos mtodos criptogrcos e de criptoanlise envolvem
grande quantidade de matemtica, simples e complexa. No captulo 2 introduziremos
as noes bsicas sobre criptograa e criptoanlise, denindo os principais conceitos
e termos utilizados e apresentando alguns mtodos de criptograa e de criptoanlise
simples.
Um caso particular da criptograa e da criptoanlise clssica, as cifras de Hill so bastante interessantes ao utilizarem lgebra matricial e congruncias para criar mtodos
de criptograa e criptoanlise de mensagens. O nome em referncia a Lester S. Hill
que introduziu esses mtodos em [4] e [5]. No captulo 3 tratamos de congruncias utilizando matrizes, dos mtodos de criptograa e criptoanlise usando as cifras de Hill,
analisaremos como e quando possvel quebrar o mtodo e mostraremos como ferramentas tecnolgicas podem nos auxiliar na realizao de clculos que seriam bastante
tediosos se feitos a mo.
Finalmente,o apndice A fornece mais informaes sobre a linguagem de programao
Julia a o ambiente JuliaBox.
1 Divisibilidade e Congruncias
Teoria dos nmeros, de uma maneira geral, o estudo do conjunto dos nmeros inteiros,
representado por
Z,
alguns tpicos de teoria elementar dos nmeros que usaremos posteriormente em nosso
trabalho. Em particular, estaremos interessados na aritmtica modular do conjunto dos
nmeros naturais
N.
de [3] e [7].
1.1 Divisibilidade
Como a diviso de um nmero inteiro por outro nem sempre possvel, expressa-se
esta possibilidade atravs da relao de divisibilidade.
Exemplo 1.1.
Temos que
13 | 65,
Exemplo 1.2.
5 | 15,
Os divisores de
13 | 169,
6 - 35
17 - 0
so
1, 2
a|b
existe natural
d1
tal que
b = ad1
. Assim
completando a demonstrao.
Divisibilidade
a | b e b | c existem naturais d1
c = bd2 = (ad1 )d2 = a(d1 d2 ) e, portanto, a | c,
Prova: Como
d2
tais que
b = ad1
c = bd2 .
Assim
completando a demonstrao
Como
demonstrao.
Denio 1.2. Seja x R. O maior inteiro menor ou igual a x indicado por [x] .
Segue diretamente da denio que
euclidiana.
diviso
q = [a/b]
satisfaz a
b,
obtemos
a b < b[a/b] a.
Multiplicando por
1,encontramos
a b[a/b] < b a
Mostraremos
Nmeros Primos
Adicionando
0 r = a b[a/b] < b
q Z e o resto r Z so nicos,
a = bq2 + r2 , com 0 r1 < b e 0 r2 < b. Logo
a = bq1 + r1
suponhamos que
0 = b(q1 q2 ) + (r1 r2 ).
Assim, temos que
r2 r1 = b(q1 q2 )
r2 r1 . Desde que 0 r1 < b e 0 r2 < b, temos
b < r2 r1 < b Isto mostra que b pode dividir r2 r1 se, e somente se r2 r1 = 0,
ou, em outras palavras, se r2 = r1 . Desde que bq1 = r1 = bq2 + r2 e r1 = r2 vemos que
q1 = q2 , completando a demonstrao.
Obviamente, a divisvel por b se, e somente se, r = 0 no algoritmo da diviso.
Disso resulta que
Exemplo 1.3.
divide
Temos
a)
133 = 21.6 + 7
b)
50 = 8.(7) + 6
composto.
n2
de
tal que
n1 6= 1
tal que
n = n1 n2 ,
Exemplo 1.4.
n1
Temos
n1 6= n.
n>1
Portanto,
Nmeros Primos
ab = pc.
Como
tal
np + ma = 1.
Multiplicando por
b = npb + mab.
Substituindo
ab
por
pc
p|b
completando a demonstrao.
primo ou se escreve de modo nico (a menos da ordem dos fatores) como um produto
de nmeros primos.
Prova: Vamos demonstrar o resultado por induo sobre
Se
n = 2,
n N.
Suponhamos que o resultado seja vlido para todo nmero natural menor que
e vamos provar que o resultado vlido para
a demonstrar.
e
n2
n = n1 n2 ,
Se
seja composto.
naturais
n1
n N.
nN
tais que
com
p2 pr = q2 qs .
Como
p2 p3 pr < n,
r=s
e os
pi
qj
so
Congruncias
1.3 Congruncias
A linguagem das congruncias foi desenvolvida no comeo do sculo 19 por Gauss e
extremamente til para a teoria dos nmeros. Trata-se da realizao de uma aritmtica
com os restos da diviso euclidiana por um nmero xado.
Denio 1.4. Seja m um nmero inteiro no nulo. Dizemos que os nmeros inteiros
a e b so congruentes mdulo m se m | (a b) .
Se a congruente a b mdulo m escrevemos
a b(mod m)
Exemplo 1.5.
so congruentes
so iguais.
Temos que
21 13(mod 2)
pois os restos da diviso de 21 e de 13 por 2 so iguais a 1.
Exemplo 1.6.
Temos que
22 4(mod 9)
pois
(9|(22 4) = 18.
b(mod m) se e, somente
completando a demonstrao.
as seguintes propriedades:
Congruncias
a a(mod m)
pois
m | 0 = (a a).
ii) Se
iii) Se
particionado em
ou
mdulo
m.
Zm .
Exemplo 1.7.
10 5 0 5 10 . . . (mod 5)
9 4 1 6 11 . . . (mod 5)
8 3 2 7 12 . . . (mod 5)
7 2 3 8 13 . . . (mod 5)
6 1 4 9 14 . . . (mod 5)
a Z um inteiro. Dado o inteiro positivo m > 1, pelo algoritmo da diviso, temos
que a = bm + r com 0 r m 1. Da equao a = bm + r , vemos que a r(mod m).
Assim, qualquer inteiro congruente mdulo m a algum dos inteiros 0, 1, . . . , m
1, o qual o resto de sua diviso por m. Desde que, no existem dois inteiros de
0, 1, . . . m 1 congruentes mdulo m, temos que qualquer inteiro congruente mdulo
m a exatamente um destes inteiros 0, 1, . . . , m 1.
Seja
Congruncias
m qualquer conjunto de
m,
Exemplo 1.8. O algoritmo da diviso mostra que o conjunto dos inteiros {0, 1, 2, . . .
um sistema completo de resduos mdulo
m 1}
m.
Faremos agora alguma aritmtica com congruncias, sendo que estas tem muitas das
propriedades que a igualdade possui. Comeamos mostrando que adio, subtrao e
multiplicao em ambos os lados de uma congruncia preserva a congruncia.
Teorema 1.3. Se a, b, c e m so inteiros com m > 0 tais que a b(mod m), ento
i) a + c b + c(mod m)
ii) a c b c(mod m)
iii) ac bc(mod m)
Prova:
i) Desde que
ac bc = c(a b).
ac bc(mod m)
, completando a demonstrao.
Exemplo 1.9.
Desde que
Desde que
m | (a b) ,
segue que
m | c(a b),
18 2(mod 8)
25 = 18 + 7 2 + 7 = 9(mod 8)
17 = 18 1 2 1 = 1(mod 8)
36 = 18 2 2 2 = 4(mod 8)
O que acontece quando ambos os lados de uma congruncia so divididos por um
inteiro? O exemplo a seguir mostra que a congruncia nem sempre preservada quando
ambos o lados da mesma so divididos pelo mesmo nmero.
Congruncias
Exemplo 1.10.
Temos que
2 7 2 4(mod 6)
mas 7 6
4(mod 6).
m
d
c
d
m
).
d
ac bc(mod m) m | (ba)
completando a demonstrao.
Exemplo 1.11.
Temos
c
m
m
| (ba)
| (ba) a b(mod m/d),
d
d
d
50 = 50 10 20 = 2 10(mod 15)
50 10
2 10
15
(mod
),
10
10
5
ou
mdc(10, 15) = 5
ento
5 2(mod 3).
Exemplo 1.12.
42 = 6 7 7 = 1 7(mod 5)
17
67
(mod 5),
7
7
Teorema 1.5. Se
mdc(5, 7) = 1
ou 6
ento
1(mod 5).
i) a + c b + d(mod m)
ii) a c b d(mod m)
iii) ac bd(mod m)
a b(mod m) e c d(mod m), temos que m | (a b)
inteiros k el com km = a b e lm = c d.
(a + c) (b + d) = (a b) + (c d) = km + lm = (k + l)m.
Assim, m | [(a + c) (b + d)], e, portanto, a + c b + d(mod m)
ii)
(a c) (b d) = (a b) (c d) = km lm = (k l)m.
Assim, m | [(a c) (b d)],e, portanto, a c b d(mod m)
m | (c d).
Congruncias
iii)
10
Exemplo 1.13.
Temos que
13 8(mod 5)
7 2(mod 5),
que
a)
20 = 13 + 7 8 + 2 0(mod 5),
b)
6 = 13 7 8 7 1(mod 5),
c)
91 = 13 7 8 2 = 16(mod 5).
m.
mdc(a, m) = 1,
rj rk (mod m).
Como
rj 6 rk (mod m)
se
j 6= k
m,
j = k.
inteiros no congruentes
m entre si, estes inteiros devem formar um sistema completo de resduos mdulo
completando a demonstrao.
Congruncias
11
n N.
Se
n = 1,
o resultado
imediato.
Suponhamos, ento que o resultado seja verdadeiro para
resultado vlido tambm para
n + 1 N.
7 2(mod 5).
e mostremos que o
an bn (mod m).
an a bn b(mod m). Logo an+1
Como
Exemplo 1.14.
n N
ns temos que
mmc(m1 , m2 , . . . , mk ) | (a b)
e consequentemente
a b(mod mmc(m1 , m2 , . . . , mk ))
, completando a demonstrao.
completando a demonstrao.
Prova: Desde que
m1 , m2 , . . . , mk
mmc(m1 , m2 , . . . , mk ) = m1 m2 mk
Congruncias Lineares
12
a b(mod m1 m2 mk ),
completando a demonstrao.
Observe que se
dadas por
x = x0 +
onde
x = x0
y = y0
m
t,
d
a
y = y0 + t,
d
x = x0 +
x,
m
t,
d
m
x0 + t1
d
m
x2 = x0 + t2
d
so congruentes mdulo
congruentes ento
x0 +
m.
m
m
t1 x0 + t2 (mod m).
d
d
x1 =
Congruncias Lineares
x0
Subtraindo
13
m
m
t1 t2 (mod m).
d
d
Como
m
|m
d
temos
mdc(m,
m
m
)=
d
d
t1 t2 (mod d).
Isto mostra que um conjunto completo de solues no congruentes entre si obtido
tomando-se
mdulo
d.
x = x0 + (m/d)t,
onde
x = x0 + (m/d)t
onde
t = 0, 1, 2, . . . , d 1,
completando a demonstrao.
Exemplo 1.15.
8x 4(mod 12),
De fato:
mdc(8, 12) = 4
e 4|4.
Assim, existem exatamente quatro solues mdulo 12 no congruentes entre si. Podemos encontrar essas solues atravs de uma soluo particular somando os mltiplos
corretos de
12/4 = 3.
x0 = 2
8x12y = 4
x = 2 + 3 0 = 2,
x = 2 + 3 1 = 5,
x = 2 + 3 2 = 8,
x = 2 + 3 3 = 11.
Vamos considerar congruncias lineares na forma
ax 1(mod m).
Sabemos do teorema 1.9 que existe uma soluo para esta congruncia se, e somente
se,
mdc(a, m) = 1
m.
7x 1(mod 31).
Congruncias Lineares
14
Temos
mdc(7, 31) = 1.
Logo, essa congruncia linear possui soluo. Para encontrar uma soluo, consideramos a equao diofantina
7x 31y = 1,
cuja soluo particular dada por
1(mod 31)
x0 = 9
7x
satisfazem
x 9(mod 31),
temos que 9 e todos os inteiros congruentes a 9 mdulo 31, so inversos de 7 mdulo
31.
Quando conhecermos um inverso de
congruncia na forma
ax b(mod m).
Para isto, seja
o inverso de
mdulo
m,
tal que
a
a 1(mod m).
Ento, se
ax b(mod m),
multiplicando ambos os lados desta congruncia por
encontrando
a
(ax) a
b(mod m),
e, desta forma,
xa
b(mod m).
Exemplo 1.17.
7x 22(mod31).
De fato:
7x 22(mod 31).
Multiplicando ambos os lados da congruncia por
7 = 9,
obtemos
9 7x 9 22(mod 31).
Ou seja,
Observe que se
nica soluo
7x 22(mod 31)
tem uma
Proposio 1.8. Seja p primo. O inteiro positivo a seu prprio inverso mdulo p
se, e somente se, a 1(mod p) ou a 1(mod p).
15
Prova: Se
ax + by e(mod m)
cx + dy f (mod m)
x (de
bf )(mod m)
y (af
ce)(mod m),
o inverso de mdulo m.
onde
Prova:
obtemos
e a segunda por
x de bf (mod m).
Agora, multiplicamos ambos os lados desta congruncia por
m,
x (de
bf )(mod m).
, um inverso de mdulo
16
y af ce(mod m).
Finalmente, multiplicamos ambos os lados dessa congruncia por
y (af
ce)(mod m).
Por outro lado, se tivermos um par
(x, y)
na forma
x (de
bf )(mod m)
y (af
ce)(mod m),
ento
ax + by a(de
bf ) + b(af
ce)
(ade
abf abf bce)
(ad bc)e
e(mod m)
cx + dy c(de
bf ) + d(af
ce)
(cde
bcf adf cde)
(ad
bc)f
f (mod m).
Exemplo 1.18.
3x + 4y 5(mod 13)
2x + 5y 7(mod 13)
Temos
= ad bc = 3 5 4 2 = 7
7 mdulo 13 2 e, ento
Um inverso de
17
texto cifrado
texto plano
qualquer um que no conhea a regra de transformao converter um texto plano para um texto cifrado chamado
contrrio chamado
desencriptao.
em uma mensagem
chave 1 . O processo de
encriptao, e o processo
segura. E, entre eles, est Eva, que deseja interceptar essa comunicao.
Quando Alice deseja enviar uma mensagem secreta para Bob, ela encripta o texto
1 Em
Viso Geral
19
Normalmente, o mtodo de
criptografar a mensagem conhecido por Eva. O que ela no conhece chave de descriptografar e, isso, que mantm a mensagem em segredo.
mensagem com o texto cifrado, ele recupera o texto plano usando a chave de descriptografar.
Eva pode ter qualquer dos objetivos a seguir:
Adulterar mensagens de Alice de forma que Bob receba uma mensagem falsa.
Passar por Alice, de tal forma que Bob acredite que esteja se comunicando com
Alice.
Eva pode agir de vrias maneiras para tentar atingir seus objetivos. A diferena entre
elas depende da quantidade de informao que ela possui quando estiver tentando
determinar a chave. Por exemplo:
Exemplo 2.1.
Alemo enviava todos os dias a mesma mensagem criptografada dizendo que no havia
nada de novo para informar. Ento, a cada dia, os aliados tinham acesso a uma cpia
de texto criptografado e o texto plano correspondente.
De qualquer maneira, o principal objetivo de Eva descobrir a chave para criptografar
e descriptografar mensagens visto que um dos mais importantes princpios de segurana
usados na criptograa o
princpio de Kerckhos 3 :
Chaves Simtricas
3 Esse
taire
La Cryptographie Mili-
Viso Geral
Chaves Pblicas
20
Nos
2.1.2 Cifras
As mensagens criptografadas usando mtodos de chave simtrica podem ser enviadas
de forma contnua ou em blocos.
Cifras Contnuas
Cifras em Bloco
21
m de letras.
alfabeto
con-
aos caracteres alfabticos A-Z, mas tambm nmeros, espaos em branco, marcas de
pontuao e outros smbolos.
das.
descriptograa
a funo inversa
de
do conjunto
Transformao de
f.
f 1
P
C P
O primeiro passo ao criar um mtodo de criptograa converter todas as unidades
de mensagem de texto plano e todas as mensagens de texto cifrado usando nmeros
naturais em algum intervalo
Exemplo 2.2.
0, 1, . . . , 25,
chamados de
equivalentes numricos.
Ento, no lugar do A
Exemplo 2.3.
mos de
dgrafos,
4 Pode-se converter unidades de mensagem para outros objetos matemticos como pontos ou vetores,
22
{0, 1, 2, . . . , 26}
pertencem ao conjunto
no nmero
27 4 + 20 = 128.
Analogamente, se usarmos sequncias trs letras, que chamaremos
trgrafos
como uni-
729x + 27y + z
blocos de k letras em
rotular
inteiros.
Para facilitar o processo de criptografar e descriptografar de maneira rpida conveniente ter um mtodo relativamente simples para realizar tal permutao. Um caminho
para isso, pensar o conjunto
gruncia mdulo
m,
{0, 1, 2, . . . m 1}
em
Zm .
Exemplo 2.4.
A, B, . . . Z
respectivamente . Seja
e a funo
do
com rtulos
(
f (P ) =
Em outras palavras,
P + 3,
P 23,
x < 23,
se x 23
se
f (P ) P + 3(mod 26).
Ento, com esse sistema, para encriptar a palavra
PITAGORAS
primeiro convertemos a palavra para os nmeros:
15 08 19 00 06 14 17 00 18,
0, 1, . . . 25
em texto plano
23
18 11 22 03 19 17 20 03 21,
e ento convertemos de volta para letras
SLWDJRUDV.
Para decifrar a mensagem, basta subtrairmos 3 mdulo 26. Para este exemplo, o texto
cifrado
WDOHV
equivale ao texto plano
TALES.5
Suponhamos que estamos usando um alfabeto de
cos
0, 1, . . . , m 1.
Seja
bN
transformao de deslocamento.
Denio 2.1. Uma transformao de deslocamento uma funo f de criptograa denida pela regra
C = f (P ) P + b(mod m).
m = 26 e
b = 3. Para decifrar uma unidade de mensagem de texto cifrado C {0, 1, . . . , m 1},
No caso do exemplo 2.4 temos uma transformao de deslocamento com
simplesmente calculamos
criptoanlise.
quebra do
5 Esse
AZ
mtodo de encriptao foi aparentemente usado em Roma por Jlio Csar, que, supostamente
foi o prprio inventor do mtodo segundo [6] .
b.
24
C P + b(mod N )
P C b(mod N ).
Como vimos na seo 2.1 devemos sempre assumir que a estrutura geral do sistema
de criptograa e descriptograa conhecida.
QHGKYCUTUI.
Sabendo que a mesma foi criptografada usando uma transformao de deslocamento
sobre letras simples de uma alfabeto de 26 letras como visto anteriormente, resta-nos
descobrir o valor do parmetro
b.
Sabemos que a letra "E " uma das que tem maior frequncia na lngua portuguesa.
Como a letra "U " a letra com maior frequncia no texto cifrado, razovel supor
que a letra "U "no texto cifrado corresponde ao "E "no texto plano. Isso signica que
o deslocamento leva "E "= 4 em "U "= 20. Isto ,
20 4 + b(mod 26),
e logo
b = 16.
Para decifrar a mensagem basta subtrair 16 (mdulo 26) dos equivalentes numricos
de
QHGKYCUTUI.
QHGKY CU T U I = 17 08 07 11 25 03 21 20 21 09
7 01 18 17 21 09 13 05 04 05 19 = ARQU IM EDES
A tabela a seguir mostra a frequncia de letras na lngua portuguesa segundo o site
cryptogram.org
6 visitado
em 01/11/2015
25
letra
letra
letra
letra
letra
14,8438
5.00919
0.919118
0.298713
0.0229779
12.1094
4.71048
0.873162
nh
0.252757
10.2711
3.81434
0.827206
0.229779
7.14614
3.58456
0.804228
0.183824
5.97426
3.10202
0.804228
0.160846
5.74449
1.86121
0.551471
0.137868
5.3079
1.83824
0.32169
lh
0.0919118
5.00919
1.26379
0.298713
0.0459559
b, que podem ser testadas uma a uma, sendo que apenas uma delas far com o texto
pela regra
C aP + b(mod m),
(2.1)
Exemplo 2.6.
ARQUIMEDES
a=7
b = 12.Assim
C 7P + 12(mod 26),
e temos
ARQU IM EDES = 00 17 16 20 08 12 04 03 04 18
7 12 01 20 22 16 18 14 07 18 08 = M BU W QSOHOI
Para decifrar uma mensagem que foi criptografada usando uma transformao am
C aP + b(mod m),
devemos escrever
em funo de
P a
C +
ab(mod m),
C,
obtendo
(2.2)
onde
a1 b.
26
plano que resulta na mesma letra no texto cifrado.Assim, essa funo no injetora e,
por denio, esta no uma funo de criptograa.
tranformao linear.
Suponhamos, agora, que interceptamos uma mensagem que foi criptografada usando
uma transformao am em um alfabeto de
resolver isto.
Exemplo 2.7. Vamos neste exemplo trabalhar com um alfabeto de 27 (m = 27) letras
consistindo nas letras A-Z rotulados de 0 a 25 e o espao em branco rotulado como
26. Suponhamos que a letra com maior ocorrncia no texto cifrado seja "M ", e que a
segunda letra que ocorre com maior frequncia seja "I ". razovel supor que estas
so as letras cifradas correspondentes ao "E "e ao "A "respectivamente, que so as
duas letras mais frequentes na lngua portuguesa. Ento, trocando as letras pelos seus
rtulos numricos e substituindo em
4a + b 12(mod 27)
0a + b 8(mod 27)
Temos um sistema de duas congruncias com duas incgnitas,
b.
Como
a 1(mod 27)
=
b 8(mod 27)
C P + 8(mod 27),
e, substituindo na equao (2.1) nossa transformao am de descriptograa resulta
em
P C 8(mod 27).
Exemplo 2.8.
Suponhamos que temos uma parte de um texto cifrado que foi crip-
= 28)
27
consistindo de A-Z, um branco que ser representado aqui por "t ", e o sinal ?, onde
A-Z tem equivalentes numricos 0-25, branco = 26 e ? = 27. Uma anlise de frequncia
mostra que as letras mais comuns no texto cifrado so "B "e "? ", nesta ordem. Desde
que, neste caso, saibamos que os smbolos que mais aparecem em lngua portuguesa
so "t "e "E ", nesta ordem, supomos que "B " o equivalente cifrado de "t "e "? "
o equivalente cifrado de "E ". Desta forma, temos
a = 5 e b = 9 ou a = 19 e b = 9.
ans de criptograa,
C 5P + 9(mod 28)
eP
3C + 1(mod 28).
Neste caso, devemos testar as duas possibilidades e usar aquela em que o texto plano
faa sentido, ou continuar nossa anlise de frequncia como o terceiro caractere com
maior frequncia na lngua portuguesa obtendo uma terceira congruncia linear. Essa
informao extra pode nos ajudar a determinar quais das transformaes am est
correta.
3 Criptograa , Matrizes e
Tecnologia
3.1 Introduo
Neste captulo vamos expandir o conceito de congruncias para matrizes, explicar o que
so as cifras de Hill, como criptografar e descriptografar mensagens usando essas cifras,
como quebrar as mesmas e mostrar alguns exemplos de utilizao. Veremos tambm
como uma ferramenta tecnolgica pode nos auxiliar nos clculos.
til usar a linguagem de matrizes. Usaremos alguns conceitos bsicos de matrizes que
so discutidos em muitos textos de lgebra Linear, tal como [2].
A B(mod m),
Exemplo 3.1.
Temos que
16 3
8 13
5 3
3 2
28
!
(mod 11).
Congruncias e Matrizes
Exemplo 3.2.
29
Temos que
1 4 2
1 4 7
2 0 3 2 5 8 (mod 5).
3 1 4
3 6 9
DA DB(mod m).
Sejam
t=1
Desde que
A B(mod m),
temos que
t=1
para todo
e todo
k.
Assim,
n
X
t=1
Consequentemente,
A demonstrao de
(ait ctj )
n
X
t=1
demonstrao.
21 1
...
...
...
...
...
...
...
...
a x + a x + . . . a x b (mod m)
n1 1
n2 2
nn n
n
Usando notao matricial, vemos que este sistema de
congruncia matricial
AX B(mod m),
congruncias equivalente a
Congruncias e Matrizes
onde
A=
Exemplo 3.3.
a11 a12 . . .
a21 a22 . . .
:
:
:
an1 an2 . . .
a1n
a2n
:
ann
,X =
x1
X2
:
xn
30
B=
b1
b2
:
bn
O sistema
6x + 8y 5(mod 11)
4x + 10y 7(mod 11)
equivalente a
6 8
4 10
x
y
5
7
!
(mod 11)
0
a matriz identidade de ordem n, ento dizemos que A
1
uma matriz inversa de A mdulo m.
1 0 ...
0 1 ...
onde I =
...
0 0 ...
Exemplo 3.4.
Desde que
1 3
2 4
3 4
1 2
3 4
1 2
3 4
1 2
1 3
2 4
!
6 10
10 16
11 25
5 11
uma inversa de
1 0
0 1
1 0
0 1
!
11 25
5 11
(mod 5)
(mod 5)
mdulo 5.
Congruncias e Matrizes
31
22
m.
a b
c d
onde
I(mod m).
AA AA
Para ver isto, observe que
AA
a b
c d
0
0
!
ad
bc
0
0
bc + ad
!
!
0
1 0
= I(mod m)
0
0 1
d b
c a
a b
c d
d b
AA
c a
!
0
onde
o inverso de
Exemplo 3.5.
3 4
4 6
6 4
4 3
Seja
mdulo
m,
!
ad bc
0
0
bc + ad
!
1 0
= I(mod m),
0 1
mdc(, m) = 1.
detA = 2
mdulo 13,
temos que
A 7
42 28
28 21
3 11
11 8
!
(mod 13).
3 11
11 8
Exemplo 3.6.
3 4
4 6
!
=
1 0
0 1
2 3
7 8
(mod 13).
mdulo 26.
Congruncias e Matrizes
Desde que 5 um inverso de
A 5
8 3
7 2
40 15
35 10
32
, temos que
14 11
17 10
!
(mod 26).
a entrada(i, j) dada por Cji , onde Cij (1)i+j vezes o determinante da matriz obtida
eliminando-se a i-sima linha e a j-sima coluna da matriz A. A adjunta de A ser
indicada por adj(A)
Para obtermos uma frmula para a inversa de uma matriz
a seguir, cuja demonstrao pode ser encontrada em [2], pgina 73, teorema 3.5.2.
1
adj(A).
det(A)
A = Adj(A)
um inverso de mdulo m.
uma inversa de A mdulo m, onde
Prova:
Se
mdc(det(A), m) = 1,
det(A) 6= 0.
1
adj(A) = A1 .
obtemos
1
Aadj(A) = I.
De onde obtemos
Aadj(A) = I.
Desde que
mdc(det(A), m) = 1,
existe um inverso
de
mdulo
I
I(mod m)
AAdj(A)
AAdj(A)
e
Adj(A)A
A
I
I(mod m).
m.
Assim,
Congruncias e Matrizes
Isto mostra que
demonstrao.
A = Adj(A)
uma inversa de
33
mdulo
m,
completando nossa
2 5 6
2 3 5
A = 4(adj(A)) = 4 5 0
10 =
4
1 10
8 12 20
6 2
20 0
40 1 0
0
4 40
2 4
Podemos agora usar uma inversa de
mdulo
Desde que
mdc(, m) = 1.
(3.1)
de
A,
obtemos
A(AX)
AB(mod
m)
(AA)X
AB(mod
m)
X AB(mod
m)
Assim, encontramos a soluo
Exemplo 3.8.
8 12 20
20 0
40
0
4 40
5 (mod 7).
2
AX B(mod m),
onde
mdc(, 7) = 1,
calculando
AB(mod
m).
2x + 3y 1(mod 26)
7x + 8y 2(mod 26)
Como
A=
2 3
7 8
!
,
34
A =
e
=
X AB
2 3
7 8
2 3
7 8
1
2
10
11
!
(mod 26).
caracteres.
n cuja
e um alfabeto de
m.
1. Encontre um matriz
Enn
m.
Essa matriz
ser a
m 1.
completando, se
necessrio, o nal da mensagem com nmeros aleatrios para que tenhamos todos
os blocos de comprimento
n.
35
n 1. Nesta etapa,
coluna p1 , p2 , . . . , pn de
de ordem
n 1.
E de criptograa por cada um dos
c1 , c2 , . . . , ct tambm de ordem n 1
6. Multiplique a matriz
obtendo os vetores
c1 = Ep1 ,
7. Use os vetores
c2 = Ep2 ,
c1 , c2 , . . . , ct
c1 = Ep3 ,
...,
vetores
p1 , p2 , . . . , pt
ct = Ept
Observao 3.1.
Vnt
usando os vetores
p1 , p2 , . . . , pt
P = [p1 , p2 , . . . , pt ] C = EP = [c1 , c2 , . . . , ct ]
Exemplo 3.9.
E=
2 3
7 8
!
.
Temos
1. A matriz invertvel mdulo 26 pelo exemplo 3.6.
2. Convertendo para maisculas.
P ASCAL.
3. Convertendo cada caractere para seu equivalente numrico.
15 00 18 02 00 11.
4. Dividindo a sequncia em blocos de comprimento 2.
15 00 18 02 00 11.
P23
C = EP
2 3
7 8
!
.
15 18 00
0 02 11
P =
6. Multiplicar a matriz
36
de criptograa por
15 18 00
0 02 11
!
=
P.
30 42 33
105 142 88
4 16 7
1 12 10
!
(mod 26).
4 1 16 12 7 10 EBQM HK.
Exemplo 3.10.
de comprimento
2 3 15
E = 5 8 12 .
1 13 4
1. Vamos escolher blocos de comprimento
n = 3
e uma matriz
de encriptao
dada por:
2. Desde que
M AT EM AT ICALEGAL.
4. Convertendo cada letra para seu equivalente numrico.
12 00 19 04 12 00 19 08 02 00 11 04 06 00 11.
5. Dividindo o texto em blocos de trs unidades.
12 00 19 04 12 00 19 08 02 00 11 04 06 00 11.
37
12 4 19 0 6
P = 0 12 8 11 0 .
19 0 2 4 11
7. Multiplicando pela matriz de encriptao E.
2 3 15
12 4 19 0 6
23 18 14 15 21
C = E.P = 5 8 12 0 12 8 11 0 = 2 12 1 6 6
1 13 4
19 0 2 4 11
10 4 1 3 24
8. Convertendo
em um texto cifrado
E 1 .
E , ns
E,
D = E 1 (mod m).
C.
P = DC .
4. Converta a matriz
Exemplo 3.11.
AJXGTRJXDGKKIXL.
1. Calculamos
2 3 15
10 19 16
5 8 12 (mod 26) = 4 23 7
1 13 4
17 5 19
38
C.
AJXGT RJXDGKKIXL
00 09 23 06 19 17 09 23 03 06 10 10 08 23 11
E assim,
00 06 09 03 08
C = 09 19 23 06 23
23 17 03 10 11
3. Finalmente, calculamos
P = DC
10 19 16
00 06 09 03 08
19 17 03 18 17
M = DC = 4 23 7 09 19 23 06 23 = 04 08 14 12 14
17 5 19
23 17 03 10 11
14 0 13 11 18
4. Convertendo a matriz
19 04 14 17 08 00 03 14 13 18 12 11 17 14 18
T EORIADOSN U M EROS.
Podemos adicionar os espaos e obter
C = EP .
correspondente texto cifrado ento teremos conhecimento sobre uma pequena parte de
e de
C.
invertvel (mdulo
m).
Ento
C = EP
E = C P ,
para obter
nn
resultando
mdulo
E, P
C.
n se
Exemplo 3.12.
39
TIVLFGLKTILFXAHVGY
e portanto
D.
Resta-nos trabalhar
Exemplo 3.13.
E.
TIVLFGLKTILFXAHVGY
cujo signicado
n=2
ou
n = 3.
CRIPTOGRAFIAELEGAL
rotulado como
02 17 08 15 19 14 06 17 00 05 08 00 04 11 04 06 00 11.
e encriptado como
TIVLFGLKTILFXAHVGY
que rotulado
19 08 21 11 05 06 11 10 19 08 11 05 23 00 07 21 06 25
40
Sabemos que
2
17
19
08
08
15
22
levada em
21
11
levada em
19
14
levada em
02 08
17 15
P =
det(P ) = 106
o qual no primo relativo com o 26 e, portanto,
no invertvel. Se movermos
02 19
17 14
P =
cujo determinante
torna-se,
19 5
08 6
!
=E
ento
E=
19 5
08 6
02 19
17 14
02 19
17 14
!1
(mod 26) =
3 13
22 4
02 17 08 15 19 14 06 17 00 05 08 00 04 11 04 06 00 11.
Assim
P =
02 08 19 06 00 08 04 04 00
17 15 14 17 05 00 11 06 01
!
,
Desde
05
06
,...
41
C = EP =
3 13
22 4
C=
02 08 19 06 00 08 04 04 00
17 15 14 17 05 00 11 06 01
19 11 5 5 13 24 25 12 13
8 2 6 18 20 20 2 8 4
!
.
Como os elementos dessa matriz no coincidem com os rtulos da mensagem criptografada conclumos que o comprimento do bloco no 2. Ento faremos uma tentativa
para blocos de comprimento 3.
C = EP ,
E33
com
isto
19 11 11 08 23 21
02 15 06 05 04 06
08 05 10 11 00 06 = E 17 19 17 08 11 00 .
21 06 19 05 07 25
08 14 00 00 14 11
Como anteriormente, selecionamos 3 colunas de nossa matriz de texto plano para produzir uma matriz
33
02 15 06
P = 17 19 17 ,
08 14 00
cujo determinante mdulo 26 0 e portanto a matriz no invertvel. Tentamos agora
a matriz formada pelas colunas 1, 2 e 6 da matriz de texto plano, obtendo
02 15 06
P = 17 19 00 .
08 14 11
Como
02 15 06
19 11 21
08 05 06 = E 17 19 00 .
21 06 25
08 14 11
Logo
19 11 21
02 15 06
2 3 15
E = 08 05 06 17 19 00 (mod 26) = 5 8 12 .
08 14 11
9 1 21
21 06 25
Tecnologia
42
Para vericar se isto funciona, vamos testar novamente em nossa mensagem. Temos
19 11 11 08 23 21
2 3 15
02 15 06 05 04 06
08 05 10 11 00 06 = 5 8 12 17 19 17 08 11 00 .
21 06 19 05 07 25
9 1 21
08 14 00 00 14 11
Logo, temos a matriz de criptograa correta e, a partir dela, podemos obter a nossa
matriz de descriptograa encontrando sua inversa.
3.4 Tecnologia
Conhecendo o funcionamento das cifras de Hill e como quebr-la, vamos nos ater a uma
ferramenta tecnolgica que facilita os clculos. Discutiremos, na forma de exemplos, os
processo para se realizar operaes envolvendo congruncia e inversos mdulo
m, ambos
com nmeros e matrizes. A ferramenta tecnolgica escolhida para isso foi o JuliaBox.
JuliaBox um ambiente interativo em nuvem para a linguagem de programao Julia.
No momento deste trabalho, a verso atual a 0.4.2 e pode ser encontrado em
www.juliabox.org
JuliaBox contm vrias funes pr denidas que lida com lgebra matricial e com
congruncias.
Exemplo 3.14.
2 7
13 9
e a nomeamos de
E.
Tecnologia
Agora calculamos
mdc(, m)
e seu inverso
mdulo
26.
26.
43
26.
Tecnologia
44
ZERO .
Temos:
ZERO
A matriz
25 04 17 14
correspondente ser
25 17
04 14
Usando o JuliaBox para multiplicar
por
e obter
C.
0 23 2 9 AXCJ
Agora, vamos usar a matriz inversa, para descriptografar a palavra
AJMG
Usando o JuliaBox para multiplicar
00 09 12 06
por
e obter
3 14 8 18 DOIS
P.
AJMG . Temos:
Tecnologia
45
4 Concluso
Existem numerosos tpicos para se dissertar nessa rea.
les os pr-requisitos so elevados para um texto que pretende servir como apoio para
Professores da Educao Bsica. Assim, optamos por trabalhar a parte da criptologia
conhecida como clssica. Apresentamos tambm exemplos como a tecnologia pode auxiliar neste estudo.
46
Referncias Bibliogrcas
[1] I. Balbaert.
Algebra linear.
HARBRA, 1986.
Elementos de Aritmtica.
SBM, 2011.
Springer Science +
Addison-Wesley,
1984.
[8] W. Trappe and L. C. Washington.
47
Julia uma linguagem de cdigo aberto e grtis com uma licena (MIT)
bastante aberta.
Um dos principais objetivos da linguagem Julia a velocidade de execuo dos cdigos.
Neste ponto, Julia rivaliza com C e Fortran, e deixa outras linguagens dinmicas de
programao bem para trs. Julia tem sintaxe bastante parecida com MATLAB, mas
Julia uma linguagem de programao com propsitos mais gerais do que MATLAB
e o caminho em que os clculos computacionais so realizados so bem distintos.
JuliaBox uma aplicao hospedada em nuvem para a linguagem de programao Julia
contendo alguns pacotes da linguagem j instalados e que permite criar e compartilhar
documentos que contm cdigo, equaes, visualizaes e textos explicativos.
https://juliabox.org
e entrar com uma conta do Google. Assim que entrarmos, vermos uma janela parecida
com a gura A.2.
Para criar um arquivo interativo que pode rodar no navegador basta clicar no boto
48
Usando o JuliaBox
49
new
e selecionar
Julia 0.4.2.
Shift + Enter.
A sada da clula
Usando o JuliaBox
50
M1 = [1 2 3; 4 5 6; 7 8 9]
Isto produzir a matriz,
1 2 3
4 5 6
7 8 9
e atribuir a ela o nome
M 1.
{1, 2, 3}.
minsculas.
Para os prximos exemplos, considere que as matrizes
suas dimenses so compatveis com as operaes.
Adio
M3 = M1 + M2
Subtrao
M4 = M1 - M2
Multiplicao
M5 = M1*M2
M6 = cM1
Matriz Oposta
M7 = -M1
Potncia de Matriz
Se
M7 = M1^n
Inversa = inv(A)
A, M, M 1
M2
foram criadas e
Usando o JuliaBox
51