75
1 Criptografia de Chave Pública O Problema da Distribuição de Chaves

Criptografia de Chave Pública

  • Upload
    varuna

  • View
    23

  • Download
    0

Embed Size (px)

DESCRIPTION

Criptografia de Chave Pública. O Problema da Distribuição de Chaves. Problema da Distribuição de Chaves. - PowerPoint PPT Presentation

Citation preview

Page 1: Criptografia de Chave Pública

1

Criptografia de Chave Pública

O Problema

da Distribuição de Chaves

Page 2: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 2

Problema da Distribuição de Chaves

A criptografia de chave simétrica pode manter seguros seus segredos (chave e informação), mas se precisar compartilhar informações secretas com outras pessoas deve-se também compartilhar as chaves que são secretas.

Como duas ou mais pessoas podem, de maneira segura, enviar as chaves por meio de linhas inseguras ?

Page 3: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 3

Compartilhando chaves antecipadamente

Page 4: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 4

Problemas com esse esquema

Page 5: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 5

Utilizando um terceiro confiável

Page 6: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 6

Problemas com esse esquema

Page 7: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 7

Criptografia de Chave Pública

Na criptografia simétrica, a mesma chave é usada para encriptar e decriptar.

Na criptografia assimétrica a chave utilizada para encriptar não é usada para decriptar.

As chaves são significativamente diferentes: (Ke, Kd)

Page 8: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 8

Criptografia de Chave Pública

Elas são parceiras. Estão relacionadas entre si:

Kd => Ke Ke ? =>? Kd

O relacionamento é matemático; o que uma chave encripta a outra decripta:

C = E(ke, P) D(Kd, C) = P

É possível criar uma algoritmo criptográfico no qual uma chave encripta (Ke) e uma outra decripta (Kd): D( Kd, E(ke, P) ) = P

Page 9: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 9

Criptografia de Chave Pública

Se a função E(ke, P) realiza uma operação, tal como exponenciação sobre P.

E a função D( Kd,C) é similar, e a exponenciação usa módulo aritmético:

Então, pode-se provar que: D( Kd, E(ke, P) ) = P

Page 10: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 10

Criptografia de Chave Pública

Porque ambas as chaves são necessárias para cifrar e decifrar a informação, uma delas pode se tornar pública sem pôr a segurança em perigo.

Essa chave é conhecida como chave pública (Ke).

E sua contraparte é chamada chave privada (Kd).

Page 11: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 11

Criptografia de Chave Pública

Então, encripta-se com a chave pública e decripta-se com a chave privada.

Apenas a chave privada parceira pode ser usada para decriptar a informação.

A chave privada é mantida em sigilo. O texto simples encriptado permanecerá seguro.

Page 12: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 12

Criptografando com Chave Pública

Texto Simples

Texto Simples

Texto Cifrado

Texto Cifrado

Chave Pública de Criptografia

Algoritmo Encriptador

Page 13: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 13

Decriptografando com Chave Privada

Texto Simples

Texto Simples

Texto Cifrado

Texto Cifrado

Chave Privada

Algoritmo de Decriptografia

Page 14: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 14

Como funciona a criptografia simétrica

Compartilhamento de uma chave comum.

Todos têm que manter a chave comum em segredo.

É possível ?

Page 15: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 15

Como funciona a criptografia de chave pública

A criptografia de chave pública torna possível a comunicação segura entre pessoas, sem precisar do compartilhamento de uma chave comum.

Chaves públicas são distribuídas entre as pessoas, as quais guardam em segredo suas chaves privadas correspondentes.

Page 16: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 16

Como funciona a criptografia de chave pública

Possibilitam assinar mensagens sem a presença de uma terceira parte confiável.

Os resumos de mensagens assinados permitem verificar com facilidade a integridade de mensagens recebidas.

Page 17: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 17

Gerenciamento de chaves públicas

Problema:

Se Alice e Bob não se conhecem um ao outro, como eles irão obter as respectivas chaves públicas para iniciar a comunicação entre eles ?

Como Alice (Bob) pode ter certeza que está realmente obtendo a chave pública de Bob (Alice) ?

Page 18: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 18

Gerenciamento de chaves públicas

A solução óbvia: Bob coloca sua chave pública na sua página Web.

Não funciona !!!

Suponha que Alice queira se comunicar com Bob.

Page 19: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 19

Gerenciamento de chaves públicas

Alice, então, precisa pesquisar a chave pública de Bob na página dele.

Como ela fará isso?

Alice começa por digitar a URL de Bob, em seu navegador.

Page 20: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 20

Gerenciamento de chaves públicas

O navegador pesquisa o endereço DNS da página de Bob e envia ao site Web de Bob, uma solicitação HTTP-GET.

