A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

2 Capítulo 9 - Public Key Cryptography e RSA Cada egípicio recebia dois nomes que eram conhecidos respectivamente como o nome verdadeiro e o nome pequeno: e enquanto o nome bom ou pequeno era público, o nome verdadeiro ou grande era cuidadosamente ocultado. Cada egípicio recebia dois nomes que eram conhecidos respectivamente como o nome verdadeiro e o nome pequeno: e enquanto o nome bom ou pequeno era público, o nome verdadeiro ou grande era cuidadosamente ocultado. O Ramo de Ouro, Sir James George Frazer O Ramo de Ouro, Sir James George Frazer

3 Criptografia de Chave-Privada Tradicional Privado/Secreto/Chave Única Tradicional Privado/Secreto/Chave Única Criptografia utiliza apenas uma chave Partilhada por ambos, emissor e receptor Partilhada por ambos, emissor e receptor Se esta chave é divulgada, comunicações são comprometidas Se esta chave é divulgada, comunicações são comprometidas Também é Simétrica, partes são equivalentes Também é Simétrica, partes são equivalentes Daí não proteger o emissor de um receptor forjando uma mensagem & reinvidicação enviada pelo emissor Daí não proteger o emissor de um receptor forjando uma mensagem & reinvidicação enviada pelo emissor

4 Criptografia de Chave-Pública Provavelmente o mais significativo avanço em 3000 anos de história da criptografia Provavelmente o mais significativo avanço em 3000 anos de história da criptografia Utiliza duas chaves - uma pública & uma chave privada Utiliza duas chaves - uma pública & uma chave privada Assimétricas porque as partes não são iguais Assimétricas porque as partes não são iguais Usa inteligente aplicação de acordo com o conceito da teoria dos números Usa inteligente aplicação de acordo com o conceito da teoria dos números complementa melhor do que repor a criptografia de chave privada complementa melhor do que repor a criptografia de chave privada

5 Por que Criptografia de Chave-Pública? Desenvolvidas para abordar duas questões fundamentais: Desenvolvidas para abordar duas questões fundamentais: Distribuição de chaves – como ter comunicações seguras sem ter de confiar uma KDC com sua chave Distribuição de chaves – como ter comunicações seguras sem ter de confiar uma KDC com sua chave Assinatura digital – como verificar se uma mensagem chega intacta ao alegado remetente Assinatura digital – como verificar se uma mensagem chega intacta ao alegado remetente Invenção pública de Whitfield Diffie & Martin Hellman em 1976 Invenção pública de Whitfield Diffie & Martin Hellman em 1976 known earlier in classified community known earlier in classified community conhecida anteriormente classificados na comunidade conhecida anteriormente classificados na comunidade

6 Criptografia de Chave-Pública chave-pública/duas-chaves/assimétricas criptografia envolve o uso de duas chaves: chave-pública/duas-chaves/assimétricas criptografia envolve o uso de duas chaves: Uma chave-pública, que pode ser conhecido por qualquer um, e pode ser usada para criptografar mensagens e verificar assinaturas Uma chave-pública, que pode ser conhecido por qualquer um, e pode ser usada para criptografar mensagens e verificar assinaturas Uma chave-privada, conhecida apenas pelo destinatário, que serve para descriptografar mensagens, e assinar (criar) assinaturas Uma chave-privada, conhecida apenas pelo destinatário, que serve para descriptografar mensagens, e assinar (criar) assinaturas É assimétrica porque: É assimétrica porque: quem criptografar mensagens ou verificar assinaturas não pode decifrar mensagens ou criar assinaturas quem criptografar mensagens ou verificar assinaturas não pode decifrar mensagens ou criar assinaturas

7 Criptografia de Chave-Pública

8 Características da Chave-Pública Algoritmos de Chave-Pública contam com duas chaves, quando: Algoritmos de Chave-Pública contam com duas chaves, quando: é computacionalmente impossível de encontrar a chave de decriptografia sabendo apenas o algoritmo & chave de encriptação é computacionalmente impossível de encontrar a chave de decriptografia sabendo apenas o algoritmo & chave de encriptação é computacionalmente fácil (en/des)criptografar as mensagens quando os relevantes chaves de (en/decriptação) são conhecidas é computacionalmente fácil (en/des)criptografar as mensagens quando os relevantes chaves de (en/decriptação) são conhecidas uma das duas chaves relacionadas podem ser utilizados para a criptografia, com as outras utilizadas para a descodificação (para alguns algoritmos) uma das duas chaves relacionadas podem ser utilizados para a criptografia, com as outras utilizadas para a descodificação (para alguns algoritmos)

9 Sistemas de Criptografia Chave-Pública

