Sie sind auf Seite 1von 62

Universidade Estadual de Maring - UEM

Centro de Cincias Exatas


Departamento de Matemtica

Criptograa Clssica, Matrizes e Tecnologia


Gilberto Aparecido Tenani

Dissertao apresentada ao Programa de PsGraduao  Mestrado Prossional em Matemtica em Rede Nacional como requisito parcial para a obteno do grau de Mestre.

Orientador

Prof. Dr. Marco Roberto Teixeira Primo

2016

TERMO DE APROVAO
Gilberto Aparecido Tenani
Criptografia Clssica, Matrizes e Tecnologia

Dissertao aprovada como requisito parcial para a obteno do grau de


Mestre no Curso de Ps-Graduao Mestrado Prossional em Matemtica
em Rede Nacional do Departamento de Matemtica da Universidade Estadual de Maring, pela seguinte banca examinadora:

Prof. Dr. Marco Roberto Teixeira Primo


Orientador

Examinador I

Examinador II

Maring - PR, 13 de Fevereiro de 2016

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.

Marcos Roberto Teixeira Primo, pelo grande suporte

prestado, pelos momentos de reexo proporcionados, pelas correes e pelo incentivo.


Ao Coordenador do Programa de Mestrado Prossional da UEM Prof.

Dr.

Laerte

Bemm pelo incentivo e disponibilidade.


Agradeo a todos os professores do Programa de Mestrado Prossional da UEM por me
proporcionarem o conhecimento no apenas racional, mas a manifestao do carter e
afetividades da educao no processo de formao.
Aos colegas de curso, pelo companheirismo, pela ajuda nas dvidas e pela motivao
durante todo o mestrado.
E a todos que, direta ou indiretamente, zeram parte da minha formao, o meu muito
obrigado.

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.

lgebra Matricial, Criptograa, Tecnologia, Aritmtica Modular,

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.

Matrix Algebra, Cryptography, Technology, Modular Arithmetic, Hill

Lista de Figuras
2.1

Cenrio bsico de comunicao.

. . . . . . . . . . . . . . . . . . . . . .

18

A.1

Tela Principal do JuliaBox . . . . . . . . . . . . . . . . . . . . . . . . .

49

A.2

Tela de um Arquivo Interativo . . . . . . . . . . . . . . . . . . . . . . .

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

Sistemas de Congruncias Lineares

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . .

22

. . . . . . . . . . . . . . . . .

2 Introduo Criptograa Clssica


2.1

2.2

Viso Geral

12
15

18

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.1.1

Mtodos de Chave Simtrica e de Chave Pblica . . . . . . . . .

19

2.1.2

Cifras

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.1.3

Comprimento da chave . . . . . . . . . . . . . . . . . . . . . . .

21

Alguns Sistemas Criptogrcos Clssicos

. . . . . . . . . . . . . . . . .

3 Criptograa , Matrizes e Tecnologia

21

28

3.1

Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.2

Congruncias e Matrizes

. . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.3

Cifra de Hill de ordem

. . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.4

3.3.1

O processo de encriptao

. . . . . . . . . . . . . . . . . . . . .

3.3.2

O processo de Descriptograa

3.3.3

Quebrando a Cifra de Hill

34

. . . . . . . . . . . . . . . . . . .

37

. . . . . . . . . . . . . . . . . . . . .

38

Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4 Concluso

46

Referncias Bibliogrcas

47

A Linguagem Julia e JuliaBox

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

com a criptograa surgiu tambm o campo de estudo conhecido como

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

criptologia o termo que engloba todo o estudo sobre

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

cifras de Hill, que tm por base transformaes

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

os conceitos bsicos de divisibilidade e congruncias, suas propriedades e os principais


resultados que so importantes para o entendimento dos mtodos criptogrcos e de
x

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,

e de suas propriedades. Neste captulo, faremos uma reviso de

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.

Os resultados exibidos foram extrados, quase em sua totalidade,

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.

Denio 1.1. Dados a e b Z, dizemos que a divide b se existir um inteiro d tal


que b = ad. Neste caso, tambm dito que a divisor ou fator de b.
Se a divide b escrevemos a | b, caso contrrio, escrevemos a - b.

Exemplo 1.1.

Temos que

13 | 65,

Exemplo 1.2.

5 | 15,

Os divisores de

13 | 169,

6 - 35

17 - 0

so

1, 2

Proposio 1.1. Se a, b, c Z com a | b ento a | bc.


Prova: Como

a|b

existe natural

d1

tal que

b = ad1

. Assim

bc = (ad1 )c = a(d1 c),

completando a demonstrao.

Proposio 1.2. (Transitividade) Se a, b, c Z com a | b e b | c ento a | c.


2

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

Proposio 1.3. Se a, b, c, m, n Z com a | b e a | c ento a | (mb + nc).


Prova:

a | b e a | c existem inteiros d1 e d2 tais que b = ad1 e c = ad2 . Assim,


mb + nc = m(ad1 ) + n(ad2 ) = a(md1 + nd2 ) e, portanto, a | (mb + nc) completando a

Como

demonstrao.

Corolrio 1.1. Se a, b, c N com a | b e a | c ento a | (b c).


A denio a seguir necessria para a demonstrao do teorema (1.1).

Denio 1.2. Seja x R. O maior inteiro menor ou igual a x indicado por [x] .
Segue diretamente da denio que

Proposio 1.4. Se x R ento x 1 < [x] x.


Quando no existir uma relao de divisibilidade entre dois nmeros inteiros, veremos
que, ainda assim, ser possvel efetuar uma diviso com resto, chamada de

euclidiana.

diviso

O prximo teorema tem grande importncia no conceito de diviso.

Teorema 1.1. (Algoritmo da Diviso) Se a, b Z com b > 0, ento existem inteiros


nicos q, r tais que a = bq + r, com 0 r < b. O nmero q Z chamado de
quociente e o nmero r Z chamado de resto da diviso.
Prova: Sejam
que o resto

q = [a/b]
satisfaz a

r = a b[a/b]. Temos ento que a = bq + r.


desigualdade 0 r < b. Para isso, observe que
e

a/b 1 < [a/b] a/b.


Multiplicando essa desigualdade por

b,

obtemos

a b < b[a/b] a.
Multiplicando por

1,encontramos
a b[a/b] < b a

Mostraremos

Nmeros Primos
Adicionando

a cada membro, chegamos a

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

Para mostrar que o quociente

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

1.2 Nmeros Primos


Nesta seo faremos uma breve reviso sobre nmeros primos, um dos conceitos mais
importantes de toda a Matemtica.

