Vous êtes sur la page 1sur 7

Universidade Estadual de Santa cruz

Departamento de Ciências Exatas


Matemática - Bacharelado
Teoria dos Números

Criptografia RSA

Anderson Michael Magalhães Silva, Gabriel França Santos,


Hellen Borba Pinheiro e Iohanna Tayla Silva Sena

Professora: Karina Kfouri Sartori

2019

1
Definições importantes

Número Primo
É chamado de número primo todo número x ∈ N que, ∀x ≥ 2 x possui apenas 1 e x como
divisores.

Número composto
Todo número não primo é composto.

Teorema fundamental da aritimética


Todo número composto positivo maior que 1 pode ser decomposto em fatores primos.

Função de Euler
A função ϕ de Euler é definida por ϕ : Z −→ N∗ em quê ϕ(n) e a quantidade de inteiros
positivos x onde x ≤ n e mds(x, n) = 1

Teorema de Euler
Se a > 1 e mdc(a, n) = 1 então aϕ(n) ≡ 1(modn).

2
Breve introdução ao RSA

A criptografia é um método de se codificar mensagens de modo que uma


mensagem escrita com clareza para o destinatário se torne incompreensível para outras
pessoas. Criptografia do tipo RSA, leva este nome devido aos seus inventores R. L. Rivest,
A. Shamir e L. Adleman em 1977, nesse trabalho abordaremos o método, com um
exemplo simples, e por fim demonstraremos matemáticamente o porquê do mesmo
funcionar (como funciona, e porquê funciona).
Com o RSA eu tenho duas chaves: uma pública e uma privada. A chave pública
eu posso distribuir para que qualquer pessoa poss usar para criptografar uma mensagem.
Entretanto, só é possível descriptografar a mensagem usando chave privada que só eu
possuo.
O RSA é todo fundamentado em Teoria dos números, e seu nível de segurança vem
da dificuldade de se dar a fatoração em primos de números absurdamente grandes, mas
vamos ver como realmente funciona esse método.

3
Usando o RSA

Bom, começamos definindo valores númericos para o texto que desejamos


criptografar, em nosso caso tomaremos o valor 0 para espaço vazio, e assim
diferenciarmos um valor dos demais, e valores de 1 a 23 para o alfabeto (embora não faça
nenhuma diferença na prática, estamos ignorando as letras "k","y"e "w"), o segundo passo
é escolher dois primos p e q distintos (quanto maior, mais seguro), assim temos pq = n
para algum n ∈ N; note que a escolha de p e q absurdamente grandes resulta em um n
absurdamente maior, sendo assim extremamente difícil determinar sua fatoração em
primos calculando, note também que nos valores de textos variam de 0 a 23, e portanto
precisamos que n seja extritamente maior que 24 (em noso caso) para garantirmos que
sejam x e y valores numéricos atribuídos a diferentes blocos de texto x 6≡ y(modn)∀x, y.
Com n em mãos podemos calcular sua ϕ(n), que como conhecemos sua fatoração, é dada
por (p − 1)(q − 1), a partir disso devemos escolher um número inteiro e qualquer de forma
que 1 < e < ϕ(n) e mdc(e, ϕ(n)) = 1, a este número e damos o nome de chave pública.
Agora com a chave pública temos tudo que é necessário para criptografar
mensagens, com um processo simples, mas que demanda muitas contas (nada que uma
calculadora não resolva). Pegamos o valor numérico do texto a ser encriptado, e aqui
chamaremos de a, e achamos a solução da seguinte equação modular:

ae ≡ b(modn)

Onde chamamos nossa mensagem encriptada de b, e pronto mensagem pronta para


ser encaminhada sem receio que alguém a intercepte.
Agora a segunda etapa desse processo, descriptografar a mensagem recebida, para
isso precisamos de um valor d que nomeamos de chave privada, esse valor nada mais é
que o inverso modular de e módulo ϕ(n), ou seja, d é a solução da equação modular:

de ≡ 1(modϕ(n))

Uma vez que temos o valor de d vamos fazer, praticamente, o mesmo processo para
encriptar a mensagem, mas agora usando os valores de b e d, ou seja,

bd ≡ x(modn)

Onde x é nosso texto descriptado,ou seja, x = a(?) não necessáriamente, mas


x ≡ a(modn), a seguir vamos demonstrar a funcionalidade desse método.

4
Porquê o método RSA funciona

