Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings...

27
Criptografia e Criptografia e Segurança em Redes Segurança em Redes Capítulo 9 Capítulo 9 Quarta Edição Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Slides de Lawrie Brown Tradução: Bruno e Tradução: Bruno e Mario Mario

Transcript of Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings...

Page 1: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Criptografia e Criptografia e Segurança em Redes Segurança em Redes

Capítulo 9 Capítulo 9

Quarta EdiçãoQuarta Edição

William StallingsWilliam Stallings

Slides de Lawrie Brown Slides de Lawrie Brown Tradução: Bruno e MarioTradução: Bruno e Mario

Page 2: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Capítulo 9 - Public Key Capítulo 9 - Public Key Cryptography e RSA Cryptography e RSA

Cada egípicio recebia dois nomes que eram Cada egípicio recebia dois nomes que eram conhecidos respectivamente como o nome conhecidos respectivamente como o nome verdadeiro e o nome pequeno: e enquanto o verdadeiro e o nome pequeno: e enquanto o nome bom ou pequeno era público, o nome nome bom ou pequeno era público, o nome verdadeiro ou grande era cuidadosamente verdadeiro ou grande era cuidadosamente ocultado.ocultado.

— — O Ramo de OuroO Ramo de Ouro, , Sir James George FrazerSir James George Frazer

Page 3: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Criptografia de Chave-PrivadaCriptografia de Chave-Privada

Tradicional Tradicional Privado/Secreto/Chave ÚnicaPrivado/Secreto/Chave ÚnicaCriptografia utiliza apenas uma chaveCriptografia utiliza apenas uma chave Partilhada por ambos, emissor e receptorPartilhada por ambos, emissor e receptor Se esta chave é divulgada, comunicações Se esta chave é divulgada, comunicações

são comprometidassão comprometidas Também é Simétrica, partes são equivalentesTambém é Simétrica, partes são equivalentes Daí não proteger o emissor de um receptor Daí não proteger o emissor de um receptor

forjando uma mensagem & reinvidicação forjando uma mensagem & reinvidicação enviada pelo emissorenviada pelo emissor

Page 4: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Criptografia de Chave-PúblicaCriptografia de Chave-Pública Provavelmente o mais significativo avanço Provavelmente o mais significativo avanço

em 3000 anos de história da criptografiaem 3000 anos de história da criptografia Utiliza Utiliza duas duas chaves - uma pública & uma chaves - uma pública & uma

chave privada chave privada Assimétricas Assimétricas porque as partes porque as partes nãonão são são

iguaisiguais Usa inteligente aplicação de acordo com o Usa inteligente aplicação de acordo com o

conceito da teoria dos números conceito da teoria dos números complementa melhor do que repor a complementa melhor do que repor a

criptografia de chave privada criptografia de chave privada

Page 5: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Por que Criptografia de Chave-Pública?Por que Criptografia de Chave-Pública?

Desenvolvidas para abordar duas questões Desenvolvidas para abordar duas questões fundamentais:fundamentais: Distribuição de chaves – Distribuição de chaves – como ter como ter

comunicações seguras sem ter de confiar uma comunicações seguras sem ter de confiar uma KDC com sua chaveKDC com sua chave

Assinatura digital – Assinatura digital – como verificarcomo verificar se uma se uma mensagem chega intacta ao alegado mensagem chega intacta ao alegado remetenteremetente

Invenção pública de Whitfield Diffie & Martin Invenção pública de Whitfield Diffie & Martin Hellman em 1976Hellman em 1976 known earlier in classified communityknown earlier in classified community conhecida anteriormente classificados na conhecida anteriormente classificados na

comunidade comunidade

Page 6: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Criptografia de Chave-PúblicaCriptografia de Chave-Pública

chave-pública/duas-chaves/assimétricaschave-pública/duas-chaves/assimétricas criptografia envolve o uso de duas chaves: criptografia envolve o uso de duas chaves: Uma chave-pública, que pode ser conhecido por Uma chave-pública, que pode ser conhecido por