Denio 1.3. Um nmero primo

p Z um nmero maior que 1 que divisvel

apenas por 1 e por ele mesmo.

Um nmero que no primo chamado

composto.

composto, existir um divisor natural


existir um nmero natural

n2

de

tal que

n1 6= 1

tal que

n = n1 n2 ,

Exemplo 1.4.

n1

Assim, se um nmero inteiro

com 1 < n1 < n e 1 < n1 < n

Temos

a) Os nmeros 5, 7, 11, 101 e 163 so primos.

n1 6= n.

n>1

Portanto,

Nmeros Primos

b) Os nmeros 4, 33, 111 e 200 so compostos.

Proposio 1.5. Sejam a, b, p Z, com p primo. Se p|ab, ento p|a ou p|b.


p|ab e p 6 |a ento p|b. Mas se p|ab, ento existe c Z
mdc(p, a) = 1 ento, temos que existem m, n Z tais que

Prova: Basta provar que, se


que

ab = pc.

Como

tal

np + ma = 1.
Multiplicando por

ambos os lados da igualdade acima, temos que

b = npb + mab.
Substituindo

ab

por

pc

nesta ltima igualdade , temos que

b = npb + mpc = p(nb + mc),


e, portanto,

p|b

completando a demonstrao.

Teorema 1.2. (Teorema Fundamental da Aritmtica) Todo nmero natural n > 1 ou

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.

o resultado obviamente vericado.

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.

primo, nada temos

Logo, existem nmeros

1 < n1 < n e 1 < n2 < n. Pela


0
0
0
0
0
0
hiptese de induo, temos que existem primos p1 , p2 , . . . , pr e q1 , q2 , . . . , qs tais que
n1 = p01 p02 p0r e n2 = q10 q20 qs0 . Portanto, existem p1 , p2 , . . . , pr primos
tais que n = p1 p2 pr .
Para provar a unicidade da escrita, suponhamos que existam nmeros primos q1 , q2 , . . . qs
tais que n = p1 pr = q1 qs . Como p1 | q1 qs , , temos que p1 = qj para
algum j , que, aps reordenamento de q1 , . . . , qs , podemos supor que seja q1 . Portanto,

naturais

n1

Suponhamos, ento, que

n N.

nN

tais que

com

p2 pr = q2 qs .
Como

p2 p3 pr < n,

a hiptese de induo acarreta que

iguais aos pares, completando a demonstrao.

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)

e se m - (a b) escrevemos a 6 b(mod m).


Essa denio equivalente a dizer que os nmeros inteiros
mdulo

se os restos de sua diviso euclidiana por

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.

Proposio 1.6. Se a e b so nmeros inteiros, ento a

b(mod m) se e, somente

se, existe um inteiro k tal que a = b + km.

a b(mod m) , ento m | (a b). Isto signica que existe um inteiro k


tal que km = a b, isto , a = b + km. Por outro lado, se existe um inteiro k tal
que a = b + km, ento km = a b. Assim m | (a b), e portanto, a b(mod m),
Prova: Se

completando a demonstrao.

Proposio 1.7. Seja m Z um inteiro positivo. Congruncias mdulo m satisfazem

as seguintes propriedades:

i) (Propriedade reexiva): Se a um inteiro, ento a a(mod m) .


ii) (Propriedade simtrica): Se a e b so inteiros tais que a b(mod m) , ento
b a(mod m) .

Congruncias

iii) (Propriedade transitiva): Se a, b, c so inteiros com a b(mod m) e b


c(mod m), ento a c(mod m).
Prova:
i)

a a(mod m)

pois

m | 0 = (a a).

a b(mod m) , ento m | (a b). Assim, existe um inteiro k tal que


km = ab. Isto mostra que (k)m = ba, ento m | (ba). Consequentemente
b a(mod m).

ii) Se

a b(mod m) e b c(mod m), ento m | (a b) e m | (b c) . Assim,


existem inteiros k e l com km = a b e lm = b c. Desta forma, a c =
(a b) + (b c) = km + lm = (k + l)m. Consequentemente, m | (a c) e
a c(mod m), completando a demonstrao.


iii) Se

m Z a congruncia mdulo m forma uma


conjunto Z dos nmeros inteiros e, assim, o conjunto

A proposio 1.7 mostra que, xado


relao de equivalncia sobre o

particionado em
ou

diferentes conjuntos chamados

classes residuais mdulo m,

mdulo

m.

classes de congruncia mdulo

cada qual contendo os inteiros que so congruentes

O conjunto das classes de congruncias mdulo

ser representado por

Zm .

Exemplo 1.7.

As 5 classes de congruncias mdulo 5 so dadas por

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

Denio 1.5. Um sistema completo de resduos mdulo

m qualquer conjunto de

representante das classes de congruncia mdulo m. Isto , um sistema completo um


conjunto de m inteiros {a1 , a2 , . . . , am } que se ai 6= aj ento ai 6 aj (mod m).
Dado um sistema de resduos mdulo

m,

qualquer inteiro congruente mdulo

exatamente um inteiro desse conjunto.

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:

a b(mod m), ns sabemos que m | (a b). Como (a + c) (b + 1) =


a b, vemos que m | [(a + c) (b + c)]. Assim a + c b + c(mod m).

i) Desde que

ii) Anlogo ao item (i).

ac bc = c(a b).
ac bc(mod m)

iii) Observe que


e assim,

, completando a demonstrao.

Exemplo 1.9.

Desde que

Desde que

m | (a b) ,

segue que

m | c(a b),

18 2(mod 8)

segue do teorema 1.3 que

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).

Teorema 1.4. Se a, b, c, m Z com c 6= 0 e m > 1 so inteiros tais que mdc(c, m) = d,


ento ac bc(mod m), se, e somente se, a b(mod
Prova:
Como

m
d

c
d

m
).
d

so primos entre si, temos que

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).

Corolrio 1.2. Se a, b, c, m Z com c 6= 0 e m > 1 so inteiros tais que mdc(c, m) =


1, ento ac bc(mod m), se, e somente se, a b(mod m).

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).

a, b, c, d, m Z so inteiros tais que m > 0, a b(mod m) e

c d(mod m), ento:

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.

Prova: Desde que


Assim, existem
i)

(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

ac bd = ac bc + bc bd = c(a b) + b(c d) = ckm + blm = m(ck + bl).


Assim m | (ac bd) e, portanto ac bd(mod m), completando a demonstrao.


Exemplo 1.13.

Temos que

13 8(mod 5)

7 2(mod 5),

pelo teorema 1.5 vemos

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).

