criptografia de chave pú novos modelos baseados em...

42
1 Criptografia de chave pública: novos modelos baseados em emparelhamentos bilineares sobre pontos de curvas elípticas Danilo Prates de Oliveira Marco Aurélio Amaral Henriques DCA/FEEC/UNICAMP

Upload: buixuyen

Post on 08-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

1

Criptografia de chave pública: novos modelos baseados em 

emparelhamentos bilineares sobre pontos de curvas elípticas

Danilo Prates de OliveiraMarco Aurélio Amaral Henriques

DCA/FEEC/UNICAMP

2

Criptografia• Principal ferramenta em segurança.• Duas variações principais:

– Criptografia de Chave Única• Também conhecida como Criptografia Convencional ou 

Simétrica.• Usa a mesma chave para cifrar e decifrar dado.• Muito antiga: código de César (Imp. Romano, séc. I a. C.)• Muito usada ainda hoje (Ex: DES, 3DES, AES).

– Criptografia de Chave Pública• Chaves distintas para cifrar e decifrar dados.• Desenvolvimento recente (1976).

3

Criptografia de Chave Única• Processo de Codificação consiste de:

– algoritmo de criptografia– chave

• independente dos dados,• comum à codificação e decodificação.

Codificação Decodificação

Dadosinteligíveis

Dadosinteligíveis

Dadoscifrados

ChaveCompartilhada

4

Criptografia Assimétricaou de Chave Pública

• Revolução na criptografia.– Proposta inicial: Diffie e Hellman (1976).

• Baseada em funções matemáticas complexas.– Métodos anteriores só usavam permutações e substituições.

• Chaves diferentes para cifrar e decifrar.– Impacto positivo no sigilo, distribuição de chaves e 

autenticação.

• Exemplos: RSA e Elliptic Curve Cryptography (ECC).

5

Criptografia Simétrica X Assimétrica• Assimétrica não é mais resistente à criptoanálise.

– Resistência depende do tamanho da chave e algoritmo de codificação.

• Simétrica não se tornou obsoleta e inútil.– Grande esforço computacional para codificar e 

decodificar assimetricamente.

• Distribuição de chaves na assimétrica não é trivial.– Requer agente central para chaves públicas.– Protocolos não são mais simples nem eficientes que 

os da criptografia simétrica.

6

Usos de CA: Sigilo• Qualquer um pode cifrar e enviar a Beto.• Somente Beto poderá ler texto M.

V = ECpuB(M)

M = DCprB(V)

Cifrar DecifrarM V M

Chave Públicade Beto (CpuB)

Chave Privadade Beto (CprB)

7

Usos de CA: Autenticação• Ana cifra com sua chave privada.• Qualquer um pode decifrar.• Deciframento correto implica que somente 

Ana poderia ter enviado texto cifrado.V = ECprA(M)

M = DCpuA(V)

Cifrar DecifrarM V M

Chave Privadade Ana (CprA)

Chave Públicade Ana (CpuA)

8

Criptoanálise em CA• Ataque por força bruta:

– Prevenção com uso de chaves grandes:• também dificultam o uso normal dos algoritmos.

– Compromisso entre tamanhos de chaves é necessário.

• Conclusão:– CA restrito a: 

• distribuição de chaves e • autenticação.

9

Algoritmo RSA

• Desenvolvido em 1977 por Rivest, Shamir e Adleman no MIT (publicado em 1978).

• Resposta ao desafio lançado por Diffie e Hellman em 1976.

• O mais popular dos algoritmos de CA.• Codificador por blocos:

– texto cifrado ou não é formado por n inteiros de 0 a n­1.

• Baseado em funções exponenciais.

10

Uso de RSA

• CodificaçãoV = M e mod n

• DecodificaçãoM = V d mod n = (M e ) d mod n = M e d mod n

• Obs:– chave pública: Cpu = (e,n)– chave privada: Cpr = (d, n)

11

Criptografia com Curvas Elípticas• Mercado de criptografia de chave pública é dominado pelo 

