Você está na página 1de 46

1

UNIVERSIDADE REGIONAL DE BLUMENAU - FURB


CENTRO DE CINCIAS TECNOLGICAS - CCT
ENGENHARIA DE TELECOMUNICAES





ERACLIS ANTNIO ANDRADE ALVES



A CRIPTOGRAFIA RSA E SUA IMPLEMENTAO














BLUMENAU
2013



2


ERACLIS ANTNIO ANDRADE ALVES











A CRIPTOGRAFIA RSA E SUA IMPLEMENTAO


Trabalho de concluso de curso do Curso de
Engenharia de telecomunica!es do Centro de
Ci"ncias Tecnol#gicas da $ni%ersidade Regional
de &lumenau

'ro() Ciro Andr* 'it+ , Orientador







BLUMENAU
2013



3


4

RESUMO
O ob-eti%o do .resente trabalho * a.resentar a im.lementao do m*todo da
cri.togra(ia assim*trica RSA no software /atlab) 0 mostrado o (uncionamento de tal
cri.togra(ia1 .articularidades e algumas das .oss2%eis estrat*gias de ata3ue 4 segurana de
redes) A .artir dessas estrat*gias de ata3ue1 * demonstrado no .resente trabalho o moti%o .elo
3ual o m*todo RSA * o mais utili+ado atualmente na segurana de redes)
Paa!"a# C$a!%#5 Segurana em redes1 Cri.togra(ia1 RSA1 /atlab)
















5

ABSTRACT
The .ur.ose o( this .a.er is to .resent the im.lementation o( the RSA as6mmetric
cr6.togra.h6 method in /atlab) It is sho7n the o.eration o( such cr6.togra.h61 .eculiarities
and some .ossible attac8 strategies to net7or8 securit6) 9rom these attac8 strategies1 is sho7n
in this .a.er 7h6 the RSA method is currentl6 the most 7idel6 used in net7or8 securit6)
&%'()"*#5 Net7or8 Securit6, cr6.togra.h61 RSA1 /atlab)



















6