Teorema 1.6. Se {r1 , r2 , . . . , rm } um sistema completo de resduos mdulo m, e se


a um inteiro positivo com mdc(a, m) = 1, ento

{ar1 + b, ar2 + b, . . . , arm + b}

um sistema completo de resduos mdulo m.


Prova: Inicialmente, mostraremos que no existem inteiros

ar1 + b, ar2 + b, . . . , arm + b


que sejam congruentes mdulo

m.

Para isto, observe que se

arj + b ark + b(mod m),


ento pelo item (ii) do teorema (1.3), temos

arj ark (mod m).


E, desde que

mdc(a, m) = 1,

o corolrio (1.2) mostra que

rj rk (mod m).
Como

rj 6 rk (mod m)

se

j 6= k

por denio, conclumos que

Desde que o conjunto dos inteiros em questo consiste de


mdulo

m,


j = k.

inteiros no congruentes

m entre si, estes inteiros devem formar um sistema completo de resduos mdulo

completando a demonstrao.

Congruncias

11

Teorema 1.7. Se a, b, k e m so inteiros tais que n > 0, m > 0, e a b(mod m) ento


an bn (mod m).

Prova: Vamos fazer a demonstrao por induo sobre

n N.

Se

n = 1,

o resultado

imediato.
Suponhamos, ento que o resultado seja verdadeiro para
resultado vlido tambm para

n + 1 N.

a b(mod m) segue do teorema 1.5 que


bn+1 (mod m), o que demonstra nosso resultado.

Temos que

7 2(mod 5).

e mostremos que o

an bn (mod m).
an a bn b(mod m). Logo an+1

De fato, por hiptese,

Como

Exemplo 1.14.

n N

Ento o teorema (1.7) nos diz que

343 = 73 23 = 8(mod 5).

Teorema 1.8. Se a b(mod m1 ), a b(mod m2 ), . . . , a b(mod mk ) com a, b, m1 , m


2, . . . mk inteiros e m1 , m2 , . . . , mk positivos, ento

a b(mod mmc(m1 , m2 , . . . , mk )).


a b(mod m1 ), a b(mod m2 ), . . . , a b(mod mk ),
m1 | (a b), m2 | (a b), . . . , mk | (a b). Assim
Prova: Desde que

ns temos que

mmc(m1 , m2 , . . . , mk ) | (a b)
e consequentemente

a b(mod mmc(m1 , m2 , . . . , mk ))
, completando a demonstrao.

Corolrio 1.3. Se a b(mod m1 ), a b(mod m2 ), . . . , a b(mod mk ) onde a e b so


inteiros e m1 , m2 , . . . mk inteiros positivos e primos entre si, ento
a b(mod m1 m2 mk ),

completando a demonstrao.
Prova: Desde que

m1 , m2 , . . . , mk

so primos entre si, temos

mmc(m1 , m2 , . . . , mk ) = m1 m2 mk

Congruncias Lineares

12

Assim, do teorema (1.8), segue que

a b(mod m1 m2 mk ),
completando a demonstrao.

1.4 Congruncias Lineares


Denio 1.6. Uma congruncia da forma
ax b(mod m),

onde x Z um nmero inteiro desconhecido, chamada uma congruncia linear


em uma varivel.
x = x0 uma soluo da congruncia ax b(mod m), e se x1
x0 (mod m), ento ax1 ax0 b(mod m), o que implica que x1 tambm soluo.
Assim, se um membro da classe de congruncia mdulo m soluo de uma congruncia

Observe que se

linear, ento todos os elementos desta classe tambm so solues.

Teorema 1.9. Sejam a, b, m Z inteiros com m > 0 e mdc(a, m) = d. Se d 6 |b, ento

ax b(mod m) no tem solues. Se d|b, ento ax b(mod m) tem exatamente d


solues mdulo m no congruentes entre si.
ax b(mod m) equivalente a uma equao diofantina
em duas variveis na forma ax my = b. O inteiro x uma soluo de ax b(mod m)
se, e somente se, existe y Z com ax my = b. Sabemos de [3] que se d 6 |b, no existe
solues, enquanto que se d|b, a equao diofantina ax my = b tem innitas solues
Prova: A congruncia linear

dadas por

x = x0 +
onde

x = x0

y = y0

m
t,
d

a
y = y0 + t,
d

so solues particulares da equao. Os valores de

x = x0 +

x,

m
t,
d

so solues da congruncia linear. Para determinar quantas solues no congruentes


entre si existem, vejamos as condies que descrevem quando duas das solues

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 =

Se estas duas solues so

Congruncias Lineares
x0

Subtraindo

13

de ambos os lados desta congruncia, encontramos que

m
m
t1 t2 (mod m).
d
d
Como

m
|m
d

temos

mdc(m,

m
m
)=
d
d

e, portanto, pelo teorema 1.4 vemos que

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

varia atravs de um sistema completo de resduos

Esse conjunto dado por

x = x0 + (m/d)t

onde

t = 0, 1, 2, . . . , d 1,

completando a demonstrao.

Exemplo 1.15.

Vamos encontrar todas as solues de

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.

Para encontrar uma soluo particular, consideramos a equao diofantina


cuja soluo particular dada por

x0 = 2

8x12y = 4

pode ser encontrada por tentativa e erro.

Assim, o conjunto completo das 4 solues no congruentes entre si so dadas por

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

e que, neste caso, todas as solues so congruentes mdulo

m.

Denio 1.7. Dado um inteiro a com mdc(a, m) = 1, uma soluo de ax 1(mod m)


chamado um inverso de a mdulo m.
Exemplo 1.16.

Vamos encontrar todas as solues de

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

Assim, desde que as solues de

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

a mdulo m, podemos us-lo para resolver qualquer

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.

Vamos resolver a congruncia linear

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,

x 198 12(mod 31).


mdc(7, 31) = 1,
mdulo 31.

Observe que se
nica soluo

ento a congruncia linear

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).

Sistemas de Congruncias Lineares 2 2

15

a 1(mod p) ou a 1(mod p), ento a2 1(mod p) e a seu prprio


inverso mdulo p. Por outro lado, se a seu prprio inverso mdulo p, segue que
a2 = a.a 1(mod p). Assim, p|(a2 1). Desde que a2 1 = (a 1)(a + 1), ou p|(a 1)
ou p|(a + 1). Ou seja, a 1(mod p) ou a 1(mod p).


Prova: Se

1.5 Sistemas de Congruncias Lineares 2 2


Consideraremos agora sistemas com duas congruncias lineares e duas incgnitas. Todas com o mesmo mdulo.