qualquer um, e pode ser usada para qualquer um, e pode ser usada para criptografar criptografar mensagensmensagens e verificar assinaturas e verificar assinaturas

Uma chave-privada, conhecida apenas pelo Uma chave-privada, conhecida apenas pelo destinatário, que serve para descriptografar destinatário, que serve para descriptografar mensagens, e assinar (criar) assinaturas mensagens, e assinar (criar) assinaturas

É assimétrica porque:É assimétrica porque: quem criptografar mensagens ou verificar assinaturas quem criptografar mensagens ou verificar assinaturas

não podenão pode decifrar mensagens ou criar assinaturas decifrar mensagens ou criar assinaturas

Page 7: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Criptografia de Chave-PúblicaCriptografia de Chave-Pública

Page 8: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Características da Chave-PúblicaCaracterísticas da Chave-Pública

Algoritmos de Chave-Pública contam com duas Algoritmos de Chave-Pública contam com duas chaves, quando: chaves, quando: é computacionalmente impossível de encontrar a é computacionalmente impossível de encontrar a

chave de decriptografia sabendo apenas o algoritmo chave de decriptografia sabendo apenas o algoritmo & chave de encriptação & chave de encriptação

é computacionalmente fácil (en/des)criptografar as é computacionalmente fácil (en/des)criptografar as mensagens quando os relevantes chaves de mensagens quando os relevantes chaves de (en/decriptação) são conhecidas(en/decriptação) são conhecidas

uma das duas chaves relacionadas podem ser uma das duas chaves relacionadas podem ser utilizados para a criptografia, com as outras utilizadas utilizados para a criptografia, com as outras utilizadas para a descodificação (para alguns algoritmos)para a descodificação (para alguns algoritmos)

Page 9: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Sistemas de Criptografia Sistemas de Criptografia Chave-PúblicaChave-Pública

Page 10: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Aplicações da chave-PúblicaAplicações da chave-Pública

Podemos classificar o uso em 3 categorias: Podemos classificar o uso em 3 categorias:

encriptação / decriptação (fornecer sigilo)encriptação / decriptação (fornecer sigilo) assinaturas digitais (fornecer autenticação) assinaturas digitais (fornecer autenticação) troca de chaves (as chaves de sessão) troca de chaves (as chaves de sessão)

Alguns Algoritimos são adequados para Alguns Algoritimos são adequados para todos os usos, outros são especificos para todos os usos, outros são especificos para umum

Page 11: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Segurança dos Sistemas de chave pública Segurança dos Sistemas de chave pública

Como o esquema de chave privada, exaustiva pesquisa Como o esquema de chave privada, exaustiva pesquisa pequisa de ataque por foça bruta é sempre teoricamente pequisa de ataque por foça bruta é sempre teoricamente possível possível

mas as chaves utilizadas são muito grandes (> 512bits) mas as chaves utilizadas são muito grandes (> 512bits) segurança conta com uma dimensão suficientemente segurança conta com uma dimensão suficientemente

grande diferença de dificuldade entre fáceis (en/decripta) grande diferença de dificuldade entre fáceis (en/decripta) e dificeis (criptoanálise) problemas e dificeis (criptoanálise) problemas

Geralmente o mais difícil do problema é conhecido, mas Geralmente o mais difícil do problema é conhecido, mas é feito difícil o bastante para tornar a solução é feito difícil o bastante para tornar a solução impraticávelimpraticável

exige a utilização de muitos números grandesexige a utilização de muitos números grandes Daí a lentidão, se comparado com sistemas de chave Daí a lentidão, se comparado com sistemas de chave

privada privada

Page 12: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

RSARSA Por Rivest, Shamir & Adleman of MIT in 1977 Por Rivest, Shamir & Adleman of MIT in 1977 mais conhecido e amplamente usado sistema de mais conhecido e amplamente usado sistema de

chaves públicas chaves públicas baseado em uma exponenciação um corpo baseado em uma exponenciação um corpo

