Escolar Documentos
Profissional Documentos
Cultura Documentos
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
OUTROS
Follow
Tweetar
2
Share
Ol pessoal. No post anterior eu falei sobre como era o funcionamento do RSA e se vocno o
leu recomendo que d uma espiada nele antes de continuar lendo este aqui. Neste post eu vou
comear a mostrar a matemtica usada no RSA, por isto recomendo que voc peguem
umpapel, um lpis e uma calculadora
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
1/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
2. Escolhendo os primos
A estratgia para a escolha dos primos simples: quanto maior melhor. Para se ter uma ideia, a
RSA Data Security, que faz a padronizao do RSA, recomenda que se utilize chaves de 2048
bits (o que d um nmero com 617 dgitos!) se voc quiser garantir que sua chave no seja
quebrada at 2030. Para nosso exemplo vamos usar primos bem pequenos, que nossas
calculadoras conseguem processar. Os primos sero
p=17,q=41
n=p*q
n=17*41=697
Este n o tamanho do nosso conjunto. necessrio termos um conjunto nito de valores para
que possamos fazer o caminho inverso ao realizado para cifrar nossa mensagem. Podemos,
chamar nosso conjunto de Z697.
3. A funo totiente
Agora temos que calcular a funo totiente, ou (x) [pronuncia-se ] de Euler o
matemtico, no o lho do vento. O que faz esta funo? Eu diria que ela o cerne do
RSA, ela me diz a quantidade de co-primos de um numero que so menores que ele mesmo.
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
2/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
(x)=(p1)*(q1)
(n)=(p1)*(q1)
(697)=(171)*(411)
(697)=640
MDC(640,2)=2
MDC(640,3)=1
O nmero 3 atende aos requisitos, mas podemos continuar calculando e usar qualquer
co-primo que atenda os requisitos. Para este exemplo vamos usar o nmero 13.
Chavepblica=(n,e)
Chavepblica=(697,13)
Beleza! Descobrimos nossa chave pblica! No nosso exemplo ela ser os nmeros 697 e13.
5. Cifrando a mensagem
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
3/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
5. Cifrando a mensagem
Com a chave pblica em mos, bem simples cifrar uma mensagem. Mas antes temos que
fazer uma pausa e entender o que e como funciona a Aritmtica modular e vocs vo
perceber que no estou louco quando digo que 13 vezes 9 pode ser 7.
Diviso inteira
Pode parecer estranho, mas importante termos uma viso bem clara do que uma diviso
inteira para podermos realizar operaes modulares. Vejam:
Se y divide x, podemos dizer que
x:y=c
x=c*y+r
23:7=c
23=c*9+r
23=3*7+2
Esta de nio nos ajuda a perceber o que acontece quando o divisor maior que o
dividendo, por exemplo:
5:18=c
5=c*18+r
5=0*18+5
portanto
5:18=0
5mod18=5
Aritmtica modular
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
4/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
13*9=117
Ok, at agora nada de mais. Mas, e se eu tivesse um conjunto que fosse de 0 a 22?
Vamos chamar o nosso conjunto de Z22.
Z22={0,1,2,...,22}
Temos um problema, 117 no existe no conjunto Z22. Agora, dentro do conjunto Z22,
como fazemos aquela conta? Simples, s pensarmos que o nosso conjunto funciona como
um relgio. No relgio, depois das 12 que seu valor mximo ele volta para o 1.
Seguindo a lgica, no Z22 quando passarmos de 22 voltamos para o 0.Para realizarmos uma
multiplicao modular seguimos os seguintes passos:
1. Realizamos a multiplicao comum
13*9=117
117mod22=7
4^3mod22=4*4*4mod22
portanto
64mod22=20
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
5/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
Com estas de nies em mente, basta aplicar a seguinte frmula a cada letra:
c=m^emodn
onde e a chave pblica e m o valor numrico da letra. Adaptando para o nosso exemplo, ela
ca:
c=m^13mod697
Agora que j sabemos como, vamos cifrar uma mensagem? Este foi considerado o ano de Alan
Turing, pai da computao e grande criptolgo. Vamos cifrar seu nome:
T
19 ^ 13 mod 697
15
20 ^ 13 mod 697
692
17 ^ 13 mod 697
391
09 ^ 13 mod 697
501
13 ^ 13 mod 697
421
07 ^ 13 mod 697
176
15692391501421176
No prximo post vamos fazer o caminho oposto. Vamos calcular a chave privada e ver como
tornar um texto criptografado com nossa chave pblica legvel novamente. At semana que
vem!
Clique aqui para ler a parte III
Follow
Tweetar
2
Share
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
6/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
Relacionado:
CRIPTOGRAFIA
MATEMTICA
16Comentrios
RSA
SEGURANA
Lambda3
Recommend 2
Compartilhar
Entrar
OrdenarporMaisrecente
Jointhediscussion
Engnow 6mesesatrs
Muitobom!!!
Segueumexemplonaprtica!!!
http://g1.globo.com/Noticias/T...
Responder Compartilhar
francisco umanoatrs
ParabensFernando,materialbemlegal.Sumpequenodetalhequenalinha"23=c*9+r"
achoqocorretoseria"23=c*7+r",no?
Responder Compartilhar
CaioLorpa 2anosatrs
mtemquesermenorquen,n?
Responder Compartilhar
FernandoOliveira>CaioLorpa 2anosatrs
Porquepensaisto?Nomeparecequefaadiferenaseonmaiorqueom...
Responder Compartilhar
Evandro 2anosatrs
Umacorreo:oMDC(640,3)=3enoMDC(640,3)=1comomostrado.
Responder Compartilhar
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
7/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
FernandoOliveira>Evandro 2anosatrs
OiEvandro:)
OMDCentre640e3iguala1...dumaconferidanoWolfran:
https://www.wolframalpha.com/i...
Responder Compartilhar
Guedes 2anosatrs
tenhoaschavescriadas.precisoassinarumtextocomachaveprivadaedeseguidafazero
encodingparab64.comofaoistocomvbnet?
Responder Compartilhar
CaioLorpa>Guedes 2anosatrs
Talvezissoajude:http://www.macoratti.net/vb_cr...
Nofinalzinhoelefaladeassinatura.EledumexemplodeBlowfish,parecequenesse
exemploeleusab64,seissoforumproblematambmpodeajudar.
Responder Compartilhar
lucas 2anosatrs
ondeartigo?issoumemaranhadodecpias.
Responder Compartilhar
FernandoOliveira>lucas 2anosatrs
Noentendi...
Responder Compartilhar
RodrigoConceio 2anosatrs
Caraca,muitomuitobom!estoulendootutocompulsivamentexD
1
Responder Compartilhar
FernandoOliveira>RodrigoConceio 2anosatrs
Obrigado!
Responder Compartilhar
DouglasWEB 2anosatrs
OlPessoal,
Alguempoderiamedizeralgumas/umaaplicaoquefizesseusorealdacriptografiaRSA?
Grato!
Responder Compartilhar
Miguel 3anosatrs
@FernandoOliveiraFernando,tudobom?
EstouprecisandodeumalgoritmoquecriptografeumvalornoPythoneoabranoC#.
Tenteiencontrarcontedosobreissoenoachei.Jliseumaterial(muitobom)paratentar
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
8/9
21/03/2016
Entendendo(deverdade)acriptografiaRSAParteII|BlogsdaLambda3
Tenteiencontrarcontedosobreissoenoachei.Jliseumaterial(muitobom)paratentar
implementar,masestbastantedifcil.Vocpodemedarumaluz?
Obrigado.
Responder Compartilhar
JulianoMarcon 3anosatrs
Muitolegal!Estficandomuitoboaasrieemuitoexplicativo.Quemsabenopossafazer
umacontribuiocomaWikipediacomessecontedo?
1
Responder Compartilhar
FernandoOliveira>JulianoMarcon 3anosatrs
Valeu,Juliano!Eunotinhapensadonisto...quandoeuterminarasrievouvercomo
funcionaaediodaWikipdia.
Responder Compartilhar
http://blog.lambda3.com.br/2012/12/entendendodeverdadeacriptografiarsaparteii/
9/9