Teorema 1.10. Sejam

a, b, c, d, e, f, m Z tais que m > 0 e mdc(, m) = 1, onde

= ad bc. Ento, o sistema de congruncias

ax + by e(mod m)
cx + dy f (mod m)

tem uma nica soluo mdulo m dada por

x (de

bf )(mod m)
y (af

ce)(mod m),
o inverso de mdulo m.
onde
Prova:

Multiplicando a primeira congruncia do sistema por

obtemos

e a segunda por

adx + bdy de(mod m)


bcx + bdy bf (mod m),

Ento, subtramos a segunda congruncia da primeira, para encontrar que

(ad bc)x de bf (mod m),


ou

x de bf (mod m).
Agora, multiplicamos ambos os lados desta congruncia por

m,

para concluir que

x (de
bf )(mod m).

, um inverso de mdulo

Sistemas de Congruncias Lineares 2 2


De maneira similar, multiplicamos a primeira congruncia por
obter

16

c e a segunda por a para

acx + bcy ce(mod m)


acx + ady af (mod m).

Subtraindo a primeira congruncia da segunda, encontramos

(ad bc)y af ce(mod m),


ou

y af ce(mod m).
Finalmente, multiplicamos ambos os lados dessa congruncia por

para concluir que

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.

Vamos resolver o sistema de congruncias lineares

3x + 4y 5(mod 13)
2x + 5y 7(mod 13)
Temos

= ad bc = 3 5 4 2 = 7

7 mdulo 13 2 e, ento

mdc(, m) = mdc(7, 13) = 1.

Um inverso de

Sistemas de Congruncias Lineares 2 2

x 2 (de bf ) = 2 (5.5 4.7) = 6 7(mod 13)


e

y 2 (af ce) = 2 (3.7 2.5) = 22 9(mod 13).

17

2 Introduo Criptograa Clssica


Cifras so formas de transformar uma mensagem de
de texto alterada chamada de

texto cifrado

texto plano

de forma que esta seja indecifrvel para

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

Neste captulo faremos uma breve introduo aos

mtodos clssicos ( pr-1970)

2.1 Viso Geral


Em um cenrio simples de troca de informaes como o mostrado na gura 2.1 , existem
dois lados, que ns chamaremos de Alice e Bob

, que desejam comunicar-se de maneira

segura. E, entre eles, est Eva, que deseja interceptar essa comunicao.

Figura 2.1: Cenrio bsico de comunicao.

Quando Alice deseja enviar uma mensagem secreta para Bob, ela encripta o texto

1 Em

sistemas modernos de criptograa, a chave no precisa ser secreta. Em um sistema como o


RSA, por exemplo, a chave pode ser conhecida publicamente desde que a obteno da chave inversa
atravs dessa seja extremamente difcil.
2 Vamos manter os personagens usados na referncia [8], visto que usual nos mais diversos textos
sobre o assunto.
18

Viso Geral

19

usando um mtodo combinado anteriormente com Bob.

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.

Quando Bob recebe a

mensagem com o texto cifrado, ele recupera o texto plano usando a chave de descriptografar.
Eva pode ter qualquer dos objetivos a seguir:

Ler uma mensagem.

Encontrar a chave e ler todas as mensagens criptografadas com aquela chave.

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:

Eva pode ter acesso somente ao texto criptografado.

Eva tem cpia de um texto criptografado e o texto plano correspondente.

Exemplo 2.1.

Durante a segunda guerra mundial, no deserto do Saara, um posto

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 :

Devemos sempre assumir que

o inimigo conhece o mtodo sendo usado.

2.1.1 Mtodos de Chave Simtrica e de Chave Pblica


Os mtodos para criptografar e descriptografar mensagens podem ser classicados em
mtodos de

chave simtrica e mtodos de chave pblica.

Chaves Simtricas

A chaves para criptografar e descriptografar mensagens so co-

nhecidas pelo emissrio e receptor. Em muitos casos, sendo a mesma.

3 Esse
taire

princpio foi enunciado por Auguste Kerckhos em 1883 no tratado

La Cryptographie Mili-

Viso Geral

Chaves Pblicas

20

A chave de encriptao pblica, mas computacionalmente im-

possvel encontrar a chave de desencriptao sem informaes conhecidas apenas


pelo receptor.
Enquanto todos os mtodos clssicos de criptograa e alguns mtodos modernos so
simtricos, mtodos de chave pblica introduzidos aps 1970 revolucionaram a criptograa e representam o passo nal em uma sequncia histrica interessante .

Nos

mtodos mais antigos de criptograa, a segurana dependia de manter em segredo o


mtodo de criptografar mensagens. Posteriormente, assumiu-se conhecido esse mtodo
e a segurana passou a depender da manuteno da chave (simtrica) em segredo.
Finalmente, com os algoritmos de chave pblica, o mtodo e a chave de criptografar
mensagens so pblicas e qualquer um sabe o que deve ser feito para obter a chave
de descriptografar mensagens. A segurana depende do fato de que obter a mesma
computacionalmente impossvel com os computadores atuais.
Em uma cifra simtrica, o emissor e o receptor devero compartilhar entre si uma
chave. Eles obviamente no podem enviar essa chave via texto pois um intermedirio
pode facilmente interceptar a mensagem e ento descobrir a chave. Isso signica que
o emissor e o receptor devem se encontrar pessoalmente e de uma forma segura para
poder trocar a chave.
A armao acima pode sugerir que os algoritmos de chave pblica zeram os mtodos
simtricos obsoletos.

Entretanto, essa exibilidade no de graa e tem um custo

computacional muito grande. Devido a esse fato, mtodos de chave pblica no so


interessantes quando se deseja criptografar grandes quantidades de informaes. Por
esta razo, mtodos de chave pblica so utilizados somente em aplicaes onde apenas
pequenas quantidades de informaes so processadas

2.1.2 Cifras
As mensagens criptografadas usando mtodos de chave simtrica podem ser enviadas
de forma contnua ou em blocos.

Cifras Contnuas

As informaes so enviadas para o processo de criptograa em

pequenas partes, normalmente bits ou caracteres, e a sada tambm produzida


em pequenas partes.

Cifras em Bloco

As informaes so agrupadas para serem enviadas para o processo

de encriptao e, da mesma forma, a sada tambm produzida em blocos.

Alguns Sistemas Criptogrcos Clssicos

21

2.1.3 Comprimento da chave


difcil mensurar a segurana dos mtodos criptogrcos. A segurana do mtodo, obviamente, est relacionada com a diculdade em se determinar a chave. O mtodo mais
simples de ataque tentar toda e qualquer combinao de chave possvel. Tal mtodo
conhecido como

