Você está na página 1de 12

Teoria Aritmtica dos Nmeros e Criptograa RSA

Antonio Carlos Campello RA 059076 e Isabel Leal RA 061533 4 de Dezembro de 2007


Resumo Esta monograa est dividida em trs sesses. Na primeira, faremos um breve estudo das noes elementares de teoria aritmtica dos nmeros e enunciaremos resultados importantes, como o Pequeno Teorema de Fermat e o Teorema de Euler. Na segunda parte, utilizaremos os conceitos introduzidos anteriormente para descrever cuidadosamente o mtodo de cifragem e decifragem da criptograa RSA. Por ltimo, discutiremos algumas nuances da RSA, como a sua segurana, aplicaes e impactos matemticos.

Contedo
1 Introduo 2 Bases matemticas 2.1 Divisibilidade e nmeros primos . . . 2.1.1 A funo de Euler . . . . . 2.2 Congruncia . . . . . . . . . . . . . . 2.2.1 Pequeno Teorema de Fermat 2.2.2 Teorema de Euler . . . . . . . 2 3 3 4 5 6 6 7 8 9 9 10 11 11 1

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

3 O algoritmo RSA 3.1 Codicao e decodicao . . . . . . . . . . . . . . . . . . . 3.2 Sistema de chave pblica . . . . . . . . . . . . . . . . . . . . . 4 Segurana e aplicaes 4.1 Fatorao de inteiros . . . . . . . . . . . . . . . . . . . . . . . 4.2 Assinaturas digitais . . . . . . . . . . . . . . . . . . . . . . . . 5 Concluso

Introduo

Desde que as primeiras sociedades foram formadas e a comunicao entre os homens tornou-se vital, a arte de cifrar/decifrar mensagens tem desempenhado um importante papel em diversas reas da vida cotidiana. A criptograa a rea do conhecimento que tem como objetivo propiciar a troca segura de informaes entre um transmissor e um receptor. Para isso, so necessrias uma chave e um algoritmo de cifragem - essencialmente uma regra para transformar o texto original no cifrado. Na "contramo"da criptograa, h a criptoanlise, cujo objetivo encontrar meios de quebrar uma cifra, ou seja, decifrar mensagens sem necessariamente saber qual a chave. Durante sculos vrias cifras poderosas, de acordo com as ferramentas de cada poca, foram desenvolvidas. A cifra de Csar, o cdigo de substituio simples, o cdigo de substituio homofnica e a cifra de Vigenre so exemplos de algumas delas e so descritos com nfase menos tcnica e mais histrica em [4]. O ponto em comum de todas essas cifras (e todas as outras que surgiram at a metade do sculo passado) a sua simetria, ou seja, o fato de que a chave utilizada para cifrar uma mensagem a mesma para decifrar. Cifras com esta propriedade so denominadas cifras simtricas e durante muito tempo acreditou-se que eram as nicas cifras possveis. Por volta de 1970, entretanto, a criptograa de chaves simtricas deu lugar a uma nova proposta: a criptograa de chaves assimtricas, e a que a teoria aritmtica dos nmeros desepenha um papel importante. A teoria das chaves assimtricas baseia-se no fato de que possvel utilizar uma chave para decifrar diferente da utilizada para cifrar uma mensagem, e o suporte para esta teoria so alguns resultados de aritmtica elementar, sobretudo em congruncias. A primeira cifra deste tipo foi a conhecida como DH (ver referncia [3]). Finalmente, em 1977, Ron Rivest, Leonard Adleman e Adi Shamir apoiaramse nas idias matemticas implementadas pela DH e criaram a chamada criptograa de chave pblica, com a cifra que caria mundialmente famosa, a RSA. A cifra, alm de permitir troca segura de informaes entre qualquer usurio, com sua segurana garantida pela diculdade computacional em fatorar um nmero qualquer, devolvia, como corolrio, um mtodo de assinaturas digitais utilizado at hoje. 2

Por m, vale ressaltar que, apesar da sua ampla utilizao prtica, a Teoria dos Nmeros foi desenvolvida essencialmente com motivaes meramente matemticas e, portanto, o estudo direcionado do assunto para o entendimento da criptograa RSA no dar, de maneira nenhuma, uma viso abrangente do tema. Para um estudo mais aprofundado, recomenda-se a bibliograa [1].

Bases matemticas

Nesta sesso, faremos um estudo, desde os princpios bsicos, da teoria essencial para a compreenso da criptograa RSA.

2.1

Divisibilidade e nmeros primos

