Você está na página 1de 13

Criptografia de Chave Pública RSA

Joel Eugênio Cordeiro Junior

Resumo
Esse artigo apresenta o sistema de criptografia RSA, um dos mais populares
sistemas de criptografia de chave pública. Esse sistema é fortemente fundamentado
nos resultados da Teoria dos Números e da Teoria de Grupos. O principais teore-
mas são apresentados e discutidos, entretanto algumas demonstrações de teoremas
fogem do escopo desse artigo e por isso são omitidas. O sistema RSA é descrito
cuidadosamente. O processo de cifragem e decifragem é abordado em detalhes e
justificado pela teoria matemática apresentada. Por último, é feito uma análise da
segurança do sistema RSA,

1 Introdução
A criptografia é uma ciência antiga que estuda métodos de codificar uma mensagem, de
forma que apenas o destinatário legı́timo consiga compreendê-la. Na prática, há diversos
motivos para se desejar ter sigilo e segurança nas comunicações: privacidade, segurança
militar, assuntos econômicos, atividades financeiras, informações polı́ticas.
Ao longo da história muitas técnicas de criptografia diferentes foram propostas e uti-
lizadas. A medida que as tecnologias de comunicações e processamento de informação
evoluem, muitas dessas técnicas ficam obsoletas. Atualmente, com o advento da internet,
a maioria das comunicações ocorrem sobre uma infraestrutura de rede pública. O que
torna essencial a existência de métodos que ofereçam segurança para a transferência de
informação.
Há dois principais tipos de sistemas de criptografia utilizados atualmente, os sistemas
de chave simétrica ou única e os sistemas de chave assimétrica ou pública. Na criptografia
de chave única as operações de cifragem e decifragem são executadas significativamente
mais rápido, do que nos sistemas de chave assimétrica. Entretanto, devido a chave ser
única, a troca de chave entre emissor e receptor exige um canal de comunicação seguro.
Caso o contrário, o sistema estará vulnerável e inseguro.
Já os métodos de criptografia de chave assimétrica utilizam duas chaves, uma pública
e outra privada. Nesse tipo de sistema, apenas a chave pública precisa ser transmitida.
Além disso, a exposição dessa chave não compromete a segurança do sistema. Por outro
lado, as operações de criptografia e decifragem são mais lentas, quando comparadas com
os métodos de chave única. Por conta disso, os métodos de chave pública têm sido
mais utilizados para realizar a troca segura de chaves simétricas. Dessa forma, é possı́vel
aproveitar o bom desempenho dos métodos de chave única, sem correr o risco de ter a chave
interceptada no momento da troca entre emissor e receptor. A maioria dos métodos atuais
de criptografia se baseia na capacidade computacional limitada dos possı́veis atacantes.
Por isso, esses sistemas não são considerados completamente seguros. Por outro lado, na
prática, esses sistemas tem se mostrado bastantes satisfatórios.

1
O objetivo central deste trabalho é apresentar o funcionamento do sistema de crip-
tografia de chave pública RSA, um dos mais conhecidos e utilizados na atualidade. O
sistema de criptografia RSA foi primeiramente publicado em 1977, seu nome é composto
pelas iniciais do sobrenomes de seus autores, Ron Rivest, Adi Shamir e Leonard Adle-
man. Posteriormente, descobriu-se que em 1973 um matemático inglês, Cliffor Cocks, que
trabalhava para o serviço de inteligência britânico (Government Communications Head-
quarters – GCHQ), desenvolveu um sistema de cifragem equivalente ao RSA. Porém esse
sistema só foi revelado em 1997, cerca de 20 anos depois do RSA [1].
O restante deste artigo está organizado da seguinte maneira. A Seção 2 apresenta
um resumo da teoria matemática que serve de base para o desenvolvimento do sistema
RSA. Os principais teoremas e definições da Teoria dos Números são abordados. A Seção
3 discute a aplicação da criptografia de chave pública e apresenta o sistema RSA. Além
disso, é feita uma breve avaliação da segurança da criptografia RSA. Por fim, a Seção 4
apresenta as conclusões do trabalho.

2 Teoria dos Números


