SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Universidade Federal De Minas
Gerais
Criptografia RSACriptografia RSA
Fundamentos De ÁlgebraFundamentos De Álgebra
Alexandre Elias Dos SantosAlexandre Elias Dos Santos
aleniac@ufmg.braleniac@ufmg.br
13 de Novembro de 201513 de Novembro de 2015
O Que É Criptografia?
● A criptografia, palavra de origem grega (kryptos,
escondido, gráphein, escrita), é o estudo dos
métodos de codificação de informação através do
uso de chaves que são utilizadas no processo.
● É a arte de embaralhar caracteres de uma
mensagem de forma que esta fique ilegível.
● A criptografia de chave pública, também conhecida
como criptografia de chaves assimétricas, é
baseada em algorítimos que requerem um par de
chaves: uma secreta (privada) e outra pública que
pode ser conhecida por todos.
Exemplo De Uso De Chaves
Assimétricas
Chave Privada
Chave Pública
1) O remetente solicita ao
destinatário uma chave para
codificar a informação.
Por sua vez, este gera um
par de chaves assimétricas.
2) A chave privada é mantida
em segredo e a pública é
enviada ao remetente.
3) O remetente usa a chave
pública para codificar a
mensagem e encaminha
esta ao destinatário.
4) O destinatário decodifica a
mensagem utilizando chave
privada e obtém a
informação.
Remetente Destinatário
Key
Criptografia RSA
● A criptografia RSA é o método de chave
pública mais utilizado no tráfego de dados na
internet, como por exemplo, em mensagens de
e-mail e compras online.
● Foi criada em 1978 pelos professores Ronald
Rivest, Adi Shamir e Leonard Adleman do
Instituto de Tecnologia de Massachusetts
(MIT).
● O RSA fundamenta-se na Teoria dos Números,
área clássica da matemática.
Método RSA
● O RSA basea-se na construção de um número
composto resultante de dois fatores primos grande, no
mínimo 100 dígitos.
● A segurança está na dificuldade de fatorar números
compostos essencialmente grandes em seus
componentes primos.
● Alguns teoremas importantes para a implementação
são:
➢ Teorema Fundamental da Aritmética;
➢ Teorema de Euler;
➢ Pequeno Teorema de Fermat;
➢ Algorítimo estendido de Euclides.
Passo Inicial
● O passo zero da codificação é gerar
aleatoriamente dois números primos
grandes p e q, obtendo, portanto, um
número composto n:
n = p x qn = p x q
● Utilizamos o exemplo dado por S. C.
Coutinho escolhendo p = 11 e q = 13 e,
portanto, n = 143.
Pré-codificação
● O primeiro passo é digitalizar os caracteres
utilizando-se uma tabela para conversão.
● Como exemplo, digitalizamos apenas
caracteres alfabéticos.
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
Tabela 1 - Caracteres alfabéticos codificados.
Pré-codificando Uma Mensagem
● Codificamos a mensagem Paraty é linda:
P A R A T Y E L I N D A
25 10 27 10 29 34 99 14 99 21 18 23 13 10
Note que o caractere espaço corresponte ao número 99.
Quebra Da Mensagem Em
Blocos
● Obtemos então um bloco único:
25251010272710102929343499991414999921211818232313131010
● O próximo passo é quebrar este código em blocos
menores que denotaremos por m, tal que 0 < m < n.
25 102 7 102 93 49 91 49 92 118 23 13 1025 102 7 102 93 49 91 49 92 118 23 13 10
Note que m não deve começar com 0. Isto evita
problemas na decodificação.
Criação Da Chave Pública E
Codificação
1) Uma vez obtido n = p x q, podemos calcular a função
totiente em n:
Φ(n) = (p - 1) x (q - 1)Φ(n) = (p - 1) x (q - 1)
= 10 x 12 = 120= 10 x 12 = 120
2) Para codificar um bloco m, precisamos do par de
chave (n,e), tal que e é primo e mdc (e,Φ(n)) = 1, ou
seja, e não divide Φ(n).
3) A codificação de um bloco m é obtida por:
C(m)C(m) ≡≡ mmee ≡ k≡ k mod n,mod n,
onde k é a forma reduzida de me módulo n.
Exemplo De Codificação De Um
Bloco
● Para este exemplo, consideramos e = 7.
● Logo, como exemplo, codificando o primeiro bloco
obtemos:
C(25)C(25) ≡≡ 252577 ≡ 64≡ 64 mod n,mod n,
em que 64 é a forma reduzida módulo n.
● Assim, temos que k = 64.
● Codificando a sequência de blocos da mensagem,
obtemos:
64 119 6 119 102 36 130 36 27 79 23 117 1064 119 6 119 102 36 130 36 27 79 23 117 10
Criação Da Chave Privada e
Decodificação
1)Primeiramente, calculamos o inverso de e módulo
Φ(n) denotado por d = e-1.
2)Computamos d aplicando o algorítimo estendido de
Euclides a Φ(n).
3)A decodificação de um bloco k , onde k = C(m), é
dada por:
D(k) ≡ kD(k) ≡ kdd ≡ m mod n,≡ m mod n,
onde m é a forma reduzida de kd módulo n.
● A chave de decodificação é o terno (p,q,d) que
deve ser mantida em sigilo.
Exemplo de Decodificação De
Um Bloco
● Para decodificar um bloco k com e = 7
calculamos e-1 mod Φ(n):
dd ≡ -17 ≡ 103 mod 120,≡ -17 ≡ 103 mod 120,
em que 103 é forma reduzida de e-1 mod 120.
● A partir do exemplo dado, calculamos
D(64):
D(64) ≡ D(C(25)) ≡ 64D(64) ≡ D(C(25)) ≡ 64103103
≡ 25 mod 143≡ 25 mod 143
Verificação Do Método
● Para garantir que o método de fato funciona, é
necessário mostrar que a decodificação do bloco
k resulta exatamente no original m, isto é, D(k) =
m.
● É suficiente mostrar que D(k) ≡ m mod n, pois
ambos estão no intervalo:
1 ≤ m ≤ (n-1),
note que m está imediatamente neste intervalo e k
é a forma reduzida em módulo n. Portanto, são
congruentes mod n se, e somente se, são iguais.
Demonstração
● Por definição de C(m) e D(k) temos:
D(k) ≡ D(C(m)) ≡ (mD(k) ≡ D(C(m)) ≡ (mee
))dd
≡ m≡ meded
mod n. (1)mod n. (1)
● Como ed ≡ 1 mod Φ(n), implica que:
ed = Φ(n)b + 1. (2)ed = Φ(n)b + 1. (2)
Note que e, d e Φ(n) são inteiros positivos
maiores do que 2, logo b>0.
● Substituindo (2) em (1) temos:
D(k) ≡ mD(k) ≡ mΦ(n)b + 1Φ(n)b + 1 ≡ mm≡ mmΦ(n)bΦ(n)b ≡ m(≡ m(mmΦ(n)Φ(n)))bb mod n. (3)mod n. (3)
Aplicando O Teorema De Euler
● A última expressão sugere aplicar o teorema de
Euler donde:
mmΦ(n)Φ(n) ≡ 1 mod n. (4)≡ 1 mod n. (4)
Consequentemente, bed ≡ b mod n. E, então, a
demonstração estaria encerrada.
● Mas ao aplicar este teorema (4), deve-se
considerar a hipótese de que o mdc(m,n) = 1.
● E, se de fato, esta condição deveria ser satisfeita
necessariamente para todo m, isto traria
dificuldade na codificação dos blocos.
Aplicando O Teorema de Fermat
● Alternativamente, substituímos Φ(n) pelo produto Φ(p)Φ(q),
temos em módulo p (e analogamente em módulo q):
D(k) ≡ m(mD(k) ≡ m(mΦ(n)Φ(n)
))bb
≡ m(m≡ m(mΦ(p)Φ(q)Φ(p)Φ(q)
))bb
≡≡ m(mm(mΦ(p)Φ(p)))Φ(q)bΦ(q)b ≡ m(≡ m(mm(p-1)(p-1)))(q-1)b(q-1)b
● Aqui podemos aplicar mp-1 ≡ 1 mod p do Teorema de Fermat
supondo que m não divide p.
● De fato, m só divide p se m ≡ 0 mod p, pois p é primo. Além
disso, m>0 e m<pq. Assim, esta congruência é facilmente
verificável.
● Logo, aplicamos este teorema e obtemos:
D(k) ≡ m(mD(k) ≡ m(m(p-1)(p-1)
))(q-1)b(q-1)b
≡ m1≡ m1(q-1)b(q-1)b
≡ m mod p≡ m mod p
Verificação Do Produto*
● Como pudemos ver, bed ≡ b mod p, assim como bed ≡ b
mod q.
● Dado que queremos mostrar que bed ≡ b mod n, então
devemos verificar a validade para o produto n = pq.
● De fato, bed ≡ b implica em p|(bed – b) e, analogamente,
q|(bed – b).
● Além disso, mdc(p,q) = 1. Logo, pq|(bed – b) e, portanto:
bbeded ≡ b mod n.≡ b mod n.
Como queríamos mostrar.
* Os primos p e q são naturais distintos e mdc(p,q) = 1. Seja Δ>0 um
número natural. Se p e q dividem Δ, então o produto pq divide Δ.
Segurança do RSA
Nº Dígitos Nº Operações Tempo
50 1,4 x 1010
3,9 horas
100 2,3 x 1015
74 anos
300 1,5 x 1029
4,9 x 1015
anos
500 1,3 x 1039
4,2 x 1025
anos
Tabela 2 – Número de operações e tempo necessário
para fatorar n utilizando-se computadores modernos.
● A segurança do RSA está na dificuldade de calcular d sem
conhecer Φ(n).
● Os primos p e q podem ser obtidos conhecendo-se a chave
(n,e) e Φ(n). Daí, a descoberta de um novo método de computar
Φ(n) tendo-se a chave pública seria equivalente a fatorar n.
● Acredita-se que quebrar a criptografia RSA é equivalente a
fatorar n.
Conclusão
● A criptografia RSA é um método seguro para o tráfico de
dados em meios públicos como a internet, desde que a
chave de decodificação seja mantida em segredo.
● A complexidade computacional é uma grande barreira para
fatorar n em seus fatores primos, contudo uma nova
geração de computadores pode romper esta dificuldade.
Isto tem levado a criação de novos métodos de
criptografia, a saber, a criptografia quântica.
● Um algorítimo eficiente para calcular Φ(n) utilizando-se a
chave pública implicaria numa forma eficiente de fatorar
um número composto n.
●
A Teoria dos Números é bem relevante em aplicações de
sistemas de criptografias.
Bibliografia
● COUTINHO S.C. (2011) Números Inteiros e Criptografia
RSA, Instituto de Matemática Pura e Aplicada.
● VIDIGAL A. e outros (2009) Fundamentos de Álgebra,
Universidade Federal de Minas Gerais.
● SILVA E.V.P (2006) Introdução a Criptografia RSA,
Universidade Estadual Paulista “Julio de Mesquita Filho”.
● http://www.mat.ufmg.br/~elaine/OBMEP/criptografia.pdf
● https://pt.wikipedia.org/wiki/RSA

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Prova Resolvida - Bombeiros/DF
Prova Resolvida - Bombeiros/DFProva Resolvida - Bombeiros/DF
Prova Resolvida - Bombeiros/DF
 