ataque de fora bruta.

Em um ataque de fora bruta o tempo

necessrio para descobrir a chave diretamente proporcional ao seu comprimento. Por


exemplo, se a chave tem um comprimento de 16 bits, ento existem

216 = 65536 chaves

possveis. Chaves longas so vantajosas, mas no garantem a segurana. O mtodo


tambm tem um papel bastante importante na segurana.

2.2 Alguns Sistemas Criptogrcos Clssicos


O texto plano e o texto cifrado so, usualmente, escritos em um mesmo
sistindo de um certo nmero

m de letras.

alfabeto

con-

O termo "letra"no necessariamente se refere

aos caracteres alfabticos A-Z, mas tambm nmeros, espaos em branco, marcas de
pontuao e outros smbolos.

unidades de mensagem. Uma


unidade de mensagem pode ser uma letra simples, um par de letras (dgrafo), ou um
bloco de 30 letras. Uma Transformao de criptograa uma funo que leva
O texto plano e o texto cifrado so quebrados em

cada unidade de mensagem de um texto plano em uma unidade de mensagem de texto


criptografado. Isto , uma transformao de encriptao uma funo

de todas as mensagens planas no conjunto

das.

Sempre consideraremos que

descriptograa

a funo inversa

de

do conjunto

de todas as mensagens criptografa-

uma funo bijetora.

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.

Se nossas unidades de mensagens de texto plano e texto cifrado so

simplesmente as 26 letras do alfabeto A-Z, ento ns podemos rotular as letras usando


os nmeros

0, 1, . . . , 25,

chamados de

equivalentes numricos.

Ento, no lugar do A

escrevemos O, no lugar do B escrevemos 1, e assim, sucessivamente.

Exemplo 2.3.
mos de

Se nossas unidades de mensagens forem pares de letras, que chamare-

dgrafos,

em um alfabeto de 27 letras consistindo das letras A-Z e do espao

4 Pode-se converter unidades de mensagem para outros objetos matemticos como pontos ou vetores,

porm, neste texto, nos restringiremos a usar nmeros naturais.

Alguns Sistemas Criptogrcos Clssicos

22

em branco, ns podemos primeiro associar o equivalente numrico 26 para o espao


em branco e ento converter cada dgrafo, cujas letras

{0, 1, 2, . . . , 26}

pertencem ao conjunto

no nmero

27x + y {0, 1, 2, . . . , 728} .


Assim, por exemplo, o dgrafo EU corresponde a

27 4 + 20 = 128.
Analogamente, se usarmos sequncias trs letras, que chamaremos

trgrafos

como uni-

729x + 27y + z
blocos de k letras em

dade de mensagem, podemos rotul-las por naturais da formas

{0, 1, 2, . . . , 19682}. E, ainda, mais geralmente podemos


k
um alfabeto de m letras por naturais de 0 a m 1.

rotular

Comearemos exemplicando o caso em que uma unidade de mensagem uma letra de


um alfabeto de

m letras rotuladas pelos naturais 0, 1, 2, . . . , m1.

Ento, por denio,

uma transformao de criptograa, neste caso, uma permutao destes

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}

como o conjunto da classes de con-

e fazer uso das operaes de adio e multiplicao mdulo

em

Zm .

Exemplo 2.4.

Tomemos um alfabeto de 26 letras

A, B, . . . Z

P {0, 1, 2, . . . 25} uma unidade de mensagem


conjunto {0, 1, 2, . . . 25} nele mesmo dada por

respectivamente . Seja
e a funo

do

com rtulos

(
f (P ) =
Em outras palavras,

P + 3,
P 23,

x < 23,
se x 23

se

simplesmente adiciona 3 mdulo 26:

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

Alguns Sistemas Criptogrcos Clssicos

23

ento adicionamos 3 mdulo 26, obtendo

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

m letras com os equivalentes numri-

xo. O exemplo 2.4 pode ser generalizado usando uma

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

P = f 1 (C) C b(mod m).


Suponhamos que temos acesso a algumas mensagens em texto plano e suas equivalentes
em texto cifrado e gostaramos de ler outras mensagens cifradas. O processo de descobrir os parmetros usados em certo mtodo criptogrco conhecido com
cdigo, e a cincia de quebrar cdigos conhecida com

criptoanlise.

quebra do

Para quebrar um sistema criptogrco, necessitamos de dois tipos de informao. A


estrutura do sistema e o conhecimento de certos parmetros usados pelo sistema. Em
nosso exemplo 2.4 a estrutura do sistema era dada por um alfabeto de 26 letras
com equivalentes numricos

5 Esse

AZ

0 25 respectivamente e o nico parmetro foi a constante

mtodo de encriptao foi aparentemente usado em Roma por Jlio Csar, que, supostamente
foi o prprio inventor do mtodo segundo [6] .

Alguns Sistemas Criptogrcos Clssicos


de deslocamento

b.

24

Uma vez obtida essa informao podemos criptografar e descripto-

grafar mensagens usando as frmulas

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.

Ento, para aumentar a segurana do

sistema, frequentemente altera-se os valores dos parmetros utilizados pelo sistema. O


parmetro

(sistemas de criptograa mais complexos tm vrios parmetros) uma

chave ou, mais precisamente, uma chave de criptograa.


Exemplo 2.5.

Suponhamos que interceptamos a mensagem

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.

Um caminho para isto a anlise de frequncia.

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

Alguns Sistemas Criptogrcos Clssicos

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

No caso da criptograa por deslocamento sobre letras simples de um alfabeto de 26


letras, no nem mesmo necessrio ter um longo texto criptografado para encontrar a
letra que ocorre com mais frequncia. Existem somente 26 possibilidades para o valor
de

b, que podem ser testadas uma a uma, sendo que apenas uma delas far com o texto

plano tenha sentido.


Assim, este tipo de sistema, apesar de ser bem simples, tambm muito fcil de ser
quebrado. Uma melhora pode ser feita usando um tipo mais geral de transformao.

Denio 2.2. Uma transformao am uma funo f de criptograa denida

pela regra

C aP + b(mod m),

(2.1)

onde a e b so constantes naturais.

Exemplo 2.6.

Usando o alfabeto de 26 letras, vamos criptografar nossa mensagem

ARQUIMEDES

usando a transformao linear com

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)

Alguns Sistemas Criptogrcos Clssicos


a
inverso de a mdulo m e b0 igual
mdc(a, m) = 1, pois se mdc(a, m) > 1, ento

onde