A Teoria dos Números é um ramo da matemática pura que investiga as propriedades
dos números, principalmente dos números que pertencem ao conjunto dos inteiros Z.
É um campo de estudo antigo e que tem sido fundamental para o desenvolvimento das
tecnologias atuais de criptografia. Essa Seção apresenta os principais teoremas e definições
necessárias para a compreensão dos sistemas de criptografia de chave pública.

2.1 Divisão
A seguir é apresentado formalmente o teorema da divisão, o qual fornece a base para a
definições de operações uteis em criptografia.
Teorema 1 (Divisão). Sejam a, b ∈ Z, em que b > 0 . Então, existem inteiros q e r tais
que
a = qb + r e 0 ≤ r < b. (1)
Além disso, exite um único par de tais inteiros (q, r) que satisfaz essas condições.
Esse teorema estabelece formalmente a operação de divisão em números inteiros, em
que o número a é o dividendo, o b é o divisor, o q é o quociente e o r é o resto. A partir
do Teorema 1, é possı́vel definir as operações div e mod, a primeiro retorna apenas o
quociente inteiro q de uma divisão, enquanto que a segunda tem como resultado o resto
r.
Definição 1 (Div e Mod). Sejam a, b ∈ Z, com b > 0. Considerando o Teorema 1,
defini-se as operações div e mod como
a div b = q e a mod b = r. (2)
De forma equivalente, essas operações podem ser representadas com a seguinte notação:
div(a, b) = q e mod(a, b) = r. (3)
Na Definição anterior, quando r = 0, isto é, a mod b = 0, diz-se que b divide a ou
que b é divisor de a. A seguinte notação também pode ser utilizada, b|a. A quantidade
de divisores que um número possui determina se esse número é primo ou composto.

2
Definição 2 (Números Primos). Seja p um inteiro positivo. Diz-se que p é primo se, e
somente se, os únicos inteiros positivos que dividem p são 1 e p, e ainda p 6= 1. Em outras
palavras, p é primo se for divisı́vel apenas por 1 e por ele mesmo. Além disso, 1 não é
primo.

2.2 Máximo Divisor Comum


Um outro conceito importante é o de máximo divisor comum (mdc). Embora o nome seja
autoexplicativo, segue a definição formal.

Definição 3. Sejam a, b, d ∈ Z. Diz-se que d é o mdc de a e b ou mdc(a, b) = d se

1. d é divisor comum de a e b, isto é, d|a e d|b, e

2. se um inteiro e é divisor de a e b, então e ≤ d.

Se dois números inteiros a e b tem o número 1 como único divisor inteiro positivo,
diz-se que a e b são relativamente primos. De forma equivalente, se mdc(a, b) = 1, então
a e b são relativamente primos. Também é comum utilizar os termos primos entre si ou
co-primos.
Há muitas formas de calcular o mdc de dois inteiros, um método simples e bastante
utilizado foi proposto pelo matemático grego Euclides. A seguir, apresenta-se a proposição
que fundamenta o método de Euclides[2].

Proposição 1 (Método de Euclides). Sejam a e b inteiros positivos. Se existem inteiros


q e r tais que a = bq + r, então

mdc(a, b) = mdc(b, a mod b) = mdc(b, r). (4)

Demonstração. Sejam d1 = mdc(a, b) e d2 = mdc(b, r). Sabe-se que d1 |a e d1 |b, como


a = bq + r, d1 também divide r. Portanto, d1 é um divisor comum entre b e r, porém
d1 deve ser menor ou igual ao mdc de b e r, d1 ≤ d2 . Por outro lado, sabe-se que d2 |b e
d2 |r, logo d2 |a, pois a = bq + r. Assim, d2 é um divisor comum entre a e b, mas d2 ≤ d1 .
Conclui-se, portanto, que d1 ≤ d2 e d2 ≤ d1 , o que implica em d1 = d2 .
Segue a descrição do algorı́timo de Euclides baseado na Proposição 1. Trata-se de uma
função definida recursivamente.
Algoritmo 1: Algorı́timo de Euclides para o cálculo do mdc.
Entrada: a, b ∈ N
inı́cio
r = a mod b;
se r = 0 então
retorna b;
senão
mdc(b, r);
fim
fim