Dijkstra's Algorithm
Dijkstra's AlgorithmDijkstra's Algorithm
Dijkstra's Algorithm
 
Presentation one-gsm
Presentation one-gsmPresentation one-gsm
Presentation one-gsm
 
Aritmética modular
Aritmética modularAritmética modular
Aritmética modular
 
9.algoritma kriptografi klasik (bag 5)xx
9.algoritma kriptografi klasik (bag 5)xx9.algoritma kriptografi klasik (bag 5)xx
9.algoritma kriptografi klasik (bag 5)xx
 
Criptografia simétrica
Criptografia simétricaCriptografia simétrica
Criptografia simétrica
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Matrizes: abordagem histórica
Matrizes: abordagem históricaMatrizes: abordagem histórica
Matrizes: abordagem histórica
 
Solutions to online rsa factoring challenges
Solutions to online rsa factoring challengesSolutions to online rsa factoring challenges
Solutions to online rsa factoring challenges
 
Curiosidades sobre o número pi..
Curiosidades sobre o número pi..Curiosidades sobre o número pi..
Curiosidades sobre o número pi..
 
Exercicio de progresssao aritimetica
Exercicio de progresssao aritimeticaExercicio de progresssao aritimetica
Exercicio de progresssao aritimetica
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco Mínimo
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Chapter 1.ppt
Chapter 1.pptChapter 1.ppt
Chapter 1.ppt
 