Infelizmente, suponha que Trudy intercepta a solicitação GET e responde a Alice com uma página falsa, fazendo a substituição da chave pública de Bob pela chave pública dela.

Page 21: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 21

Gerenciamento de chaves públicas

Quando Alice envia sua primeira mensagem criptografada, será com ET

(a chave pública de Trudy).

Page 22: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 22

Gerenciamento de chaves públicas

Page 23: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 23

Gerenciamento de chaves públicas

Page 24: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 24

Desempenho

Para informação em grande quantidade, Algoritmos de chave pública são lentos. (20Kb a 200Kb) por segundo.Muito lento para processamento de dados em volume.

Algoritmos de chave simétrica podem encriptar informação em grande quantidade bem mais rapidamente. (10Mb, 20Mb, 50 Mb ou mais) por segundo.

Page 25: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 25

Desempenho

Mas, encriptar 128 bits (tamanho provável de uma chave simétrica), não leva tanto tempo.

Solução: usar a combinação de criptografia de chave simétrica e de chave pública.

Page 26: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 26

Envelope Digital

Processo usado para criptografar informação em grande quantidade

utilizando a criptografia de chave simétrica e

criptografando a chave simétrica de sessão com um algoritmo de chave pública.

Page 27: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 27

Criptografando em Envelope Digital

Chave Simétrica de Sessão

Chave Pública

Chave Simétrica de Sessão Criptografada

Texto Plano

Texto Criptografado

Algoritmo de Chave Simétrica

Algoritmo de Chave Pública

Page 28: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 28

Descriptografando o Envelope Digital

Algoritmo de Chave Pública

Chave Privada

Chave Simétrica de Sessão Criptografada

Chave Simétrica de Sessão

Texto Criptografado

Texto Plano

Algoritmo de Chave Simétrica

Page 29: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 29

Vantagem do Envelope Digital

Ao invés do segredo ser compartilhado antecipadamente.

Segredo compartilhado, através da chave simétrica de sessão.

Manter uma chave separada para cada pessoa, mas agora é a chave pública que não precisa estar protegida.

Não é preciso armazenar as próprias chaves públicas. Diretórios de chaves públicas podem estar disponíveis.

Page 30: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 30

Questões sobre a segurança

Exemplo do email usando envelope digital.

Pao-Chi ---> Gwen

Satomi pode interceptar o email.

Page 31: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 31

Quebrando um algoritmo de chave pública

Page 32: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 32

Notas Históricas

Page 33: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 33

Como funciona a criptografia de chave pública

Page 34: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 34

Quem inventou a Criptografia de Chave Pública

Page 35: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 35

Algoritmos mais utilizados

Três algoritmos são mais usados para resolver o problema da distribuição de chaves:

- DH (Diffie-Hellman, 1976) (Stanford University)

- RSA (Rivest, Shamir, Adleman) (M.I.T, 1978)

- Ramo da matemática (Elliptic Curve, 1985) (Neal Koblitz-University of Washington, Victor Miller- Watson Research Center IBM) ECDH (Elliptic Curve Diffie-Hellman, final anos 90)

Page 36: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 36

Estabelecendo uma Chave Compartilhada

Diffie-Hellman, 1976 Acordo de chave Diffie-HellmanResolve problema de distribuição de

chave simétrica, criando uma chave compartilhada.

É preciso encriptar uma chave simétrica de sessão para criar o envelope digital.

Page 37: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 37

Acordo de chave Diffie-Hellman

Usa-se para tal, a criptografia de chave pública, para criar o envelope digital.

É utilizada a tecnologia de chave pública para gerar a chave de sessão simétrica.

Page 38: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 38

Acordo de Chave Diffie-Hellman

Alice e Bob têm que concordar sobre dois grandes números: - p (um número primo) - g (um número pseudo-aleatório)

onde (p-1)/2 é também um primo e certas condições se aplicam a g.

Page 39: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 39

Acordo de Diffie-Hellman

p é um número primo gerado a partir de um PRNG, sendo verificado se é primo pelo Teste de Fermat.

g é um número gerado por um PRNG, que se relaciona bem com o valor de p.

Page 40: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 40

Acordo de Diffie-Hellman

Estes números podem ser públicos, assim, qualquer uma das partes pode escolher p e g e dizer ao outro abertamente.

Seja Alice gerar, por um PRNG, um número grande (digamos 512 bits), chamado x. Ela guarda x como secreto.

Alice tem agora (p, x) que define a chave privada em DH, como em RSA.

Page 41: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 41

Acordo de Diffie-Hellman

Alice calcula y = gx mod p . Alice tem, então, um expoente privado x.

Alice inicia o protocolo do acordo de chave enviando a Bob uma mensagem contendo (p, g, y) .

