Partilhar via


Visão geral sobre o algoritmo de ECDH (exemplo CNG)

O protocolo de acordo de chave Diffie-Hellman de curva elíptica (ECDH) permite que dois usuários criar um contrato de segredo compartilhado. Eles podem fazer isso através de uma meio não segura e Público sem anteriormente ter trocado qualquer informação particular. O contrato de segredo compartilhado é normalmente usado para gerar o material da chave. Um algoritmo simétrico, sistema autônomo o algoritmo AES (Avançado criptografia Padrão) pode usar o material da chave para criptografar mensagens subseqüentes.

O exemplo de uma comunicação segura a CNG (criptografia Próximo Generation) demonstra as implementações CNG Ambas ECDH e Algoritmos de AES. Alice e Bob Mallory Criar chaves criptográficas no seu Runmétodos quando eles Criar Communicatorobjetos.

ECDH matemática

O protocolo ECDH baseia-se em dois Público parâmetros: p e g. Parâmetro pé um grande número de "Prime" e o parâmetro gé um número inteiro Menos do que p. Esses dois parâmetros são trocados através de uma linha que não seja segura. Depois de Ana Maria e Luís recebem os dois Público parâmetros, eles selecionam inteiros particulares. Alice seleciona a, e escolhe o Bob b. Esses valores são chamados de particular chaves.

Ana Maria e Luís criam Público teclas usando o Público parâmetros e suas chaves particulares. Ana Maria utiliza (g^a) mod p, e usa o Bob (g^b) mod p. Essas são as chaves assimétricas porque eles não são correspondentes.

Ana Maria e Luís troquem esses Público chaves e usá-los para computar o contrato de segredo compartilhado. Matemática ECDH garante que tanto Alice e Bob irá calcular a mesma Compartilhado secreto contrato, embora não saiba uns dos outros particular chaves.

Dica

Apenasa,bEg^ab=g^baare kept secret.Todas outros valores estão Público.

Qualquer pessoa que intercepta o intercâmbio será capaz de copiar p, de ge ambos Público chaves. No entanto, é inviável computacionais para gerar um acordo secreto compartilhado de quatro valores publicamente compartilhados sem conhecer as chaves particulares de Alice e Bob.

Descriptografando uma mensagem criptografada por ECDH por meio de força bruta (ou seja, ao tentar todas sistema autônomo chaves possíveis) é a mesma ordem de dificuldade, sistema autônomo o problema de logaritmo distintas. No entanto, o algoritmo ECDH consegue o mesmo grau de segurança com comprimentos de chave mais curtos, pois se baseia nas curvas elíptica em vez de curvas logarítmicas.

Exemplo da ECDH

O exemplo a seguir usa números inteiros pequeno para demonstrar o algoritmo ECDH.

  1. Ana Maria e Luís concordam sobre um número primo pe um Número Número inteiro de base g:

    p = 83, g = 8

  2. Alice seleciona um segredo Número Número inteiro a = 9e, em seguida, envia Bob (g^a) mod p:

    (8^9) mod 83 = 5

  3. Bob escolhe um segredo Número Número inteiro b = 21e, em seguida, envia Alice (g^b) mod p:

    (8^21) mod 83 = 18

  4. Calcula a Ana Maria ( ( (g^b) mod p)^a) mod p:

    (18^9) mod 83 = 24

  5. Bob calcula ( ( (g^a) mod p)^b) mod p:

    (5^21) mod 83 = 24

Ana Maria e Luís computar o mesmo valor (24), porque o g^(ab) = g^(ba). Esse valor é o contrato de segredo compartilhado. Ana Maria e Luís usam esse valor para gerar o material de chave é Usado por algoritmo AES para criptografar suas mensagens.

Este exemplo gera um contrato de segredo compartilhado com um valor de 24. Como esse é um valor pequeno, ele produziria uma mensagem criptografada, que poderia com com facilidade ser quebrada por um ataque de força bruta. Em um cenário real, p, g, a, e bseria muito números maior, e um computador que seria necessárias para gerar o correspondente Compartilhado secreta contrato.

As classes da CNG usadas no exemplo de uma comunicação segura abstraem a matemática complexa. Eles permitem que você se concentre na implementação de soluções de segurança, em vez de se preocupar Multiplicar números grande.

Limitações do protocolo

O protocolo de troca de chaves ECDH não impede ataques man-in-the-Meio, pois não autentica os remetentes das chaves públicas. Se um intruso, Mallory, interceptar de chave Público de Alice, ele pode substituir a sua própria chave Público e enviar-lo para Roberto. Mallory também podem interceptar substituto de chave, público de Bob seu próprio, e enviar para Alice. Mallory, em seguida, pode com com facilidade descriptografar as mensagens enviadas entre Ana Maria e Luís. Ele pode Modificar as mensagens de recriptografá-los com suas próprias teclas e, em seguida, enviá-los aos destinatários.

Para solucionar esse problema, Ana Maria e Luís podem usar assinaturas digital para assinar as chaves públicas antes de trocá-los. Há Dois maneiras para fazer isso:

  • Usar um meio seguro, sistema autônomo, por exemplo, comunicação de voz ou courier confiável, para transmitir uma chave de assinatura digital entre sistema autônomo Dois partes.

  • Usar uma autoridade de certificação Público para fornecer uma chave de assinatura digital confiável para ambas as partes.

Em Ambas os casos, um esquema de autenticação externa deve ser usado para verificar a identidade do público chave remetentes. O exemplo a CNG ilustra o que pode acontecer se os principais remetentes não são autenticados. Ele é escrito especificamente para permitir que um ataque de segurança.

Simétricas e Chaves Assimétricas

Sistemas assimétricas, sistema autônomo ECDH estiver muito lentos. Portanto, eles não são usados para criptografar as mensagens grande. Sistemas simétricos, sistema autônomo AES, que são muitos vezes mais rápido, são usados em vez disso.

Uma solução típica de criptografia usa um sistema assimétrico para derivar um contrato de segredo compartilhado simétrico. O contrato de segredo compartilhado é usado para gerar o material da chave que é usado por um algoritmo simétrico para criptografar uma mensagem.

O exemplo de uma comunicação segura a CNG modela esse comportamento, da seguinte maneira:

  • Ele usa um algoritmo assimétrico, a implementação do algoritmo ECDH da CNG (o ECDiffieHellmanCngclasse), para derivar uma chave de criptografia simétrica (o contrato de segredo compartilhado).

  • Em seguida, essa chave é Usado por CNG ECDiffieHellmanCng.DeriveKeyMaterialmétodo para gerar material de chave. A implementação da CNG do algoritmo simétrico AES (o Aesclasse) usa o material da chave para criptografar mensagens.

Consulte também

Conceitos

Exemplo da comunicação segura, criptografia Próximo Generation (CNG)

Serviços de criptografia