Curva elíptica Diffie – Hellman - Elliptic-curve Diffie–Hellman

Curva elíptica Diffie – Hellman ( ECDH ) é um protocolo de acordo de chave que permite que duas partes, cada uma com um par de chaves públicas-privadas de curva elíptica , estabeleçam um segredo compartilhado em um canal inseguro . Este segredo compartilhado pode ser usado diretamente como uma chave ou para derivar outra chave . A chave, ou a chave derivada, pode então ser usada para criptografar as comunicações subsequentes usando uma cifra de chave simétrica . É uma variante do protocolo Diffie – Hellman usando criptografia de curva elíptica .

Protocolo de estabelecimento de chave

O exemplo a seguir ilustra como uma chave compartilhada é estabelecida. Suponha que Alice queira estabelecer uma chave compartilhada com Bob , mas o único canal disponível para eles pode ser interceptado por terceiros. Inicialmente, os parâmetros de domínio (ou seja, no caso principal ou no caso binário) devem ser acordados. Além disso, cada uma das partes tem de ter um par de chaves apropriada para criptografia de curva elíptica, consistindo de uma chave privada (um inteiro seleccionado aleatoriamente no intervalo ) e uma chave pública representada por um ponto (onde , isto é, o resultado da adição ao próprio tempos ) Seja o par de chaves de Alice e o par de chaves de Bob . Cada parte deve saber a chave pública da outra parte antes da execução do protocolo.

Alice calcula o ponto . Bob calcula o ponto . O segredo compartilhado é (a coordenada x do ponto). A maioria dos protocolos padronizados baseados em ECDH derivam uma chave simétrica do uso de alguma função de derivação de chave baseada em hash.

O segredo compartilhado calculado por ambas as partes é igual, porque .

A única informação sobre sua chave que Alice expõe inicialmente é sua chave pública. Portanto, nenhuma parte incluindo Alice pode determinar a chave privada de Alice (Alice, é claro, sabe disso por tê-la selecionado), a menos que essa parte possa resolver o problema do logaritmo discreto da curva elíptica . A chave privada de Bob é igualmente segura. Nenhuma outra parte além de Alice ou Bob pode calcular o segredo compartilhado, a menos que essa parte possa resolver o problema da curva elíptica Diffie-Hellman .

As chaves públicas são estáticas (e confiáveis, digamos por meio de um certificado) ou efêmeras (também conhecidas como ECDHE , em que 'E' final significa "efêmero"). As chaves efêmeras são temporárias e não necessariamente autenticadas, portanto, se a autenticação for desejada, garantias de autenticidade devem ser obtidas por outros meios. A autenticação é necessária para evitar ataques man-in-the-middle . Se uma das chaves públicas de Alice ou Bob for estática, os ataques man-in-the-middle serão impedidos. As chaves públicas estáticas não fornecem sigilo de encaminhamento nem resiliência de personificação de comprometimento de chave, entre outras propriedades de segurança avançadas. Os detentores de chaves privadas estáticas devem validar a outra chave pública e devem aplicar uma função de derivação de chave segura ao segredo compartilhado Diffie – Hellman bruto para evitar o vazamento de informações sobre a chave privada estática. Para esquemas com outras propriedades de segurança, consulte MQV .

Se Alice escolher maliciosamente pontos de curva inválidos para sua chave e Bob não validar que os pontos de Alice fazem parte do grupo selecionado, ela pode coletar resíduos suficientes da chave de Bob para derivar sua chave privada. Várias bibliotecas TLS foram consideradas vulneráveis ​​a este ataque.

Embora o segredo compartilhado possa ser usado diretamente como uma chave, pode ser desejável fazer o hash do segredo para remover os bits fracos devido à troca Diffie-Hellman.

Programas

Veja também

Referências

  1. ^ NIST, publicação especial 800-56A, recomendação para esquemas par-sábios do estabelecimento de chaves usando a criptografia de logaritmo discreto , março de 2006.
  2. ^ Pesquisa de Certicom, padrões para criptografia eficiente, SEG 1: Criptografia da curva elíptica , versão 2.0, 21 de maio de 2009.
  3. ^ NSA Suite B Cryptography, Suite B Implementers 'Guide to NIST SP 800-56A Arquivado em 06-03-2016 na Wayback Machine , 28 de julho de 2009.
  4. ^ Tibor Jager; Jorg Schwenk; Juraj Somorovsky (04/09/2015). "Ataques de curva inválida prática em TLS-ECDH" (PDF) . Simpósio Europeu de Investigação em Segurança Informática (ESORICS'15) .
  5. ^ JI (13 de outubro de 2015). "Nova geração de mensagens seguras:" Selagem de cartas " " . Blog dos Engenheiros da LINHA . LINE Corporation . Página visitada em 5 de fevereiro de 2018 .