Denio 2.1. Sejam a e b dois nmeros inteiros. Dizemos que a divide b e denotamos por a|b se existe um inteiro k tal que b = ka. Listamos abaixo algumas propriedades bsicas da divisibilidade. Propriedades. Sejam a,b e c inteiros. 1. 1|a. 2. a|a. 3. Se a|b e b|c, ento a|c. 4. Se a|b, ento a|bc. Demonstrao. As demonstraes das propriedades acima decorrem imediatamente da denio de divisibilidade e podem ser encontradas em [2]. Denio 2.2. Sejam a, b e d inteiros. Dizemos que d o mximo divisor comum de a e b (e denotamos por (a, b) = d) se: (i) d|a e d|b e (ii) se d |a e d |b ento d |d, com d inteiro. fcil ver que, para o anel dos inteiros, a denio acima corresponde exatamente ideia intuitiva de mximo divisor comum, que o maior inteiro, em mdulo, que divide os dois inteiros simultneamente. Entretanto, usualmente dene-se mdc deste modo para facilitar a extenso para outros anis diferentes de Z.

Denio 2.3. Seja a Z com a > 1. Dizemos que a primo, se ele possuir exatamente dois divisores, 1 e a. A denio acima pode ser extendida para qualquer inteiro cujo mdulo maior que um, considerando os divisores 1, 1, a e a. Exemplo 1. Seja p primo. Temos que (p 1)! = 1.2.3...(p 1) ou seja, p no divide nenhum dos termos da multiplicao e, portanto, no divide (p 1)!. Do fato de que p primo, segue que (p 1)! no divide p, ou seja, o maior nmero que divide os dois simultneamente 1. Da denio de mximo divisor comum, nalmente chegamos em (p, (p 1)!) = 1. Teorema 2.1 (fundamental da Aritmtica). Todo nmero inteiro maior do que 1 pode expresso como o produto de nmeros primos. Demonstrao. A demonstrao pode ser encontrada em [1]. A extenso do teorema para inteiros com mdulo maior que 1 bvia. O fato elementar enunciado no teorema acima arma que um nmero ca bem caracterizado pela sua fatorao em primos. Este fato, apesar da sua aparente simplicidade, base para a maioria das demonstraes em teoria aritmtica dos nmeros e ser fortemente utilizado no desenvolvimento da RSA. Denio 2.4. Dizemos que dois nmeros so primos relativos (ou coprimos) se o mximo divisor comum entre eles 1. 2.1.1 A funo de Euler

Denio 2.5. O nmero (m) o nmero de inteiros positivos menores que, ou iguais a m, que so relativamente primos com m. Um fato importante de se notar, a partir da denio, que (p) = p 1, se p um nmero primo, j que ele coprimo com todos os menores que ele. A denio da funo de Euler ser importante em um dos teoremas citados na prxima sesso e fundamental no sistema de cifragem da RSA. Para nalizar a sesso, enunciaremos a seguir trs propriedade da funo que sero teis daqui para frente. Teorema 2.2. Seja p um nmero primo, e a um inteiro positivo. Ento, (1) (p) = p p1 (2) (mn) = (m)(n) (3) Se a = p1 p2 ...pn , em que p1 ...pn so os fatores primos de a, ento n 1 2 (a) = a(1 1/p1 )(1 1/p2 )...(1 1/pn ).

Demonstrao. Para demonstrar 1, temos que ter em vista que a quantidade total de nmeros menores que p exatamente p . Desses nmeros, h exatamente p1 que no so co-primos com p , pois estamos considerando nmeros da forma pb, em que 1 b p1 . Da, o resultado segue. A demonstrao de 2 no ser dada aqui e pode ser encontrada em [2], no Captulo 4. Levando em considerao (1) e (2), chegamos facilmente em (a) = (p1 )(p2 )...(pn ) = p1 1 p2 1 ...pn 1 (p1 1)(p2 1)...(pn 1) n n 2 1 2 1 e o resultado segue.

2.2

Congruncia

Denio 2.6. Se um inteiro m, no nulo, divide a diferena a b, em que a e b so inteiros, dizemos que a congruente a b mdulo m, e denotamos por a b (mod m). Se a b no divisvel por m dizemos que a no congruente a b mdulo m e denotamos por a b (mod m). Faremos a seguir uma lista sucinta das propriedades de congruncias de numeros inteiros, sem demonstrao. Uma lista mais elobarada e outros teoremas fogem ao escopo desta monograa e podero ser encontrados em [1] ou [2]. Propriedades. Sejam a, b, c, d e m inteiros. Ento: 1. a b (mod m), a b (mod m) e a b 0 (mod m) so proposies equivalentes. 2. Se a b (mod m) e b c (mod m), ento a c (mod m). 3. a a (mod m) 4. Se a b (mod m) e c d (mod m), ento a + c b + d (mod m). 5. Se a b (mod m), ento ac bc (mod m). 6. Sejam a, b, c e m inteiros. Se ac bc (mod m), ento a b (mod m/d), onde d = (c, m). Essa propriedade conhecida como a Lei do Cancelamento. Demonstrao. Lei do Cancelamento. Como ac bc (mod m), temos que c(a b) = km, e k um inteiro, e portanto (c/d)(a b) = (k/d)m, da concluimos que (k/d)|(c/d)(a b) e, por denio de MDC, (m/d, c/d) = 1) e portanto (m/d)|(a b), e o resultado segue. 5

As trs primeiras propriedades mostram que a relao de congruncia uma relao de equivalncia. Utilizaremos freqentemente, daqui para frente, as propriedades bsicas de congruncia apresentadas acima. 2.2.1 Pequeno Teorema de Fermat

Teorema 2.3 (Pequeno Teorema de Fermat). Seja p um nmero primo. Se p no divide a, ento ap1 1 (mod p). Demonstrao. Seja o conjunto de valores a, 2a, 3a,...,(p 1)a. Sabemos que, pelo fato de que p no divide a, (a, p) = 1 e, portanto, nenhum dos nmeros deste conjunto divisvel por p. Alm disso, temos que, se aj ak (mod p), ento j k (mod p), ou seja, todos eles so incongruentes mdulo p e, portanto, podemos estabelecer uma relao biunvoca entre os "aj", j = 1, 2, ..., p 1 e o conjunto 1, 2, 3, ...(p 1), em termos de congruncia, isto , cada um dos termos do primeiro conjunto congruente a um diferente do segundo. Deste argumento, e da propriedade 5 da relao de congruncia, segue a seguinte igualdade: a(2a)(3a)...(p 1)a 1.2.3...(p 1) (mod p)

ou seja ap1 (p 1)! (p 1)! (mod p). Da lei do cancelamento, e do fato de que ((p 1)!, p) = 1, segue que ap1 1 . Corolrio 2.1. Se p um primo e a um inteiro positivo, ento ap a (mod p) Demonstrao. Se p no divide a, do Pequeno Teorema de Fermat, temos que p|(ap1 1) ou seja p|a(ap1 1). Se p divide a, ento p|a(ap1 1). 2.2.2 Teorema de Euler (mod m)

O teorema de Euler visa generalizar o Pequeno Teorema de Fermat para quaisquer nmeros inteiros, utilizando, para isso a funo de Euler. interessante notar que para um nmero primo, o Teorema de Euler exatamente o Pequeno Teorema de Fermat. Teorema 2.4 (Teorema de Euler). Se m um inteiro positivo e a um inteiro com (a, m) = 1, ento a(m) 1 (mod m). 6

Demonstrao. Para demonstrar o Teorema de Euler, vamos seguir o mesmo roteiro do Pequeno Teorema de Fermat. Primeiramente, fcil ver que, se r1 , r2 , ..., r(m) englobam todos os restos no-nulos possveis na diviso por m, ento ar1 , ar2 , ..., ar(m) tambm o faz, com (a, m) = 1. Ou seja, podemos fazer uma relao biunvoca entre os dois conjuntos, em congruncia, e da chegamos em ar1 ar2 ...ar(m) r1 r2 ...r(m) ou seja a(m) r1 r2 ...r(m) = r1 r2 ...r(m) Pela lei do cancelamento, temos ento, que a(m) 1 e isso completa a demonstrao. Corolrio 2.2 (Pequeno Teorema de Fermat). Tome m = p, no sentido do teorema anterior e teremos que (m) = p 1. O Pequeno Teorema de Fermat segue da. Apenas com estes resultados de Teoria Aritmtica dos Nmeros poderemos, na prxima sesso, mostrar o algoritmo de cifragem e decifragem da RSA. Contudo, apesar da aparente simplicidade de toda a teoria, preciso ter em mente que ela foi construda durante muito tempo, por diversos matemticos renomados na rea. (mod m) (mod m) (mod m)

O algoritmo RSA

O primeiro passo para se comear a cifrar uma mensagem pelo sistema RSA transformar a mensagem em um nmero, e isso feito atravs do padro ASCII [ver referncia 5]. Por exemplo, a mensagem teorema de fermat, convertida em cdigo ASCII, sem os espaos, caria: 1161011111141011099710010110210111410997116 Em segundo lugar, deve-se quebrar a mensagem em blocos relativamente pequenos. O tamanho mximo dos blocos ser esclarecido na subsesso seguinte, em que determinaremos os parmetros de cifragem da RSA. Os blocos devem ser escolhidos aleatoriamente, tomando-se alguns cuidados, para que no seja permitida a tcnica de anlise de frequncia na tentativa de quebra do cdigo (ver 4). 7

3.1

Codicao e decodicao

Os parmetros de entrada para a cifragem pelo mtodo RSA so dois primos p e q sucientemente grandes, sobre os quais se calcular um nmero n = pq e (m) = (p 1)(q 1). Alm disso, necessrio gerar aleatoriamente um nmero e tal que (e, (p 1)(q 1)) = 1, ou seja, e e (m) so primos entre si. Denamos C(b) como o bloco b codicado e D(a) como o bloco a decodicado (utilizaremos esta notao sempre, daqui para frente). Vejamos quais propriedades devemos esperar de um bom algoritmo de cifragem. Em primeiro lugar, claro que queremos que D(C(b)) = b sempre, ou seja, que a decifragem de um bloco pelo algoritmo sempre produza o mesmo bloco cifrado. Utilizando jargo matemtico, queremos a unicidade de decifragem. Em segundo, importante que seja difcil obter a funo D(a) a partir de C(b), o que quer dizer que um interceptador ter diculdades em decifrar a mensagem. O conceito de difcil , de fato, muito abstrato, mas do ponto de vista da RSA, ele est intimamente relacionado com os esforos computacionais para quebrar a cifra, considerando as condies necessrias e sucientes para a decifragem. No sentido da RSA, as frmulas de codicao e decodicao so: C(b) be D(a) ad (mod n), 0 < C(b) < n (mod n), 0 < D(a) < n

sendo a um bloco codicado e b um bloco da mensagem original e d o inverso de e mdulo (n). Devemos portanto demonstrar o seguinte Teorema 3.1. D(C(b)) = b. Demonstrao. D(C(b)) C(b)d bed (mod n). Mas, como d inverso de e mdulo (n), ed = 1+k(n). Da, segue que D(C(b)) b1+k(n) (b(n) )k b (mod n). Como n = pq, temos que (n) = (p 1)(q 1) o que implica que D(C(b)) (bp1 )(q1)k b (mod p). Se p no divide b, ento D(C(b)) b (mod p) pelo Pequeno Teorema de Fermat. Se p divide b, ento b 0 (mod n) ou seja D(C(b)) (bp1 )(q1)k b 0 (mod p). Analogamente, possvel mostrar que D(C(b)) b (mod q) e como p e q so primos, D(C(b)) b (mod n) 8

e o teorema est quase demonstrado, a menos da igualdade. O fato de que D(a) sempre menor que n nos diz que a congruncia implica na igualdade a menos que b n. Entretanto, podemos escolher b de qualquer maneira conveniente (e aqui estabelecemos o tamanho de cada bloco!). A demonstrao est completa. Com este teorema, temos a segurana de que o mtodo RSA um bom mtodo de cifragem e decifragem, do ponto de vista da primeira propriedade listada acima. Mas por que ele to seguro?

3.2

Sistema de chave pblica

Antes de responder a essa pergunta, entretanto, vamos discutir um pouco mais sobre o sistema de codicao da RSA. Como entrada, ele exige dois nmeros primos e um terceiro nmero, e. Os parmetros para codicar uma mensagem so os nmeros n e e e por isso chamamos o par (n, e) de chave de codicao. Para decifrar, necessitamos apenas de (n, d) ( importante notar que d depende intimamente dos fatores, em separado, p e q). Por razes que citaremos a seguir, difcil obter o par de decodicao a partir apenas do par de codicao e, portanto, poderemos considerar (n, e) como parmetros pblicos (que podem ser divulgados em qualquer lugar, indiscriminadamente) e d como um parmetro privado, assim como p e q. Desta anlise, segue que a RSA um sistema de cifragem de chave pblica, pois qualquer um pode ter acesso aos parmetros de codicao sem comprometer o processo.

Segurana e aplicaes

