Escolar Documentos
Profissional Documentos
Cultura Documentos
C f f 1
: : : :
f 1
Um sistema ser considerado bom se a funo f for fcilde ser aplicada, a ca a 1 mas f for muito dicil de ser determinada. A seguir ilustraremos estas idias com alguns exemplos de sistemas criptogrcos. e a
A D
B E
C F P S
D E G H Q T R U
F I
G J
H K U X
I L
J M
K N X A
L M O P Y B Z C
N O Q R
S T V W
V W Y Z
Assim se queremos codicar a mensagem BIENAL, utilizando a tabela acima chegaremos na mensagem codicada ELHQDO. Exemplo 1 Decifre a mensagem abaixo, sabendo que para codicar esta mensagem foi utilizado o Criptograma de Csar dado pela tabela acima e
HXDPRPDWHPDWLFD
Uma caracter stica importante deste criptosistema que aps a 26a. letra, e o ou seja Z, retornamos ` primeira letra A. Assim determinamos um ciclo. a Todo este processo de codicaao pode ser completamente descrito matemc aticamente, utilizando um novo conceito de operao nos nmeros inteiros, ca u chamada de operao mdulo m, que passamos a descrever a seguir. ca o Dados nmeros inteiros a, b Z e um nmero natural m N, diremos u u que a congruente a b mdulo m, e escreveremos e o a b (mod m), se m dividir (a b), ou seja, se existir um q Z tal que (a b) = mq (diviso a exata). Vejamos alguns exemplos. Exemplo 2 (a) 23 3 (mod 5)
Quando dividimos dois nmeros inteiros a, m, o fazemos seguindo um u algoritmo, at obter algo do tipo e a
resto
| m
quociente
ou seja, a = m.q + r onde q o quociente e r o resto da diviso. Um e e a fato muito importante que sempre podemos escolher r, com 0 r < m. e Portanto sempre temos que a r (mod m). Assim vericamos que todo inteiro a congruente mdulo m a um dos nmeros do conjunto e o u
Zm := {0, 1, 2, . . . , m 1}.
Agora observe que se denotamos por a = {b Z | a b (mod m)}, logo temos que Z = 0 1 (m-2) (m-1). Alm disso temos que b a se, e somente se, m divide (b-a). Ou seja, se e b a = mq, o que nos d que b = mq + a. Portanto temos que a 0 1 2 = = = . . . {b Z | b = mq + 0, para qualquer q Z} {b Z | b = mq + 1, para qualquer q Z} {b Z | b = mq + 2, para qualquer q Z} {b Z | b = mq + (m-1), para qualquer q Z}
m-1 =
Voltando ao exemplo do Criptosistema de Csar, vamos identicar letras e com nmeros conforme abaixo u 0 A 13 N 1 2 B C 14 15 O P 3 4 5 D E F 16 17 18 Q R S 6 7 G H 19 20 T U 8 9 I J 21 22 V W 10 11 K L 23 24 X Y 12 M 25 Z
Observe que nosso alfabetoagora o conjunto {0, 1, 2, . . . , 24, 25}, que so e a os poss veis restos da diviso por m=26. E agora podemos facilmente descra ever o criptograma de Cesar como C = f (T ) T + 3 (mod 26) () T = f 1 (C) C 3 (mod 26)
lhe enviar uma mensagem. Mas como somente ele tem a chave decodicadora, a privacidade da comunicao estar mantida. ca a Uma das questes mais importantes em criptograa a autenticaao de o e c uma mensagem. Como ter certeza que a mensagem recebida realmente vem da pessoa que a assinou? Se um banco recebe uma mensagem de um cliente pedindo para transferir todos os seus recursos para uma outra conta, como ter certeza de que realmente a ordem veio deste cliente e no de um impostor? a No sistema de chave pblica existe uma maneira fcil de fazer a autenticaao u a c de uma mensagem. Vamos dizer que A e B sejam usurios de um sistema. a Vamos denotar por fA e fB as funoes de codicao de A e B respectivac ca mente. Vamos supor que a assinatura eletrnica de A seja P . Observe que o no suciente que A envie para B sua assinatura na forma fB (P ), tendo a e em vista que todos conhecem a chave pblica fB de B, assim qualquer um u poderia enviar para B a mensagem fB (P ). Assim a soluao seria para A c 1 enviar a mensagem fB fA (P ). Assim quando B aplicar a funo fB (que ca 1 somente ele conhece) ao texto recebido, tudo ser decodicado, exceto o pea 1 queno texto fA (P ). Como B sabe que a mensagem supostamente de A, ele e poder aplicar a chave pblica de A, ou seja fA a este texto, reconhecendo a a u 1 assinatura P de A. Como somente A possui fA , isto deixa B com a certeza que somente A poderia ter enviado esta mensagem. O criptosistema de chave pblica mais famoso foi proposto por Rivest, u Shamir e Adleman (RSA) em 1978. E baseado na diculdade de se fatorar e um nmero natural. u
(mod )
Ento chave pblica ser o par : (n, r) e a chave secreta ser o par (n, w). a u a a Agora se queremos codicar uma mensagem faremos C = F (T ) T r (mod n) e para decodicar T = f 1 (C) C w (mod n) Exemplo 3 Vamos tomar os primos p = 11 e q = 7. Logo n = pq = 77 e = (p 1)(q 1) = 60. Como 60 = 22 3 5, vamos escolher r = 17, que podemos facilmente vericar ser co-primo com 60. De fato, vamos explicitamente calcular o mdc(17,60), utilizando o algoritmo de divises sucessivas: o
60 9
3 17 8
1 9 1
1 8 8 1 0
Reescrevendo estes clculos teremos: a 60= 3 17 + 9 17= 9+8 9= 8+1 Substituindo (1) em (2), teremos 8 = 17 (60 (3 17)) = 4 17 60. Substituindo agora (1) e (4) em (3), poderemos escrever 1 = 2 60 + (7) 17. Portanto temos que 1 (7) 17 = 2 60, ou seja, 60 divide 1 (7) 17, logo 17 (7) 1 (mod 60). Assim determinamos que w = 7 uma e soluo para ca 17w 1 (mod 60). Mas como o w que devemos escolher deve pertencer a N, somente precisamos observar que se 7 soluo, ento 53 = 60 7 tambm soluo, pois e ca a e e ca 1 (60 7) 17 = 1 (7) 17 60 17 = 2 60 17 60 = (15) 60. (4) = = = 9= 60-(3 17) (1) 8= 17-9 (2) 1= 9-8 (3)
Assim 60 tambm divide 1 (60 7) 17, ou seja, 60 divide 1 53 17, o e que nos d a 17 53 1 (mod 60), Portanto podemos tomar w = 53. Ento se desejamos codicar uma mensagem devemos utilizar a funo a ca C = f (T ) T 17 (mod 77),
Quebra de Cdigo o
Ns utilizamos a critpograa pois queremos evitar que outros leiam noso sas mensagens. Mas existem casos quando a quebra de um cdigo pode o ter um bom objetivo. Imagine que a pol cia esta seguindo um grupo de sequestradores, e estes se comuniquem utilizando um sistema criptogrco, a ento seria do maior interesse que o servio de inteligncia da pol cona c e cia seguisse quebrar este cdigo. Se desejamos quebrar um cdigo precisamos o o ter uma idia de qual sistema criptogrco foi utilizado e paralelamente a e a isto fazer uma anlise de frequncia das letras que ocorrem na mensagem a e codicada que foi interceptada. vamos supor que a mensagem apresentada no exemplo acima tenha sido interceptada, ou seja, captamos a mensagem HXDPRPDWHPDWLFD. Esta mensagem apresenta quatro ocorrncias da e letra D. Supondo que esta mensagem esteja em portugus, sabemos que as e letras que mais aparecem em qualquer palavra em portugus so as vogais, e a e dentre as vogais a letra A aparece em geral com maior frequncia. Assim e uma boa tentativa seria imaginar que a letra D na mensagem codicada corresponderia a um A na mensagem original. Como D corresponde ao nmero u 3 e A corresponde ao 0, nossa tentativa nos levaria a funao decodicadora c T C 3 (mod 26), que corresponde exatamente a funao decodicadora c do Criptograma de Jlio Csar (ver (*)). Poder u e amos com um pouco mais de esforo repetir esta anlise para quebrar um criptosistema do tipo de Vic a gen`re. Mas para isto ter e amos que estudar a mensagem recebida para tentar conseguir alguma indicao do comprimento da palavra chave utilizada ca (nmero de letras). Vamos supor que nosso palpiteseja que a palavra chave u tenha 5 letras. Ento dividir a amos a mensagem em grupos de 5 letras e ento a
repetir amos a anlise de frequncia em todas as primeiras letras, depois em a e todas as segundas letras e assim por diante. A diculdade em se quebrar um sistema do tipo RSA consiste na impossibilidade computacional que temos hoje de fatorar grandes nmeros naturais. u Mesmo conhecendo o nmero n, se este for grande o suciente, poderia levar u anospara os computadores atuais fatorarem n, ou seja, escrever n = pq. Pois precisamos determinar p e q para poder encontrar e s ento encontrar o a a chave decodicadora (n, w). A seguir apresentamos ums lista dos primeiros nmeros primos para que u os leitores possam fazer suas experincias com o mtodo RSA. Bom divertie e mento! Lista dos primeiros n meros primos u 2 37 83 139 197 263 331 397 461 541 607 673 751 827 907 983 1051 1123 3 41 89 149 199 269 337 401 463 547 613 677 757 829 911 991 1061 1129 5 7 43 47 97 101 151 157 211 223 271 277 347 349 409 419 467 479 557 563 617 619 683 691 761 769 839 853 919 929 997 1009 1063 1069 1151 1153 11 53 103 163 227 281 353 421 487 569 631 701 773 857 937 1013 1087 1163 13 59 107 167 229 283 359 431 491 571 641 709 787 859 941 1019 1091 1171 17 19 61 67 109 113 173 179 233 239 293 307 367 373 433 439 499 503 577 587 643 647 719 727 797 809 863 877 947 953 1021 1031 1093 1097 1181 1187 23 71 127 181 241 311 379 443 509 593 653 733 811 881 967 1033 1103 1193 29 31 73 79 131 137 191 193 251 257 313 317 383 389 449 457 521 523 599 601 659 661 739 743 821 823 883 887 971 977 1039 1049 1109 1117 1201 1213
ALGUMAS REFERENCIAS 1. Kahn, David. The Codebreakers. The Macmillan Company. New York, 1967
2. Koblitz, N. A Course in Number Theory and Criptography. SpringerVerlag, 1987. u 3. Shokranian, S., Soares, M., Godinho, H. Teoria dos Nmeros. Editora UnB, (1994). 4. PET/UnB(1/98). Corpos Finitos: Teoria e Aplicaes. Trabalhos co de Graduaao em Matemtica no.1/98. c a