Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 em uma meio não segura e pública, sem ter trocado anteriormente qualquer informação particular.O contrato de segredo compartilhado costuma ser usado para derivar o material da chave.Um algoritmo simétrico, sistema autônomo o algoritmo AES (criptografia AES) pode usar o material da chave para criptografar mensagens subseqüentes.
O exemplo de comunicação segura a CNG (Cryptography Next Generation) demonstra as implementações CNG ECDH e AES de algoritmos.Alice e Bob Mallory criam chaves criptográficas no seu Run métodos ao criarem Communicator objetos.
ECDH matemática
O protocolo ECDH utiliza dois parâmetros públicos: p e g.Parâmetro p um grande número primo e parâmetro g é um número inteiro que é menor que p. Esses dois parâmetros são trocados por meio de uma linha que não seja segura.Depois de Alice e Bob recebe os dois parâmetros públicos, eles selecionar particulares inteiros.Alice escolhe a, e escolhe Bob b. Esses valores são conhecidos sistema autônomo particular chaves.
Alice e Bob crie chaves públicas, usando os parâmetros públicos e seus particular chaves.Alice usa (g^a) mod p, e usa Bob (g^b) mod p. Essas são as chaves assimétricas porque eles não coincidem.
Alice e Bob essas chaves públicas do exchange e usá-los para computar o contrato de segredo compartilhado.Matemática ECDH garante que Alice e Bob irá calcular a mesma compartilhada secreto contrato, embora não saiba uns dos outros particular chaves.
Observação: |
|---|
O omente a, b e g^ab = g^ba são mantida em segredo. Todos os outros valores são públicos. |
Qualquer pessoa que intercepta a troca será capaz de copiar p, ge ambas as chaves públicas. No entanto, é impraticável, em termos computacionais, para gerar um contrato de segredo compartilhado de quatro valores publicamente compartilhados sem saber Alice e Bob chaves particulares.
Descriptografando uma mensagem criptografada ECDH usando força bruta (isto é, por tentando 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 porque depende elíptica curvas em vez de curvas logarítmicas.
Exemplo da ECDH
O exemplo a seguir usa números inteiros pequenos para demonstrar o algoritmo ECDH.
Alice e Bob concordar sobre um número primo p e um inteiro de base g:
p = 83, g = 8
Alice escolhe um segredo inteiro a = 9e, em seguida, envia Bob (g^a) mod p:
(8^9) mod 83 = 5
Bob escolhe um segredo inteiro b = 21e, em seguida, envia Alice (g^b) mod p:
(8^21) mod 83 = 18
Alice calcula ( ( (g^b) mod p)^a) mod p:
(18^9) mod 83 = 24
Bob calcula ( ( (g^a) mod p)^b) mod p:
(5^21) mod 83 = 24
Alice e Bob computar o mesmo valor (24), pois g^(ab) = g^(ba). Esse valor é o contrato de segredo compartilhado.Alice e Bob usar esse valor para derivar o material de chave é usado pelo algoritmo AES para criptografar mensagens.
Este exemplo gera um contrato de secreto compartilhado com um valor de 24.Como esse é um valor pequeno, ele produziria uma mensagem criptografada com com facilidade poderia estar quebrada por um ataque de força bruta.Em um cenário real, p, g, a, e b seria muito números maiores e um computador seria necessária para gerar o contrato de segredo compartilhado correspondente.
As classes CNG usadas no exemplo comunicações seguras abstraem matemática complexa.Elas permitem que você se concentrar na implementação de soluções de segurança em vez de se preocupar multiplicar números grandes.
Limitações do protocolo
O ECDH chave protocolo de troca não impede ataques man-in-the-middle, pois não autentica os remetentes do s chave público.Se um intruso, Mallory, interceptar a chave pública de Alice, ele pode substituir sua própria chave pública e enviar para Bob.Mallory também podem interceptar de Bob chave pública, substitua seu proprietário e enviá-lo para Alice.Mallory, em seguida, pode com com facilidade descriptografar as mensagens enviadas entre Alice e Bob.Ele pode alterar as mensagens, recriptografá-los com suas próprias chaves e, em seguida, enviá-los para os destinatários.
Para resolver esse problema, Ana Maria e Luís podem usar assinaturas digital para assinar as chaves públicas antes de trocá-los.Há duas maneiras para fazer isso:
Use um meio seguro, sistema autônomo courier confiável, ou de comunicação de voz para transmitir uma chave de assinatura digital entre sistema autônomo duas partes.
Use uma autoridade de certificação pública para fornecer uma chave de assinatura digital confiável para ambas as partes.
Em ambos 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 remetentes principais não são autenticados.Ele é escrito especificamente para permitir uma exploração de segurança.
Simétricas e assimétrica de chaves
Assimétricas sistemas sistema autônomo ECDH são muito lentos.Portanto, eles não são usados para criptografar mensagens grandes.Sistemas simétricos, sistema autônomo AES, que são muitas vezes mais rápidos, 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 derivar o material da chave que é usado por um algoritmo simétrico para criptografar uma mensagem.
O exemplo de comunicação segura a CNG modela esse comportamento da seguinte maneira:
Ele usa um algoritmo assimétrico, implementação do algoritmo de ECDH (a CNGECDiffieHellmanCng classe), para derivar uma chave de criptografia simétrica (o contrato de segredo compartilhado).
Em seguida, essa chave é usada pela CNG ECDiffieHellmanCng.DeriveKeyMaterial método para gerar material de chave. A implementação CNG o algoritmo AES simétrico (a Aes classe) usa o material da chave para criptografar as mensagens.
Consulte também
Conceitos
Exemplo da Secure Communication Cryptography Next Generation (CNG)
Visão geral sobre criptografia
Date |
History |
Motivo |
|---|---|---|
|
Julho de 2008 |
Tópico adicional. |
Aprimoramento de informações. |
Observação: