Post on 08-Nov-2018
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 n1.
• 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.
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.
19
Funções de uma Infraestrutura 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 (CCPID): baseada em funções de emparelhamento sobre pontos de curvas elípticas.
• Criptografia de chave pública sem certificados (CCPSC): 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 ; podese 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, q1], onde q é um número primo, temse 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 (CCPID)
• 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, email, CIC, etc.).• Requer um Gerador de Chaves Privadas (GCPr):
– deve ser entidade de total confiança no modelo;– possui chavemestra que gera qualquer chave privada.
27
Ciframento em CCPID: etapa inicial• GCPr escolhe uma chave mestra secreta s
inteira no intervalo [1, q1];• 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 CCPID: 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 CCPID: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 CCPID• 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 DiffieHellman 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,q1].”
32
Características da CCPID• 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 (CCPSC)
• Proposta de AlRiyami 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.
35
Ciframento em CCPSC: etapa inicialEtapa idêntica à de CCPID:• GCPrP escolhe uma chave mestra secreta s inteira no
intervalo [1, q1];• 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 CCPSC: criação de chave privada parcial
• Idêntica à criação de chave privada em CCPID.• 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 CCPSC: 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 CCPID.• 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 CCPSC• 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:– podese 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 CCPID).
• Interoperável com implementações de CCPID.
41
Comparações
Característica ICP CCPID CCPSC
dispensa certificados não sim sim
geração de chaves em instantes distintos
não sim sim
provê nãorepú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.