3
2.3 Aritmética Modular
Esta seção apresenta a Aritmética Modular, a qual estuda as operações básica de soma,
subtração, multiplicação e divisão em um conjunto de resı́duos Zn , o qual é formado por
todos os inteiros não negativos menores que n, isto é,
Zn = {0, 1, . . . , (n − 2), (n − 1)}. (5)
Definição 4 (Soma, Subtração e Multiplicação). Sejam n um inteiro positivo e a, b ∈ Zn .
Defini-se,
a ⊕ b = (a + b) mod n, (6)
a b = (a − b) mod n, (7)
a ⊗ b = (ab) mod n. (8)
A subtração modular ( ) pode ser ainda definida em termos da soma modular (⊕),
em que o resultado de a b é definido como o único valor x ∈ Zn tal que a = b ⊕ x.
As operações modulares de soma, subtração e multiplicação são fechadas em Zn , ou seja,
a ⊕ b, a b, a ⊗ b ∈ Zn .
A divisão modular é menos intuitiva do que as operações descritas anteriormente.
Assim como ocorre com a divisão em Q, em que a divisão pode ser definida com a multi-
plicação pelo inverso do divisor, a divisão modular utiliza o conceito de inverso modular.
Definição 5 (Inverso Modular). Sejam n um inteiro positvo e a ∈ Zn . O inverso modular
de a é um elemento b ∈ Zn tal que a ⊗ b = 1. Um elemento de Zn que tenha um inverso
é chamado e de invertı́vel [3].
O Teorema da Inversão afirma que a é invertı́vel em Zn se e somente se a e n são
relativamente primos [2]. Além disso, se o inverso de a existe, ele é único. O expoente
−1 pode ser utilizado para representar o inverso modular, assim b = a−1 . Entretanto,
em Zn o expoente −1 nunca deve ser ser utilizado como sinônimo de uma fração, isto é,
a−1 6= a1 . É interessante observar que, se a é invertı́vel em Zn e seu inverso é b = a−1 ,
então b também é invertı́vel e a = b−1 . Isso implica que (a−1 )−1 = a.
O teorema apresentado a seguir estabelece um extensão do algorı́timo de Euclides para
o cálculo do mdc entre dois inteiros. Esse algorı́timo permite calcular o inverso modular
de um inteiro de forma rápida de eficiente. Na Seção 3.1 é abordado como o cálculo rápido
do inverso modular torna a criptografia RSA viável.
Teorema 2 (Algorı́timo de Euclides Estendido). Sejam a e b inteiros positivos. Existem
inteiros α e β tais que
αa + βb = mdc(a, b). (9)
A partir do teorema anterior, se a e b são primos entre si, a Equação 9 torna-se,
αa + βb = 1, (10)
resolvendo essa Equação em Zb , tem-se
αa ≡ 1 (mod b), e
α ≡ a−1 (mod b). (11)
Como consequência do Teorema 2, quando a e b são relativamente primos, o algoritmo
estendido de Euclides fornece um método de calcular o inverso modular de a em Zb .

4
Definição 6 (Divisão Modular). Sejam n ∈ N e a, b ∈ Zn . Se b é invertı́vel em Zn , então
a divisão modular de a por b é:

a b = a ⊗ b−1 . (12)

2.3.1 Propriedades da Aritmética Modular


Seja n ∈ Z e n ≥ 2. Para todos, a, b ∈ Zn , as operações ⊕, ⊗, gozam das seguintes
propriedades [3]:
• Cumulativa: a ⊕ b = b ⊕ a e a ⊗ b = b ⊗ a;

• Associativa: a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c e a ⊗ (b × c) = (a ⊗ b) × c;

• Elementos identidade: a ⊕ 0 = a, a ⊗ 1 = a e a ⊗ 0 = 0

• Distributiva: a ⊗ (b ⊕ c) = (a ⊗ c) ⊕ (a ⊗ c);

• Inverso aditivo (b = −a): ∀ a ∈ Zn , ∃ b : a ⊕ b ≡ 0 mod n [4].

2.4 Fatoração
Teorema 3 (Teorema Fundamental da Aritmética). Seja n um inteiro positivo tal que
n ≥ 2, sempre é possı́vel escrevê-lo, de forma única, como um produto de números primos,
isto é,

n = pe11 pe22 . . . pekk , (13)