My presentation minimum spanning tree
My presentation minimum spanning treeMy presentation minimum spanning tree
My presentation minimum spanning tree
 
Sistema de equações
Sistema de equaçõesSistema de equações
Sistema de equações
 
Rsa
RsaRsa
Rsa
 
Lista 1 - FUV - Resolução
Lista 1 - FUV - ResoluçãoLista 1 - FUV - Resolução
Lista 1 - FUV - Resolução
 
Teoria dos Conjuntos
Teoria dos Conjuntos   Teoria dos Conjuntos
Teoria dos Conjuntos
 
Tabela De Integrais
Tabela De IntegraisTabela De Integrais
Tabela De Integrais
 

Destaque

TUTORIAL PARA LA RESOLUCIÓN DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICA
TUTORIAL PARA LA RESOLUCIÓN  DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICATUTORIAL PARA LA RESOLUCIÓN  DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICA
TUTORIAL PARA LA RESOLUCIÓN DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICACarolina Vázquez
 
Fundamentos del algebra (2)
Fundamentos del algebra (2)Fundamentos del algebra (2)
Fundamentos del algebra (2)juegen18
 
Fundamentos de algebra básica parte 1
Fundamentos de algebra básica parte 1Fundamentos de algebra básica parte 1
Fundamentos de algebra básica parte 1Giannina Galeth
 