algoritmo RSA.• Aumento do poder computacional tem exigido aumentos no 

tamanho das chaves.– Sobrecarga em servidores de comércio eletrônico: necessidade de 

muitas transações seguras.– Sobrecarga em equipamentos com poucos recursos de velocidade e de 

memória: celulares, cartões inteligentes, computadores de mão, etc.• Algoritmo de chave pública mais leve se torna cada vez mais 

necessário.– Criptografia com Curvas Elípticas (ECC) oferece segurança no nível 

de RSA mas com chaves bem menores.

13

Exemplo de Grupo Elíptico Ep(a,b)• Seja o Grupo Elíptico E23(1,12):

y2 mod 23 = x3 + x + 12 mod 23     (14 soluções) 

1

3

5

7

9

11

13

15

17

19

21

0 2 4 6 8 10 12 14 16 18 20 22

P Q

R

1

3

5

7

9

11

13

15

17

19

21

0 2 4 6 8 10 12 14 16 18 20 22

P

R

Q

R = P + Q

14

Tamanhos de chaves para níveis similares de segurança

ECC (bits) RSA (bits)

163 1024

256 3072

384 7680

512 15360

razão

1:6

1:12

1:20

1:30

15

Problema de criptografia assimétrica:distribuição de chaves públicas

• Há quatro formas básicas de distribuição:– não práticas:

• via anúncio público;• via diretório público;• via autoridade administradora de chaves;

– prática:• via certificados digitais.

16

Distribuição via anúncio público

Ana Beto

KpuA

KpuA

KpuA

KpuA

KpuB

KpuB

KpuB

KpuB

17

Uso de Certificados• Partes interessadas solicitam certificados a uma 

autoridade, fornecendo suas chaves públicas.– Pedido deve ser feito pessoalmente ou usando um canal 

de comunicação confiável.

• Autoridade fornece certificado para A na formaCertA = ECprAut (T, IDA, CpuA).

• Parte B recebe certificado e o abre com CpuAut:(T, IDA, CpuA) = DCpuAut {ECprAut (T, IDA, CpuA)}

T : indica prazo de validade do certificado.

IDA : fornece identidade do portador do certificado.

18

Infra­estrutura de Chaves Públicas Tradicional

19

Funções de uma Infra­estrutura de Chaves Públicas (ICP) tradicional

• Geração do par de chaves:– política de segurança é que define quem faz.

• Geração e distribuição dos certificados.• Revogação de certificados.• Aquisição de certificados de terceiros.• Validação dos certificados.

20

Problemas relacionados com a ICP

• Normalmente associados ao alto custo de gerenciamento de certificados:– revogação;– armazenamento;– distribuição;– verificação.

• Tais custos têm limitado uma adoção mais rápida de ICP.

21

Novos esquemas de criptografiade chaves públicas

• Procuram diminuir os custos com certificados existentes na criptografia de chaves públicas tradicional (ICP).

• Criptografia de chave pública baseada em identidade (CCP­ID): baseada em funções de emparelhamento sobre pontos de curvas elípticas.

• Criptografia de chave pública sem certificados (CCP­SC): também se baseia em funções de emparelhamento sobre pontos de curvas elípticas.

22

Funções de emparelhamento

• Seja P um ponto sobre uma curva elíptica com a propriedade de gerar um grupo G1 de q elementos que são múltiplos de P.

• O emparelhamento                 e : G1 x G1           G2 é o mapeamento de elementos de G1 em elementos de um novo e diferente grupo G2 .

• Notação: sejam    Q  e W  G1    e      T  G2 ; pode­se escrever então: T = e ( Q  , W ).

23

Propriedades do emparelhamento

• Não degeneração:– o resultado do emparelhamento e(P, P) é 

diferente do elemento identidade de G2 .

• Computabilidade:– apesar do cálculo de emparelhamento ter 

alto custo computacional, ele deve ser calculável em um tempo que viabilize a sua utilização em aplicações práticas.

24

Propriedades do emparelhamento

• Bilinearidade:Dados os pontos Q  e W  G1 , para quaisquer inteiros a e b pertencentes ao intervalo [1, q­1], onde q é um número primo, tem­se que:

    e ( aQ , bW ) = e ( abQ , W ) = e ( Q , abW )= e ( bQ , aW ) = e ( Q , bW )a  = e ( aQ , W )b

= e ( bQ , W )a  = e ( Q , aW )b  = e ( Q , W )ab.

25

Criptografia de Chave Pública Baseada em Identidade (CCP­ID)

• 1984 – Shamir (proposta de uso limitado).• 2001 – Boneh e Franklin (proposta mais completa).• Chave pública – pode ser identificador aleatório 

associado ao usuário (nome, e­mail, CIC, etc.).• Requer um Gerador de Chaves Privadas (GCPr):

– deve ser entidade de total confiança no modelo;– possui chave­mestra que gera qualquer chave privada.

26

Ciframento Baseado em Identidade

27

Ciframento em CCP­ID: etapa inicial• GCPr escolhe uma chave mestra secreta s 

inteira no intervalo [1, q­1];• GCPr divulga os parâmetros públicos gerais

params = <G1, G2, e, P, P0, H1, H2 >, onde:P0 = sP ;H1: função hash que mapeia seqüência 

arbitrária de bits em algum ponto de G1;H2 : função hash que mapeia um elemento 

de G2 em uma seqüência de bits de comprimento igual à mensagem a ser cifrada.

28

Ciframento em CCP­ID: criação de chave privada

• Usando a identidade do usuário A (IDA), GCPr gera chave privada CPrA:

QA = H1 ( IDA ) ;

CPrA = s QA .

• Usuário A pode verificar validade de CPrA checando se

e (CPrA , P ) = e ( QA , P0 ).

29

Ciframento em CCP­ID:criação da mensagem codificada

Passos para cifrar mensagem para a entidade A:• obter identificador de A (IDA) ;

• calcular  QA = H1 ( IDA ) ;

• escolher inteiro r aleatório entre 1 e  q ­ 1;• calcular U = r P ;• calcular V = M  H2 ( e ( QA , P0 )r ) ;

• enviar C = ( U , V ).

30

Deciframento em CCP­ID• Para decifrar a mensagem, entidade A calcula

M = V  H2 ( e (CPrA , U ) ) .

• Resultado correto é garantido já que    V         H2 ( e (CPrA , U ) ) =  V         H2 ( e (sQA , rP ) ) =  V         H2 ( e (QA , sP )r ) =  V         H2 ( e (QA , P0 )r ) = M  H2 ( e ( QA , P0 )r )  H2 ( e (QA , P0 )r )= M .

31

Características dos emparelhamentos

• Nos criptossistemas baseados em identidade, a segurança consiste na intratabilidade do Problema de Diffie­Hellman Bilinear (BDHP):

“É computacionalmente inviável calcular e(P,P)abc  G2 , dados P, aP, bP e cP, onde a, b e c são inteiros aleatoriamente escolhidos no intervalo [1,q­1].”

32

Características da CCP­ID• Key escrow é possível

– GCPr pode decifrar qualquer mensagem cifrada ou assinar por qualquer entidade.

• Dificuldade de Revogação– Pode ser difícil revogar uma chave pública, dependendo do que foi 

escolhido para representá­la.

• Chaves podem ser geradas em instantes diferentes– Vantagem: geração de CPrA pode ser postergada para momento mais 

oportuno.– Desvantagem: mensagem pode ser cifrada e enviada a A por B antes 

que GCPr tenha validado a chave pública.

• Efeitos são desastrosos em caso de comprometimento da chave mestra.

33

Criptografia de Chave Pública sem Certificado (CCP­SC)

• Proposta de Al­Riyami e Paterson, 2003.• Chave privada criada em dois estágios:

– um Gerador de Chaves Privadas Parciais (GCPrP) cria uma chave parcial com base na identidade do usuário;

– usuário cria a chave privada final com base na chave privada parcial e em informação que somente ele conhece.