y é um valor transmitido, portanto, público.

Page 42: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 42

Acordo de Diffie-Hellman

Bob tem agora um número grande gx mod p (512 bits) definindo a tripla(p, g, gx mod p) a qual é transmitida para Bob, como a chave pública DH de Alice.

Bob escolhe um número y secreto.

Bob responde enviando a Alice uma mensagem contendo (gy mod p) .

Page 43: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 43

Acordo de Diffie-Hellman

Alice calcula (gy mod p)x

Bob calcula (gx mod p)y

Pela lei da aritmética modular, ambos os cálculos resultam em gxy mod p .

Alice e Bob, agora compartilham uma chave secreta: gxy mod p

Page 44: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 44

Acordo de Diffie-Hellman

gx mod p

(p,x) chave privada

ALICE

BOB

Alice escolhe p, g públicos e x secreto

Bob escolhe ysecreto

chave pública

(p, g, gx mod p)

gy mod p

Alice calcula(gy mod p)x

= gxy mod p

Bob calcula(gx mod p)y

= gxy mod p

Page 45: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 45

Acordo de Chaves Diffie-Hellman

O algoritmo não criptografa os dados.Duas partes geram o mesmo segredo e

então utilizam para ser uma chave de sessão para uso em um algoritmo simétrico, ou seja, gxy mod p) .

Este procedimento é chamado Acordo de Chave.

Page 46: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 46

O acordo de Diffie-Hellman

Dificuldade de quebra do algoritmo:

Trudy conhece g e p. Se ela pudesse descobrir x e y, ela descobriria a chave secreta.

O problema é que dado (gx mod p) e (gy mod p), ela não pode descobrir x nem y.

Nenhum algoritmo é conhecido para computar o módulo de logaritmo discreto de um número primo muito grande.

Page 47: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 47

O algoritmo RSA

Baseado em alguns princípios da Teoria dos Números.

Sumário do algoritmo: 1. Escolher dois números primos

grandes, p e q (tipicamente maiores que 10100). Um PRNG escolhe p;

Teste de Fermat localiza q.

Page 48: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 48

O algoritmo RSA

2. Compute n = p.q donde n > 10200

Ø(n) = z = (p-1).(q-1) função de Euler

3.Escolher um número relativamente primo a z e chamá-lo de d (isto é, tal que d não tenha fatores primos comuns com z). 4. Encontre e tal que e.d = 1 mod z

Page 49: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 49

O algoritmo RSA

5. Dividir o texto plano (considerado como uma string de bits) em blocos,

de modo que cada mensagem do texto plano P (bloco) caia no intervalo 0 <= P < n.

Page 50: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 50

O algoritmo RSA

Isto pode ser feito agrupando-se o texto plano dentro de blocos iguais de

k bits, onde k é o maior inteiro para o qual 2k < n. Em aplicações práticas k varia de 512 a 1024 bits.

Page 51: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 51

O algoritmo RSA

6. Para encriptar um mensagem P, compute a função E’(e,n,P) = C = Pe mod n. Para decriptar, compute a função D’(d,n,C) = P = Cd mod n Pode ser provado que para todo P, essas funções são inversas: E’(D’(x)) = D’(E’(x)) = x

Page 52: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 52

O algoritmo RSA

Para encriptar precisamos de e e n. Para decriptar precisamos de d e n. Assim, a chave pública consiste do par (e,n) e a chave privada do par (d,n).

Page 53: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 53

Segurança do RSA

A segurança do método é baseada na dificuldade de se fatorar números grandes.

Se um cripto-analista puder fatorar n, ele poderia então descobrir p e q, e destes, z.

Page 54: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 54

Segurança do RSA e DH

Em Diffie-Hellman, quanto maior for n, mais tempo os programas de computador levarão – na realidade, o mesmo tempo que levariam para fatorar.

O problema de fatoração e o problema de log discreto estão relacionados. Resolvendo um deles, ambos são resolvidos.

De praxe, em DH, n deve ter 1024 bits. Com o RSA encontramos dois primos de 512 bits e os multiplicamos para obter um módulo de 1024 bits.

Page 55: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 55

Segurança do RSA [Coulouris et al. 2005, p294-295]

[Rivest et al. 1978] concluiram que fatorar um número tão grande quanto 10200 seria tomado mais de 4 bilhões de anos, com o melhor algoritmo conhecido e sobre um computador que realizasse 1 milhão de instruções por segundo.

Um cálculo similar para os computadores de hoje, reduziria este tempo em torno de 1 milhão de anos.

Page 56: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 56

Segurança do RSA [Coulouris et al. 2005, p294-295]

RSA Corporation tem emitido uma série de desafios para fatorar números de mais de 100 dígitos decimais.