10 Aplicações da chave-Pública Aplicaçõ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 todos os usos, outros são especificos para um Alguns Algoritimos são adequados para todos os usos, outros são especificos para um

11 Segurança dos Sistemas de chave pública Como o esquema de chave privada, exaustiva pesquisa pequisa de ataque por foça bruta é sempre teoricamente possível Como o esquema de chave privada, exaustiva pesquisa pequisa de ataque por foça bruta é sempre teoricamente 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 grande diferença de dificuldade entre fáceis (en/decripta) e dificeis (criptoanálise) problemas segurança conta com uma dimensão suficientemente grande diferença de dificuldade entre fáceis (en/decripta) e dificeis (criptoanálise) problemas Geralmente o mais difícil do problema é conhecido, mas é feito difícil o bastante para tornar a solução impraticável Geralmente o mais difícil do problema é conhecido, mas é feito difícil o bastante para tornar a solução impraticável exige a utilização de muitos números grandes exige a utilização de muitos números grandes Daí a lentidão, se comparado com sistemas de chave privada Daí a lentidão, se comparado com sistemas de chave privada

12 RSA Por Rivest, Shamir & Adleman of MIT in 1977 Por Rivest, Shamir & Adleman of MIT in 1977 mais conhecido e amplamente usado sistema de chaves públicas mais conhecido e amplamente usado sistema de chaves públicas baseado em uma exponenciação um corpo (Galois) finito, sobre inteiros modulo uma privilegiada baseado em uma exponenciação um corpo (Galois) finito, sobre inteiros modulo uma privilegiada based on exponentiation in a finite (Galois) field over integers modulo a prime based on exponentiation in a finite (Galois) field over integers modulo a prime nb. exponentiation takes O((log n) 3 ) operations (easy) nb. exponentiation takes O((log n) 3 ) 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 log n log log n ) operations (hard) nb. factorization takes O(e log n log log n ) operations (hard)

13 RSA 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 aleatoriamente - p, q selecionando dois grandes numeros primos aleatoriamente - p, q computando seu sistema de modulus n = p.q computando seu sistema de modulus n = p.q nota ø (n) = (p-1) (q-1) nota ø (n) = (p-1) (q-1) Selecionando aleatoriamente uma chave decriptação e Selecionando 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 decriptação d resolver a seguinte equação para encontrar a chave de decriptação d Onde 1<e<0 (n), mdc (e,0(n))=1 Onde 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} Mantendo secreta a chave de decripatção: PR={d,n} Mantendo secreta a chave de decripatção: PR={d,n}

14 Uso 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} calcula: C = M e mod n, onde 0M<n calcula: C = M e mod n, onde 0M<n para descriptografar o texto encriptado C, o proprietário: para descriptografar o texto encriptado C, o proprietário: Utiliza sua chave privada PR={d,n} Utiliza sua chave privada PR={d,n} calcula: M = C d mod n calcula: M = C d mod n Note que a mensagem M precisa ser menor do que o Modulo n (bloco se necessario) Note que a mensagem M precisa ser menor do que o Modulo n (bloco se necessario)

15 Por que trabalhar com RSA Devido ao Teorema de Euler: a ø(n) mod n = 1 onde gcd(a,n)=1 a ø(n) mod n = 1 onde gcd(a,n)=1 no RSA temos: no RSA temos: n=p.q n=p.q ø(n)=(p-1)(q-1) ø(n)=(p-1)(q-1) Cuidadosamente escolheu e & d para ser inversos ao mod ø(n) Cuidadosamente escolheu e & d para ser inversos ao mod ø(n) portanto e.d=1+k.ø(n) para qualquer k portanto e.d=1+k.ø(n) para qualquer k Daí: C d = M e.d = M 1+k.ø(n) = M 1.(M ø(n) ) k Daí: C d = M e.d = M 1+k.ø(n) = M 1.(M ø(n) ) k = M 1.(1) k = M 1 = M mod n = M 1.(1) k = M 1 = M mod n

16 Exemplo do RSA Configuração de Chave 1. Selecionar primos: p=17 & q=11 2. Calcular n = pq =17 x 11=187 3. Calcular ø(n)=(p–1)(q-1)=16 x 10=160 4. Selecionar e : gcd(e,160)=1; escolher e=7 5. Determinar d : de=1 mod 160 e d < 160 Valor é d=23 desdeq 23x7=161= 10x160+1 6. Publicar a chave pública PU={7,187} 7. Manter secreta a chave privada PR={23,187}

17 Exemplo: RSA - En/Decriptação amostra RSA encriptação/decriptação é: amostra RSA encriptação/decriptação é: Dada a mensagem M = 88 ( 88<187 ) Dada a mensagem M = 88 ( 88<187 ) Encriptação Encriptação C = 88 7 mod 187 = 11 Decriptação: Decriptação: M = 11 23 mod 187 = 88

