Introdução ao algoritmo de troca de chaves Diffie Hellman
O algoritmo de troca de chaves Diffie Hellman é uma das primeiras implementações práticas da troca de chaves públicas no campo da criptografia. O algoritmo de troca de chaves Diffie Hellman é uma das maneiras de gerar uma chave compartilhada e compartilhar segredos entre duas partes, de forma que possamos ter certeza de que ninguém será capaz de bisbilhotar a comunicação. Há um fato importante a ser lembrado sobre o algoritmo: não estamos compartilhando as informações na troca; em vez disso, estamos criando uma chave que pode ser usada posteriormente para trocar informações. Como essa técnica nos permite criar uma chave de criptografia com a outra parte, podemos começar a criptografar as mensagens em andamento e as recebidas. Estabelecido, mesmo que alguém registre os dados de transmissão, não há como os dados serem descriptografados.
Algoritmo de troca de chaves Diffie Hellman para geração de chaves
O algoritmo é baseado na Criptografia de curvas elípticas, que é um método de realizar criptografia de chave pública com base na estrutura de álgebra das curvas elípticas sobre campos finitos. O DH também usa a função alçapão, assim como muitas outras maneiras de fazer criptografia de chave pública. A idéia simples de entender o algoritmo DH é a seguinte
1. A primeira parte escolhe dois números primos ge ep e os informa à segunda parte.
2. O segundo participante escolhe um número secreto (vamos chamá-lo de) e, em seguida, calcula g mod mod e envia o resultado de volta para o primeiro participante, vamos chamar o resultado A. Lembre-se de que o número secreto não é enviado para qualquer um, apenas o resultado é.
3. Em seguida, a primeira pessoa faz o mesmo, seleciona um número secreto be calcula o resultado B semelhante ao
4. etapa 2. Em seguida, este resultado é enviado para a segunda parte.
5. A segunda parte pega o número recebido B e calcula B um mod p
6. A primeira parte pega o número recebido A e calcula A b mod p
É aqui que fica interessante, a resposta na etapa 5 é igual à resposta na etapa 4. Isso significa que ambas as partes obterão a mesma resposta, independentemente da ordem de exponenciação.
(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p
O número que chegamos nas etapas 4 e 5 será considerado a chave secreta compartilhada. Agora, essa chave pode ser usada para fazer qualquer criptografia de dados que serão transmitidos, como blowfish, AES etc.
Algoritmo de Diffie Hellman
1. tecla = (Y A ) XB mod q -> é o mesmo que calculado por B
2. Elementos públicos globais
- q: q é um número primo
- a: a <q e α é a raiz primitiva de q
3. Geração de chaves para o usuário A
- Selecione uma chave privada X A Aqui, X A
Agora, Cálculo da chave pública Y A Y A = um mod XA q
4. Geração de chaves para o usuário B
- Selecione uma chave privada X B Aqui, X B
- Agora, Cálculo da chave pública Y B Y B = a Xb mod q
5. Cálculo da chave secreta por A
- chave = (Y B ) XA mod q
6. Cálculo da chave secreta por B
- chave = (Y A ) XB mod q
Exemplo
1. Alice e Bob usam números públicos P = 23, G = 5
2. Alice selecionou a chave privada a = 4 e Bob selecionou b = 3 como a chave privada
3. Alice e bob agora calculam o valor de x e y da seguinte maneira:
- Alice: x = (5 4 mod 23) = 4
- Bob: y = (5 3 mod 23) = 10
4. Agora, Alice e Bob trocam números públicos entre si.
5. Alice e Bob agora calculam as chaves simétricas
- Alice: k a = y a mod p = 10 4 mod 23 = 18
- Bob: k b = x b mod p = 4 3 mod 23 = 18
6. 18 é a chave secreta compartilhada.
Usos do algoritmo Diffie Hellman
Além de usar o algoritmo para gerar chaves públicas, existem outros locais onde o Algoritmo DH pode ser usado:
- Criptografia: o algoritmo de troca de chaves Diffie Hellman pode ser usado para criptografia, um dos primeiros esquemas a fazer foi a criptografia ElGamal. Um exemplo moderno disso é chamado Integrated Encryption Scheme, que fornece segurança contra ataques de texto simples e de área de transferência.
- Contrato autenticado por senha: Quando duas partes compartilham uma senha, um contrato de chave autenticado por senha pode ser usado para impedir o ataque do homem no meio. Este Contrato-chave pode estar na forma de Diffie-Hellman. O Protocolo de senha remota segura é um bom exemplo baseado nessa técnica.
- Segredo de encaminhamento: Os protocolos baseados em sigilo de encaminhamento podem gerar novos pares de chaves para cada nova sessão e podem descartá-los automaticamente no final, quando a sessão também terminar. Nestes protocolos de sigilo, mais frequentemente, a troca de chaves Diffie Hellman é usada.
Vantagens do algoritmo Diffie Hellman
- O remetente e o destinatário não precisam de nenhum conhecimento prévio um do outro.
- Uma vez que as chaves são trocadas, a comunicação dos dados pode ser feita através de um canal inseguro.
- O compartilhamento da chave secreta é seguro.
Desvantagens do algoritmo Diffie Hellman
- O algoritmo não pode ser processado por nenhuma troca de chaves assimétrica.
- Da mesma forma, não pode ser usado para assinar assinaturas digitais.
- Como não autentica nenhuma parte da transmissão, a troca de chaves de Diffie Hellman é suscetível a um ataque do tipo homem do meio.
Conclusão
Devido às suas vantagens, a troca de chaves Diffie Hellman provou ser um sistema útil de troca de chaves. Embora seja realmente difícil alguém espionar a rede descriptografar os dados e obter as chaves, ainda é possível se os números gerados não forem inteiramente aleatórios. Além disso, o sistema de troca de chaves torna possível fazer um homem no ataque do meio; para evitá-lo, ambas as partes devem ter muito cuidado no início da troca.
Artigo recomendado
Este foi um guia para o algoritmo de troca de chaves Diffie Hellman. Aqui discutimos os usos, diferentes algoritmos, vantagens e desvantagens. Você também pode consultar nossos outros artigos sugeridos para saber mais -
- Algoritmos de aprendizado de máquina
- Algoritmo de criptografia
- Algoritmos de classificação
- Tipos de algoritmos