N ´umeros Inteiros e Criptografia RSA
Guilherme de Loreno1 , Daniela Maria Grande Vicente1
1Colegiado do Curso de Matem´atica - Centro de Ciˆencias Exatas e Tecnol´ogicas da Universidade Estadual do Oeste do Paran´a
Caixa Postal 711 - 85819-110 - Cascavel - PR - Brasil
[email protected], [email protected]
Resumo. Nesse projeto de iniciac¸˜ao cient´ıfica estudamos um dos m´etodos mais utiliza- dos de criptografia de chave p´ublica, o RSA, bem como a matem´atica requerida para a compreens˜ao do mesmo. Descrevemos aqui, sucintamente, o funcionamento do m´etodo da Criptografia RSA, que nada mais ´e que um m´etodo para codificar mensagens, nas quais apenas o destinat´ario leg´ıtimo conseguir´a decodificar. Neste artigo apresenta- mos uma breve explicac¸˜ao de como funciona o m´etodo de codificac¸˜ao, assim como o de decodificac¸˜ao e uma discuss˜ao, em linhas gerais, do porquˆe que tal m´etodo sem- pre funciona. O objetivo principal deste projeto de iniciac¸˜ao cient´ıfica foi de estudar a matem´atica envolvida em um dos principais m´etodos de criptografia comercialmente utilizado.
Palavras Chaves. Criptografia RSA; Codificac¸˜ao: Decodificac¸˜ao; Congruˆencia;
N´umeros Primos;
1. Introduc¸˜ao
Atualmente, as pessoas cada vez mais vem usando a internet para realizar transac¸˜oes banc´arias ou comerciais. Para que essas transac¸˜oes sejam seguras ´e preciso bons m´etodos de criptografia, pois ´e relativamente f´acil interceptar mensagens enviadas por linha te- lefˆonica, tornando-se necess´ario codificar essas mensagens de forma que s´o o seu des- tinat´ario possa decodifica-la. Um dos m´etodos de criptografia de chave p´ublica mais utilizados comercialmente ´e o RSA, e foi inventado em 1978 por R. L. Rivest, A. Shamir e L. Andleman. O m´etodo consiste basicamente em dois processos, o primeiro de co- dificar a mensagem e posteriormente decodificar. Mais especificamente, o m´etodo RSA consiste na escolha de dois n´umeros primos grandes (de 150 algarismos ou mais). Para decodificar uma mensagem precisamos conhecer esses dois n´umeros primos, que chama- remos de p e q. A chave de codificac¸˜ao do RSA ´e a multiplicac¸˜ao delesn = p.q e esse n´umero ´e conhecido como a ?chave p´ublica?, pois n pode ser tornado p´ublico. J´a a chave de decodificac¸˜ao ´e constitu´ıda pelos n´umerosp e q que s˜ao mantidos em seguedo pelo usu´ario. Ent˜ao, para decifrar o RSA basta fatorar o n´umero n e encontrar p e q. Por´em
isso se torna muito trabalhoso e at´e mesmo praticamente imposs´ıvel, pois no m´etodo RSA os n´umeros que devem ser fatorados s˜ao muito grandes, com mais de 150 algaris- mos. Podemos dizer ent˜ao que ´e disso que a seguranc¸a do RSA depende, da ineficiˆencia dos m´etodos de fatorac¸˜ao atualmente conhecidos.
1.1. Teoria dos N ´umeros
Dentre os problemas que vamos analisar para descrever o m´etodo RSA est´a re- lacionado a chamada Teoria dos N´umeros, que ´e o ramo da matem´atica que estuda as propriedades dos n´umeros em geral, principalmente do conjunto dos inteiros. Para com- preender o m´etodo, devemos saber calcular o resto da divis˜ao de uma potˆencia por um n´umero dado, encontrar um n´umero que deixa restos espec´ıficos quando divididos por outros n´umeros e tamb´em estabelecer crit´erios de divisibilidade por n´umeros primos, cal- cular o m´aximo divisor comum e o m´ınimo m´ultiplo comum entre dois n´umeros dados.
O estudo das propriedades dos n´umeros inteiros se remete j´a as an- tigas civilizac¸˜oes, contudo foi na Gr´ecia Antiga que identificamos a teo- ria como a entendemos hoje em dia, muitos desses problemas s˜ao discuti- dos no livro Elementos do matem´atico grego Euclides. Mas, foi durante o Renascimento europeu que muitas obras gregas foram publicadas na Eu- ropa e despertaram o interesse de muitos no continente, dentre eles o su´ıc¸o Leonard Euler, o francˆes Pierre de Fermat e o alem˜ao Carl Friedrich Gauss, no per´ıodo que vai do s´eculo XVII ao XIX. A maioria das ideias que estudaremos foram herdadas da Gr´ecia Antiga, ou desses trˆes matem´aticos.
Nessa sec¸˜ao apresentamos algumas das propriedades b´asicas dos n´umeros inteiros que ser˜ao necess´arias para melhor compreens˜ao do RSA mais adiante.
1.1.1. Divisores e m ´ultiplos
Os resultados apresentados abaixo podem ser encontrados mais detalhadamente em [HEFEZ, 2015].
Divisores
Definic¸˜ao 1. Dado um b ∈ Z, dizemos que b divide outro inteiro a, representado por b | a, se existec ∈ Ztal quea =bc, ou tamb´em que b ´e um divisor deaou fator de, ou ainda que a ´e m´ultiplo deb. Na pr´atica, determinamos sebdividea, efetuando a divis˜ao e verificando se o resto ´e zero.
Propriedades 1. Sejama, b, c, d∈Zent˜ao vale as seguintes propriedades:
i) d|0,∀d∈Z;
ii) sed|aed|b, ent˜aod|a+b;
iii) sed|aent˜aod|a.c.
M ´ultiplos
Definic¸˜ao 2. Sejaa∈Z, o conjunto
a·Z={a·d ; d∈Z}
´e o conjunto dos m´ultiplos dea.
Propriedades 2. Sejama, m, x, y∈Z.Ent˜ao valem as seguintes propriedades:
i) 0´e m´ultiplo dea;
ii) Sem ´e um m´ultiplo dea, ent˜ao−m ´e m´ultiplo dea;
iii) Um m´ultiplo de um m´ultiplo dea´e um m´ultiplo dea;
iv) Sexeys˜ao m´ultiplos de a ent˜ao,x+yex−ys˜ao m´ultiplos dea.
1.1.2. M´ınimo M ´ultiplo Comum e M´aximo Divisor Comum
Definic¸˜ao 3. Seja a, b ∈ Z n˜ao nulos, mesmo que n˜ao sejam ambos positivos, ent˜ao define-se o m´ınimo m´ultiplo comum de a e b , detonado pormmc(a, b) como sendo o menor m´ultiplo comum positivo, ou seja, o menor elemento positivo do conjunto
aZ∩bZ.
Definic¸˜ao 4. Dadosa, b∈ Zn˜ao simultaneamente nulos, o maior divisor comum de a e b ser´a o m´aximo divisor comum de a e b, denotado por, mdc(a,b).
Temos que,
mdc(a, b) = mdc(b, a).
Alguns resultados
i) Sejama, b∈Ztem-se quemmc(a, b)·mdc(a, b) = a.b;
ii) Sejama, b∈Z. Ent˜aommc(a, b) = a·bse, e somente se,mdc(a, b) = 1;
iii) Todo m´ultiplo comum de dois inteirosaeb ´e m´ultiplo demmc(a, b);
iv) Para quaisquera, b∈Z,mdc(a, b) =mdc(a, b−a);
v) Para quaisquera, b, c∈Z,mmc(a, b, c) =mmc(mmc(a, b), c);
vi) Sejama, b∈Z, quaisquer ambos n˜ao nulos, existem inteirosm, ntais que mdc(a, b) = a·n+b·m.
Esse ´ultimo resultado ´e conhecido comoRelac¸˜ao de Bezout.
1.1.3. N ´umeros Primos e Compostos
N´umeros primos desempenham um papel muito importante na teoria dos n´umeros e tamb´em no RSA. Portanto, vamos comec¸ar o definindo.
Definic¸˜ao 5. Um inteiro p ´e ditoprimo, comp6=±1, se os ´unicos divisores de p s˜ao±1e
±p. Por outro lado, um inteiro diferente de±1, que n˜ao ´e primo ´e chamado de composto.
Definic¸˜ao 6. Dados a, b inteiros positivos, dizemos que a e b s˜ao primos entre si se, mdc(a, b) = 1.
O nomen´umero primo ´e uma heranc¸a dos gregos, eles classificavam os n´umeros em primeiros ou indecompon´ıveis e secund´arios ou compostos. Os compostos s˜ao cha- mados assim por serem formados a partir dos primos. Os romanos apenas traduziram literalmente a palavra para primeiro, que em latim ´eprimus. Contudo, determinar se um inteiro ´e primo ou composto pode ser uma tarefa muito dif´ıcil, que pode ser ligeiramente auxiliada com os crit´erios de divisibilidade.
1.2. Alguns Crit´erios de Divisibilidade Divisibilidade por 2
Um inteiro ´e divis´ıvel por 2 se, e somente se, seu algarismo das unidades for par.
Divisibilidade por 3
Um inteiro ´e divis´ıvel por 3 se, e somente se, a soma dos seus algarismos ´e di- vis´ıvel por 3.
Divisibilidade por 5
Um inteiro ´e divis´ıvel por 5 se, e somente se, seu algarismo das unidades ´e 0 ou 5.
Divisibilidade por 7 Um inteiro,
a=an·10n+an−1·10n−1. . .+a1·10 +a0 = (an·10n−1+an−1·10n−2. . .+a1)·10 +a0
´e divis´ıvel por 7 se3·ˆa+a0tamb´em for, ondeˆa=an·10n−1+an−1·10n−2. . .+a1.
1.3. Fatorando inteiros
Nessa sec¸˜ao apresentamos um meio de como fatorar um inteiro, isto ´e, como en- contrar todos os seus fatores primos. Os resultados a seguir, podem ser encontrados com mais detalhes em [COUTINHO, 2015].
1.3.1. Algoritmo achar fator
Dado um inteiro no qual deseja-se fatorar, primeiro tente dividir n por 2, se for divis´ıvel p´are, pois descobrimos que 2 ´e fator den, se n˜ao for tente dividir por 3. Se for divis´ıvel p´are, pois descobrimos que 3 ´e fator den, se n˜ao for tente dividir por 5. Continue dessa maneira at´e encontrar um n´umero que divida n ou at´e que o candidato a divisor seja maior que√
n. Neste ´ultimo caso n ´e primo.
Podemos resumir isso tudo em uma ´unica proposic¸˜ao.
Proposic¸˜ao 1. O fator de um n´umero inteiro n > 1 encontrado pelo algoritmo achar fator acima ´e sempre um n´umero primo menor ou igual que a raiz quadrada de n.
Demonstrac¸˜ao. Suponha que o inteiro positivo n, que desejamos fatorar, ´e composto.
Supondo que aplicando o algoritmo emnencontramos o menor fatorpden, ou seja,
n =p·c, para algumc∈Z. (1)
Contudo c tamb´em ´e divisor de n. Levando em conta que p ´e o menor desses divisores, podemos escrever que
c≥p (2)
Combinando (1) e (2), obtemos,
n =p·c≥p·p ⇒ p≤√ n.
Mostrando de fato o que quer´ıamos provar.
Esse ´e um modelo mais simples de um modo de calcular um fator (ou divisor) de um n´umero. Todavia nosso objetivo ´e escrevern como o produto de fatores primos, a fim de encontrar os outros fatores devemos apenas aplicar o algoritmo achar fator suces- sivas vezes. Entretanto, na pr´atica se o n´umero for grande, como veremos com detalhes adiante, pode-se demorar at´e milhares de anos para que se consiga fatorar um n´umero, mesmo utilizando um poderoso computador, a fim de encontrar os fatores primos, al´em disso, acabaria se tornando muito caro fazer tal processo. Assim, o algoritmo achar-fator pode ser facilmente entendido e de utilizar por´em, ´e ineficiente mesmo utilizando um computador.
1.4. Teorema da Fatoroc¸˜ao ´Unica
Teorema 2(Teorema Fundamental da Aritm´etica). Dado um inteiro positivon ≥ 2po- demos escrevˆe-lo, de modo ´unico, na forma
n =p1 e1
... pk ek
onde1< p1 < p2 < p3 < ... < pks˜ao n´umeros primos ee1, ..., ek s˜ao inteiros positivos.
Al´em disso, os n´umerose1, ..., ek s˜ao chamados de multiplicidade e observemos que a quantidade total de fatores primos ( distintos ou n˜ao ) ´e a soma das multiplicidades e1+...+ek.
Esse teorema ´e t˜ao importante que geralmente ´e chamado deTeorema Fundamen- tal da Aritm´etica. Quem primeiro o enuciou foi Carl Friedrich Gauss em sua famosa obra Disquisitiones Arithmeticaede 1801, por´em j´a vinha sendo usado desde a Gr´ecia Antiga.
O Teorema nos diz duas coisas, primeiro que todo inteiro pode ser escrito como o produto de fatores primos e que s´o d´a uma escolha poss´ıvel de primos e expoentes para a fatorac¸˜ao de um inteiro dado. Tendo esse enunciado, podemos explicar por que ´e ne- cess´ario excluir±1da definic¸˜ao de primo, pois, sen˜ao fiz´essemos isso, n˜ao poder´ıamos fa- lar de unicidade da fatorac¸˜ao dita no teorema. Isto ´e,±1n˜ao s˜ao primos, todavia tamb´em n˜ao s˜ao compostos.
1.5. Propriedade Fundamental dos Primos
Teorema 3. Sejama, b, c∈Z+e suponhamos queaebs˜ao primos entre si. Ent˜ao, i) Seb|acent˜aob|c
ii) Sea|ceb|cent˜ao o produtoab|c.
Demonstrac¸˜ao. i) Como a, b s˜ao primos entre si, ent˜ao mdc(a, b) = 1, assim existem m, n∈Z, tais quem·a+n·b=mdc(a, b) = 1, multiplicando ambos os membros por c, temos
m·n·c+n·b·c=c.
Dondeb|b·n·ceb|a·m·c,e temos por hip´otese queb |ac, logob|c.
ii)Temos quea |c,logo existetinteiro, tal que
c=a·t
e tamb´em temos que,b |cemdc(a, b) = 1, segue que dei), que
b|t,
ou seja,t=b·k, para algum inteirok, assim
c=a·t =a·(bk)⇔a·b |c.
1.6. Aritm´etica Modular
Estudado a definic¸˜ao de divisibilidade e suas propriedades, agora vamos introduzir um novo conceito que Gauss desenvolveu, que ´e a Aritm´etica dos Restos, que nada mais
´e que o estudo dos restos de inteiros sucessivos na divis˜ao por um inteiron. E em vista disso, podemos dizer que os restos das divis˜oes desses inteiros sucessivos repetem-se com per´ıodo exatamente igual an. As propriedades e resultados encontrados s˜ao muito im- portantes para o entendimento do m´etodo RSA.As definic¸˜ao e propriedades deAritm´etica Modularforem extra´ıdas da referˆencia [COUTINHO, 2013].
Uma maneira sistem´atica de se introduzir a aritm´etica modular ´e atrav´es de relac¸˜oes de equivalˆencia. Seja X um conjunto e X 6= ∅. Dizemos que h´a uma relac¸˜ao emX quando comparamos dois elementos desse conjunto, denotemos essa relac¸˜ao por
∽. Essa relac¸˜ao ser´a deequivalˆencia, quando dadosx, y, z ∈Xcumprem-se as seguintes propriedades:
i) Reflexiva:x∽x
ii) Sim´etrica: sex∽y⇒y∽x
iii) Transitiva: sex∽yey∽x⇒x∽z
Sex ∈ X ent˜ao aclasse de equivalˆenciadex ´e o conjunto dos elementos deX que s˜ao equivalentes axpor∽. Simbolicamente,
x={y ∈X;y ∼x} Temos que dadox∈X e dado umy∈xent˜aox=y.
Com esses conceitos, podemos agora construir uma relac¸˜ao de equivalˆencia no conjunto dos inteiros. Diremos que dois inteiros a e b s˜ao congruentes m´odulo n se n|b−ae escrevemos,
a≡b mod n.
Agora devemos de fato, mostrar que congruˆencia ´e uma relac¸˜ao de equivalˆencia.
Para isso devemos mostrar as trˆes propriedades, a reflexividade, a simetria e a transitivi- dade.
i) Sejaa ∈ Z, temos quea ≡ a mod npoisn | a−a= 0. Portanto a congruˆencia
≡´e reflexiva.
ii) Sejaa, b∈Z, tais quea≡b mod n, logo n |b−a
e pela teoria de n´umeros inteiros, sen|b−aent˜aon |a−b, assim b≡a mod n.
Portanto a congruˆencia≡ ´e sim´etrica.
iii) Sejama, b, c∈Z, tais que
a≡b mod n b≡c mod n logo temos que,
n |b−a e
n |c−b
isso quer dizer que tanto b −a como c −b s˜ao m´ultiplos, e como a soma de m´ultiplos de um inteirontamb´em ´e um m´ultiplo den, logo
n |b−a+ (c−b)⇒n|c−a ⇒a≡c mod n.
Portanto≡´e transitiva. Como a relac¸˜ao≡ ´e reflexiva, sim´etrica e transitiva ent˜ao a relac¸˜ao≡ ´e umarelac¸˜ao de equivalˆencia.
Um outro modo de definir congruˆencia modular ´e sejan ∈ Zen > 1. Diremos que dois inteirosaebs˜aocongruentes m´odulo nse, e somente se,aebpossu´ırem mesmo resto quando divididos porn. Simbolicamente,
a≡b mod n.
A seguir, iremos demonstrar um resultado que foi usado anteriormente.
Proposic¸˜ao 4. Sejam a, b, n ∈ Z, com n > 1. Ent˜ao a≡c mod n se, e somente se, n|b−a.
Demonstrac¸˜ao. ⇒) Comoa≡b mod n, ent˜ao
a=n.k1+r1 (3)
b=n.k2+r1 (4)
Subtraindo(4)de(3)temos,
b−a=n.k2+r1−(n.k1+r1)=n.(k2−k1) +r1−r1⇒n |b−a
⇐) Pelo algoritmo da divis˜ao de Euclides, temos :
a=n.k1+r1 (5)
b=n.k2+r2 (6)
Subtraindo(6)de(5)temos,
b−a=n.k2+r1−(n.k1+r2)=n.(k2−k1) +r1−r2
E como temos por hip´otese quen|b−a, logo
r2−r1 = 0⇒r2 =r1.
Portantoaebtem o mesmo resto quando divididos porn. Logo,a≡b mod n.
Proposic¸˜ao 5. Sejamx, y, a, b, n∈Z, comn >1, sea ≡b mod nex≡y mod n,ent˜ao a+x≡b+y mod n.
Demonstrac¸˜ao. Temos quea≡b mod nex≡y mod n, ent˜ao
a−b=k·n (7)
x−y =l·n (8)
com,k, l ∈Z.
Somando (7) e (8) temos que,
a−b+x−y=n·(k+l)⇒(a+x)−(b+y) =n·(k+l)⇒a+x≡b+y mod n.
Analogamente prova-se que, se a ≡ b mod n e x ≡ y mod n, ent˜ao a−x≡b−y mod n.
Proposic¸˜ao.Sea ≡b mod nex≡y mod n, ent˜aoa·x≡b·y mod n.
Demonstrac¸˜ao.Temos quea≡b mod nex≡y mod n, ent˜ao
a−b =k·n ⇒a=b+k·n (9)
x−y =l·n⇒x=y+l·n. (10) Multiplicando (9) por (10), obtemos
a·x= (b+k·n)·(y+l·n) ⇒ a·x=b·y+b·l·n+k·n·y+k·n·l·n
⇒ a·x=b·y+n·(b·l+k·y+k·l·n)
⇒ a·x−b·y=n·(b·l+k·y+k·l·n), de modo que a diferenc¸aa·x−b·y ´e um m´ultiplo de n, que ´e equivalente a dizer que a·x≡b·y mod n.
Em particular,
ak≡(b)k mod n, para qualquerk≥0.
1.7. Crit´erios de Divisibilidade
Na sec¸˜ao 1.2 apresentamos alguns crit´erios de divisibilidade, por´em sem fazermos a demonstrac¸˜ao. Agora j´a com o conceito e v´arias propriedades de congruˆencia modular estabelecidos, podemos demonstrar alguns desses crit´erios usando congruˆencia modular.
Crit´erio de divisibilidade por 3
Seja a ∈ Z. Queremos verificar se a ´e divis´ıvel por 3. Para isso precisamos conhecer os algarismos dea. Digamos que,
a=anan−1...a1a0,
ondea0 ´e o algarismo das unidades,a1 o algarismo das dezenas, e assim sucessi- vamente. Logo,
a =an10n+an−110n−1+...+a1101+a0. Observemos que,
10≡1mod3.
Logo qualquer potˆencia de 10 ´e congruente a 1 m´odulo 3. Portanto,
a≡an+an−1+...+a1+a0 mod n. (11) Se o segundo membro de(11) ´e divis´ıvel por 3, ent˜ao
an+an−1+...+a1+a0 ≡0mod3.
Donde, podemos concluir que
a≡0mod3
Isto ´e,a ´e divis´ıvel por 3. Portanto, um n´umero ´e divis´ıvel por 3 se, e somente se, a soma dos seus algarismos tamb´em for.
Crit´erio de divisibilidade por 11
Suponha que os algarismos deasejamanan−1...a1a0,assim
a=an10nan−110n−1...a110a0.
Observemos que10≡ −1mod11, portanto
10k≡(−1)k mod11,
donde(−1)k ´e igual a 1 ou -1 dependendo da paridade dek. Assim,
a≡an(−1)n+an−1(−1)n−1+...+ (−a1) +a0 mod11 (12) logo, de(12) obtivemos a soma alternada dos algarimos. Portanto conclu´ımos que um inteiro ´e divis´ıvel por 11 se, e somente se, a soma alternada de seus algarismos ´e divis´ıvel por 11.
Os crit´erios de divisibilidade por 2 e 5 s˜ao mais f´aceis e n˜ao precisamos de con- gruˆencia para entender por que s˜ao verdade.
1.8. Potˆencias
Uma outra aplicac¸˜ao das congruˆencias ´e no c´alculo do resto de potˆencias por um n´umero qualquer, no qual esse m´etodo ´e muito importante na implementac¸˜ao do RSA, pois reduz o problema de calcular o resto da divis˜ao de um n´umero muito grande, para mais simples, com n´umeros menores e mais f´aceis de serem trabalhados. Iremos analisar esse m´etodo atrav´es de dois exemplos.
Queremos calcular o resto da divis˜ao de 10135 por 7. Observemos que 106 ≡1 (mod7). Temos ent˜ao as seguintes congruˆencias m´odulo 7
10135≡(106)22.103 ≡(1)22.103 ≡6 mod n.
Logo o resto da divis˜ao de10135por7´e 6.
Agora queremos encontrar o resto da divis˜ao de2124 512por31. A verdade ´e que o maior problema ´e encontrar o quociente dessa divis˜ao, pelo motivo do dividendo ser um n´umero muito grande. J´a que, para o resto podemos utilizar congruˆencias. Calculemos as potˆencias de 2 m´odulo 31,
22 ≡4 mod31 23 ≡8 mod31 24 ≡16 mod31 25 ≡32≡1 mod31.