a1 b.

26

Isto possvel somente se

existe mais que uma letra no texto

plano que resulta na mesma letra no texto cifrado.Assim, essa funo no injetora e,
por denio, esta no uma funo de criptograa.

a = 1, obtendo uma transforOutro caso especial se d quando b = 0. Este caso chamado

Um caso especial da transformao am aquele em que


mao de deslocamento.
de

tranformao linear.

Suponhamos, agora, que interceptamos uma mensagem que foi criptografada usando
uma transformao am em um alfabeto de

b de tal forma que a mensagem possa ser lida?

letras. Como determinar as chaves

Necessitamos de duas informaes para

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

na frmula da transformao am, obtemos:

4a + b 12(mod 27)
0a + b 8(mod 27)
Temos um sistema de duas congruncias com duas incgnitas,

4 1 1 0 = 4 e mdc(, m) = mdc(4, 27) = 1 a seo


= 7, a soluo nica pode ser obtida por:
de

a 7(1 3 1 0)(mod 27)


b 7(12 0 8 3)(mod 27)

b.

Como

1.5 mostra que se um inverso

a 1(mod 27)
=
b 8(mod 27)

Assim, nossa transformao am de criptograa dada por

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-

tografado usando uma transformao am em um alfabeto de 28 letras (m

= 28)

Alguns Sistemas Criptogrcos Clssicos

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

26a + b 27(mod 28)


4a + b 01(mod 28)
Como

= 26114 = 22 e mdc(, m) = mdc(22, 28) 6= 1 o sistema de congruncia

mdulo 28 no possui soluo nica. Subtraindo as duas congruncias, obtemos

22a 26(mod 28),


que fornece

a = 5 e b = 9 ou a = 19 e b = 9.

Assim , podemos ter duas transformaes

ans de criptograa,

C 5P + 9(mod 28)

e C 19P + 9(mod 28),

e, portanto, duas transformaes ans de descriptograa

P 11C + 13(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.

3.2 Congruncias e Matrizes


Para estudarmos sistemas de

n congruncias lineares envolvendo n incgnitas bastante

til usar a linguagem de matrizes. Usaremos alguns conceitos bsicos de matrizes que
so discutidos em muitos textos de lgebra Linear, tal como [2].

Denio 3.1. Sejam A e B matrizes n k com entradas em Z. Dizemos que A


congruente a B mdulo m se aij bij (mod m) para 1 i n e 1 j k. Se A

for congruente a B mdulo m escrevemos

A B(mod m),

caso contrrio, escrevemos A 6 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

Proposio 3.1. Se A e B so n k matrizes com A B(mod m), C uma matriz


k p e D uma matriz p n, todas com entradas em Z, ento
AC BC(mod m)

DA DB(mod m).

aij e bij as entradas de A e B respectivamente, para 1 i n e


1 j k , e cij as entradas de C para 1 i k e 1 j p. Os elementos da
n
n
X
X
(ait ctj ) e
(bit ctj ) respectivamente.
linha i e coluna j das matrizes AC e BC so
Prova:

Sejam

t=1
Desde que

A B(mod m),

temos que

ait bit (mod m)

t=1
para todo

e todo

k.

Assim,

o teorema 1.5 garante que

n
X
t=1
Consequentemente,
A demonstrao de

(ait ctj )

n
X

(bit ctj )(mod m).

t=1

AC BC(mod m), o que completa a


que DA DB(mod m) anloga.

demonstrao.

Vamos considerar o sistema de congruncias

a11 x1 + a12 x2 + . . . a1n xn b1 (mod m)

a x + a22 x2 + . . . a2n xn b2 (mod m)

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)

Denio 3.2. Se A e A so matrizes n n e se


I(mod m),
AA AA

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 ...

A uma inversa de A mdulo m e B A(mod


m),
ento B tambm uma inversa de A mdulo m.
Por outro lado, se B1 e B2 so inversas de A, ento B1 B2 (mod m). Para ver
isto, usamos a proposio 3.1 e as congruncias B1 A B2 A I(mod m). De fato,
temos que B1 AB1 B2 AB1 (mod m). Desde que AB1 I(mod m), conclumos que
B1 B2 (mod m).
A proposio 3.1 nos garante que se

Exemplo 3.4.

Desde que

1 3
2 4

3 4
1 2

vemos que a matriz

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

A proposio a seguir mostra um mtodo para encontrar inversas de matrizes


mdulo

22

m.
a b
c d

Proposio 3.2. Seja A =

uma matriz de nmeros inteiros, tais que =


d b
c a

detA = ad bc e m so primos entre si. Ento a matriz A =

uma inverso de mdulo m.


Prova: Para vericar que a matriz

onde

A a inversa de A mdulo m, devemos vericar que

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

o qual existe desde que

mdc(, m) = 1. 

Desde que 7 um inverso de

detA = 2

mdulo 13,

temos que

A 7

42 28
28 21

3 11
11 8

!
(mod 13).

Podemos checar que

3 11
11 8

Exemplo 3.6.

3 4
4 6

!
=

Vamos encontrar a inversa de

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

detA = 5 21(mod 26)


!

40 15
35 10

32

, temos que

14 11
17 10

!
(mod 26).

Denio 3.3. A adjunta de uma matriz A de ordem n n uma matriz n n com

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

nn, precisamos do resultado

a seguir, cuja demonstrao pode ser encontrada em [2], pgina 73, teorema 3.5.2.

Teorema 3.1. Se A uma matriz n n com det(A) 6= 0, ento A1 =

1
adj(A).
det(A)

Usaremos esse teorema para demonstrar a proposio a seguir.

Proposio 3.3. Se A uma matriz n n com entrada em Z e m Z um inteiro


positivo tal que mdc(, m) = 1, onde o determinante de A , ento a matriz

A = Adj(A)
um inverso de mdulo m.
uma inversa de A mdulo m, onde
Prova:
Se

mdc(det(A), m) = 1,

ento sabemos que

det(A) 6= 0.

Assim, do teorema 3.1, temos

1
adj(A) = A1 .

Multiplicando ambos os lados da igualdade por

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

Exemplo 3.7. Seja A =


2 0 2 . Ento = 5.
1 2 3

um inverso de = 5 = 4, encontramos que


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.

para resolver o sistema

(3.1)

Pela proposio 3.1, quando multiplicamos ambos os lados desta

congruncia pela inversa

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).

Resolver o sistema de congruncias

2x + 3y 1(mod 26)
7x + 8y 2(mod 26)
Como

A=

2 3
7 8

!
,

Cifra de Hill de ordem n