(Galois) finito, sobre inteiros modulo uma (Galois) finito, sobre inteiros modulo uma privilegiadaprivilegiada

based on exponentiation in a finite (Galois) field based on exponentiation in a finite (Galois) field over integers modulo a prime over integers modulo a prime nb. exponentiation takes O((log n)nb. exponentiation takes O((log n)33) operations (easy) ) operations (easy)

uses large integers (eg. 1024 bits)uses large integers (eg. 1024 bits) security due to cost of factoring large numbers security due to cost of factoring large numbers

nb. factorization takes O(e nb. factorization takes O(e log n log log nlog n log log n) operations (hard) ) operations (hard)

Page 13: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

RSA Key SetupRSA Key Setup cada usuário gera uma chave pública / privada par por:cada usuário gera uma chave pública / privada par por: selecionando dois grandes numeros primos selecionando dois grandes numeros primos

aleatoriamente - p, q aleatoriamente - p, q computando seu sistema de modulus computando seu sistema de modulus n = p.q n = p.q

nota ø (n) = (p-1) (q-1) nota ø (n) = (p-1) (q-1) Selecionando aleatoriamente uma chave decriptação eSelecionando aleatoriamente uma chave decriptação e Onde 1 <e <ø (n), gcd (E, O (n)) = 1 Onde 1 <e <ø (n), gcd (E, O (n)) = 1 resolver a seguinte equação para encontrar a chave de resolver a seguinte equação para encontrar a chave de

decriptação decriptação dd Onde 1<e<0 (n), mdc (e,0(n))=1Onde 1<e<0 (n), mdc (e,0(n))=1

Fornecendo sua chave publica de encriptação:Fornecendo sua chave publica de encriptação:PU={e,n} PU={e,n} Mantendo secreta a chave de decripatção: PR={d,n} Mantendo secreta a chave de decripatção: PR={d,n}

Page 14: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Uso do RSAUso do RSA para cifrar uma mensagem M do remetente: para cifrar uma mensagem M do remetente:

obtém a chave pública do destinatário obtém a chave pública do destinatário

PU = {e, n} PU = {e, n} calcula: calcula: C = MC = Mee mod n mod n, onde , onde 00≤≤MM<<nn

para descriptografar o texto encriptado C, o para descriptografar o texto encriptado C, o proprietário:proprietário:

Utiliza sua chave privada Utiliza sua chave privada PR={d,n}PR={d,n} calcula: calcula: M = CM = Cdd mod n mod n

Note que a mensagem M precisa ser Note que a mensagem M precisa ser menor do que o Modulo “n” (bloco se menor do que o Modulo “n” (bloco se necessario) necessario)

Page 15: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Por que trabalhar com RSA Por que trabalhar com RSA

Devido ao Teorema de Euler:Devido ao Teorema de Euler: aaø(n)ø(n)mod n = 1 ondemod n = 1 onde gcd(a,n)=1gcd(a,n)=1

no RSA temos:no RSA temos: n=p.qn=p.q ø(n)=(p-1)(q-1)ø(n)=(p-1)(q-1) Cuidadosamente escolheu Cuidadosamente escolheu ee & & dd para ser inversos ao para ser inversos ao mod ø(n)mod ø(n)

portanto portanto e.d=1+k.ø(n)e.d=1+k.ø(n) para qualquer para qualquer kk Daí:Daí:

CCdd = M = Me.d e.d = M= M1+k.ø(n)1+k.ø(n) = M = M11.(M.(Mø(n)ø(n)))kk = M= M11.(1).(1)kk = M = M11 = M mod n = M mod n

Page 16: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Exemplo do RSA Exemplo do RSA Configuração de ChaveConfiguração de Chave

1.1. Selecionar primos: Selecionar primos: pp=17 & =17 & qq=11=112.2. CalcularCalcular n n = = pq pq =17=17 x x 11=18711=1873.3. CalcularCalcular ø( ø(nn)=()=(p–p–1)(1)(q-q-1)=161)=16 x x 10=16010=1604.4. Selecionar Selecionar ee:: gcd(e,160)=1; gcd(e,160)=1; escolher escolher ee=7=75.5. Determinar Determinar dd:: de=de=1 mod 1601 mod 160 e e d d < 160< 160

