11/16/10
1
CodificaçãodeInformação2010/2011
Sumário:• Criptografiadechavepública
Tiposdechave:cifrassimétricas
Dept.InformáGca/FCT 16Novembro2010 2
• Chavecomumàoperaçãodecifrarededecifrar
• Chavesecreta Pmensagememclaro,Cmensagemcifrada
Kchaveusadaparacifraredecifar
ffunçãousadaparacifrar
f‐1funçãousadaparadecifrar
C=f(K,P)
P=f‐1(K,C)
11/16/10
2
Tiposdechave:Cifrasassimétricas
Dept.InformáGca/FCT 16Novembro2010 3
• KpChavepúblicaparacifrar• KsChaveprivadaparadecifrar• EstaschavesestãoligadasaumadeterminadaenGdadecomaqual
sequercomunicar
KpdiferentedeKs
ffunçãoparacifrarf‐1funçãoparadecifrar
Estasfunçõesexigemnormalmentetemposdeexecuçãomuitomaislongosdoqueasfunçõesusadasnaschavessimétricas
C=f(Kp,P)
P=f‐1(Ks,C)
Criptografiadechavesecreta
Dept.InformáGca/FCT 16Novembro2010 4
• Acriptografiadechavesecreta/únicausaapenasumachave
• ParGlhadapeloemissorepeloreceptor
• SeachaveédescobertaascomunicaçõesestãocompromeGdas
• Ésimétrica,osintervenientessãopares
• Assim,nãoprotegeoemissornocasoemqueumintrusoforjaumamensagemedeclaraqueestaprovémdoemissor
11/16/10
3
Desvantagenschavesimétrica
• Problemadedistribuiçãodechaves
• Chavedeveseralteradacomumacertafrequência
• AlgoritmosdeassinaturadigitalqueuGlizamchavessimétricasnecessitamdechavesgrandesoquecomplicaaindamaisoproblemadadistribuiçãodechaves.
Dept.InformáGca/FCT 16Novembro2010 5
Criptografiadechavepública
Dept.InformáGca/FCT 16Novembro2010 6
• ProvavelmenteoavançomaissignificaGvoem3000anosdecriptografia
• NSA(US):1960’s(?)
• CESG(UK):1970• JamesEllis,relatórioclassificado
• CESGnãoviuaspotencialidades
• Diffie&Hellman:1976
• RSA:1978(1ªrealizaçãopráGca)
• Usaduaschaves–umapúblicaeoutraprivada
• AssimétricaporqueosparGcipantesnãotêmomesmopapel
• NãosubsGtuimascomplementaacriptografiadechavesecreta
11/16/10
4
Dept.InformáGca/FCT 16Novembro2010 7
Criptografiadechavepública
• Acriptografiadechavepública/duas‐chaves/assimétricaenvolveousodeduaschaves:
• achave‐pública,queéconhecidadetodos,epodeserusadaparacifrarmensagens,everificarassinaturas
• achave‐privada,conhecidasópeloreceptor,usadaparadecifrarmensagens,eassinar(criar)assinaturas
Dept.InformáGca/FCT 16Novembro2010 8
Criptografiadechavepública
• Éassimétricaporque:
Aquelesquepodemcifrarmensagenseverificarassinaturasnãopodemdecifrarmensagensecriarassinaturas
11/16/10
5
Dept.InformáGca/FCT 16Novembro2010 9
Criptografiadechavepública
Porquêacriptografiadechavepública?
Dept.InformáGca/FCT 16Novembro2010 10
• Desenvolvidapararesolverduasquestões:• Distribuiçãodechaves–comotercomunicaçõessegurassemterquetrocarachavenarede
• Assinaturasdigitais–comoverificarqueumamensagemchegouintactadoemissor,equeesteéquemdizser
11/16/10
6
CaracterisGcasdacriptografiadechavepública
Dept.InformáGca/FCT 16Novembro2010 11
• DependededuaschavesquedevemterasseguintescaracterísGcas:
• Computacionalmenteimpossívelconhecerachaveparadecifrarsabendoapenasoalgoritmoeachaveusadaparacifrar
• Computacionalmentefácilcifrar/decifrarmensagensquandoachavecorrectaéconhecida
• Opapeldasduaschavespodesertrocado
Segurançadesistemascomchavepública
Dept.InformáGca/FCT 16Novembro2010 12
• Ataquesdeforçabrutaporprocuraexaus@vasãoteoricamentepossíveis
• Masaschavessãodemasiadograndes(>512bits)
• Segurançabaseia‐senumasuficientementegrandediferençaentreafacilidadeemcifrar/decifrareadificuldadeemfazeracripto‐análise
• ObterachaveprivadaaparGrdachavepúblicaépossívelteoricamente,masdemasiadamentepesadocomputacionalmenteparaserpossívelnapráGca
• Osmétodosconhecidosparacifraredecifrarmensagenssãocomputacionalmentebastantespesado.Assimsendo,sãolentosquandocomparadoscomosmétodosdechavesecreta
11/16/10
7
Cifraassimétrica• ComunicaçãoAliceparaBob
• Bobcalculaopar(KPB,KSB)– KSBémanGdosecreto,KPBépublicado(porexemplonapáginawebdoBob)
• Alice– ObtémachavepúblicaKPBdeBobe,– cifraamensagemPcomachaveKPBdoBob
C=cifra_assimétrica_E(KPB,P)
• Bob– UsaachaveprivadaKSBdoBobparadecifrarC: P=cifra_assimétrica_D(KSB,P)
Dept.InformáGca/FCT 16Novembro2010 13
Aplicaçãoàassinaturadigital
Dept.InformáGca/FCT 16Novembro2010 14
• Procedimento:
• Alice• Geraumresumo(digestouhash)h=h(m)damensagem
• CalculaumaassinaturasparamusandoasuachaveprivadaKPA: s=RSA_D(KSA,h)
• EnviamesaBob
• Bob• Calculah=h(m)aparGrdem
• Decifrah’=RSA_E(KPA,h)usandoachavepúblicadeAlice• Verificaseheh’sãoiguais
• GaranGdaaautenGcidadedoemissoreaintegridadedamensagem
11/16/10
8
Escolhadoalgoritmo
Dept.InformáGca/FCT 16Novembro2010 15
• Tempodeexecuçãodeumalgoritmo
• Dependedadimensãodoproblema
• Exemplo:Ordenar10númeroslevamenostempoqueordenar10000números
• Paraalgunsproblemassabe‐seonúmerodepassosquequalqueralgoritmolevaaresolverumproblemacomnelementos
• Ordenarnnúmeroslevanlognpassos
Escolhadoalgoritmo
Dept.InformáGca/FCT 16Novembro2010 16
• Énecessárioumproblemaquenecessitedepelomenosumnúmeroexponencialdepassos
• Sãoconhecidosproblemasemqueassoluçõesconhecidaslevamtempo(sub)exponencial
• Factorizarprimos
• Calcularologaritmodiscreto
• ...
11/16/10
9
TrocadechavesdeDiffieHelman
Dept.InformáGca/FCT 16Novembro2010 17
• InventadoporDiffie&Helmanem1976• Primeirapublicaçãosobrecriptografiadechavepública
• MétodopermitequedoisuGlizadoresconcordemnumachavesimétricadeformasegura.Essachaveédepoisusadaparacifrar/decifrarasmensagens
• Sóparatrocadechaves• NãouGlizadoparacifrar/assinar
• Chavesde1024bits• Baseadonadificuldadedecalcularologaritmo
discreto
Logaritmosdiscretos
Dept.InformáGca/FCT 16Novembro2010 18
• EmaritméGcamódulop:
• araizprimi0vadeumnúmeroprimopéovaloratalqueassuaspotênciasgeramtodososinteirosde1ap‐1
• SeaéraizprimiGvadep,osnúmerosamodp,a2modp,…,ap‐1modpsãodisGntosecorrespondemaumapermutaçãodosnúmerosde1ap‐1
• ParaqualquerinteirobeumaraizprimiGvaadeumnúmeroprimop,pode‐seencontrarumitalque
• b=aimodp(emque0<=i<=p–1)
• béologaritmodiscretomódulopparaabasea
11/16/10
10
Logaritmodiscreto
Dept.InformáGca/FCT 16Novembro2010 19
• Computaçãomódulon
• Exemplomódulo13
171059111263842
121110987654321i
2éraizprimiGvade13(módulo13)
b=2imod13
b=aimod13
b
MétododeDiffieHellman
Dept.InformáGca/FCT 16Novembro2010 20
• TodososuGlizadoresconcordamnosseguintesvalores:
• Umnúmeroprimoqmuitogrande
• αéumaraizprimiGvadeq(emmóduloq)
• CadauGlizador(eg.A)geraasuachave• Escolheumachavesecreta(número):xA < q
• Calculaasuachavepública:yA = αxA mod q
• CadauGlizadorpublicaasuachavepúblicayA
11/16/10
11
ChavesdeDiffieHellman
Dept.InformáGca/FCT 16Novembro2010 21
Elementosglobaisq,α
GeraçãodechaveSeleccionarXA<qCalcularYA=αXAmodq
K=(YB)XAmodq
GeraçãodechaveSeleccionarXB<qCalcularYB=αXBmodq
K=(YA)XBmodq
UGl.A UGl.B
YA
YB
Dept.InformáGca/FCT 16Novembro2010 22
ChavesdeDiffieHellman
11/16/10
12
TrocadechavesdeDiffieHellman
Dept.InformáGca/FCT 16Novembro2010 23
• AchaveparGlhadaparaumasessãodosuGlizadoresA&BéKAB:
• KAB = αxA.xB mod q
• = yAxB mod q (que B pode calcular)
• = yBxA mod q (que A pode calcular)
• KABéusadacomochavedesessãonumacomunicaçãoentreAliceeBob
• KABpodeserusadanoutrassessõesentreAliceeBob
• Umintrusonecessitaumdosx;paraissotemdecalcularumlogaritmodiscreto,oqueécomputacionalmentemuitodi|cil
PorqueéqueD‐Hfunciona?
Dept.InformáGca/FCT 16Novembro2010 24
K = (Yb)xa mod q =
= (axb mod q)xa mod q =
= a xb.xa mod q =
= (axa mod q)xb mod q=
= (Ya) xb mod q
11/16/10
13
ExemplodeDiffieHelman
Dept.InformáGca/FCT 16Novembro2010 25
• OsuGlizadoresAliceeBobqueremtrocarchaves:• Concordamnoprimoq=353eα=3
• Seleccionamaoacasoaschavessecretas:• AescolhexA=97, BescolhexB=233
• Calculamaschavespúblicas:• yA=3
97 mod 353 = 40 (Alice)
• yB=3233
mod 353 = 248 (Bob)
• Calculamachavedesessão:• KAB= yB
xA mod 353 = 24897 = 160 (Alice)
• KAB= yAxB mod 353 = 40
233 = 160 (Bob)
SegurançadeDiffieHellman
Dept.InformáGca/FCT 16Novembro2010 26
• XAeXBsãoprivadas;ointrusoconheceq,α, YA, YB
• Parafuraracifraéprecisocalcularologaritmodiscreto
XB=logaritmodiscretoα,q(YB)
• Éfácilcalcularexponenciaismódulop,masémuitodi|cilcalcularlogaritmosdiscretos
11/16/10
14
RSA
Dept.InformáGca/FCT 16Novembro2010 27
• Rivest,Shamir&AdlemandoMITem1977
• EsquemadechavepúblicamaisbemconhecidoemaisuGlizado
RSA
Dept.InformáGca/FCT 16Novembro2010 28
• BaseadoemexponenciaçãodeinteirosusandoaritméGcamodular
ExponenciaçãolevaO((logn)3)operações(fácilcifrar/decifrar)
• Usainteirosmuitograndes(eg.1024bits)
• Segurançadevidaàdificuldadeemfactorizarnúmerosprimosmuitograndes
FactorizaçãolevaO(elognloglogn)operações(muitodi|cilobterachaveprivadaaparGrdachavepública)
11/16/10
15
GeraçãodechavesRSA
Dept.InformáGca/FCT 16Novembro2010 29
• CadauGlizadorcalculaumparchavepública/chaveprivada
• Selecciona2númerosprimosaleatoriamente‐p, q
• CalculaN = p.q ø(N)=(p-1)(q-1)
• Seleccionaachavedecifrae quedevecumprir:
1<e<ø(N), gcd(e,ø(N))=1 • Resolveaequaçãoseguinteparadeterminarachaved
(e.d)mod ø(N)=1 e 0≤d≤N
• Publicaasuachavepública:KP={e,N}• Mantémsecretaasuachaveprivada:KS={d,N}
UsodoRSA
Dept.InformáGca/FCT 16Novembro2010 30
• ParacifraramensagemM,oemissor:
ObtémachavepúblicadoreceptorKP={e,N}
Calcula:C=Me mod N,emque0≤M<N
• ParadecifrarotextocifradoCodesGnatário: usaasuachaveprivadaKS={d,N}
calcula:M=Cd mod N
• Note‐sequeMtemdesermenorqueomóduloN(divide‐seotextoemblocosdexbits,talque2x<Neomaiorpossível)
11/16/10
16
PorqueéqueoRSAfunciona?
Dept.InformáGca/FCT 16Novembro2010 31
• TeoremadeEuler:aø(n)mod N = 1
• emquegcd(a,N)=1
• NoRSAtemos:• N=p.q • ø(N)=(p-1)(q-1)• Escolhem‐see&dparasereminversosmod ø(N)
• Portantoe.d=1+k.ø(N)paraalgumk
• Assimsendo(sempreemaritméGcamod N) Cd mod N = (Me)d mod N = M1+k.ø(N) mod N =
M1.(Mø(N))k mod N = M1.(1)k mod N =
M1 mod N = M
ExemploRSA
Dept.InformáGca/FCT 16Novembro2010 32
• Seleccionarprimos:p=17 & q=11
• Calcular n = pq =17×11=187
• Calcular ø(n)=(p–1)(q-1)=16×10=160
• Seleccionare:gcd(e,160)=1; escolhere=7
• Determinard:de=1 mod 160ed < 160; d=23umavezque23×7=161
• PublicarachavepúblicaKU={7,187}
• GuardarachaveprivadaKR={23,187}
11/16/10
17
Dept.InformáGca/FCT 16Novembro2010 33
ExemploRSA
• Exemplodafasedecifrar/decifrardoRSA:
• DadaamensagemM = 88(note‐seque88<187)
• Cifrar:
C = 887 mod 187 = 11
• Decifrar:
M = 1123 mod 187 = 88
Outroexemplonãorealista
Dept.InformáGca/FCT 16Novembro2010 34
11/16/10
18
Dept.InformáGca/FCT 16Novembro2010 35
Exemplomaisrealista(1)p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais; n e Φ têm 309 dígitos
Dept.InformáGca/FCT 16Novembro2010 36
Exemplomaisrealista(2)p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais; n e Φ têm 309 dígitos
THIS IS A TEST passa a C = Pe mod n
THIS IS A TEST P = Cd mod n
11/16/10
19
AspectoscomputacionaisdoRSA
Dept.InformáGca/FCT 16Novembro2010 37
• Geraçãodachave• Exponenciação
• PeeCdpodemproduzirresultadosintermédiosgigantescos
• PropriedadesdaaritméGcamodular
[(a mod n) * (b mod n)] mod n =
(a * b) mod n
• Podem‐seproduzirresultadosintermédios
GeraçãodachaveRSA
Dept.InformáGca/FCT 16Novembro2010 38
• OsuGlizadoresdoRSAtêmde:
• determinardoisprimosaoacasop, q
• Seleccionareoudecalcularooutro
• Osprimosp,qnãopodemserdeterminadosfacilmenteaparGrdeN=p.q
• Têmdesersuficientementegrandes
• Nãohámétodosdirectosparadeterminarprimosmuitograndes;Gpicamenteusam‐senúmerosaleatóriosetestesde“primalidade”.Essestestesnãogarantemqueonúmerosejaprimo
11/16/10
20
GeraçãodachaveRSA–algoritmoMiller‐Rabin
Dept.InformáGca/FCT 16Novembro2010 39
1. Obterumnúmeroímparnaoacaso
2. Obteroutronúmerointeiroaoacaso(1< a < n)
3. Aplicaraaen umteste;seotestefalha,rejeitaronúmeroeirpara1
4. Senpassouoteste3paraumnºsuficientementegrandedetentaGvasaceitarn
5. AteoriadosnúmerosdizqueosnúmerosprimospertodeXestãoespaçadosdelnX;logoparadeterminarumprimoserãonecessáriasln(N)/2tentaGvas
AlgoritmoparaotestedeprimalidadeprobabilisGcadeMiller‐Rabin
Miller-Rabin(n,t)
INPUT: An odd integer n > 1 and a positive security parameter t
OUTPUT: the answer "COMPOSITE" or "PRIME" Write n - 1 = 2sr such that r is odd Repeat from 1 to t Choose a random integer a which satisfies 1 < a < n - 1 Compute y = ar mod n IF y <> 1 and y <> n-1 then DO j := 1 WHILE j < s and y <> n - 1 then DO y := y2 mod n IF y = 1 THEN return("COMPOSITE") j := j + 1 IF y <> n - 1 THEN return("COMPOSITE") return("PRIME")
Dept.InformáGca/FCT 16Novembro2010 40
11/16/10
21
SegurançadoRSA
Dept.InformáGca/FCT 16Novembro2010 41
• TrêsabordagensparaatacaroRSA:
• Forçabrutasobreachave(impossíveldadoonúmerodebitsdachave)
• Baseadosnateoriadosnúmeros(tentaGvadefactorizaromóduloN)
• Pormedidadotempoquedemoraacorreroalgoritmoparadecifrar
Problemadafactorização
Dept.InformáGca/FCT 16Novembro2010 42
• Trêsformas:
• factorizarN=p.q,encontrarø(N)edepoisd• determinarø(N)ouddirectamente
• Pensa‐sequetodoselessãoequivalentesafactorizar:• Melhoriaslentasaolongodosanos
• EmAgostode1999conseguiu‐sefuraroRSAcom130dígitosdecimais(512bits)usandooalgoritmo“GeneralizedNumberFieldSieve”
• HojeemdiaasegurançaégaranGdausandochavesentreos1024e2048bits