34

a matriz do exemplo 3.6, temos

A =
e

=
X AB

2 3
7 8

2 3
7 8
1
2

10
11

!
(mod 26).

3.3 Cifra de Hill de ordem n


At aqui, nossas mensagens foram criptografadas caractere por caractere. Agora, vamos
criptografar mensagens em que nossa unidade formada por blocos de 2 ou mais
caracteres.

Isto signica que o texto plano dividido em segmentos de 2 ou mais

caracteres.

Denio 3.4. Uma cifra de Hill uma cifra em blocos de comprimento

n cuja

chave de encriptao uma matriz Enn e cujas entradas so os nmeros naturais


0, 1, 2, . . . m 1, onde m representa o comprimento do alfabeto utilizado.
Observe que, neste caso, para obter um nmero inteiro de blocos de comprimento

pode ser necessrio acrescentar letras extras ao nal da mensagem.

3.3.1 O processo de encriptao


A seguir descrevemos um possvel processo a ser utilizado para encriptar uma mensagem usando o mtodo de Hill para um bloco de comprimento
comprimento

e um alfabeto de

m.

1. Encontre um matriz

Enn

que seja invertvel mdulo

m.

Essa matriz

ser a

nossa chave de encriptao.


2. Remova, se necessrio, todos os espaos em branco e smbolos de pontuao da
mensagem de texto plano e converta todas as letras para maisculo.
3. Converta cada caractere da mensagem de texto plano para seu equivalente numrico entre

m 1.

4. Divida essa sequncia de nmeros em blocos de comprimento

completando, se

necessrio, o nal da mensagem com nmeros aleatrios para que tenhamos todos
os blocos de comprimento

n.

Cifra de Hill de ordem n


pi

5. Escreva cada bloco como um vetor coluna

35

a mensagem formada por uma sequncia de vetores


ordem

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

para escrever a mensagem criptografada, seguindo a

ordem de entrada e convertendo de volta cada nmero, em seu caractere relacionado.

Observao 3.1.

No passo (6) podemos usar uma nica multiplicao matricial se

produzirmos uma matriz

Vnt

usando os vetores

p1 , p2 , . . . , pt

como colunas, isto :

P = [p1 , p2 , . . . , pt ] C = EP = [c1 , c2 , . . . , ct ]

Exemplo 3.9.

Vamos criptografar a mensagem "Pascal", usando um alfabeto de 26

letras e usando a matriz de criptograa

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.

Cifra de Hill de ordem n


5. Produzir uma matriz

P23

usando os blocos como colunas.

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).

7. Escrever a mensagem criptografada.

4 1 16 12 7 10 EBQM HK.

Exemplo 3.10.

Vamos criptografar a mensagem "Matemtica legal! "usando blocos

de comprimento

n = 3 com nosso alfabeto de 26 letras e usando a matriz de criptograa

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

det(E)(mod 26) = 11,

e 11 invertvel mdulo 26, a matriz

tambm invertvel mdulo 26.


3. A mensagem que est sendo enviada "Matemtica legal!". Removendo espaos,
acentos, smbolos de pontuao e convertendo a letra para maisculas.

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.

Cifra de Hill de ordem n

37

6. Convertendo esses blocos em uma matriz P.

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

23 02 10 18 12 04 14 01 01 15 06 03 21 06 24 XCKSM EOBBP GDV GY.

3.3.2 O processo de Descriptograa


Para a cifra de Hill, o processo de descriptograa do texto cifrado para o texto plano o
inverso da transformao original do texto plano em texto cifrado. Em outras palavras,
se uma cifra de Hill tem uma matriz chave
de Hill cuja matriz chave
Se j conhecemos a matriz

E 1 .
E , ns

E,

ento a transformao inversa a cifra

podemos us-la para decifrar o texto.

O processo de desencriptao para m=26


1. Encontre a matriz

D = E 1 (mod m).

Essa a chave de desencriptao.

2. Converta o texto cifrado em um matriz


3. Calcule

C.

P = DC .

4. Converta a matriz

na mensagem de texto plano.

Ser necessrio inserir os

espaos e pontuaes se eles tiverem sido removidos.

Exemplo 3.11.

Vamos desencriptar a mensagem

AJXGTRJXDGKKIXL.

1. Calculamos

2 3 15
10 19 16

5 8 12 (mod 26) = 4 23 7
1 13 4
17 5 19

Cifra de Hill de ordem n


2. Convertemos o texto cifrado para uma matriz

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

para a mensagem de texto plano.

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

TEORIA DOS NUMEROS.

3.3.3 Quebrando a Cifra de Hill


possvel descobrir qual a chave para a cifra de Hill? Observando o algoritmo de
criptograa sabemos que

C = EP .

Se conhecermos um pequeno texto plano e seu

correspondente texto cifrado ento teremos conhecimento sobre uma pequena parte de

e de

C.

Se tivermos sorte, a poro de

invertvel (mdulo

m).

Ento

C = EP

que possuirmos forma uma matriz

pode ser reescrita como

E = C P ,

em sua matriz de criptograa. A partir disso, pode-se simplesmente inverter

para obter

nn

resultando

mdulo

e ento descriptografar a mensagem completa.

Na realidade, tambm necessrio saber o comprimento


obtermos as dimenses da matrizes

E, P

caminho para testar os possveis valores de


completa e no for muito longa.

do bloco utilizado para

C.

Isto um problema. Mas existe um

n se

o trecho conhecido for uma mensagem

Desde que saibamos que o nmero de letras na

mensagem deve ser um mltiplo do comprimento do bloco.

Cifra de Hill de ordem n

Exemplo 3.12.

39

Vamos supor que interceptamos a mensagem

TIVLFGLKTILFXAHVGY

e sabemos por algum meio que a mesma signica

CRIP T OGRAF IAELEGAL.


Vemos que a mensagem tem 18 caracteres. Ento, o bloco poder possivelmente ser
2,3,6,9 ou 18. Se o tamanho do bloco for 6,9 ou 18 no teremos caracteres sucientes
para criar

e no ser possvel encontrar

e portanto

D.

Resta-nos trabalhar

com as possibilidades em que o tamanho do bloco seja 2 ou 3. Se ambos falharem em


produzir uma chave, ento, no estaremos aptos a quebrar o cdigo.
Vamos mostrar o processo a ser seguido para encontrar a matriz

Exemplo 3.13.

E.

Supondo novamente que interceptamos a mensagem

TIVLFGLKTILFXAHVGY

cujo signicado

CRIP T OGRAF IAELEGAL.