Valor é Valor é d=23d=23 desdeq desdeq 2323xx7=161= 107=161= 10xx160+1160+16.6. Publicar a chave pública Publicar a chave pública PU={7,187}PU={7,187}7.7. Manter secreta a chave privada Manter secreta a chave privada PR={23,PR={23,187}187}

Page 17: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Exemplo: Exemplo: RSA - En/DecriptaçãoRSA - En/Decriptação

amostra RSA encriptação/decriptação é: amostra RSA encriptação/decriptação é: Dada a mensagem Dada a mensagem M = 88M = 88 ( ( 88<18788<187)) EncriptaçãoEncriptaçãoC = 88C = 8877 mod 187 = 11 mod 187 = 11 Decriptação:Decriptação:M = 11M = 112323 mod 187 = 88 mod 187 = 88

Page 18: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

ExponenciaçãoExponenciação

can use the Square and Multiply Algorithmcan use the Square and Multiply Algorithm a fast, efficient algorithm for exponentiation a fast, efficient algorithm for exponentiation concept is based on repeatedly squaring base concept is based on repeatedly squaring base e multiplicando os que nos são necessárias para e multiplicando os que nos são necessárias para

calcular o resultado calcular o resultado olhar para a representação binária do exponenteolhar para a representação binária do exponente Só pega O(logSó pega O(log22 n) multiplos para o numero n n) multiplos para o numero n

eg. eg. 7755 = 7 = 744.7.711 = 3.7 = 10 mod 11 = 3.7 = 10 mod 11 eg. eg. 33129129 = 3 = 3128128.3.311 = 5.3 = 4 mod 11 = 5.3 = 4 mod 11

Page 19: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

ExponenciaçãoExponenciação

c = 0; f = 1c = 0; f = 1for i = k downto 0 for i = k downto 0 do c = 2 x cdo c = 2 x c f = (f x f) mod nf = (f x f) mod n

if bif bii == 1 == 1 then then c = c + 1c = c + 1 f = (f x a) mod n f = (f x a) mod n return freturn f

Page 20: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Encriptação EficienteEncriptação Eficiente

usa criptografia exponenciação e ao poder usa criptografia exponenciação e ao poder pequenas e, portanto, se, esta será mais rápida pequenas e, portanto, se, esta será mais rápida frequentemente escolher e = 65537 (216-1) frequentemente escolher e = 65537 (216-1) também ver escolhas de 3 ou E = E = 17 também ver escolhas de 3 ou E = E = 17 mas se e muito pequeno (por exemplo, e = 3) pode atacar mas se e muito pequeno (por exemplo, e = 3) pode atacar utilizando chinês restante teorema & 3 mensagens com utilizando chinês restante teorema & 3 mensagens com diferentes modulii diferentes modulii fixo e se deve garantir gcd (E, O (n)) = 1 fixo e se deve garantir gcd (E, O (n)) = 1 ou seja, rejeitar qualquer p ou q não relativamente privilegiada ou seja, rejeitar qualquer p ou q não relativamente privilegiada para e para e

Page 21: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Efficient DecryptionEfficient Decryption

decryption uses exponentiation to power ddecryption uses exponentiation to power d this is likely large, insecure if notthis is likely large, insecure if not

can use the Chinese Remainder Theorem can use the Chinese Remainder Theorem (CRT) to compute mod p & q separately. (CRT) to compute mod p & q separately. then combine to get desired answerthen combine to get desired answer approx 4 times faster than doing directlyapprox 4 times faster than doing directly

only owner of private key who knows only owner of private key who knows values of p & q can use this technique values of p & q can use this technique

Page 22: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

RSA: Geração de ChavesRSA: Geração de Chaves

usuários da RSA precisam:usuários da RSA precisam: determinar 2 numeros primos aleatoriamente determinar 2 numeros primos aleatoriamente