Números de até 174 dígitos decimais (576 bits) têm sido fatorados, e assim o uso do algoritmo RSA com chaves de 512 bits é inaceitável para muitos propósitos.

Page 57: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 57

Segurança do RSA [Coulouris et al. 2005, p294-295]

RSA Corporation (que retém a patente do algoritmo RSA) recomenda um comprimento de chave de ao menos 768 bits (em torno de 230 dígitos decimais), por um período de segurança a longo-prazo de aproximadamente 20 anos.

Page 58: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 58

Segurança do RSA [Coulouris et al. 2005, p294-295]

Chaves de 1024 bits são utilizadas. Chaves tão grandes quanto 2048 bits são

usadas em algumas aplicações. Os algoritmos de fatoração usados são os

melhores disponíveis. Algoritmos criptográficos assimétricos que usam

multiplicação de números primos como função de uma via estarão vulneráveis quando um algoritmo de fatoração mais rápido for descoberto.

Page 59: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 59

RSA e Envelope Digital

Pode-se usar o RSA para criptografar dados diferentes do que uma chave de sessão, como no processo do envelope digital, mas o RSA não é tão rápido quanto os algoritmos simétricos.

Page 60: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 60

Outros algoritmos de chave pública

(Merkle, Hellman, 1978), Knapsack Algorithm

(Rabin, 1979)El Gamal (1985)Schnort (1991)(Menezes, Vanstone, 1993)

Page 61: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 61

El Gamal

Page 62: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 62

RC4

RC4 (provavelmente o algoritmo simétrico com cifragem de ........, mais rápido usado hoje em dia) criptografa os dados a uma taxa 700 vezes mais rápida do que os 1024 bits de chave (tamanho de chave mais comumente usado) do RSA.

Page 63: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 63

RC5

RC5, uma das mais rápidas cifragem de bloco, é aproximadamente 500 vezes mais rápido do que RSA.

A melhor maneira de se usar RSA é criar um envelope digital.

Page 64: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 64

Comparando os algoritmos

SegurançaTamanhos de ChaveDesempenhoTamanho de transmissãoInteroperabilidade

Page 65: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 65

Segurança do Algoritmo

RSA está baseado no problema da fatoração.

Diffie-Hellman (DH) está baseado no problema do log discreto.

ECDH (ECC) está baseado, também, no problema do log discreto.

Não se pode afirmar, atualmente qual é o algoritmo mais seguro

Page 66: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 66

Tamanho de Chave

Quanto maior a chave, maior o nível de segurança, e consequentemente menor é a velocidade de execução.

O algoritmo de chave pública deve utilizar um tamanho de chave ao menos duas vezes mais longo que o da chave simétrica, independentemente do desempenho, por razão de segurança.

Page 67: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 67

Desempenho

Diz respeito a rapidez com que o algoritmo é executado.

O algoritmo mais adequado depende do que é mais importante – a chave pública ou as operações de chave privada – para um aplicativo utilizando o algoritmo.

Page 68: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 68

Tamanho de transmissão

É o custo ou o tempo que o algoritmo leva para transmitir bits através do meio de comunicação (cabos ou ar).

Com RSA e DH, o tamanho de transmissão é o mesmo que o tamanho de chave.

Com o ECC, é enviado duas vezes o tamanho de chave.

Page 69: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 69

Interoperabilidade

Escolher o algoritmo que todo mundo tem. (DES, Triple DES ou AES); (RC4 ou RC5) podem não satisfazer interoperabilidade.

RSA é quase onipresente e tornou-se o padrão de fato.

DH tem boa chance, mas não é tão disseminado.

Com ECC, os aplicativos conversam somente entre si. Classes de curvas elípticas (Fp e F2) são incompatíveis.

Page 70: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 70

Protegendo chaves privadas

Page 71: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 71

Esquemas de Recuperação de Chave

Envelope digitalTerceiro confiávelGrupo de depositários de confiançaThreshold

Page 72: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 72

Referências

Performance de algoritmos criptográficos

Crypto++

Open source library of cryptographic schemes [www.cryptopp.com]

PRB optimized

[Preneel et al. 1998]

Page 73: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 73

Referências

Softwares que implementam a maioria dos principais algoritmos criptográficos:

Impresso: [Schneier 1996]

Online: versões comerciais e freeware[www.rsasecurity.com][www.cryptography.org][privacy.nb.ca][www.openssl.org][www.pgp.com][International PGP]

Page 74: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 74

Referências

SPKI (Simple Public-KeyInfrastructure) Creation and management of sets of public certificates.

RFC 2693 [Ellison et al. 1999]

Page 75: Criptografia de Chave Pública

Abril de 2006 Criptografia de Chave Pública 75