Como vimos, a mensagem tem 18 caracteres e, assim, o bloco poder ter comprimento
2,3, 6, 9 ou 18. Esperamos, entretanto, que

n=2

ou

n = 3.

Vamos comear com um

bloco de comprimento 2. Temos que o texto plano

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

Cifra de Hill de ordem n

40

Sabemos que

2
17

19
08

08
15

Queremos construir uma matriz

22

levada em

21
11

levada em

19
14

levada em

que invertvel mdulo 26. Se usarmos os dois

primeiros blocos para construir a matriz

02 08
17 15

P =

a partir deles, temos

det(P ) = 106
o qual no primo relativo com o 26 e, portanto,

no invertvel. Se movermos

para o prximo bloco, 19 e 14, mantendo o primeiro, nossa matriz

02 19
17 14

P =

cujo determinante

torna-se,

det(M ) = 295 que igual a 17 quando tomado mdulo 26.

que 17 tenha um inverso mdulo 26, nossa equao transforma-se em

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

Para vericar se isto funciona, podemos testar em nossa mensagem

CRIP T OGRAF IAELEGAL.


que rotulado como

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

,...

Cifra de Hill de ordem n

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 ,

Ento, veriquemos se existe uma matriz

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

invertvel. Se Tomarmos as 3 primeiras colunas da matriz de

texto plano, teremos

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

det(P )(mod 26) = 1,

essa matriz invertvel mdulo 26 e devemos ter

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.

Para saber mais sobre o ambiente JuliaBox e sobre a linguagem de

programao Julia consulte o apndice (A).

Exemplo 3.14.

Vamos analisar passo a passo, a sequncia de comandos mostrados a

seguir. Inicialmente, carregamos a matriz

2 7
13 9
e a nomeamos de

E.

A seguir calculamos seu determinante e seu determinante mdulo 26.

Tecnologia

Agora calculamos

mdc(, m)

e seu inverso

Para obter a adjunta usual da matriz

mdulo

Agora, calculamos a matriz adjunta mdulo

26.

26.

multiplicamos elemento por elemento seu de-

terminante pela sua matriz inversa.

E, nalmente, sua inversa, mdulo

43

26.

Tecnologia

Vamos usar a matriz

44

para criptografar a mensagem

ZERO .

Temos:

ZERO
A matriz

25 04 17 14

correspondente ser

25 17
04 14
Usando o JuliaBox para multiplicar

por

e obter

C.

Assim, a mensagem criptografada ser

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

Assim, a mensagem descriptografada ser

3 14 8 18 DOIS

P.

AJMG . Temos:

Tecnologia

45

4 Concluso
Existem numerosos tpicos para se dissertar nessa rea.

Entretanto, na maioria de-

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.

Em especial, nesse trabalho, apresentamos mtodos de criptograa e descriptograa


associados a matrizes. Para isso, zemos uma introduo ao estudo das congruncias
e a criptologia. Na parte principal do trabalho mostramos como matrizes podem ser
utilizadas para se criar mtodos criptogrcos usando cifras em bloco e congruncias.

Em virtude do que foi mencionado, acreditamos que o trabalho atingiu os objetivos


pretendidos. Porm, pretendemos futuramente criar roteiros didticos sobre o assunto
tratado e aplic-los em turmas do Ensino Mdio em que o discente atua.

46

Referncias Bibliogrcas
[1] I. Balbaert.

Getting Started with Julia Programming.

[2] J.L. Boldrini.


[3] A. Hefez.

Algebra linear.

Packt Publishing Ltd, 2015.

HARBRA, 1986.

Elementos de Aritmtica.

SBM, 2011.

[4] L. S. Hill. Cryptography in an algebric alphabet.

American Mathematical Monthy,

36:306312, Junho-Julho 1929.


[5] L. S. Hill.

Concerning certain linear transformation apparatus of cryptography.

American Mathematical Monthy, 38:135154, Maro 1931.


[6] Neal Koblitz.

A Course in Number Theory and Cryptography.

Springer Science +

Business Media, LLC, 1998.


[7] K. H. Rosen.

Elementary Number Theory and Its Applications.

Addison-Wesley,

1984.
[8] W. Trappe and L. C. Washington.

Intoduction to Cryptography with coding theory.

Pearson Prentice Hall, 2006.

47

A Linguagem Julia e JuliaBox


A.1 Introduo
Julia uma linguagem de programao dinmica e de alto nvel projetada para atender os requisitos da computao de alto desempenho numrico e cientco que est
crescendo rapidamente em popularidade. Ela providencia um compilador sosticado,
execuo paralela, acurcia numrica e uma extensa biblioteca de funes matemticas. Segundo [1], seu criadores Je Bezanson, Stefan Karpinski e Viral Shah criaram
Julia aps carem decepcionados com as ferramentas computacionais atuais na rea
cientca.

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.

A.2 Usando o JuliaBox


Para usar o JuliaBox devemos visitar o site

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

Figura A.1: Tela Principal do JuliaBox

new

e selecionar

Julia 0.4.2.

Uma nova pgina ser aberta em seu navegador que se

parece com a gura A.2.

Figura A.2: Tela de um Arquivo Interativo

JulizBox organizado em clulas. Podemos digitar diretamente em uma clula. Pode


rodar uma clula selecionando-a e pressionando

Shift + Enter.

mostrada logo em seguir como podemos observar na gura A.2

Figura A.3: Execuo de um clula

A sada da clula

Usando o JuliaBox

50

A.2.1 Aritmtica Matricial


Para criar uma Matriz no JuliaBox usa-se a seguinte sintax,

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.

Ento em geral, o colchete dene a matriz, as linhas so

separadas por ponto e vrgula e espaos separam os elementos de um linha. Ento, a


primeira linha

{1, 2, 3}.

A linguagem Julia considera diferentes letras maisculas e

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

Multiplicao por Escalar


Se

representa qualquer nmero real, temos:

M6 = cM1

Matriz Oposta
M7 = -M1

Potncia de Matriz
Se

representa um nmero natural, temos:

M7 = M1^n

Inversa de uma Matriz


Se

representa qualquer matriz invertvel, temos:

Inversa = inv(A)

A, M, M 1

M2

foram criadas e

Usando o JuliaBox

A.2.2 Aritmtica Modular


Clculo de k Mdulo m.
mod(k,m)

Mximo divisor comum entre dois nmeros inteiros.


gcd(m,n)

Inverso de um Nmero mdulo m.


invmod(k,m)

A.2.3 Matrizes e Congruncias


Matriz A mdulo m.
mod(A,m)

51

Das könnte Ihnen auch gefallen