18 Exponenciação can use the Square and Multiply Algorithm can 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 calcular o resultado e multiplicando os que nos são necessárias para calcular o resultado olhar para a representação binária do exponente olhar para a representação binária do exponente Só pega O(log 2 n) multiplos para o numero n Só pega O(log 2 n) multiplos para o numero n eg. 7 5 = 7 4.7 1 = 3.7 = 10 mod 11 eg. 7 5 = 7 4.7 1 = 3.7 = 10 mod 11 eg. 3 129 = 3 128.3 1 = 5.3 = 4 mod 11 eg. 3 129 = 3 128.3 1 = 5.3 = 4 mod 11

19 Exponenciação c = 0; f = 1 for i = k downto 0 do c = 2 x c do c = 2 x c f = (f x f) mod n f = (f x f) mod n if b i == 1 then if b i == 1 then c = c + 1 c = c + 1 f = (f x a) mod n f = (f x a) mod n return f return f

20 Encriptação Eficiente Encriptaçã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 diferentes modulii utilizando chinês restante teorema & 3 mensagens com 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 para e ou seja, rejeitar qualquer p ou q não relativamente privilegiada para e

21 Efficient Decryption decryption uses exponentiation to power d decryption uses exponentiation to power d this is likely large, insecure if not this is likely large, insecure if not can use the Chinese Remainder Theorem (CRT) to compute mod p & q separately. then combine to get desired answer can use the Chinese Remainder Theorem (CRT) to compute mod p & q separately. then combine to get desired answer approx 4 times faster than doing directly approx 4 times faster than doing directly only owner of private key who knows values of p & q can use this technique only owner of private key who knows values of p & q can use this technique

22 RSA: Geração de Chaves usuários da RSA precisam: usuários da RSA precisam: determinar 2 numeros primos aleatoriamente - p, q determinar 2 numeros primos aleatoriamente - p, q Selecionar entre e ou d e calcular os outros Selecionar entre e ou d e calcular os outros primos p,q não devem ser facilmente derivados do modulo n=p.q primos p,q não devem ser facilmente derivados do modulo n=p.q Meios devem ser suficientemente grandes Meios devem ser suficientemente grandes Tipicamente adivinhar e utilização probabilística teste Tipicamente adivinhar e utilização probabilística teste expoentes e, d são inversos,então usamos o algoritimo inverso para calcula um ou outro expoentes e, d são inversos,então usamos o algoritimo inverso para calcula um ou outro

23 RSA: 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 inviável dada dimensão dos números) Pesquisa de chave por força bruta (pesquisa inviável dada dimensão dos números) ataques matemáticos (com base na dificuldade de computação ø (n), pela fatoração do modulo n) ataques matemáticos (com base na dificuldade de computação ø (n), pela fatoração do modulo n) calendário ataques (em funcionamento de descodificação) calendário ataques (em funcionamento de descodificação) timing attacks (on running of decryption) timing attacks (on running of decryption) chosen ciphertext attacks (given properties of RSA) chosen ciphertext attacks (given properties of RSA)

24 Factoring Problem mathematical approach takes 3 forms: mathematical approach takes 3 forms: factor n=p.q, hence compute ø(n) and then d factor n=p.q, hence compute ø(n) and then d determine ø(n) directly and compute d determine ø(n) directly and compute d find d directly find d directly currently believe all equivalent to factoring currently 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 LSas of May-05 best is 200 decimal digits (663) bit with LS biggest improvement comes from improved algorithm biggest improvement comes from improved algorithm cf QS to GHFS to LScf QS to GHFS to LS currently assume 1024-2048 bit RSA is secure currently 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

25 Timing Attacks developed by Paul Kocher in mid-1990s developed by Paul Kocher in mid-1990s exploit timing variations in operations exploit timing variations in operations eg. multiplying by small vs large number eg. multiplying by small vs large number or IF's varying which instructions executed or 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 exponentiation RSA exploits time taken in exponentiation countermeasures countermeasures use constant exponentiation time use constant exponentiation time add random delays add random delays blind values used in calculations blind values used in calculations

26 Chosen Ciphertext Attacks RSA is vulnerable to a Chosen Ciphertext Attack (CCA) RSA is vulnerable to a Chosen Ciphertext Attack (CCA) attackers chooses ciphertexts & gets decrypted plaintext back attackers chooses ciphertexts & gets decrypted plaintext back choose ciphertext to exploit properties of RSA to provide info to help cryptanalysis choose ciphertext to exploit properties of RSA to provide info to help cryptanalysis can counter with random pad of plaintext can counter with random pad of plaintext or use Optimal Asymmetric Encryption Padding (OASP) or use Optimal Asymmetric Encryption Padding (OASP)

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google