Вы находитесь на странице: 1из 1

o a ` Teoria dos Nu meros Introduc a es em Criptografia com Aplicac o

Rafael Lucas de Arruda (rafaa @hotmail.com)


Campus de So Jos do Rio Preto

Orientador: J eerson Luiz Rocha Bastos (jeferson@ibilce.unesp.br)


Assim, obtemos a seq u encia num erica 4 18 19 20 3 0 13 19 4. Onde cada n umero corresponde a um bloco b da mensagem a ser codicada. Para codicar a mensagem usaremos uma congru encia do tipo ab c (mod 26) onde c e o bloco codicado. Devemos escolher um valor para a de tal modo que mdc(a, 26) = 1. Em nosso exemplo escolhemos a = 3. Tomando b = 18, temos 3 18 2 (mod 26). Ou seja, c = 2. Efetuando todos os c alculos, obtemos a seq u encia de n umeros 12 2 5 8 9 0 13 5 12, que corresponde a mensagem codicada MCFIJANFM. Para decodicarmos a mensagem basta usarmos a congru encia x 9b (mod 26). Isto porque 9 e o inverso de 3 em Z26.

III Bienal da SBM - IME/UFG - 2006

Introdu c ao

O termo Criptograa surgiu da fus ao das palavras gregas krypt os e gr aphein, que signicam oculto e escrever, respectivamente. Trata-se de um conjunto de conceitos e t ecnicas que visa codicar uma informa ca o de forma que somente o emissor e o receptor possam acess a-la, evitando que um intruso consiga intercept a-la. Com o avan co da tecnologia e sua facilidade de entregar informa c oes de maneira precisa e extremamente r apida, a criptograa tornou-se uma ferramenta fundamental para permitir que apenas o emissor e o receptor tenham acesso livre ` a informa ca o trabalhada.

nosso exemplo, sabemos que n = 143 = 11 13 = p q . Logo, podemos fazer uso do Teorema Chin es do Resto para resolver a congru encia 119103 D(119) (mod 143): 119103 a (mod 11) 119103 b (mod 13) Aplicando o Teorema de Fermat a cada um destes primos, temos que
10 103 10 119 (119 ) 1193 1 1193 3 (mod 11) 8 103 12 119 (119 ) 1197 1 1197 11 (mod 13)

2
2.1