2016: Fundamentos Matemáticos para Inteligência Artificial
2016: Fundamentos Matemáticos para Inteligência Artificial2016: Fundamentos Matemáticos para Inteligência Artificial
2016: Fundamentos Matemáticos para Inteligência ArtificialLeandro de Castro
 
Presentación del curso funciones matemáticas
Presentación del curso funciones matemáticasPresentación del curso funciones matemáticas
Presentación del curso funciones matemáticasEdgar Mata
 

Destaque (6)

TUTORIAL PARA LA RESOLUCIÓN DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICA
TUTORIAL PARA LA RESOLUCIÓN  DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICATUTORIAL PARA LA RESOLUCIÓN  DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICA
TUTORIAL PARA LA RESOLUCIÓN DE ECUACIONES LINEALES UTILIZANDO LA INFORMÁTICA
 
Fundamentos del algebra (2)
Fundamentos del algebra (2)Fundamentos del algebra (2)
Fundamentos del algebra (2)
 
Ma418 2016 01_s1.1
Ma418 2016 01_s1.1Ma418 2016 01_s1.1
Ma418 2016 01_s1.1
 
Fundamentos de algebra básica parte 1
Fundamentos de algebra básica parte 1Fundamentos de algebra básica parte 1
Fundamentos de algebra básica parte 1
 
2016: Fundamentos Matemáticos para Inteligência Artificial
2016: Fundamentos Matemáticos para Inteligência Artificial2016: Fundamentos Matemáticos para Inteligência Artificial
2016: Fundamentos Matemáticos para Inteligência Artificial
 
Presentación del curso funciones matemáticas
Presentación del curso funciones matemáticasPresentación del curso funciones matemáticas
Presentación del curso funciones matemáticas
 

Semelhante a Criptografia RSA: Fundamentos e aplicação da criptografia de chaves públicas

Criptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoniCriptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetonidrbetoni
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografiafelipetsi
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfCaiqueMiranda7
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Diego Souza Silva
 
19 algoritmos de enumeracao
19   algoritmos de enumeracao19   algoritmos de enumeracao
19 algoritmos de enumeracaoRicardo Bolanho
 
Sessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidadeSessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidadePedro De Almeida
 
Md 4 sequenciae_inducaomatematica
Md 4 sequenciae_inducaomatematicaMd 4 sequenciae_inducaomatematica
Md 4 sequenciae_inducaomatematicaMauricio Wieler
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte CarloAngelo Polotto
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfSimoneSantos16595
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiaisRomulo Garcia
 
Formulas para numeros primos 1ed - eric campos bastos guedes
Formulas para numeros primos 1ed - eric campos bastos guedesFormulas para numeros primos 1ed - eric campos bastos guedes
Formulas para numeros primos 1ed - eric campos bastos guedesericbaymarketconectrio
 

Semelhante a Criptografia RSA: Fundamentos e aplicação da criptografia de chaves públicas (20)

Criptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoniCriptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoni
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografia
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 
Matemática – conjuntos numéricos 03 – 2014
Matemática – conjuntos numéricos 03 – 2014Matemática – conjuntos numéricos 03 – 2014
Matemática – conjuntos numéricos 03 – 2014
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
 
euclides primos
euclides primoseuclides primos
euclides primos
 
19 algoritmos de enumeracao
19   algoritmos de enumeracao19   algoritmos de enumeracao
19 algoritmos de enumeracao
 
Sessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidadeSessao 4 - Chaves espúrias e distância de unicidade
Sessao 4 - Chaves espúrias e distância de unicidade
 
Md 4 sequenciae_inducaomatematica
Md 4 sequenciae_inducaomatematicaMd 4 sequenciae_inducaomatematica
Md 4 sequenciae_inducaomatematica
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte Carlo
 
O teorema de cramér lundberg via martingais
O teorema de cramér lundberg via martingaisO teorema de cramér lundberg via martingais
O teorema de cramér lundberg via martingais
 
Floyd-Warshall
Floyd-WarshallFloyd-Warshall
Floyd-Warshall
 
Aes 25
Aes 25Aes 25
Aes 25
 
03 pid d
03 pid d03 pid d
03 pid d
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiais
 
Pequeno teorema de fermat
Pequeno teorema de fermatPequeno teorema de fermat
Pequeno teorema de fermat
 
Formulas para numeros primos 1ed - eric campos bastos guedes
Formulas para numeros primos 1ed - eric campos bastos guedesFormulas para numeros primos 1ed - eric campos bastos guedes
Formulas para numeros primos 1ed - eric campos bastos guedes
 