SUMRIO
1 Introduo ....................................................................................................................................... 7
1.1 Objetivos ................................................................................................................................. 7
1.2 Estrutura do trabalho .............................................................................................................. 7
2 Coneitos sobre ri!to"ra#ia ........................................................................................................... $
2.1 %&a breve hist'ria da ri!to"ra#ia ......................................................................................... $
2.2 (un)es &ate&*tias ti!ia&ente utili+adas ....................................................................... 13
2.2.1 ,eore&a da #atorao -nia ......................................................................................... 13
2.2.2 . #uno /hi de Euler .................................................................................................... 14
2.2.3 Con"ru0nias ................................................................................................................. 14
2.2.4 Inverso &ulti!liativo .................................................................................................... 15
2.3 (inalidade da ri!to"ra#ia...................................................................................................... 15
2.4 ,i!os de ri!to"ra#ia.............................................................................................................. 16
2.4.1 Cri!to"ra#ia de have si&1tria .................................................................................... 16
2.4.2 Cri!to"ra#ia de have !-blia ........................................................................................ 12
3 . ri!to"ra#ia 34. .......................................................................................................................... 21
3.1 5ese&!enho 64 4e"urana................................................................................................... 24
3.2 .ta7ues ................................................................................................................................. 25
3.2.1 (atorao ....................................................................................................................... 25
3.2.2 (un)es unidireionais .................................................................................................. 26
4 I&!le&entao da ri!to"ra#ia 34. utili+ando o 8atlab ............................................................. 22
4.1 3esultados ............................................................................................................................. 39
5 Conluso ...................................................................................................................................... 33
6 3E(E3:;CI.4 ................................................................................................................................. 34
7 .;E<O4 ......................................................................................................................................... 35



7

1 INTRODUO
A cri.togra(ia * um assunto 3ue acom.anha o homem desde muito tem.o) A .artir do
momento 3ue se iniciou a comunicao 4 dist:ncia1 .ercebeu;se a necessidade de encontrar
(ormas .ara <ocultar= as mensagens de (orma 3ue no .udessem ser lidas .or outras .essoas
3ue no (ossem o destinat>rio dese->%el) A esteganogra(ia ?estudo da camu(lagem das
mensagens@ * .ercursora das t*cnicas da cri.togra(ia1 onde esta Altima .rocura tornar as
mensagens ileg2%eis .ara .essoas no autori+adas em %e+ de escond";las)
A cri.togra(ia se torna uma (erramenta muito im.ortante1 es.ecialmente 3uando
analisada na era da in(ormao digital em 3ue se %i%e1 onde diariamente circula milh!es de
dados na internet) Desta maneira * necess>rio garantir 3ue cada mensagem chegue ao seu
destinat>rio corres.ondente e 3ue no se-am interce.tadas .or inimigos1 ou se-a1 * .reciso
desen%ol%er t*cnicas 3ue (orneam essa .ri%acidade) 'ara a e%oluo e a.er(eioamento
dessas t*cnicas1 tanto cri.t#gra(os ?criadores de no%as cri.togra(ias@ 3uanto cri.toanalistas
?in%estigadores de (alhas nas cri.togra(ias@ se (a+em necess>rios)
1+1 O,-%./!)#
Neste conteBto1 a .ro.osta de tema .ara o trabalho de concluso de curso * a descrio
do m*todo RSA1 a.resentando suas .articularidades e reali+ando a im.lementao do
algoritmo em /atlab)
O estudo da cri.togra(ia assim*trica RSA1 * (eito e%idenciando os seguintes as.ectos5
As (un!es matem>ticas ti.icamente utili+adas
A descrio do m*todo
A sua im.lementao no software /atlab
A segurana .ro.orcionada
'oss2%eis .ontos de ata3ues
1+2 E#."0.0"a *) ."a,a$)
No ca.2tulo C do .resente trabalho1 ser> mostrada a e%oluo e a im.ort:ncia da
cri.togra(ia ao longo dos tem.os) Sero a.resentados os ti.os de cri.togra(ias mais usados
2

atualmente1 os modelos de cha%es sim*tricas e assim*tricas) 9alar;se;> da cri.togra(ia de
cha%es sim*tricas1 e como este contribui .ara o surgimento das cha%es assim*tricas)
D> no ca.2tulo subse3uente ser> (eito o a (undamentao te#rica do RSA) Sendo 3ue no
ca.2tulo E1 * mostrado como (oi (eita a im.lementao no software de simulao) Nesse
mesmo ca.2tulo a.resentam;se algumas caracter2sticas do m*todo)



















$

2 CONCEITOS SOBRE CRIPTOGRAFIA
'ara a com.reenso do trabalho e dos conteAdos subse3uentes1 * necess>rio o
conhecimento de alguns conceitos listados a seguir5
E12"/3.a45) 6 tornar a mensagem inintelig2%el .ara os 3ue no esto autori+ados a t";
la)
A7a,%.) #/83%# , o al(abeto usado .ara escre%er a mensagem original)
A7a,%.) %8 2/7"a , as letras 3ue substituem as do al(abeto sim.les no teBto ci(rado)
T%9.) #/83%# , a mensagem antes de ser encri.tada)
T%9.) %8 2/7"a , a mensagem de.ois de ser encri.tada)
D%2"/3.a45) , tornar clara uma mensagem codi(icada)
C"/3.)):/a 6 * o estudo da cri.togra(ia e cri.toan>lise)
C"/3.)a1;/#% 6 * o estudo de m*todos matem>ticas .ara tentar derrotar t*cnicas
cri.togr>(icas)

Obser%ao5 'or con%eno1 nesse trabalho1 as .ala%ras cri.tar eFou codi(icar (a+em
re(er"ncia ao .rocesso de encri.tao) Do mesmo modo1 as .ala%ras decodi(icar e decri.tar
a3ui assumem mesmo signi(icado)
2+1 U8a ,"%!% $/#.<"/a *a 2"/3.):"a7/a
A .ala%ra cri.togra(ia tem origem no grego1 onde cryptos signi(ica oculto1 secreto1
escondido e grafo signi(ica escrita1 gra(ia) Ela estuda os m*todos .ara codi(icar uma
mensagem de modo 3ue s# seu destinat>rio leg2timo consiga inter.ret>;la GHI) 0 a ci"ncia da
escrita secreta1 3ue comeou .ro%a%elmente .or %olta de CJJJ a)C no Egito1 onde hier#gli(os
eram usados .ara decorar os tAmulos dos (alecidos go%ernantes e reis) Esses hier#gli(os
conta%am a hist#ria da %ida do rei e .roclama%a as grandes obras de sua %ida) Eles eram
.ro.ositadamente enigm>ticos1 mas a.arentemente no .retendiam ocultar o teBto GCI)
Com o .assar do tem.o1 essa arte tornou;se cada %e+ mais com.licada e so(isticada1
tendo os seus grandes momentos es.ecialmente durante *.ocas de guerras militares K> muitas
.ersonalidades not>%eis 3ue .artici.aram da e%oluo da cri.togra(ia) 'or eBem.lo5 a DAlio
C*sar * creditada a criao de um dos .rimeiros sistemas de cri.togra(ia .ara en%iar
19

mensagens militares a seus generais GCI1 designado de <ci(ra de C*sar=) A ci(ra de C*sar
baseia;se num al(abeto de ci(ra 3ue a%ana um certo nAmero de lugares ?neste caso1 tr"s@
relati%amente ao al(abeto sim.les GLI5

Tabela C)H ; Ci(ra de C*sar a.licada a uma mensagem bre%e)
Alfabeto simples a b c d e f g h i j k l m n o p q r s t u v w x y z
Alfabeto de cifra D E F G ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5
Texto simples fujam todos
Texto em cifra !0%D( /*G*.

Esse a%ano do al(abeto de ci(ra em relao ao al(abeto sim.les * conhecido tamb*m
como <deslocao de C*sar=) Na Tabela C)H1 essa deslocao seria de tr"s1 .ois o al(abeto de
ci(ra a%ana tr"s lugares em relao ao sim.les) No caso geral este ti.o de ci(ra * chamado
<ci(ra de substituio monoal(ab*tica=1 dado 3ue usa%a a.enas um al(abeto de ci(ra) Durante
s*culos1 a ci(ra de substituio monoal(ab*tica (oi su(iciente .ara garantir sigilo) O
desen%ol%imento subse3uente da an>lise de (re3u"ncias destruiu a sua segurana)
'osteriormente1 surgiu uma classe de ci(ra conhecida como .olial(ab*tica1 3ue
.ro.unha a utili+ao de dois ou mais al(abetos de ci(ra ?sendo estes com desloca!es de
C*sar di(erentes entre si@ e a altern:ncia entre um e outro durante a codi(icao) A grande
%antagem da ci(ra .olial(ab*tica * 3ue a mesma letra do teBto sim.les no a.arece
necessariamente como a mesma letra no teBto em ci(ra) Tamb*m era muito mais com.licada
de usar) A.esar deste es(oro adicional eBigido .ara im.lement>;la1 ela era muito e(ica+ e
tamb*m ha%ia um outro (ator 3ue encora-a%a o uso de uma (orma de cri.tao segura5 o
desen%ol%imento do tel*gra(o1 HMEE1 e a necessidade de .roteger os telegramas da interce.o
e deci(rao) Embora tenha conseguido resistir bastante tem.o sem soluo1 Charles &abage e
9riedrich Nasis8i acabariam .or resol%er todas as ci(ras .olial(ab*ticas) Assim sendo1 no (inal
do s*c) OIO1 os cri.t#gra(os anda%am 4 .rocura de uma ci(ra no%a1 de algo 3ue restabelecesse
a comunicao secreta1 .ermitindo eB.lorar a imediaticidade do tel*gra(o sem 3ue as
comunica!es (ossem roubadas ou deci(radas) Al*m disso1 na %irada do s*culo OIO1 o (2sico
italiano Puglielmo /arconi tinha in%entado a r>dio) O sistema de /arconi1 tinha grande
%antagem em relao ao tel*gra(o1 .ois no .recisa%a de (ios .ara estabelecer uma
11

comunicao) 'ossibilita%a uma (acilidade de comunicao1 como tamb*m uma (acilidade de
interce.o) Em con-unto1 o ad%ento da r>dio e o comeo da .rimeira guerra mundial
intensi(icaram a necessidade de uma cri.tao e(ica+)
Embora a cri.togra(ia (oi utili+ada durante a 'rimeira Puerra /undial1 uma das
m>3uinas mais not>%eis (oram em.regadas durante a Segunda Puerra /undial) Nessa *.oca
comearia o 3ue (oi chamado de mecani+ao do sigilo) A (im de re(orarem as suas ci(ras1 os
cri.t#gra(os (oram (orados a abandonar a sua abordagem do sigilo com .a.el e l>.is e a
eB.lorar a tecnologia mais recente .ara codi(icar mensagens GLI) E uma das grandes
reali+a!es da cri.togra(ia (oi (eito .elo in%entor alemo Arthur Scherbius 3ue desen%ol%eu
uma .ea de ma3uinaria cri.togr>(ica designada de Enigma1 uma m>3uina de ci(ra baseada
em ci(radores rotati%os1 3ue .ode ser %isto nas (iguras C)H e C)C)
9igura C)H) />3uina Enigma)

9onte5 GLI1 .>g) HEQ)

12

9igura C)C; Desenho do Enigma com L ci(radores e H re(letor 3ue en%ia a corrente .ara tr>s atra%*s dos
ci(radores) Nesta regulao .articular1 digitar b acaba .or iluminar D no .ainel de l:m.adas)

9onte5 GLI1 .>g) HLR)

O Enigma (oi muito usado durante a segunda guerra mundial1 .elos Alemes .ara
comunicao no cam.o de batalha) 'ara codi(icar uma mensagem1 .rimeiro eram escolhidas
as orienta!es dos ci(radores ?essa era a cha%e@1 em seguida atra%*s do teclado era digitada a
res.ecti%a mensagem 3ue se 3ueria en%iar) 'ara cada letra digitada1 no .ainel de l:m.adas era
mostrada a letra ci(rada corres.ondente) 'or*m1 o seu algoritmo (oi <3uebrado= nesse mesmo
.er2odo) Na %erdade1 um dos .rimeiros com.utadores (oi criado .ara deci(rar as mensagens
secretas estabelecidas .elo eB*rcito alemo durante a Segunda Puerra /undial) $m .ro-eto
(oi desen%ol%ido na *.oca em &letchle6 'ar81 Inglaterra1 .ara tentar deci(rar o c#digo alemo)
$m dos res.ons>%eis .or este .ro-eto era Alan Turing1 o ideali+ador da m>3uina de Turing)
Era uma m>3uina 3ue .rocura%a automaticamente as regula!es corretas dos ci(radores)
Como conse3u"ncia deste .ro-eto (oi constru2do um dos .recursores do com.utador1 o
Colossus) GLI
Com o desen%ol%imento subse3uente do com.utador .rogram>%el1 os cri.t#gra(os
comearam a eB.lorar o .oder dos com.utadores com %ista a criarem ci(ras cada %e+ mais
com.leBas) Entretanto a cri.tao .or meio de com.utador esta%a limitada 43ueles 3ue o
.ossu2ssem1 3ue de in2cio signi(ica%a o go%erno e os militares) 'or*m1 graas a um s*rie de
descobertas como1 a in%eno do trans2stor ?HRES@1 circuito integrado ?HRQR@1 anunciaram uma
no%a era no dom2nio da in(orm>tica) A .roli(erao dos com.utadores e sistemas de
13

comunicao criou uma grande demanda do sector .ri%ado .rocurando1 na Cri.togra(ia1
meios .ara .roteger a in(ormao na (orma digital e (ornecer ser%ios de segurana)
'or conseguinte na d*cada de TJ1 o Dr) Korst 9eistel estabeleceu o .recursor do DES
?Data Encription Standart@ com sua (am2lia de ci(ras1 as <ci(ras de 9eistel=1 en3uanto
trabalha%a no Laborat#rio de 'es3uisa Uatson da I&/) Em HRTS1 a Ag"ncia de Segurana
Nacional ?NSA@ trabalhou com as ci(ras de 9eistel estabelecendo1 o 3ue ho-e * conhecido
como DES ?(oi o .rimeiro modelo de cri.togra(ia sim*trica na *.oca moderna@) Do mesmo
modo em HRTS1 dois contem.or:neos de 9eistel1 Uhit(ield Di((ie e /artin Kellman
introdu+iram .ela .rimeira %e+ a id*ia de cri.togra(ia de cha%e .Ablica em uma .ublicao
intitulada VNew Directions in Cryptography= GEI) Uhit(ield e /artin ha%iam engendrado uma
no%a (orma de ci(rar as mensagens1 chamada de cri.togra(ia assim*trica ou de cha%e .Ablica)
No c#digo usado .or DAlio C*sar1 se %oc" sabe codi(icar1 ento tamb*m sabe decodi(icar) No
entanto1 na cri.togra(ia assim*trica saber codi(icar no im.lica saber decodi(icar) Isto .arece
im.oss2%el5 se sei codi(icar1 .ara decodi(icar basta des(a+er o 3ue (i+) Nos ca.2tulos seguintes
ser> %isto 3ue <des(a+er= o .rocesso de decodi(icao .ode no ser to sim.les 3uanto .arece
GHI)
A.esar de terem concebido a ideia de cha%e .Ablica1 no tinham um eBem.lo es.ec2(ico 4s
suas dis.osi!es) Toda%ia1 em HRTM tr"s .es3uisadores do /IT1 Ronald Ri%est1 Adi Shamir e
Leonard Adleman1 .ublicaram um artigo1 aonde mostraram o 3ue %iria ser a .rimeira ci(ra
assim*trica1 o RSA)
2+2 F014=%# 8a.%8;./2a# ./3/2a8%1.% 0.//>a*a#
O .rinci.al .r*;re3uisito .ara o entendimento dos ca.2tulos .osteriores * uma
(amiliari+ao com alguns conceitos matem>ticos) A ideia * a.resentar tais conceitos nas suas
(ormas mais sim.les1 no tratando a3ui de .ro%ar 3uais3uer umas delas matematicamente)
Entretanto se o leitor 3uiser saber mais sobre o assunto1 h> algumas re(er"ncias no trabalho)
2+2+1 T%)"%8a *a 7a.)"a45) ?1/2a
9atorao * decom.or inteiros em nAmeros .rimos) $m nAmero inteiro p * .rimo se
p _1 e os Anicos di%isores de p so _1 e p) 'ortanto C1 L1 Q1 e ;T so .rimos1 mas EQ W QXR
no * .rimo) $m nAmero inteiro1 di(erente de _11 3ue no * .rimo * chamado de com.osto)
Logo EQ * com.osto)
14

Teorema da (atorao Anica) Dado um inteiro .ositi%o nC .odemos sem.re escre%";
lo1 de modo Anico1 na (orma5
n = p
1
c
1
p
2
c
2
p
k
c
k
1 @2+1A
onde 1 < p
1
< p
2
< p
3
< < p
k
so nAmeros .rimos e c
1,
c
2
, . , c
k
so inteiros
.ositi%os GHI)
EBem.lo5
4S = S 9
4S = S
1
S
2
1 onde L e Q so nAmeros .rimos e C e H so inteiros .ositi%os)

2+2+2 A 70145) P$/ *% E0%"
A (uno 'hi ?(n)) .ara todo n H denota o nAmero de inteiros .ositi%os 3ue no
eBcedem n e 3ue so co;.rimos a n) Dois nAmeros inteiros so ditos co;.rimos 3uando o
m>Bimo di%isor comum ?m)d)c@ entre eles * igual a H)
EBem.lo5 (6) = 21 signi(ica 3ue h> dois nAmeros co;.rimos a S1 isto *1 o m)d)c com S *
igual a H)
H e S ; m)d)c ?H1 S@ WH) So co;.rimos 1 logo H * um dos dois nAmeros)
C e S ; m)d)c ?C1 S@ WC) No so co;.rimos1 logo C no * um dos nAmeros)
L e S ; m)d)c ?L1 S@ WL) No so co;.rimos1 logo L no * um dos nAmeros)
E e S ; m)d)c ?E1 S@ WC) No so co;.rimos1 logo E no * um dos nAmeros)
Q e S ; m)d)c ?Q1 S@ WH) So co;.rimos1 logo Q * o outro nAmero)

2+2+3 C)1:"0B12/a#
De(inio5 Se-a m um nAmero natural) Dois inteiros a e b di+em;se congruentes
m#dulo m se ti%erem o mesmo resto na di%iso .or m =1>. Essa notao * re.resentada .ela
e3uao ?C)C@?
o b (mou m) (2.2)
@ A o mou b (2.3)
Sendo 3ue a e3uao ?C)L@ retorna o resto da di%iso de o .or b
'or eBem.lo5 1S 18 (mou S)
15

%sando a e7uao B2.3C #ia?
13 mou 5 A L1 e HM mou Q W L1 como o resto das duas di%is!es so iguais1 isso signi(ica 3ue1
HL e HM so congruentes m#dulo Q)
2+2+C I1!%"#) 80./3/2a./!)
O in%erso multi.licati%o de a modulo n * um inteiro x < n de maneira 3ue a e3uao
?C)E@1 se-a5
ox 1 (mou n) @2+CA
ox mou n = 1 @2+DA
A e3uao ?C)E@ .ode ser sim.li(icada na e3uao ?C)Q@) Se o x eBistir1 ele * Anico1 e a * dito
in%ert2%el) O in%erso de a * denotado de o
-1
1 deste modo x = o
-1
(mou n) GQI)
EBem.lo5 4x 1 (mou 9)1 .ode;se di+er 3ue x W T * o in%erso multi.licati%o de E1 uma %e+
3ue (4 7)mou 9 = 1)

2+3 F/1a/*a*% *a 2"/3.):"a7/a
A cri.togra(ia se tornou essencial .ara garantir a .ri%acidade das comunica!es no
mundo atual1 .rinci.almente em redes de com.utadores .Ablicas como a internet1 .or onde
circulam dados .essoais1 comerciais1 banc>rios e outros)
Em uma situao t2.ica onde a cri.togra(ia * usada1 duas .artes ?O e Y@ se comunicam
atra%*s de um canal inseguro) O e Y 3uerem garantir 3ue a comunicao estabelecida entre
eles se-a incom.reens2%el .or 3ual3uer .essoa 3ue .ossa estar ou%indo) Al*m disso1 como O e
Y esto em locais remotos1 O de%e ter certe+a de 3ue as in(orma!es 3ue recebe do Y no
tenham sido modi(icadas .or 3ual3uer .essoa durante a transmisso) Adicionalmente1 ela
de%e ter certe+a de 3ue a in(ormao realmente se origina a .artir de Y e no algu*m
.ersoni(icando Y GSI) A cri.togra(ia * usada .ara alcanar os seguintes ob-eti%os5
C)17/*%12/a/*a*%5 * um ser%io usado .ara manter o conteAdo de in(ormao
inintelig2%el ?.ermanea .ri%ado@ a todos1 eBceto a3ueles autori+ados a t";lo)
I1.%:"/*a*% *)# *a*)#5 * um ser%io 3ue aborda a alterao no autori+ada de dados)
16

A0.%1./2a45)5 * um ser%io relacionado 4 identi(icao) Esta (uno se a.lica a ambas
as entidades ?.artes en%ol%idas na comunicao@)
N5) "%30*/a45)E * um ser%io 3ue e%ita uma entidade de negar com.romissos ou
a!es anteriores) 'or eBem.lo1 uma entidade .ode autori+ar a a3uisio de uma
.ro.riedade ?um bem@ .or outra entidade e1 .osteriormente1 negar 3ue tal autori+ao
(oi concedida) $m .rocedimento 3ue en%ol%e uma terceira .arte con(i>%el * necess>rio
.ara resol%er a dis.uta.
O ob-eti%o (undamental da cri.togra(ia * tratar ade3uadamente essas 3uatro >reas1
tanto na teoria 3uanto na .r>tica) Cri.togra(ia * sobre a .re%eno e deteco de (raudes GQI)
2+C T/3)# *% 2"/3.):"a7/a
T*cnicas de cri.togra(ia so geralmente di%ididos em dois ti.os gen*ricos5
Cri.togra(ia de cha%e secreta 3ue tamb*m * conhecido como cri.togra(ia de cha%e
sim*tricaZ
Cri.togra(ia de cha%e .Ablica 3ue tamb*m * conhecido como cri.togra(ia de cha%e
assim*tricaZ

'ara o entendimento da seo seguinte1 torna;se necess>rio 4 com.reenso das
seguintes simbologias5
E
x
(m) = c : Encri.tao da mensagem m1 usando a cha%e x1 originando o teBto ci(rado c

(c) = m ? Decri.tao do teBto ci(rado c1 usando a cha%e y1 obtendo a mensagem m.



2+C+1 C"/3.):"a7/a *% 2$a!% #/8F."/2a
Na cri.togra(ia de cha%e sim*trica1 uma Anica cha%e * usada1 tanto na encri.tao e
decri.tao) Como ser> mostrado na (igura abaiBo1 o remetente utili+a a cha%e .ara codi(icar
o teBto sim.les e en%ia a mensagem ci(rada .ara o rece.tor) O destinat>rio a.lica a mesma
cha%e .ara decodi(icar a mensagem e recu.erar o teBto sim.les) Como uma Anica cha%e *
usada .ara ambas a (un!es ?codi(icao e decodi(icao@1 a cri.togra(ia de cha%e secreta *
tamb*m chamada de cri.togra(ia sim*trica) Com esta (orma de cri.togra(ia1 * #b%io 3ue a
17

cha%e de%e ser do conhecimento tanto do remetente como do rece.tor1 na %erdade esse * o
segredo GSI) A (igura C)L ilustra o conceito de cha%e sim*trica)

9igura C)L ; Encri.tao usando cha%e Sim*trica)
9onteE GQI1 .>g) HS)

Isso resulta em uma situao bastante .aradoBal5 Antes de usar este m*todo .ara
comunicar um segredo ?uma mensagem cri.togra(ada@1 um outro segredo de%e ser
comunicado com anteced"ncia5 a cha%e) A maior di(iculdade com esta abordagem * a
distribuio da cha%e1 isto *1 de sem.re ter 3ue trocar cha%es1 garantindo 3ue elas no se-am
interce.tadas .or terceirosFad%ers>rios) Esta limitao das cha%es sim*tricas acabou .or
im.ulsionar o surgimento das cha%es assim*tricas1 cu-a ideia era de criar um no%o ti.o de
cri.togra(ia1 onde a cha%e utili+ada .ara a decri.tao1 no .recisasse ser trocada)
EBem.los de cha%es sim*tricas5 DES1 RCC1 RCE1 IDEA ?International Data Encryption
Algorithm@)
12

Va1.a:%1#E
As cha%es so relati%amente curtasZ
Cha%es sim*tricas .odem ser .ro-etadas .ara ter altas taBas de trans(er"ncia de dados)

D%#!a1.a:%1#E
Numa comunicao entre duas .artes1 a cha%e de%e .ermanecer em segredo em ambos
os ladosZ
Numa rede grande1 eBistem muitos .ares de cha%es a serem gerenciadosZ
Em uma comunicao de duas .artes entre as entidades O e Y1 4s %e+es * necess>rio
3ue a cha%e se-a alterada (re3uentemente e1 tal%e+1 .ara cada sesso de comunicao)

2+C+2 C"/3.):"a7/a *% 2$a!% 3?,/2a
Num sistema de cha%e assim*trico1 como o .r#.rio nome sugere1 as cha%es de
codi(icao e de decodi(icao no so id"nticas) O destinat>rio ?.essoa 3ue 3uer receber a
mensagem encri.tada@ gera dois .ares de cha%es di(erentes1 uma .Ablica e a outra .ri%ada) A
cha%e .ri%ada no .ode ser com.artilhada com ningu*m) O .ro.riet>rio da cha%e .ri%ada *
res.ons>%el .ela segurana dela1 de tal modo 3ue ela no se-a .erdido ou com.rometido) 'or
outro lado1 a cha%e .Ablica * a.enas isso1 .Ablica) Cri.togra(ia de cha%e .Ablica .retende 3ue
a cha%e .Ablica se-a acess2%el a todos os usu>rios) Na %erdade1 isso * o 3ue torna o sistema
(orte) Se uma .essoa .ode acessar cha%e .Ablica de 3ual3uer um com (acilidade1 geralmente
atra%*s de algum ti.o de ser%io de diret#rio1 em seguida1 as duas .artes .odem se comunicar
de (orma segura e com .ouco es(oro1 ou se-a1 sem um .r*%io acordo de distribuio de
cha%es GSI) A (igura C)E descre%e a cri.togra(ia de cha%e .Ablica5

1$

9igura C)E ; Encri.tao usando cha%e Assim*trica)

9onte5 GQI1 .>g) CS)

Vale (risar 3ue na (igura C)E1 o ad%ers>rio * .assi%o1 ele s# * ca.a+ de ler as
in(orma!es de um canal inseguro1 ento tanto a distribuio da cha%e .Ablica ?e@1 como a
mensagem codi(icada ?c@1 atra%*s de um canal inseguro .ode ser (eita1 sem com.rometer o
conteAdo da mensagem) Caso o ad%ers>rio (osse ati%o ?a3uele 3ue tamb*m .ode transmitir1
alterar ou eBcluir in(orma!es em um canal inseguro@1 seria necess>rio a autenticao das
cha%es .Ablicas1 %eri(icando assim a %erdadeira origem das mesmas) Alice de%e ser
con%encida de 3ue ela est> codi(icando as mensagens com a cha%e .Ablica leg2tima de &ob1 e
no de algu*m se .assando .or &ob)
EBem.los de cha%es assim*tricas5 RSA1 ElGamal1 Rabin1 ECC ?Elliptic curve cryptography@)
Va1.a:%1#E
Somente a cha%e .ri%ada de%e ser mantida em segredoZ
29

De.endendo do modo de utili+ao1 um .ar de cha%es .AblicaF.ri%ada .ode
.ermanecer inalterado .or .er2odos de tem.o consider>%eisZ
Numa rede grande1 o nAmero de cha%es necess>rias .ode ser considera%elmente menor
do 3ue no cen>rio de cha%e sim*trica)
D%#!a1.a:%1#E
TaBas de trans(er"ncia .ara os m*todos de cri.togra(ia de cha%e .Ablica mais
.o.ulares so de di%ersas ordens de %alor mais lento do 3ue os mais conhecidos
es3uemas de cha%e sim*tricaD
Tamanho das cha%es so normalmente muito maiores do 3ue a3ueles re3ueridos .ara a
cri.togra(ia de cha%e sim*trica
H
)

Cri.togra(ia de cha%e sim*trica e de cha%e .Ablica tem uma s*rie de %antagens
com.lementares) Sistemas cri.togr>(icos atuais eB.loram os .ontos (ortes de cada um)
T*cnicas de cri.togra(ia de cha%e .Ablica .odem ser usadas .ara estabelecer uma cha%e .ara
o sistema de cha%e sim*trica1 sendo utili+ado .or entidades O e Y na comunicao) Neste
cen>rio1 O e Y .odem a.ro%eitar a nature+a de longo .ra+o das cha%es do es3uema de cha%e
.Ablica e a e(ici"ncia de desem.enho do sistema de cha%e sim*trica
C
GQI)






1
.s haves !rivadas dos siste&as de have !-blia deve& ser "randes B1924 bits no aso de 34.C j* as haves
seretas e& siste&as de have si&1tria B64 ou 122 bitsC.
2
.t1 o &o&ento, o dese&!enho o&!utaional Bn-&ero de bitsEse"undosC de ri!to"ra#ia de have !-blia 1
in#erior F da ri!to"ra#ia de have si&1tria.
21

3 A CRIPTOGRAFIA RSA
Atualmente1 o sistema de cha%e .Ablica mais conhecido e utili+ado * o RSA GTI1 3ue
(oi .ro.osto .ela .rimeira %e+ no artigo VA method for otaining digital signatures and
pulic!"ey cryptosystemsV .or Ri%est et al em HRTM) O nome do m*todo se de%e 4s inicias dos
criadores1 Ronald Ri%est1 Adi Shamir e Leonard Adleman) 0 um sistema com base na teoria
dos nAmeros1 3ue .ode ser usado tanto .ara (ornecer o sigilo como assinaturas digitais
L
) De
acordo com GMI o es3uema do RSA * a seguinte5
G%"a45) *a# 2$a!%#E
So gerados dois nAmeros .rimos grandes
E
1 secretos e rand[micos p e #
a.roBimadamente do mesmo tamanho

Calcular o n de acordo com a e3uao ?L)H@

n = p q @3+1A

Calcular o (n) con(orme a e3uao ?L)C@

(n) = (p - 1) (q - 1) @3+2A

Selecionar um inteiro rand[mico c1 H \ c < (n) onde m)d)c)?c, (n)@ WHGAneBo &IZ

Com.utar o %alor do J |Anexo A], H \ J < (n)1 segundo a e3uao ?L)L@

c J 1 mou (n) @3+3A

A.#s a gerao das cha%es .ela entidade O1 a mesma determina as cha%es .Ablicas e
.ri%adas) O .ar ?J, n@ so as cha%es .ri%adas) En3uanto o .ar ?c, n@ as cha%es
.Ablicas)

E12"/3.a45)
A entidade Y ir> codi(icar uma mensagem .ara a entidade O1 3ue ser> descodi(icada .ela
entidade O.
Entidade Y de%e (a+er o seguinte5

3
/ara &ais in#or&a)es sobre o uso do &1todo !ara assinaturas di"itais, ver GRI
4
;as a!lia)es !r*tias entendeGse o&o u& &Hni&o de se"urana sendo ada u& dos n-&eros o& 512
bits.

22

Obter a cha%e .Ablica da entidade O)
Re.resentar a mensagem m como um inteiro no inter%alo de GJ] n - 1I
Com.utar a e3uao ?L)E@
C = m
c
mod n @3+CA
En%iar o teBto codi(icado C .ara a entidade O
D%2"/3.a45)
'ara recu.erar a mensagem original m do teBto ci(rado C1 a entidade O de%e (a+er o seguinte5
Obter o teBto ci(rado C da entidade Y
Recu.erar a mensagem utili+ando as cha%es .ri%adas ?d e n@ .re%iamente geradas
a.licando;se a e3uao ?L)Q@
m = c
d
mod n @3+DA
Antes de (a+er a codi(icao RSA1 * (eita uma .r*;codi(icao1 onde se con%erte as
letras em nAmeros usando uma tabela de con%erso) $m eBem.lo .ode ser %isto na tabela L)H5

Tabela L)H ; 'r*;codi(icao


O es.ao entre duas .ala%ras ser> substitu2do .elo nAmero RR1 3uando (or (eita a con%erso)
'or eBem.lo1 se a mensagem a ser transmitida (or mulher na noite1 ela ser> con%ertida nessa
se3u"ncia num*rica1 a 3ual ser> designada de se3u"ncia H5
CCLJCHHTHECTRRCLHJRRCLCEHMCRHE @S%G0B12/a 1A
Se (or escolhido um p = 17 e q = 19, segundo a e3uao ?L)H@1 n = S2S.
Conse3uentemente1 a se3u"ncia H de%e ser 3uebrada em blocos
Q
menores 3ue LCL1 sendo estes

5
5eveGse evitar 7ue o bloo o&ee !or +ero, !or7ue traria !roble&as na hora de deodi#iar. 6er =1> /a". 122
9onte5 GHI1 .>g) HMH)
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
23

os blocos a serem codi(icados) A di%iso da se3u"ncia H em blocos con(igura assim a eta.a
seguinte1 a3ui denominada de se3u"ncia C) 'odem ser esses os blocos5
CC,LJC,HHT,HEC,TR,RC,LHJ,RR,CL,CE,HMC,RH,E @S%G0B12/a 2A
De.ois calcula;se a .artir da e3uao ?L)C@1 o %alor de (S2S) = 288. A .artir deste calcula;
se o %alor do c. Neste caso os %alores de c .oderiam ser 3uais3uer um dos %alores abaiBo1 .ois
esto todos no inter%alo re3uerido e o m>Bimo di%isor comum com o CMM * H5
Q1 T1 111 HL1 HT1 HR1 CL1 CQ1 CR1 LH1 LQ1 LT1 EH1 EL1 ET1 ER1 ))))))))) 1 CMT)
Su.onhamos 3ue * escolhido c = 11. Em seguida de%e ser (eito o c>lculo do %alor do J. 0
um %alor 3ue satis(aa a e3uao ?L)L@1 isto de uma (orma sim.li(icada5
c J moJ (S2S) = 1
(11 J ) moJ 288 = 1
O %alor do J = 1S1. Sendo assim as cha%es so5
Cha%es .Ablicas5 ?c, n@ W ?HH1 LCL@
Cha%es .ri%adas5 ?J1n@ W ?HLH1 LCL@
C)8) n H323 @1111
2
)I .%8 J ,/.#I */>%8)# G0% %#.% F 08 a:)"/.8) 2)8 2$a!% *%
J ,/.#
K
+
Tendo (eito a .r*;codi(icao1 a criao das res.ecti%as cha%es .Ablicas e .ri%adas1
logo em seguida ser> (eita a codi(icao .ro.riamente dita) 'ara isso * ilustrado a codi(icao
e decodi(icao s# do .rimeiro bloco da se3u"ncia C1 lembrado 3ue o .rocesso * id"ntico .ara
os outros blocos)
'ara codi(icar * utili+ada a e3uao ?L)E@1 onde o m recebe o %alor do bloco1 o ?n$ e@
so as cha%es .Ablicas5
C = 22
11
mod S2S
C = 181
'ara decodi(icar1 de%e;se usar a e3uao ?L)Q@1 sendo o C o %alor do teBto codi(icado1
o ?n1 d@ as cha%es .ri%adas corres.ondentes) 'ortanto a decodi(icao (ica5

6
/ara se ter u&a ideia, e& a!lia)es !r*tias, entendeGse o&o u& &Hni&o de se"urana n tendo
a!roIi&ada&ente 1924 bits.
24

m = 181
131
mod S2S
m = 22
Como .ode ser %isto1 atra%*s do teBto codi(icado (oi .oss2%el chegar 4 mensagem original m)
0 bom en(ati+ar 3ue .ara al*m do d1 so tamb*m consideradas cha%es .ri%adas p, q e
(n). $ma %e+ 3ue ningu*m .ode ter acesso a essas in(orma!es1 eBceto 3uem as gerou. Se o
<inimigo= ti%er conhecimento de 3ual3uer um desses dados1 o m*todo .ode ser <3uebrado=)
Se ele conhecer o %alor de (n) 1 ele consegue calcular o J = c
-1
(mou (n)). Ou se ele
conseguir os %alores de p e q, ele com.uta o %alor do (n) = (p - 1) (q - 1), e
conse3uentemente ele tem o %alor do u calculado .or J = c
-1
(mou (n)).

3+1 D%#%83%1$) VS S%:0"a14a

Embora o RSA o(erea eBcelente segurana cri.togr>(ica1 .or causa da com.leBidade
dos c>lculos matem>ticos en%ol%idos no algoritmo1 ele ci(ra e deci(ra mensagens de (orma
muito lenta1 3uando com.arado aos algoritmos de cha%e sim*trica) 'or isso em muitas
a.lica!es de RSA1 o usu>rio usa uma .e3uena cha%e .Ablica .ara acelerar a o.erao de
encri.tao) No entanto1 a o.erao de decri.tao de%e tomar mais custos com.utacionais
.ara reali+ar a eB.onenciao modular1 .ois o eB.oente da cha%e .ri%ada * sem.re muito
grande) O tamanho da cha%e .ri%ada de.ende das necessidades dos usu>rios .ara manter o
segredo) ^uanto maior (or a cha%e .ri%ada1 maior * a segurana1 mas tamb*m mais lenta * a
%elocidade corres.ondente de c>lculo)

Deste modo1 sero listadas algumas .recau!es a serem tomadas no 3ue se di+ res.eito
ao RSA5
E93)%1.% *% 2$a!% 3?,/2a
'ara redu+ir o tem.o de encri.tao ou de %eri(icao da assinatura1 tem sido .ro.osto o uso
de um .e3ueno eB.oente e) Os menores %alores .ro.ostos .ara e so L e HT1 .or*m .ara
de(ender;se de certos ata3ues um %alor de e W SQQLT * recomendado GRI.

25



E93)%1.% *% 2$a!% 3"/!a*a
0 im.ortante 3ue d se-a escolhido grande o su(iciente de (orma 3ue um cri.toanalista no
.ode encontr>;lo .or meio de busca direta) /ostra;se 3ue1 se o eB.oente .ri%ado ?d@ utili+ado
(or menor 3ue n_J1CRC1 ento o sistema no * seguro1 isto *1 .ode ser <3uebrado= GHJI)
Entretanto isso re3uer um alto grau de conhecimento matem>tico)
E#2)$a *)# 3"/8)#
De%emos tomar alguns cuidados na escolha dos nAmeros .rimos1 .ois se p e # (orem
.e3uenos1 torna;se (>cil encontr>;los) Ou se1 mesmo sendo grandes1 se Jp #J (or .e3ueno
torna;se (>cil ach>;los a .artir de n, utili+ando um algoritmo de 9ermat
T
. Os (atores p e # de n
de%em ser ambos bem grandes1 e da mesma ordem de grande+a da rai+ 3uadrada de n.

3+2 A.aG0%#
$ma (orma de atacar RSA1 matematicamente1 * (atorar n em seus dois (atores
.rimos) Isto .ermite o c>lculo (n) = (p - 1) (q - 1) , 3ue1 .or sua %e+1 .ermite
determinao de J = c
-1
(mou (n)).
3+2+1 Fa.)"a45)
Em teoria dos nAmeros1 (atorao de um inteiro * a decom.osio de um nAmero
com.osto em di%isores menores no tri%iais1 3ue1 3uando multi.licados -untos igualam ao
%alor original) ^uando os nAmeros so muito grandes1 nenhum algoritmo de (atorao
e(iciente * conhecido) $m es(oro conclu2do em CJJR .or %>rios .es3uisadores conseguiram
(atorar um nAmero CLC d2gitos ?RSA;TSM@1 utili+ando centenas de m>3uinas em um .er2odo
de dois anos) Nem todos os nAmeros de um determinado com.rimento so igualmente di(2ceis
de (atorar) Os casos mais di(2ceis desses .roblemas ?.ara as t*cnicas atualmente conhecidos@
so semi.rimos1 o .roduto de dois nAmeros .rimos) ^uando eles so grandes1 escolhidos

7
/ara &ais in#or&a)es sobre a esolha dos n-&eros !ri&os, onsulte =1>, /*".127
26

aleatoriamente1 e a.roBimadamente do mesmo tamanho1 mesmo os mais r>.idos algoritmos
de (atorao nos mais r>.idos com.utadores .odem le%ar tem.o su(iciente .ara (a+er a busca
im.ratic>%el GHHI) A (im de garantir a segurana de um sistema RSA1 o com.rimento do n *
geralmente su.erior a HJCE bits em uso no com*rcio atual GHCI.
3+2+2 F014=%# 01/*/"%2/)1a/#
No in2cio de trabalho1 (oi dito 3ue na cri.togra(ia de cha%e assim*trica1 saber codi(icar
no signi(ica%a saber decodi(icar) Ento1 mesmo 3ue .ro%e 3ue no * .oss2%el (atori+ar
inteiros no .er2odo de tem.o considerado e(ica+1 o RSA s# %ai ser seguro mesmo se no
hou%er como in%erter a (uno de codi(icao) /as como * .oss2%el saber codi(icar uma
mensagem e no saber decodi(icar a mesma mensagem` 'ois bem1 antes de mais nada1 *
.reciso saber 3ue a cri.togra(ia de cha%e .Ablica * baseado num ti.o de (uno 3ue *
considerada <es.ecial=)
A maioria das (un!es matem>ticas so classi(icadas como (un!es bidirecionais %isto
3ue so (>ceis de (a+er e (>ceis de des(a+er) Tem;se o conhecimento de 3ue o nAmero QJ (oi
resultado de uma du.licao1 .ara obter o nAmero 3ue a originou * s# e(etuar a o.erao
contr>ria1 isto *1 di%ide;se QJ .or C e tem;se o %alor original 3ue * CQ) Entretanto a (uno
usada na cri.togra(ia assim*trica * chamada de (uno unidirecional1 ou %ne!way functions,
como o .r#.rio nome sugere * (>cil de (a+er1 mas muito di(2cil de des(a+er)
One-way functions
So chamadas (un!es unidirecionais1 .or3ue so (>ceis de com.utar numa direo1
mas a.arentemente muito di(2cil de com.utar na direo contr>ria) $m eBem.lo * ilustrado na
tabela L)C5
Tabela L)C ; EBem.lo de uma one;7a6 (unction1 J(x) = 3
x
mod HT
x H C L E Q S T M R HJ HH HC HL HE HQ HS
(x) L R HJ HL Q HQ HH HS HE M T E HC C S H
9onte5 GQI1 .>g) M)
27

Dado um nAmero x entre H e HS1 * relati%amente (>cil encontrar a imagem de f) No entanto1
dado um nAmero f&x'()$ sem ter a tabela dis.on2%el1 * muito di(2cil encontrar o %alor
corres.ondente de x.
0 im.ortante mencionar 3ue neste eBem.lo es.ec2(ico (oram usados nAmeros
.e3uenos1 s# .ara uma 3uesto de com.arao) 'or*m1 3uando utili+ados nAmeros muito
grandes (ica mais di(2cil ainda de encontrar x a .artir de f&x')
Trapdoor one-way functions
0 uma one!way function com a .ro.riedade adicional de 3ue dado alguma in(ormao
eBtra ?chamado de trapdoor@1 torna;se .oss2%el encontrar x a .artir de f&x' GQI. $m eBem.lo de
uma trapdoor one!way function seria a (uno utili+ada no m*todo RSA1 sendo 3ue o %alor do
d ?cha%e .ri%ada@ seria o trapdoor$ ou se-a1 com esse %alor * .oss2%el in%erter o teBto ci(rado
na mensagem original) Sem essa in(ormao es.ecial ?adicional@ a re(erida in%erso * um
.rocesso muito di(2cil)
Outras #or&as de ata7ues ta&b1& so &enionadas, onde?
. #uno (n) * determinado diretamente1 sem determinar p e #) No%amente1
isto .ermite a determinao de J = c
-1
(mou (n)).
O %alor do d * determinado diretamente1 sem determinar (n).

Contudo1 argumenta;se 3ue essas abordagens no so mais (>ceis do 3ue (atorar n GHLI.









22

C IMPLEMENTAO DA CRIPTOGRAFIA RSA UTILILANDO O
MATLAB
A im.lementao (oi (eita no software /atlab1 aonde (oi desen%ol%ida cinco (un!es1
3ue de.ois .ode ser chamada a .artir da -anela de comando) Vale a .ena en(ati+ar 3ue como
tudo (oi desen%ol%ido na -anela de comando do /atlab1 os %alores gerados nos .assos
anteriores (icam gra%ados nas res.ecti%as %ari>%eis) AbaiBo ser> mostrado a .articularidade
de cada umas dessas (un!es5
funcao*primos Z
Escolheprimos Z
+SA*pulic Z
+SA*cod Z
+SA*decod )

7012a)M3"/8)#
O (ormato dessa (uno *5 [h] =funcao_primos(inicio,numero_de_primos) onde
[h] * o .ar:metro de sa2da1 neste caso sero os nAmeros .rimos gerados de acordo com os
.ar:metros de entrada (inicio,numero_de_primos). O inicio * o %alor de
re(er"ncia atra%*s do 3ual sero gerados os nAmeros .rimos) D>1 numero_de_primos * a
3uantidade de .rimos gerados a .artir do %alor de re(er"ncia ?inicio@ in(ormado) A Anica
condio eBigida da res.ecti%a (uno1 * 3ue o %alor do inicio se-a maior ou igual a L) O
c#digo desen%ol%ido .ara a (uno em 3uesto * a.resentado no AneBo C do trabalho)
EBem.lo5
inicio W HJ
numero_de_primos W S
[h] =funcao_primos(10, 6). A (uno ir> gerar S res.ecti%os .rimos de.ois de HJ)
[h] = 11, 13, 17, 19, 23, 29.
E#2)$%3"/8)#
A (orma da (uno *5 [p,q]=escoheprimos(h) , onde (h) * o .ar:metro de
entrada1 3ue nada mais * do 3ue a lista de nAmeros .rimos gerados .ela funcao_primos.
2$

Atra%*s dessa lista o escoheprimos seleciona dois .rimos aleat#rios e atribui um .ara o
p e o outro .ara o q, 3ue so os .ar:metros de sa2da [p,q] ) No AneBo D do trabalho *
a.resentado o c#digo desen%ol%ido .ara a res.ecti%a (uno)

RSAM30,/2
Essa * a (uno 3ue gera as cha%es .Ablicas ?c, n@) O (ormato da (uno *5 [n,e]=
!"#_pu$ic(p,q). Os .ar:metros de entrada (p,q) signi(ica 3ue ele .ega os
res.ecti%os %alores de p e q selecionados .elo o escoheprimos e em seguida retorna
os %alores dos .ar:metros de sa2da [n,e]. No c#digo im.lementado1 o .rimeiro %alor do
.ar:metro de sa2da1 n1 * obtido a .artir da multi.licao dos .ar:metros de entrada p e q) D>
.ara encontrar o %alor do e (oi (eito um lao de re.etio1 onde so testados nAmeros de H at*
(n) -1. ^uando os nAmeros testados nessa (aiBa (orem co;.rimos a (n)1 automaticamente
este * sal%o numa lista1 a .artir do 3ual ser> escolhido um %alor aleat#rio 3ue * atribu2do 4
%ari>%el e) O c#digo desen%ol%ido .ara a (uno RSAa.ublic * mostrado no AneBo E do
trabalho)

RSAM2)*
Atra%*s dessa (uno 3ue * (eita a codi(icao da mensagem5 [%ensa&em_codificada]=
!"#_cod(m,n,e). O %alor do m do .ar:metro de entrada * %alor da mensagem a ser
en%iada) Este %alor de%e ser inteiro e %ariar de <J= ?+ero@ a n'1) Os %alores de (n,e)1 so os
gerados .ela (uno !"#_pu$ic na eta.a anterior) O .ar:metro de sa2da1
[%ensa&em_codificada] eBibir> o %alor codi(icado 3ue ser> um outro nAmero inteiro) 0
eBibido no AneBo 9 do trabalho o c#digo desen%ol%ido .ara a (uno em 3uesto)


RSAM*%2)*
Essa (uno * a usada .ara decodi(icar a mensagem5
[%ensa&em_decodificada]=!"#_decod(%ensa&em_codificada,p,q,e), aonde a
%ensa&em_codificada * a3uela 3ue (oi gerada no .asso anterior .or !"#_cod. O %alor
39

do e usado tem 3ue ser a mesma 3ue (oi originada a .artir do !"#_pu$ic. Os %alores de
p e q ?as cha%es .ri%adas@ de%em ser os mesmos selecionados .ela (uno
escoheprimos1 caso contr>rio a mensagem decodi(icada no ser> a mesma codi(icada .elo
!"#_cod) O c#digo desen%ol%ido .ara a (uno corres.ondente * mostrado no AneBo P do
trabalho)
Dessas cinco (un!es1 s# o +SA*cod seria usado .elo remetente da mensagem1 .ara
codi(icar a mensagem) Os outros seriam utili+ados .elo destinat>rio da mensagem)
'ara desen%ol%er as (un!es RSAacod e RSAadecod1 (oi necess>rio im.lementar no
caso do RSAacod a e3uao L)E e .ara RSAadecod a e3uao L)Q) 'or*m 3uando os
res.ecti%os eB.oentes so muito grandes1 esta o.erao BeI!oneniao &odularC *
dis.endiosa .ara os com.utadores, de&ora a ser reali+ada) 4endo assi&, #oi necess>rio o uso
de um algoritmo 3ue acelere esse .rocesso) O algoritmo 4.1 (oi utili+ado !ara ontornar esse
!roble&a.
Algoritmo E)H ; S3uare and /ulti.l6 Algorithm
Computa P = X
L
moJ N, onue E = _ c

,
n-1
=0
c

e {u, 1]
1. Po = 1, Zo = X
2. foi i = u at n -1 faa
S. Z
+1
= Z

2
moJ N
4. if c

= 1 ento
S. P
+1
= P

moJ N
9onte5 GRI
Entretanto, o&o !ode ser visto, esse al"orit&o te& na linha 3 u&a nova
eI!oneniao &odular e na linha 5 u&a &ulti!liao &odular 7ue i"ual&ente 1 u&
!roesso ustoso. (oi usado u& al"orit&o 7ue aelere a &ulti!liao &odular. /osto isso, a
e7uao da linha 3 #oi trans#or&ada e&? Z
+1
= (Z

)mou N. 5essa #or&a #oi usado


al"orit&o de Kutub =14>, !ara resolver os !roble&as da linha 3 e 5. O al"orit&o de Kutub 1
&ostrado no .neIo L do !resente trabalho.

C+1 R%#0.a*)#
A im.lementao do RSA (eita no /atlab * mostrada na (igura E)H)
31


9igura E)H ; Cri.togra(ia RSA im.lementada no /atlab


Como * %isto na (igura E)H1 a .artir de uma lista de nAmeros .rimos1 GhI1 * escolhido o
p e #. Em seguida (oram geradas as cha%es .Ablicas ?HH1 HHCCT@) 'osteriormente * e(etuada a
codi(icao de uma mensagem m W HJJ1 obtendo assim o teBto ci(rado ?C WHJEHS@1 e a .artir
deste * (eita a decodi(icao 3ue resulta na mensagem original m W HJJ) 'ortanto1 %alidando
assim o (unciomento do m*todo im.lementado)
No gr>(ico E)H * mostrado uma com.arao entre o tem.o de encri.tao e
decri.tao da im.lementao reali+ada) 9oi (eita a encri.tao e decri.tao com di(erentes
%alores dos nAmeros .rimos1 mas .ara uma mesma mensagem1 m)
32


Pr>(ico E)H ; Com.arao entre o tem.o de Encri.tao de Decri.tao


b medida 3ue aumenta os %alores dos nAmeros .rimos1 maior ser> a cha%e de decri.tao1
cha%e .ri%ada ?d@1 inde.endentemente do %alor do e. 'or isso no gr>(ico E)H .ode ser %isto 3ue
o tem.o de decri.tao * maior 3ue o tem.o de encri.tao1 uma %e+ 3ue o eB.oente da cha%e
.ri%ada * sem.re maior 3ue o eB.oente da cha%e .Ablica) Com isso le%a mais tem.o .ara
eBecutar a eB.onenciao modular1 .ortanto * uma o.erao mais demorada de ser reali+ada)





9
59
199
159
299
259
1 2 3 4 5 6
Tempo (ms)
Nmeros primos p e q (10^7)
Enri!tao
5eri!tao
33

D CONCLUSO
Ao mesmo tem.o em 3ue a in(ormao se torna um bem cada %e+ mais .recioso e 3ue
a re%oluo das comunica!es trans(orma a sociedade1 a cri.togra(ia continuar> a
desem.enhar um .a.el indis.ens>%el .ara comunicao)
Em a.lica!es .r>ticas da cri.togra(ia RSA so utili+ados nAmeros muito grandes) 'or
eBem.lo1 * recomendado 3ue tanto o p como # se-am no m2nimo nAmeros com QHC bits1
le%ando a ele%ados %alores de com.leBidade com.utacional da cri.togra(ia RSA) De%ido 4
sim.licidade dos algoritmos im.lementados no .resente trabalho1 no (oi .oss2%el demonstrar
o (uncionamento do m*todo com %alores ele%ados de p e #) Entretanto1 a im.lementao do
m*todo (oi satis(at#ria1 dado 3ue (oi demonstrado o seu .rinci.io de (uncionamento atra%*s
do detalhamento do algoritmo utili+ado no .rocesso de cri.togra(ia e descri.togra(ia)
De maneira geral1 o RSA (ornece uma robusta segurana) 'or*m1 tal segurana .ode
ser ameaada se (or concebido um algoritmo e(iciente baseado em uma .oss2%el no%a t*cnica
de (atorao) Atualmente eBistem %>rios m*todos .ara (atorao1 mas nenhum * e(ica+ contra
o RSA) Al*m disso1 como 3ual3uer outro m*todo de cri.togra(ia1 o m*todo RSA * susce.t2%el
ao a%ano tecnol#gico) O surgimento de com.utadores r>.idos o su(iciente .ara decom.or n
em (atores1 em um inter%alo de tem.o su(iciente .e3ueno1 .ode ser e(iciente no ata3ue ao
m*todo RSA)











34

K REFERNCIAS

=1> 4. Coutinho, ;-&eros Inteiros e Cri!to"ra#ia 34., 3io de Maneiro? I8/., 2993.
=2> (red, Cohen, N. 4hort ListorO o# CrO!to"ra!hO,P 1$$7.
=3> 4. 4i&on, ,he Code QooR, ;eS TorR? 5oubledaO, 1$$$.
=4> K. U. e 4. E., N8%V,IVE6EV C3T/,OK3./LT ,ECL;IW%E %4I;K K3.CE(%V CO5E4,P
www.jgrcs.info, vol. 2, 2911.
=5> 8. .l#red e 6. 4ott, LandbooR o# .!!lied CrO!to"ra!hO, C3C /ress, 1$$6.
=6> 4. 8oha&&ad e /. 4ha#iul, N. Cost E##etive 4O&&etri UeO CrO!to"ra!hi .l"orith& #or 4&all
.&ount,P 24 5e+e&bro 2995.
=7> @. <in e ,. <iao#ei, N3esearh and I&!le&entation o# 34. .l"orith& #or,P 22 ."osto 2911.
=2> .. 4attar e M. Laidar, N.n E##iient 34. /ubli UeO EnrO!tion 4he&e,P 7 .bril 2992.
=$> Q. ,ho&as e /. Christo#, N8ont"o&erO 8odular EI!onentiation on 3eon#i"urable LardSare,P
.bril 1$$$.
=19> Q. 5an e 5. Klenn, NCrO!tanalOsis o# 34. Sith /rivate UeO d Vess ,han ;X9,2$2,P Mulho 2999.
=11> /. 6ar"hese e 4. 3as&i, N.n I&!le&entation o# a ;eS !ubli ReO 4Oste& based on 34. Shih
leads haRers,P ;ove&bro 2912.
=12> 4. Lon"Sei e C. Toulin, N.n I&!roved 34. 4i"nature .l"orith& based on Co&!leI ;u&eri
O!eration (untion,P 8aro 2919.
=13> 3. 3onald, 4. .. e .. V., N. 8ethod #or Obtainin" 5i"ital 4i"natures and /ubliGUeO
CrO!tosOste&s,P 1$72.
=14> 8. V. QI44OVI, I8/.C,O 5. 8%V,I/VIC.YZO E E</O;E;CI.YZO 8O5%V.3 E8, 8arHlia, 2997.






35

N ANEOOS
A1%9) A 6 A:)"/.8) *% E02/*%# 3a"a ) 2;20) *) /1!%"#) 80./3/2a./!)









36

A1%9) B 6 A:)"/.8) 3a"a ) 2;20) *)# !a)"%# *) %93)%1.% *% 2$a!% 3?,/2a












37

A1%9) C 6 F0145) 70145)M3"/8)#

function [h]= funcao_primos(inicio,numero_de_primos)

lista=[];
p=1;
lastphi=1;
E=zeros(100,1);
E(1)=0;
nmax=numero_de_primos+;
f=zeros(nmax,1);
f(1)=;
if (inicio!")
errordl#($% &alor de refer'ncia de&er ser maior ou i#ual a " $,$E((%$);
else
if(mod(inicio,)==0)
f()=inicio)1;
else
f()=inicio;
end
*=+;
,=1;
-=0;
.=0;
s=0;
i=;
d=/;
t=0;
0=0;
1hile i!nmax
i=i+1;
lastphi=1;
p=1;
.=0;
1hile lastphi2=0,
if (p2=1)
31=0;
else
31=f(i)1)+;
end
4=mod((.+31+"),");
3=31+5a6s((cos((74)5pi))1)8);
1hile (d9=+),
-=-+1;
if(-91)

*=round (*+a6s(:5sin((-)5pi8)+5cos((-)5pi8)));
*=*;
else
*=*;
end

d=(.+3)8*;
d1=*5*;
d=.+3;
t=t+1;
if ((mod(.+3+*,*)2=0))

3"= round (3);
32

0=0+1;
s=s+1;
else
0=0+1;
if (d9=)
,=d;
;=round (a6s(105cos(-5pi8)+5sin(-5pi8)));
,;=mod(,5;,/);
4=mod(.+3+*,*);
if (49=1)
,;1=,;5a6s(08);
else
,;1=,;5a6s()1);
end
3"=round (3+,;1);
else
3"=round (3);
end
end
if(d!=d1)
d=;
else
end
3=3";
end
f(i)=3";
d=/;
-=0;

p=p+1;
phi=f(i);
E(p)=f(i);
lastphi=phi;
if(s==t)
lastphi=0;
end
if (p==)
E(p+1)=E(p)+E(p)1);
else
if (p==")
E(p+1)=E(p)+E(p)1)+E(p));
else
if (p==:)
E(p+1)=E(p)+E(p)1)+E(p))+E(p)");
else
if(p9=+)
<=p);
1=0;
x=zeros(p,1);
for o=1=<
x= E(p)o)+1;
1=x;
end
E(p+1)= E(p)+1;
end
end
end
end
.= E(p+1);
0=0;
t=0;
3$

s=0;
*=+;
end
f(i)=.;
h=f("=nmax);

end
end
end























49

A1%9) D 6 F0145) E#2)$%3"/8)#

function [p,0]=escolheprimos(h)

l=len#th(h);
escolhe=randperm(l);
p=h(escolhe(1));
0=h(escolhe());

end






















41

A1%9) E 6 F0145) RSAM30,/2

function [n,e]= (>?_pu6lic(p,0)

n=p50;
%=(p)1)5(0)1);
e=;
t=e;
lista=[];
1hile t!%

s=%;
p=t;
e=t;
d=mod(%,e);
1hile d2=0
%=e;
e=d;
d=mod(%,e);
end
if(e==1)
lista=[lista;p];
else
end
t=t+1;
%=s;
end
tam@=len#th(lista);
e=lista(randi(tam@));
end














42

A1%9) F 6 F0145) RSAM2)*

function [3ensa#em_codificada]= (>?_cod(m,n,e)

m1=m;
if(m19=n AA m1!0)
errordl#($? mensa#em de&e ser menor 0ue o &alor do n, isto B, 0 !
3ensa#em ! n$,$E((%$);
else
phi1=n;
x=m1;
exp=e;
*=phi1;
*6=dec6in(*);
n=len#th(*6);
E=dec6in(exp,n);
E=cellfun(Cstrnum, cellstr(E$))$;
D=zeros(n,1);
E=zeros(n,1);
E(1)=1;
D(1)=x;
i=1;
e=zeros(n,1);
for i=1=(n)

F#=D(i);
m#=*;
x#=D(i);
x<=dec6in(x#);
E#=cellfun(Cstrnum, cellstr(x<$))$;
4#=len#th(x<);
i1=4#)1;
Eo=0;
px=0;

1hile i19=0
Eo=5Eo;
px=px+1;

if(Eo9=m#)
Eo=Eo)m#;
else
end
e#= E#(1,(px));
if(e#==1)
Eo=Eo+F#;
if (Eo9=m#)
Eo=Eo)m#;
else
end
else
end
i1=i1)1;
end
D(i+1)=Eo;

e(i)= E(1,(n)i+1));
if(e(i)==1)

43

F#=D(i);
m#=*;
x#=E(i);
x<=dec6in(x#);
E#=cellfun(Cstrnum, cellstr(x<$))$;
4#=len#th(x<);
i1=4#)1;
Eo=0;
px=0;

1hile i19=0
Eo=5Eo;
px=px+1;

if(Eo9=m#)
Eo=Eo)m#;
else
end
e#= E#(1,(px));
if(e#==1)
Eo=Eo+F#;
if (Eo9=m#)
Eo=Eo)m#;
else
end
else
end
i1=i1)1;
end
E(i+1)=Eo;
else
E(i+1)=E(i);
end
end
E=E(i+1);
3ensa#em_codificada=E;

end
end











44

A1%9) G 6 F0145) RSAM*%2)*

function [3ensa#em_decodificada]=(>?_decod(3ensa#em_codificada,p,0,e)

phi1=p50;
phi=(p)1)5(0)1);
n=phi;
a=e;
#=n;
u=a;
i=0;
&=1;
0=0;
t=0;
1hile u90
0=floor(#8u);
t=#+()05u);
#=u;
u=t;
t=i+()05&);
i=&;
&=t;
end
if(i!0)
i=n+i;
else
end
d=i;

x=3ensa#em_codificada;
exp=d;
*=phi1;
*6=dec6in(*);
n=len#th(*6);
E=dec6in(exp,n);
E=cellfun(Cstrnum, cellstr(E$))$;
D=zeros(n,1);
E=zeros(n,1);
E(1)=1;
D(1)=x;
i=1;
e=zeros(n,1);

for i=1=(n)

F#=D(i);
m#=*;
x#=D(i);
x<=dec6in(x#);
E#=cellfun(Cstrnum, cellstr(x<$))$;
4#=len#th(x<);
i1=4#)1;
Eo=0;
px=0;

1hile i19=0
Eo=5Eo;
px=px+1;

45

if(Eo9=m#)
Eo=Eo)m#;
else
end
e#= E#(1,(px));
if(e#==1)
Eo=Eo+F#;
if (Eo9=m#)
Eo=Eo)m#;
else
end
else
end
i1=i1)1;
end
D(i+1)=Eo;

e(i)= E(1,(n)i+1));

if(e(i)==1)

F#=D(i);
m#=*;
x#=E(i);
x<=dec6in(x#);
E#=cellfun(Cstrnum, cellstr(x<$))$;
4#=len#th(x<);
i1=4#)1;
Eo=0;
px=0;

1hile i19=0
Eo=5Eo;
px=px+1;

if(Eo9=m#)
Eo=Eo)m#;
else
end
e#= E#(1,(px));
if(e#==1)
Eo=Eo+F#;
if (Eo9=m#)
Eo=Eo)m#;
else
end
else
end
i1=i1)1;
end
E(i+1)=Eo;
else
E(i+1)=E(i);
end
end
E=E(i+1);
3ensa#em_decodificada=E;

end

46


A1%9) H 6 A:)"/.8) *% G0.0,