Introdu c ao ` a Teoria dos N umeros


Divisibilidade

Chamemos x = 119103. Ficamos com o sistema x 3 (mod 11) x 11 (mod 13) Da segunda equa ca o temos x = 11 + 13 q1, q1 Z. Substituindo na primeira equa ca o, camos com 11 + 13 q1 3 (mod 11) 13 q1 8 (mod 11). Utilizando a identidade de Bezout para os n umeros 13 e 11, descobrimos que o inverso de 13 em Z11 e 5. Desta forma, (5) 13 q1 1 q1 (5) (8) 40 7 (mod 11) Ou seja, q1 = 7 + 11 q2, q2 Z. Assim, x = 11 + 13 (7 + 11 q2) = 102 + 143 q2. Mas isto signica que x 102 (mod 143). Portanto, 119103 102 (mod 143)

Deni c ao 2.1 Sejam a, b Z. Dizemos que a divide b, denotando por a | b, se existir k Z tal que b = ak . Se a n ao divide b denotamos a b. Teorema 2.1 (Algoritmo da Divis ao ) Dados a, b Z, b = 0, existe um u nico par de inteiros q e r tais que a = bq + r, com 0 r < |b| ( r = 0 b | a) (q e chamado de quociente e r de resto da divis ao de a por b). Deni c ao 2.2 (M aximo Divisor Comum ) O m aximo divisor comum de dois n umeros a, b Z, denotado por mdc(a, b), e o maior inteiro que divide a e b. Teorema 2.2 (Algoritmo Euclidiano ) Sejam a, b Z+, n = 0, a b. Se o algoritmo da divis ao for aplicado sucessivamente para se obter 0 rj < rj 1 para j = 0, 1, 2, , n e rn = 0 ent ao mdc(a, b) = rn1, o u ltimo resto n ao nulo. rj 2 = rj 1qj + rj ,

4
4.1

Criptograa RSA
Pr e-codica c ao

Na pr e-codica ca o convertemos a mensagem em n umeros, usando a seguinte tabela: A B C D E F G H I J K L M 10 11 12 13 14 15 16 17 18 19 20 21 22 N O P Q R S T U V W X Y Z 23 24 25 26 27 28 29 30 31 32 33 34 35 Para identicarmos o espa co entre duas palavras, utilizaremos o n umero 99. Por exemplo, a mensagem Paraty e linda corresponde ao n umero 2510271029349914992118231310 Precisamos determinar os par ametros do sistema RSA que vamos usar. Estes par ametros s ao os dois primos distintos, que denotaremos por p e q . Fa camos n = p q . A u ltima fase do processo de pr e-codica ca o consiste em quebrar em blocos menores que n o n umero produzido anteriormente. Escolhendo p = 11 e q = 13 temos n = 11 13. Neste caso, a mensagem convertida acima pode ser quebrada nos seguintes blocos: 25 - 102 - 7 - 102 - 93 - 49 - 91 - 49 - 92 - 118 - 23 - 13 - 10.

4.4

Como Funciona?

2.2

N umeros Primos

Vamos mostrar que ao decodicarmos um bloco codicado, obteremos de volta o bloco correspondente da mensagem original. Precisamos vericar que se b Z e 1 b n 1 ent ao D(C(b)) = b. Na verdade, vamos provar que D(C(b)) b (mod n). Note que a congru encia s o ser a vericada se D(C(b)) = b, pois 1 D(C(b)), b n 1. por isso que na pr E e-codica c ao quebramos a mensagem em blocos menores que n e os mantemos separados mesmo ap os a codica ca o. Pela deni ca o de D e C temos que D(C(b)) (be)d bed (mod n) Como d e o inverso de e m odulo (n), ent ao ed = 1 + k (n) = 1 + k (p 1)(q 1), kZ (3)

Teorema 2.3 (Teorema da fatora c ao u nica ) Dado um inteiro positivo n 2 podemos sempre escrev e-lo, de modo u nico, na forma
ek 1 . . . p n = pe 1 k,

onde pi : primos distintos, 1 < p1 < p2 < p3 < < pk e e1, . . . , ek s ao inteiros positivos. Proposi c ao 2.1 Sejam a, b, c Z e suponhamos que mdc(a, b) = 1. 1. Se b | ac ent ao b | c 2. Se a | c e b | c ent ao ab | c

4.2

Codicando

Precisamos determinar e Z+ que seja invers vel m odulo (n). Ou seja, mdc(e, (n)) = 1. Para o c alculo de (n) fazemos (n) = (p 1)(q 1). Chamamos o par (n, e) de chave de codica c ao do sistema RSA. No exemplo que estamos considerando, temos (143) = (11 1)(13 1) = 120. Vamos escolher e = 7, que e o menor n umero primo com 120. Agora, temos que codicar os blocos obtidos anteriormente. Cada um separadamente. Denotaremos o bloco b codicado por C(b). A express ao para se calcular C(b) e a seguinte: be C(b) (mod n) (1)

Lembremos que n = p q , onde p, q : primos distintos. Calcularemos a forma reduzida de bed m odulo p e m odulo q . Vejamos a forma reduzida de bed m odulo p. De (3) temos que
k (q 1) ed p 1 b b (b ) (mod p)

2.3

Congru encias

(4)

Deni c ao 2.3 Seja m um inteiro xo n ao-nulo. Dizemos que os inteiros a e b s ao congruentes m odulo m, se m dividir a diferen ca (a b). Nesse caso escrevemos a b (mod m). Teorema 2.4 (Pequeno Teorema de Fermat ) Seja n umero primo. Se p a ent ao ap1 1 (mod p). p um

Teorema 2.5 (Teorema Chin es do Resto ) Sejam m1, m2, . . . , mr n umeros inteiros positivos tais que mdc(mi, mj ) = 1, sempre que i = j . Ent ao, o sistema de congru encias x a1 (mod m1) x a2 (mod m2) . . x ar (mod mr ) admite u nica solu c ao em Zm1m2...mr . Deni c ao 2.4 (Fun c ao de Euler ou Fun c ao Totiente ) Seja n Z+. A fun c ao de Euler, denotada por (n), e denida como sendo o n umero de inteiros positivos menores ou iguais a n que s ao relativamente primos com n. Teorema 2.6 Seja n Z+ de fatora c ao
ek 1 n = pe . . . p 1 k.

Usaremos o teorema de Fermat. Para isto, vamos supor que p b. Ent ao bp1 1 (mod p). E assim obtemos bed b (mod p). Para o caso em que p | b temos b 0 (mod p). O fato de p ser primo nos garante que bed b (mod p). Analogamente, mostramos que bed b (mod q ). Assim sendo, temos que p | (bed b) e q | (bed b). Como p e q s ao primos distintos, temos que mdc(p, q ) = 1 e isto implica que pq | (bed b). Mas n = p q e portanto bed b (mod n), b Z. Disto, conclu mos que D(C(b)) b (mod n). Logo, D(C(b)) = b.

Em termos de aritm etica modular, C(b) e a forma reduzida de be m odulo n. Desta maneira, o bloco 102 da mensagem e codicado como o resto da divis ao de 1027 por 143. Fazendo as contas: 1027 (47)7 477 81 138 24 119 (mod 143). Logo, C(102) = 119. Codicando toda a mensagem, obtemos a seguinte seq u encia de blocos: 64 - 119 - 6 - 119 - 102 - 36 - 130 - 36 - 27 - 79 - 23 - 117 - 10 Esta seq u encia de n umeros e a mensagem codicada.

4.5

A Seguran ca do RSA

4.3

Decodicando

Ent ao, a f ormula geral para o c alculo de (n) e dada pela express ao
e k 1 1 1 (pk 1). pe ( p 1) . . . p 1 1 k

Cifras

Para decodicarmos um bloco da mensagem codicada, precisamos de n e o inverso de e em (n), que denotaremos por d. Chamamos o par (n, d) de chave de decodica c ao. Seja a um bloco da mensagem codicada, denotaremos por D(a) o bloco decodicado. A express ao para se calcular D(a) e a seguinte: ad D(a) (mod n) (2) Em termos de aritm etica modular, D(a) e a forma reduzida de ad m odulo n. Para calcularmos d, devemos aplicar a identidade de Bezout a e e (n). No exemplo que estamos considerando, temos que (143) = 120 e e = 7. Dividindo (143) = 120 por e = 7 obtemos 120 = 7 17 + 1 1 = 120 + (17) 7 Como 17 103 (mod 120) temos que d = 103. Assim, para decodicarmos o bloco 119 da mensagem codicada, calculamos 119103 D(119) (mod 143). Observe que os c alculos a serem efetuados para a decodica c ao s ao muito maiores que o da codica c ao. Isso impede que um invasor do sistema decodique a mensagem secreta. Por em, a seguran ca da criptograa RSA e outra. Esta consiste no fato de se fatorar n em fatores primos. No

O RSA e um m etodo de chave p ublica. A chave de codica c ao corresponde ` a chave p ublica do sistema. Assim, o par (n, e) e acess vel a qualquer usu ario. O m etodo de codica c ao RSA s o ser a seguro se for dif cil calcular d quando apenas n e e s ao conhecidos. Para calcularmos d precisar amos aplicar o algoritmo euclidiano estendido a (n) e e. Por em, para calcularmos (n) ter amos que fatorar n para obtermos p e q . Portanto, na pr atica, s o podemos quebrar o c odigo se conseguirmos fatorar n. Mas, fatorar n com 150 algarismo ou mais, pode ser um trabalho um tanto dif cil j a que n ao disponibilizamos de algoritmos r apidos de fatora c ao.

Refer encias Bibliogr acas

A cifra de substitui ca o e um m etodo de codica ca o no qual as letras originais do texto original, tratadas individualmente ou em grupos de comprimento constante, s ao substitu das por outras letras, guras, s mbolos ou uma combina ca o destes de acordo com um sistema predenido e uma chave. Veremos aqui, um exemplo simples de cifragem que consiste em usar uma congru encia para codicar uma mensagem. Suponhamos que queiramos codicar a palavra Estudante. Primeiro, devemos converter letras em n umeros usando a seguinte tabela: A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25

[1] COUTINHO, S. C. N umeros inteiros e criptograa RSA. Segunda Edi ca o. Rio de Janeiro: IMPA/SBM, 2000. [2] SANTOS, Jos e Pl nio de Oliveira. Introdu c ao ` a Teoria dos N umeros. Segunda Edi ca o. Rio de Janeiro: IMPA, CNPq, 2000.

Apoio

ARRUDA, Rafael Lucas de. Introdu ca o ` a Teoria dos N umeros com Aplica c oes em Criptograa. Bolsista PET/SESu. Orientador: J eerson Luiz Rocha Bastos.

Вам также может понравиться