- - p, qp, q Selecionar entre Selecionar entre ee ou ou dd e calcular os outros e calcular os outros

primos primos p,qp,q não devem ser facilmente não devem ser facilmente derivados do moduloderivados do modulo n=p.qn=p.q Meios devem ser suficientemente grandesMeios devem ser suficientemente grandes Tipicamente adivinhar e utilização probabilística testeTipicamente adivinhar e utilização probabilística teste

expoentes expoentes ee, , dd são inversos,então são inversos,então usamos o algoritimo inverso para calcula usamos o algoritimo inverso para calcula um ou outroum ou outro

Page 23: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

RSA: SegurançaRSA: Segurança Possíveis abordagens para atacar o RSA são:Possíveis abordagens para atacar o RSA são:

Pesquisa de chave por força bruta (pesquisa Pesquisa de chave por força bruta (pesquisa inviável dada dimensão dos números) inviável dada dimensão dos números)

ataques matemáticos (com base na dificuldade de ataques matemáticos (com base na dificuldade de computação ø (n), pela fatoração do modulo n)computação ø (n), pela fatoração do modulo n)

calendário ataques (em funcionamento de calendário ataques (em funcionamento de descodificação) descodificação)

timing attacks (on running of decryption)timing attacks (on running of decryption) chosen ciphertext attacks (given properties of chosen ciphertext attacks (given properties of

RSA)RSA)

Page 24: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Factoring ProblemFactoring Problem

mathematical approach takes 3 forms:mathematical approach takes 3 forms: factor factor n=p.qn=p.q, hence compute , hence compute ø(n)ø(n) and then d and then d determine determine ø(n)ø(n) directly and directly and compute compute dd find d directlyfind d directly

currently believe all equivalent to factoringcurrently believe all equivalent to factoring have seen slow improvements over the years have seen slow improvements over the years

• as of May-05 best is 200 decimal digits (663) bit with LS as of May-05 best is 200 decimal digits (663) bit with LS biggest improvement comes from improved algorithmbiggest improvement comes from improved algorithm

• cf QS to GHFS to LScf QS to GHFS to LS currently assume 1024-2048 bit RSA is securecurrently assume 1024-2048 bit RSA is secure

• ensure p, q of similar size and matching other constraintsensure p, q of similar size and matching other constraints

Page 25: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Timing AttacksTiming Attacks

developed by Paul Kocher in mid-1990’sdeveloped by Paul Kocher in mid-1990’s exploit timing variations in operationsexploit timing variations in operations

eg. multiplying by small vs large number eg. multiplying by small vs large number or IF's varying which instructions executedor IF's varying which instructions executed

infer operand size based on time taken infer operand size based on time taken RSA exploits time taken in exponentiationRSA exploits time taken in exponentiation countermeasurescountermeasures

use constant exponentiation timeuse constant exponentiation time add random delaysadd random delays blind values used in calculationsblind values used in calculations

Page 26: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

Chosen Ciphertext AttacksChosen Ciphertext Attacks

• RSA is vulnerable to a Chosen Ciphertext RSA is vulnerable to a Chosen Ciphertext Attack (CCA)Attack (CCA)

• attackers chooses ciphertexts & gets decrypted attackers chooses ciphertexts & gets decrypted plaintext backplaintext back

• choose ciphertext to exploit properties of RSA choose ciphertext to exploit properties of RSA to provide info to help cryptanalysisto provide info to help cryptanalysis

• can counter with random pad of plaintextcan counter with random pad of plaintext• or use Optimal Asymmetric Encryption or use Optimal Asymmetric Encryption

Padding (OASP)Padding (OASP)

Page 27: Criptografia e Segurança em Redes Capítulo 9 Quarta Edição William Stallings William Stallings Slides de Lawrie Brown Tradução: Bruno e Mario.

ResumoResumo

Foi apresentado:Foi apresentado: Principios da criptografia de chaves públiasPrincipios da criptografia de chaves públias Algoritimo RSA , implementação e segurançaAlgoritimo RSA , implementação e segurança