Agora essa é a nossa solução.
Primeiro, Alice e Bob concordam publicamente em um primo modulador
e um gerador.
Nesse caso, 17 e 3.
Então, Alice seleciona um número particular aleatório, digamos 15, e calcula:
3 elevado a 15 mod 17, e mandamos esse resultado
publicamente para Bob.
Então Bob seleciona seu número privado aleatório, digamos 13, e calcula:
3 elevado a 13 mod 17, e manda esse resultado
publicamente para Alice.
E agora é a parte difícil do truque.
Alice pega o resultado público do Bob e eleva ele
à potência do seu número privado
para obter o segredo compartilhado que nesse caso é 10.
Bob pega o resultado da Alice e eleva-o
à potência de seu número privado, resultando
no mesmo segredo compartilhado.
Note que eles fizeram o mesmo cálculo, embora não pareça isso no começo.
Considere Alice. O 12 que ela recebe de Bob foi calculado como 3 elevado a 13 mod 17.
Então o cálculo dela foi o mesmo que 3 elevado a 13, elevado a 15 mod 17.
Agora considere Bob. O 6 que ele recebeu da Alice foi calculado como 3 elevado a 15 mod 17.
tão o cálculo dele foi o mesmo que 3 elevado a 15, elevado a 13.
Note que eles fizeram o mesmo cálculo com os exponentes numa ordem diferente.
Quando você troca a ordem dos expoentes o resultado não muda.
Então os dois calcularam 3 elevado à potência de seus números privados.
Sem um destes números privados, 15 ou 13
Eve não será capaz de encontra a solução
E é assim que se faz.
Enquanto a EVE se esforça a tentar resolver o problema do Logaritmo discreto,
e com números suficientemente grandes, podemos dizer que e praticamente impossível que ela quebre a encriptação
numa quantidade de tempo razoável, isto resolve o problema da troca de chaves
Podemos usa-lo em conjunto com o gerador pseudoaleatório
para encriptar mensagens entre pessoas que nunca se conheceram.
(Legendas por Nicolas de Casteja)