em que ei é um inteiro positivo, pi é primo e pi < pi+1 para todo i ∈ {1, 2, . . . k}.
Para demonstrar o Teorema 3, segue duas proposições úteis. A prova dessas proposição
pode ser encontrada em [3].
Proposição 2. Sejam a, b, p ∈ Z e p primo,

p|ab ⇒ p|a ∧ p|b. (14)

Proposição 3. Sejam p, q1 , q2 , . . . qk números primos,

p|(q1 q2 . . . qk ) ⇒ p = qi , para algum i ∈ {1, 2, . . . , k}. (15)

Demonstração. Existência da fatoração: Supõe-se, por contradição, que nem todo


inteiro positivo possa ser fatorada em números primos. Seja X o conjunto de todos os
inteiros positivos que não se fatoram em números primos. Pelo princı́pio Boa Ordenação,
existe um menor elemento x ∈ X. Para qualquer número primo p, tem-se que p 6∈ X, pois
todo número primo tem ele mesmo como único fator primo. Além disso, 1 6∈ X, pois 1
pode ser fatorado como produto vazio de primos. Portanto, x é composto, de forma que
existe um inteiro a tal que 1 < a < x e a|x. Consequentemente, exite um inteiro b, tal
que x = ab, ou seja, b = xa−1 . A partir da desigualdade 1 < a < x, tem-se que,
× b
1<a ⇒ b<x
z}|{
× a−1
a<x ⇒ 1 < b.
z}|{

5
Portanto, a e b são inteiros positivos menores que x. Dado que x é o menor elemento
de X, então a e b podem ser fatorados em números primos,

a = p1 p2 . . . ps e b = q1 q2 . . . qt ,

em que pi e qj são primos para todo i ∈ {1, 2, . . . , s}, j ∈ {1, 2, . . . , t}. Isso significa que,

x = ab = (p1 p2 . . . ps )(q1 q2 . . . qt ) (16)

é uma fatoração de x em números primos, o que contradiz a suposição inicial. Portanto,


tal conjunto X não existe e todo número inteiro positivo pode ser fatorado em números
primos.
Unicidade: Para provar a fatoração única, supõe-se por contradição, que exitem
inteiros positivos que podem ser fatorados em primos de duas ou mais formas distintas.
Seja Y o conjunto de todos esses inteiros. Como 1 só pode ser fatorado como o produto
vazio de primos, 1 6∈ Y . Pelo Princı́pio da Boa Ordenação, existe um menor elemento y
em Y . Sabe-se que y pode ser fatorado pelo menos de duas formas distintas, isto é,

y = p1 p2 . . . ps e y = q1 q2 . . . qt ,

em que pi e qj são primos para todo i ∈ {1, 2, . . . , s}, j ∈ {1, 2, . . . , t} e essas duas listas
de primos não são permutações uma da outra. Escolhendo um primo arbitrário pi da
primeira lista, tem-se que pi |y, de forma que pi |(q1 q2 . . . qt ). Pela Proposição 3,

pi |(q1 q2 . . . qt ) ⇒ p i = qj , para algum j ∈ {1, 2, . . . , t}. (17)

Isso significa que as duas listas de primos tem pi = qj como elemento comum. Fazendo
z = y/pi , tem-se que,
pi qj
z = p1 p 2 . . . . . . ps e z = q1 q2 . . . . . . qt ,
pi qj

em que z é um inteiro positivo que pode ser fatorado de duas formas distintas em fatores
primos e z < y. Logo, z 6∈ Y , o que contradiz a suposição de existência de Y . Portanto,
tal conjunto Y não existe e todo inteiro positivo aceita uma fatoração única em números
primos.

2.5 O Pequeno Teorema de Fermat


Teorema 4 (O Pequeno Teorema de Fermat). Seja p um número primo e a um inteiro.
Então,

ap ≡ a (mod p). (18)

Demonstração. Por indução, prova-se que o Teorema 4 é verdadeiro para o caso em que
a é um inteiro positivo, em seguida, o resultado é generalizado para todo a inteiro. Dado
a ∈ N, descreve-se a seguir o caso base e a hipótese indutiva:

Caso base: Se a = 0, então ap = 0p = a, e portanto ap ≡ a (mod p) é verdadeira para


a = 0.

6
Hipótese de Indução: Supõe-se que a Equivalência 18 seja verdadeira para a = k, nesse
caso, deve-se provar que também é verdadeira para a = k + 1, ou seja,

kp ≡ k (mod p) ⇒ (k + 1)p ≡ (k + 1) (mod p). (19)

O Teorema Binomial estabelece que


n  
X
n n n−i i
(x + y) = x y,
i=0
i

em que,
 
n n!
= , para n, i ∈ Z e i ≤ n. (20)
i i!(n − i)!

Portanto, temos
     
p p p p−1 p p−2 p
(k + 1) = k + k + k + ··· + k + 1.
1 2 p−1
p−1   p−1
p
X p p−i X p!
= k + k +1= k p−i + k p + 1
i=1
i i=1
i!(p − i)!
p−1
X p(p − 1)!
= k p−i +k p + 1 (21)
i=1
i!(p − i)!
| {z }
inteiro múltiplo de p
p
≡ k + 1 ≡ k + 1 (mod p). (22)

A passagem da Expressão 21 para a Expressão 22 é justificada pois o numerador p(p − 1)!


possui um fator p que não é anulado por nenhum fator inteiro do denominador, dado que
1 < i < p e que o resultado da fração é um número inteiro. Portanto, o resultado do
somatório na Expressão 21 é um múltiplo de p. A relação de equivalência da Expressão
22 é concluı́da a partir da hipótese de indução, k p ≡ k(mod p). Logo, fica provado por
indução que o Teorema 4 é verdadeiro para todo a ∈ N.
Para estender o resultado da prova aos inteiros negativos, deve-se mostrar que

(−a)p ≡ (−a) (mod p), a > 0. (23)

No caso em que p = 2, o único primo par, tem-se

(−a)2 ≡ a2 ≡ a ≡ −a (mod 2). (24)

No caso dos primos impares, p > 2, tem-se

(−a)p = (−1)p ap = −(ap ) = −a (mod p). (25)

Logo, o Teorema é válido para todo a inteiro.

Teorema 5 (Teste de Primalidade). Sejam a e n inteiros positivos. Se an 6≡ a (mod n),


então n não é primo.

7
Demonstração. A prova é um resultado direto do Teorema 4, o qual afirma que

n é primo ⇒ an ≡ a (mod n). (26)

A contrapositiva é

an 6≡ a (mod n) ⇒ n é não primo. (27)

A seguir apresenta-se uma segunda versão do Teorema 4. Essa alternativa é tem


grande importância na construção do método de criptografia RSA.

Teorema 6 (O Pequeno Teorema de Fermat II). Seja p um número primo e a um inteiro.


Se a não é divisı́vel por p, então

ap−1 ≡ 1 (mod p). (28)

Demonstração. Dado que mdc(a, p) = 1, isto é, a e p são relativamente primos, tem-se que
a é inversı́vel em Zp . Multiplicando ambos os lados da Equivalência 18 por a−1 , obtém-se

ap a−1 ≡ aa−1 (mod p),

portanto,

ap−1 ≡ 1 (mod p). (29)

2.6 O Teorema de Euler


Definição 7 (Função Totiente de Euler). A função totiente de Euler, representada por
ϕ(n), é definida como o número de inteiros entre 1 e n, inclusive, que são relativamente
primos com n. Por convenção, ϕ(1) = 1.

Dado dois números primos p e q,

ϕ(p) = p − 1 e ϕ(pq) = ϕ(p)ϕ(q) = (p − 1)(q − 1). (30)

O Teorema 6 pode ser generalizado para o caso em que o módulo não é primo. Esse
resultado é apresentado a seguir pelo Teorema de Euler. A demonstração desse teorema
utiliza resultados da Teoria de Grupos que não serão tratados neste artigo, para mais
detalhes consultar [2, 3].

Teorema 7 (Teorema de Euler). Sejam n um inteiro positivo e a um inteiro relativamente


primo com n. Então,

aϕ(n) ≡ 1 (mod n). (31)

8
3 Criptografia de Chave Pública
A criptografia de chave pública surgiu para atender a demanda de realizar comunicações
privadas em um canal público. Quando não se dispõe de um canal seguro ou privado,
a troca de chaves simétricas torna o sistema vulnerável a ataques. Por isso, tornou-se
necessário métodos de criptografia em que uma revelação sobre o processo de criptografia
não comprometeria a segurança e o segredo do processo de deciframento.
Dessa forma, o método de encriptação dos dados deve ser fácil de executar, mas deve
ser também muito difı́cil de desfazer, ou seja, de decifrar [3]. Por exemplo, a multiplicação
de dois números primos grandes é um procedimento rápido e de baixo custo computaci-
onal para computadores modernos. Entretanto, fatorar o resultado desse produto, sem o
conhecimento prévio de seus fatores primos, é uma tarefa de alta complexidade computa-
cional.
De forma genérica, os métodos de criptografia de chave pública podem ser explicados a
partir exemplo que segue. Alice deseja enviar uma mensagem privada para Bob utilizando
um canal de comunicação público e compartilhado. Alice pode optar por criptografar
a mensagem com uma chave única, a qual Bob dever tomar conhecimento para poder
decifrar a mensagem corretamente. A troca de chaves entre Alice e Bob por meio do canal
público, evidentemente, não garante a privacidade da comunicação. A chave transmitida
pode ser interceptada por qualquer outra pessoal presente no canal, e posteriormente
utilizada para decifrar as mensagens trocadas. Uma alternativa, seria realizar a troca de
chaves por meio de um canal de comunicação privado e seguro. Entretanto, em muitas
situações práticas, isso pode ser inviável ou até mesmo impossı́vel.
Para contornar esse problema, Bob decide adotar outra abordagem utilizando um
método de criptografia de chave pública. A mensagem a ser enviada por Alice é codifi-
cada em um número M , isso pode ser feito utilizando uma tabela de códigos ASCII ou
outro código de substituição. Então, Bob desenvolve secretamente duas funções E(m) e
D(n), tal que essas funções sejam inversas, isto é, D(E(M )) = M . Bob envia a função
E(m) para Alice por meio do canal público. Alice criptografa sua mensagem fazendo
E(M ) = N e a envia para Bob. Ao receber a mensagem, Bob utiliza a função D(n) para
inverter a transformação feita por Alice e obter a mensagem original M . A função E(m)
é desenvolvida para ser pública, portanto, Bob não precisa se preocupar em mantê-la em
segredo. Por outro lado, a função D(n) é privada e nunca é compartilhada. Dessa forma,
mesmo se um observador curioso conseguir obter a função E(m) e a mensagem criptografa
N , ele não seria capaz de obter M .
Devido a existência de duas chaves, uma para cifrar e outra para decifrar, esse método
também é chamado de criptografia de chave assimétrica. Para que a segurança da in-
formação seja garantida, obter D(n) a partir do conhecimento de E(m) e da mensagem
cifrada N , deve ser no mı́nimo um problema computacionalmente intratável. Do ponto de
vista da Teoria da Informação, isso implica que a equivocação H(D|E, N ) deve ser a mais
elevada possı́vel. Sendo a equivocação a incerteza média sobre D(n) dado o conhecimento
de E(m) e N [5]. A Seção a seguir apresenta um dos principais sistemas de criptografia
de chaves assimétrica conhecidos, o RSA.

3.1 Criptografia RSA


Essa Seção apresenta o funcionamento do sistema de criptografia de chave pública RSA.
A segurança desse sistema é baseada na dificuldade de fatoração de números semiprimos

9
grandes, que são números formados a partir do produto de dois primos, isto é, n = pq
para p e q primos.
As funções de codificação e decodificação RSA são, respectivamente, dadas por,
E(M ) = M e mod n = N e
D(N ) = N d mod n = M.
Nesse sistema a função E(m) e os números n e e fazem parte da chave pública. Bob
envia essa informação para Alice por meio de um canal público. Entretanto, a função D(n)
e o número d são mantidas, por Bob, em segredo. Alice prepara a mensagem M , calcula
N = E(M ) e transmite para Bob. Uma terceira pessoa, Eva, poderia estar observando as
mensagens trocadas, dessa forma, Eva teria conhecimento de (e, n) e N , porém, partindo
dessas informações, ela não seria capaz de obter M em um tempo razoável.
Para decifrar N , Bob precisa realizar as seguintes operações em Zn ,
D(E(M )) = D(M e ) = (M e )d = M ed = M. (32)
Pelo Teorema 7, dada M ∈ N e M relativamente primo de n,
M ϕ(n) = 1 em Zn . (33)
De fato, não há como garantir que M sempre será relativamente primo de n. Entre-
tanto, dado que n = pq é semiprimo, é possı́vel mostrar com auxı́lio do Teorema 4 que
a Expressão 33 é válida para qualquer inteiro positivo M . Essa demonstração pode ser
verificada em [2].
Continuando, eleva-se a Expressão 33 a um inteiro positivo k, e multiplica-se por M ,
M ϕ(n) = 1 ⇒ (M ϕ(n) )k = 1k ⇒ M kϕ(n)+1 = M. (34)
Comparado as expressões 32 e 34, obtém-se ed = kϕ(n) + 1, isto é,
ed ≡ 1 (mod ϕ(n)) e
d ≡ e−1 (mod ϕ(n)). (35)
Para e ser inversı́vel em Zϕ(n) , e e ϕ(n) devem ser relativamente primos, ou seja,
mdc(e, ϕ(n)) = 1.
Portanto, Bob escolhe aleatoriamente um inteiro e ∈ Zϕ(n) , tal que mdc(e, ϕ(n)) = 1, em
seguida calcula o d = e−1 por meio do método de Euclides estendido (Teorema 2). Como
Bob conhece p e q, é possı́vel calcular rapidamente ϕ(n) com a Fórmula 30. Como as
operações de criptografia e deciframento ocorrem em Zn , D(E(M )) = M é equivalente a
D(E(M )) ≡ M (mod n), (36)
em que há infinitos valores que satisfazem essa relação. Dessa forma, para que a função
de deciframento D(n) retorne um valor único, é necessário que 1 ≤ M < n. Isso significa
que após ser convertida para um valor numérico, a mensagem deve ser subdividida em
blocos sempre menores a n.
A segurança desse método está baseada no fato que, mesmo tendo conhecimento de
N, e e n, Eva não seria capaz de decifrar a mensagem rapidamente. Para isso, ela precisaria
encontrar d, e para encontrar d a partir de e, seria necessário calcular ϕ(n), e portanto
seria necessário encontrar os fatores p e q de n. Para n muito grande, esse problema é
computacionalmente intratável. A Figura 1 resume cada etapa do envio e recebimento de
uma mensagem utilizando RSA.

10
Bob Eva Alice
Escolhe secretamente dois pri-
mos grandes p e q e calcula n =
pq.
Calcula ϕ(n) = (p − 1)(q − 1).

Escolhe e aleatoriamente entre 1


e ϕ(n) tal que mdc(e, ϕ(n))=1.

Calcula d = e−1 em Zϕ (n) pelo


algoritmo estendido de Euclides.

Transmite chave pública. (e, n)

Prepara a mensagem e a codifica


em ASCII.

Subdivide a mensagem codifi-


cada em blocos de inteiros Mi
tais que 1 < Mi < n para todo i.

Calcula Ni = (Mi )e mod n para


cada bloco.

Envia a sequência de blocos crip-


tografados Ni .
N1 , N2 , . . . , Ni , . . .

Decifra cada bloco recebido


(Ni )d = Mi .

Figura 1: Troca de mensagem com RSA.

3.1.1 Assinatura Digital


Seja (Ea , Da ) o par de chaves pública e privada de Alice e (Eb , Db ) o par de chaves pública
e privada de Bob. Dado que Eva pode tomar conhecimento das chaves públicas de Bob e
Alice, Eva poderia enviar um mensagem para Bob se passando por Alice, ou vice-versa.
Entretanto, é possı́vel utilizar a chave privada RSA para assinar uma mensagem e garantir
a sua autenticidade.
Para que Alice possa enviar uma mensagem criptografada e assinada para Bob, basta
que ela utilize a sua chave privada para codificar a mensagem, antes de cifrá-la com a
chave pública de Bob. Assim, a mensagem enviada seria.

Eb (Da (M )) = N. (37)

Ao receber a mensagem cifrada, Bob primeiro utilizaria a sua chave privada para
decifrar a mensagem, Db (Eb (Da (M ))) = Da (M ), obtendo a mensagem cifrada com a
chave privada de Alice, e portanto, incompreensı́vel. Para obter M , Bob precisa decifrar
a mensagem com a chave pública de Alice, Ea (Da (M )) = M . Dessa forma, uma mensagem
assinada por Alice, só poderá ser compreendida se Bob conhecer a chave pública de Alice.
Com a chave pública de qualquer outra pessoa não seria possı́vel decifrar a mensagem
corretamente. Com isso, o sistema RSA pode oferecer privacidade e a autenticidade na
comunicação.

11
3.1.2 Segurança do RSA
A segurança do sistema de criptografia RSA é baseado na dificuldade de fatorar números
muito grandes. Não se conhece método eficiente e rápido para executar essa tarefa.
Entretanto, a inexistência de tais métodos nunca foram provadas. Em 2009, pesquisadores
conseguiram fatorar uma chave de 768 bits, n de aproximadamente 232 dı́gitos, porém
levaram cerca de três anos utilizando centenas de computadores [6]. Atualmente as chaves
RSA podem ter de 2048 a 4096 bits. Estima-se que para quebra uma chave RSA de
2048 bits, seriam necessários aproximadamente 6 quadrilhões de anos [7].
Para um atacante conseguir quebrar a segurança do sistema RSA é necessário conhecer
pelo menos um dos seguintes valores, d, ϕ(n) ou os fatores p e q. É possı́vel mostrar que
tanto obter d quanto ϕ(n) são problemas equivalentes à encontrar os fatores primos de n
[2, 3]. Por esse motivo, desconfia-se que a complexidade de quebrar a segurança do RSA
é a mesma do problema da fatoração, porém isso ainda não foi provado.
Outros fatores podem influenciar na segurança do RSA. Por exemplo, sabe-se que que
os primos p e q devem ser grandes. Porém, se a distância |p − q| for pequena, é possı́vel
fatorar n = pq usando o algorı́timo de Fermat [2].
Existem ataques de temporização que utilizam a marcação do tempo necessário para
confirmar uma assinatura, para obter informações sobre a chave. O atacante utiliza
mensagens de diferentes tamanhos, para facilitar a caracterização da chave. É possı́vel
utilizar um método de ofuscamento da mensagem para combater esse ataque, entretanto
há um redução de desempenho entre 2% e 10% [3].

4 Conclusão
Nesse artigo, foi discutido a teoria do números inteiros e a sua relação com o sistema de
criptografia RSA. Dentre os teoremas estudados, três deles merecem destaque especial
devido a sua importância, são eles: o Teorema Fundamental da Aritmética, que trata da
existência da fatoração única, o Pequeno Teorema de Fermat e o Teorema de Euler. Os
três são igualmente importantes para compreender o sistema RSA estudado.
Os detalhes do funcionamento do RSA foram apresentados e justificados com base
nas teorias matemáticas relacionadas. O artigo também abordou o uso do sistema RSA
como mecanismo de assinatura digital para garantir a autenticidade de uma mensagem.
Por último, foi analisado a segurança da criptografia RSA para os tamanhos de chaves
atuais.

12
Referências
[1] Rsa (cryptosystem). https://en.wikipedia.org/wiki/RSA_(cryptosystem), . Ac-
cessed: 2019-06-26.

[2] S. C. Coutinho. Números Inteiros e Criptografia RSA, volume 1. IMPA, Rio de


Janeiro, Brasil, 2 edition, 2009.

[3] Edward R. Scheinerman. Matemática Discreta: Uma Introdução. Thomson Learning


Edições, São Paulo, Brasil, 1 edition, 2006.

[4] William Stallings. Criptografia e segurança de redes: princı́pios e prı́ticas. Pearson


Education do Brasil, São Paulo, Brasil, 6 edition, 2015.

[5] M. S. de Alencar. Informação, Codificação e Segurança de Redes, volume 1. Elsevier,


Rio de Janeiro, Brasil, 1 edition, 2015.

[6] Fatoração de inteiros. https://pt.wikipedia.org/wiki/Fatora%C3%A7%C3%A3o_


de_inteiros. Accessed: 2019-06-26.

[7] Check our numbers: The math behind estimations to break a 2048-bit certificate.
https://www.digicert.com/TimeTravel/math.htm, . Accessed: 2019-06-30.

13

Você também pode gostar