• Chave pública também é criada pelo usuário com base em informação secreta.– Ciframento usa chave pública e identidade do usuário.

• Elimina a necessidade de certificados.

34

Ciframento sem uso de certificados

35

Ciframento em CCP­SC: etapa inicialEtapa idêntica à de CCP­ID:• GCPrP escolhe uma chave mestra secreta s inteira no 

intervalo [1, q­1];• GCPrP divulga os parâmetros públicos gerais

params = <G1, G2, e, P, P0, H1, H2 >, onde:P0 = sP ;H1: função hash que mapeia seqüência arbitrária 

de bits em algum ponto de G1 ;H2 : função hash que mapeia um elemento de G2 

em uma seqüência de bits de comprimento igual à mensagem a ser cifrada.

36

Ciframento em CCP­SC: criação de chave privada parcial

• Idêntica à criação de chave privada em CCP­ID.• Usando a identidade do usuário A (IDA), GCPr 

gera chave privada parcial CPrPA.QA = H1 ( IDA )CPrPA = s QA

• Usuário A pode verificar validade de CPrPA checando se

e (CPrPA , P ) = e ( QA , P0 ).

37

Ciframento em CCP­SC: criação das chaves privada e públicaEntidade A:• escolhe um inteiro secreto xA entre 1 e q ­ 1;

• calcula chave privada final CPrA =  xA CPrPA =  xA s QA ;

• calcula chave pública CPuA = ( XA , YA ) ;

onde XA = xA P    e     YA = xA P0 ;

• divulga sua chave pública CPuA e sua identidade IDA .

38

Ciframento em CCP­ SC :criação da mensagem codificada

Passos para cifrar mensagem para a entidade A:

• obter identificador IDA e chave pública CPuA;

• verificar se CPuA é coerente: 

XA , YA  G1 ? e ( XA , P0 ) = e (YA , P ) ?

• calcular  QA = H1 ( IDA ) ;

• escolher inteiro r aleatório entre 1 e  q ­ 1;• calcular U = r P ;

• calcular V = M  H2 ( e ( QA , YA )r ) ;

• enviar C = ( U , V ).

39

Deciframento em CCP­ SC• Etapa idêntica à de CCP­ID.• Para decifrar a mensagem, entidade A calcula

M = V  H2 ( e (CPrA , U ) ) .

• Resultado correto é garantido já que    V     H2 ( e (CPrA , U ) ) =  V     H2 ( e (xAsQA , rP ) ) =  V     H2 ( e (QA , xAsP )r ) =  V     H2 ( e (QA , xAP0 )r ) = M  H2 ( e ( QA , YA )r )  H2 ( e (QA , YA )r )= M .

40

Características da CCP­SC• Não é baseada somente em identidade:

– evita problemas de várias entidades com mesmo identificador (se o mesmo não foi bem escolhido).

• Não há key escrow:– a autoridade não tem como obter chave privada final.

• Revogação:– pode­se associar períodos de validade aos identificadores para 

facilitar a revogação ou criar listas de IDs revogados.

• Permite gerar chaves em instantes distintos (como CCP­ID).

• Interoperável com implementações de CCP­ID.

41

Comparações

Característica ICP CCP­ID CCP­SC

dispensa certificados não sim sim

geração de chaves em instantes distintos

não sim sim

provê não­repúdio sim não  simchave pública qualquer não sim nãoconfiança necessária 

na autoridadebaixa alta média

42

Conclusões• Novas técnicas têm surgido para tentar diminuir o alto 

custo de gerenciamento de certificados nas infraestruturas de chaves públicas convencionais:– criptografia de chaves públicas baseada em identidades;– criptografia de chaves públicas sem certificados.

• Ponto em comum destas técnicas: funções de emparelhamento bilinear:– alto custo computacional dos emparelhamentos ainda não 

permitem que novas técnicas sejam competitivas.• Trabalhos futuros: 

– buscar formas mais eficientes de se calcular emparelhamentos.– Comprovar que técnicas são escaláveis e robustas.