Primeiramente, vamos considerar que todos os blocos da mensagem original foram separados de maneira aleatria, ou seja, a anlise de frequncia impossvel, j que os blocos no possuem um padro entre si (por exemplo, se cada bloco representasse exatamente duas letras da mensagem seria possvel considerar uma tcnica de anlise de frequncia baseada no aparecimento de dgrafos em diversas linguas).

4.1

Fatorao de inteiros

Levando em considerao o que foi dito acima, a segurana da RSA se baseia, basicamente, no seguinte Teorema 4.1. Uma condio necessria e suciente para se decodicar uma mensagem conhecendo-se apenas e e n, no sentido da sesso anterior, fatorar o nmero n. Este teorema signica, grosso modo, que, se possvel quebrar a RSA, ento h um jeito eciente de se fatorar um nmero em primos (ou, no mnimo, um nmero que composto por dois primos), j que os nmeros p e q podem ser arbitrariamente grandes, e, em contrapartida, se h um bom algoritmo para fatorao, ento a RSA pode ser quebrada. Entretanto, at hoje no h um algoritmo de fatorao to eciente de modo que a RSA possa ser quebrada em tempo razavel. Mais que isso: possvel que no exista tal algoritmo! Portanto, de acordo com o teorema acima, a segurana do sistema de cifragem RSA est garantida!. Demonstrao. A condio suciente facilmente demonstrada j que, se fatoramos n, ento podemos encontrar (n) e utilizar as operaes da sesso anterior para decifrar a mensagem. A condio necessria no trivial, mas podemos esboar alguns casos, como por exemplo, se for inventado um algoritmo eciente para se calcular (n) a partir de d e e, ento: (n) = (p 1)(q 1) = pq p q + 1 = n (p + q) + 1 portanto p + q = n + 1 (n) Em contrapartida, temos que (p + q)2 4n = p2 + 2pq + q 2 4n = p2 + q 2 2pq = (p q)2 logo pq = (n + 1 (n))2 4n e destas duas equaes segue que p= e (n + 1 (n))2 4n + n + 1 (n) 2 Em resumo, o nmero n foi fatorado! q= (n + 1 (n))2 4n + n + 1 (n) 2

10

4.2

Assinaturas digitais

Um dos impactos da criao da RSA acaba de ser enunciado acima e diz respeito ao antigo problema da fatorao de nmeros primos. Citaremos aqui uma importante aplicao prtica, que segue como um resultado imediato da RSA: a assinatura digital. O problema da assinatura digital consiste em ter certeza de quem o destinatrio de uma mensagem, e bastante relevante principalmente nas relaes entre bancos e empresas, pois tanto o banco deve ter conabilidade de que o seu cliente que est enviando uma ordem, quanto a empresa deve ter certeza que ningum est tentando se passar por ela. Suponhamos, para resolver o problema, que Alice queira manda uma mensagem para Bob. Sejam Ca , Da , Cb e Db as funes de codicao e decodicao para Alice e Bob, respectivamente e seja m a mensagem original. A sequncia de operaes que Alice deve fazer : aplicar Da (m) (funo que s conhecida por ela, pois se trata dos parmetros privados da cifra) e, em seguita, aplicar Cb (Da (m)). Ao receber a mensagem, Bob deve decifrar, fazendo Db (Cb (Da (m))) e conseguindo Da (m). Logo depois, ele deve utilizar a cifra pblica de Alice para recuperar a mensagem original, pois Ca (Da (m)) = m. Se a mensagem obtida zer sentido, ento a probabilidade de ela ter sido enviada por Alice quase 1, pois ela a nica que conhece a funo Da . Voil, temos um sistema de assinaturas seguro!

Concluso

Os impactos da RSA so fortes na matemtica, e, em contrapartida, o desenvolvimento da cifra s foi permitido por conta de grandes avanos na teoria aritmtica dos nmeros. Pesquisas na rea de codicao devem envolver a garantia da aleatoriedade dos blocos e dos nmeros primos na implementao do sistema de cifragem. J no ramo de decodicao, como visto acima, o melhor rumo a se tomar tentar fatorar o nmero n de maneira eciente. Entretanto, repetimos que este problema j foi exaustivamente atacado por matemticos de todo o mundo, desde muito tempo, e at hoje no aparenta ter alguma soluo.

11

Referncias
1. Niven, I.M, An introduction to the Theory of Numbers 2. Santos, J.P.O, Introduo Teoria dos Nmeros, IMPA-RJ 3. Die, W. e Hellman, M., "New directions in Cryptography", IEEE Transactions on Information Theory 4. Singh, S. O livro dos Cdigos 5. www.asciitable.com Tabela Ascii

12

Você também pode gostar