Criptografia RSA: Fundamentos e aplicação da criptografia de chaves públicas

  • 1. Universidade Federal De Minas Gerais Criptografia RSACriptografia RSA Fundamentos De ÁlgebraFundamentos De Álgebra Alexandre Elias Dos SantosAlexandre Elias Dos Santos aleniac@ufmg.braleniac@ufmg.br 13 de Novembro de 201513 de Novembro de 2015
  • 2. O Que É Criptografia? ● A criptografia, palavra de origem grega (kryptos, escondido, gráphein, escrita), é o estudo dos métodos de codificação de informação através do uso de chaves que são utilizadas no processo. ● É a arte de embaralhar caracteres de uma mensagem de forma que esta fique ilegível. ● A criptografia de chave pública, também conhecida como criptografia de chaves assimétricas, é baseada em algorítimos que requerem um par de chaves: uma secreta (privada) e outra pública que pode ser conhecida por todos.
  • 3. Exemplo De Uso De Chaves Assimétricas Chave Privada Chave Pública 1) O remetente solicita ao destinatário uma chave para codificar a informação. Por sua vez, este gera um par de chaves assimétricas. 2) A chave privada é mantida em segredo e a pública é enviada ao remetente. 3) O remetente usa a chave pública para codificar a mensagem e encaminha esta ao destinatário. 4) O destinatário decodifica a mensagem utilizando chave privada e obtém a informação. Remetente Destinatário Key
  • 4. Criptografia RSA ● A criptografia RSA é o método de chave pública mais utilizado no tráfego de dados na internet, como por exemplo, em mensagens de e-mail e compras online. ● Foi criada em 1978 pelos professores Ronald Rivest, Adi Shamir e Leonard Adleman do Instituto de Tecnologia de Massachusetts (MIT). ● O RSA fundamenta-se na Teoria dos Números, área clássica da matemática.
  • 5. Método RSA ● O RSA basea-se na construção de um número composto resultante de dois fatores primos grande, no mínimo 100 dígitos. ● A segurança está na dificuldade de fatorar números compostos essencialmente grandes em seus componentes primos. ● Alguns teoremas importantes para a implementação são: ➢ Teorema Fundamental da Aritmética; ➢ Teorema de Euler; ➢ Pequeno Teorema de Fermat; ➢ Algorítimo estendido de Euclides.
  • 6. Passo Inicial ● O passo zero da codificação é gerar aleatoriamente dois números primos grandes p e q, obtendo, portanto, um número composto n: n = p x qn = p x q ● Utilizamos o exemplo dado por S. C. Coutinho escolhendo p = 11 e q = 13 e, portanto, n = 143.
  • 7. Pré-codificação ● O primeiro passo é digitalizar os caracteres utilizando-se uma tabela para conversão. ● Como exemplo, digitalizamos apenas caracteres alfabéticos. 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 Tabela 1 - Caracteres alfabéticos codificados.
  • 8. Pré-codificando Uma Mensagem ● Codificamos a mensagem Paraty é linda: P A R A T Y E L I N D A 25 10 27 10 29 34 99 14 99 21 18 23 13 10 Note que o caractere espaço corresponte ao número 99.
  • 9. Quebra Da Mensagem Em Blocos ● Obtemos então um bloco único: 25251010272710102929343499991414999921211818232313131010 ● O próximo passo é quebrar este código em blocos menores que denotaremos por m, tal que 0 < m < n. 25 102 7 102 93 49 91 49 92 118 23 13 1025 102 7 102 93 49 91 49 92 118 23 13 10 Note que m não deve começar com 0. Isto evita problemas na decodificação.
  • 10. Criação Da Chave Pública E Codificação 1) Uma vez obtido n = p x q, podemos calcular a função totiente em n: Φ(n) = (p - 1) x (q - 1)Φ(n) = (p - 1) x (q - 1) = 10 x 12 = 120= 10 x 12 = 120 2) Para codificar um bloco m, precisamos do par de chave (n,e), tal que e é primo e mdc (e,Φ(n)) = 1, ou seja, e não divide Φ(n). 3) A codificação de um bloco m é obtida por: C(m)C(m) ≡≡ mmee ≡ k≡ k mod n,mod n, onde k é a forma reduzida de me módulo n.
  • 11. Exemplo De Codificação De Um Bloco ● Para este exemplo, consideramos e = 7. ● Logo, como exemplo, codificando o primeiro bloco obtemos: C(25)C(25) ≡≡ 252577 ≡ 64≡ 64 mod n,mod n, em que 64 é a forma reduzida módulo n. ● Assim, temos que k = 64. ● Codificando a sequência de blocos da mensagem, obtemos: 64 119 6 119 102 36 130 36 27 79 23 117 1064 119 6 119 102 36 130 36 27 79 23 117 10
  • 12. Criação Da Chave Privada e Decodificação 1)Primeiramente, calculamos o inverso de e módulo Φ(n) denotado por d = e-1. 2)Computamos d aplicando o algorítimo estendido de Euclides a Φ(n). 3)A decodificação de um bloco k , onde k = C(m), é dada por: D(k) ≡ kD(k) ≡ kdd ≡ m mod n,≡ m mod n, onde m é a forma reduzida de kd módulo n. ● A chave de decodificação é o terno (p,q,d) que deve ser mantida em sigilo.
  • 13. Exemplo de Decodificação De Um Bloco ● Para decodificar um bloco k com e = 7 calculamos e-1 mod Φ(n): dd ≡ -17 ≡ 103 mod 120,≡ -17 ≡ 103 mod 120, em que 103 é forma reduzida de e-1 mod 120. ● A partir do exemplo dado, calculamos D(64): D(64) ≡ D(C(25)) ≡ 64D(64) ≡ D(C(25)) ≡ 64103103 ≡ 25 mod 143≡ 25 mod 143
  • 14. Verificação Do Método ● Para garantir que o método de fato funciona, é necessário mostrar que a decodificação do bloco k resulta exatamente no original m, isto é, D(k) = m. ● É suficiente mostrar que D(k) ≡ m mod n, pois ambos estão no intervalo: 1 ≤ m ≤ (n-1), note que m está imediatamente neste intervalo e k é a forma reduzida em módulo n. Portanto, são congruentes mod n se, e somente se, são iguais.
  • 15. Demonstração ● Por definição de C(m) e D(k) temos: D(k) ≡ D(C(m)) ≡ (mD(k) ≡ D(C(m)) ≡ (mee ))dd ≡ m≡ meded mod n. (1)mod n. (1) ● Como ed ≡ 1 mod Φ(n), implica que: ed = Φ(n)b + 1. (2)ed = Φ(n)b + 1. (2) Note que e, d e Φ(n) são inteiros positivos maiores do que 2, logo b>0. ● Substituindo (2) em (1) temos: D(k) ≡ mD(k) ≡ mΦ(n)b + 1Φ(n)b + 1 ≡ mm≡ mmΦ(n)bΦ(n)b ≡ m(≡ m(mmΦ(n)Φ(n)))bb mod n. (3)mod n. (3)
  • 16. Aplicando O Teorema De Euler ● A última expressão sugere aplicar o teorema de Euler donde: mmΦ(n)Φ(n) ≡ 1 mod n. (4)≡ 1 mod n. (4) Consequentemente, bed ≡ b mod n. E, então, a demonstração estaria encerrada. ● Mas ao aplicar este teorema (4), deve-se considerar a hipótese de que o mdc(m,n) = 1. ● E, se de fato, esta condição deveria ser satisfeita necessariamente para todo m, isto traria dificuldade na codificação dos blocos.
  • 17. Aplicando O Teorema de Fermat ● Alternativamente, substituímos Φ(n) pelo produto Φ(p)Φ(q), temos em módulo p (e analogamente em módulo q): D(k) ≡ m(mD(k) ≡ m(mΦ(n)Φ(n) ))bb ≡ m(m≡ m(mΦ(p)Φ(q)Φ(p)Φ(q) ))bb ≡≡ m(mm(mΦ(p)Φ(p)))Φ(q)bΦ(q)b ≡ m(≡ m(mm(p-1)(p-1)))(q-1)b(q-1)b ● Aqui podemos aplicar mp-1 ≡ 1 mod p do Teorema de Fermat supondo que m não divide p. ● De fato, m só divide p se m ≡ 0 mod p, pois p é primo. Além disso, m>0 e m<pq. Assim, esta congruência é facilmente verificável. ● Logo, aplicamos este teorema e obtemos: D(k) ≡ m(mD(k) ≡ m(m(p-1)(p-1) ))(q-1)b(q-1)b ≡ m1≡ m1(q-1)b(q-1)b ≡ m mod p≡ m mod p
  • 18. Verificação Do Produto* ● Como pudemos ver, bed ≡ b mod p, assim como bed ≡ b mod q. ● Dado que queremos mostrar que bed ≡ b mod n, então devemos verificar a validade para o produto n = pq. ● De fato, bed ≡ b implica em p|(bed – b) e, analogamente, q|(bed – b). ● Além disso, mdc(p,q) = 1. Logo, pq|(bed – b) e, portanto: bbeded ≡ b mod n.≡ b mod n. Como queríamos mostrar. * Os primos p e q são naturais distintos e mdc(p,q) = 1. Seja Δ>0 um número natural. Se p e q dividem Δ, então o produto pq divide Δ.
  • 19. Segurança do RSA Nº Dígitos Nº Operações Tempo 50 1,4 x 1010 3,9 horas 100 2,3 x 1015 74 anos 300 1,5 x 1029 4,9 x 1015 anos 500 1,3 x 1039 4,2 x 1025 anos Tabela 2 – Número de operações e tempo necessário para fatorar n utilizando-se computadores modernos. ● A segurança do RSA está na dificuldade de calcular d sem conhecer Φ(n). ● Os primos p e q podem ser obtidos conhecendo-se a chave (n,e) e Φ(n). Daí, a descoberta de um novo método de computar Φ(n) tendo-se a chave pública seria equivalente a fatorar n. ● Acredita-se que quebrar a criptografia RSA é equivalente a fatorar n.
  • 20. Conclusão ● A criptografia RSA é um método seguro para o tráfico de dados em meios públicos como a internet, desde que a chave de decodificação seja mantida em segredo. ● A complexidade computacional é uma grande barreira para fatorar n em seus fatores primos, contudo uma nova geração de computadores pode romper esta dificuldade. Isto tem levado a criação de novos métodos de criptografia, a saber, a criptografia quântica. ● Um algorítimo eficiente para calcular Φ(n) utilizando-se a chave pública implicaria numa forma eficiente de fatorar um número composto n. ● A Teoria dos Números é bem relevante em aplicações de sistemas de criptografias.
  • 21. Bibliografia ● COUTINHO S.C. (2011) Números Inteiros e Criptografia RSA, Instituto de Matemática Pura e Aplicada. ● VIDIGAL A. e outros (2009) Fundamentos de Álgebra, Universidade Federal de Minas Gerais. ● SILVA E.V.P (2006) Introdução a Criptografia RSA, Universidade Estadual Paulista “Julio de Mesquita Filho”. ● http://www.mat.ufmg.br/~elaine/OBMEP/criptografia.pdf ● https://pt.wikipedia.org/wiki/RSA