Como vimos, o método RSA, se baseia em duas etapas, na primeira escolhemos um


n ∈ N onde n = pq com p e q primos(ou vice-versa), e um dado número e ∈ N 1 < e < ϕ(n)
de tal modo que mdc(e, ϕ(n)) = 1, a partir disso temos que, seja a o valor previamente
atribuído ao texto antes da mensagem ser codificada ae ≡ b(mod n) para algum b ∈ N onde
0 ≤ b < n, sendo que b é a mensagem codificada e pronta para ser enviada.
A segunda etapa ocorre quando a mensagem é recebida, aquele que a recebe usa
a chave privada (inverso de e módulo ϕ(n)) em b, que é a mensagem codificada, tomando d
como inverso modular de e temos que:

de ≡ 1(mod ϕ(n))

Sabemos que d existe pois o mdc(e, ϕ(n)) = 1


Faz-se então bd ≡ x(mod n) onde x é a mensagem descriptografada, ou seja, x deve
ter o mesmo valor que a para então conter o mesmo texto, logo para mostrarmos que o
método RSA vale sempre devemos mostrar que

x ≡ a(mod n)

Note que,

ae ≡ b(mod n) =⇒ (ae )d ≡ bd (mod n) =⇒ aed ≡ x(mod n)

portanto como aed ≡ x(mod n) basta mostrar que aed ≡ a(mod n) e estará provado
que o método sempre funciona.

Demonstração. Caso 1 mdc(a, p) 6= 1


Em outras palavras a pode ser escrito como multiplo de p, para algum δ ∈ Z, afinal p é
primo.

a = δp =⇒ a ≡ 0(mod p) =⇒ aed ≡ 0(mod p) =⇒ aed ≡ a(mod p)

Caso 2 mdc(a, p) = 1
Segue que de ≡ 1(mod ϕ(n)) =⇒ de = 1 + k(ϕ(n)) com k ∈ Z
E portanto:

aed = a1+kϕ(n) = a.akϕ(n)


Aplicando o teorema de Euler nós temos:

a.akϕ(n) ≡ a.1k (mod p) =⇒ aed ≡ a(mod p)

Portanto em ambos os casos aed ≡ a(mod p), de forma análoga aed ≡ a(mod q),
mas aqui mostraremos sem aplicar diretamente o Teorema de Euler (apenas como uma
curiosidade).

5
Caso 1 mdc(a, q) 6= 1
Em outras palavras a pode ser escrito como multiplo de q, para algum α ∈ Z, afinal q
é primo.

a = αq =⇒ a ≡ 0(mod q) =⇒ aed ≡ 0(mod q) =⇒ aed ≡ a(mod q)

Caso 2 mdc(a, q) = 1 Segue que: de = 1 + kϕ(n) = 1 + k((p − 1)(q − 1)), portanto:

aed = a1+k(p−1)(q−1) = a.ak(p−1)(q−1) = a.(a(q−1) )k(p−1)


Como q - a e q é primo, podemos aplicar o Pequeno Teorema de Fermat, assim temos:

a.(a(q−1) )k(p−1) ≡ a.1k(p−1) (mod q) =⇒ aed ≡ a(mod q)

Portanto em ambos os casos aed ≡ a(mod q)


E como vale para p e q, segue que:

aed ≡ a(mod q)
↔ aed ≡ a(mod mmc(p, q))
aed ≡ a(mod p)
Como p e q são primos temos que mmc(p, q) = pq = n, logo :

aed ≡ a(mod n)
e como 
aed ≡ a(mod n)
↔ a ≡ x(mod n)
aed ≡ x(mod n)

Exatemente como queríamos demonstrar

6
Bibliografia

COUTINHO, Severino Colier. Números inteiros e criptografia RSA. IMPA, 1997.


CAVALCANTE, André LB. Teoria dos números e criptografia. Revista Virtual, 2005.
DA SILVA, Wellerson Lopes; CHAVES, Lucas Monteiro. Criptografia RSA e o
Algoritmo Chinês do Resto. INFOCOMP Journal of Computer Science, v. 2, n. 1, p. 7-9,
2004.
OLIVEIRA, Fernando. Entendendo (de verdade) a criptografia RSA. 2012.
Disponível em:
<https://www.lambda3.com.br/2012/12/entendendo-de-verdade-a-criptografia-rsa/>.
Acesso em: 21 ago. 2019.

Vous aimerez peut-être aussi