Percursos
/
Rust
Rust
/
Exercícios
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Fácil

Instruções

Troca de chaves Diffie-Hellman.

A Alice e o Bob usam a troca de chaves Diffie-Hellman para partilhar segredos. Começam por números primos, escolhem chaves privadas, geram e partilham chaves públicas e, em seguida, geram uma chave secreta partilhada.

Passo 0

O programa de testes fornece os números primos p e g.

Passo 1

A Alice escolhe uma chave privada, a, maior do que 1 e menor do que p. O Bob faz o mesmo para escolher uma chave privada b.

Passo 2

A Alice calcula uma chave pública A.

A = gᵃ mod p

Usando os mesmos p e g, o Bob calcula de forma semelhante uma chave pública B a partir da sua chave privada b.

Passo 3

A Alice e o Bob trocam as chaves públicas. A Alice calcula a chave secreta s.

s = Bᵃ mod p

O Bob calcula

s = Aᵇ mod p

Os cálculos produzem o mesmo resultado! A Alice e o Bob partilham agora o segredo s.

Uma possível solução para este exercício é implementares a tua própria função de exponenciação modular. Para saberes mais sobre isto, consulta a página seguinte.

Pontos de bónus

Muitas implementações não funcionam para todo o domínio de valores de entrada. Existem testes opcionais adicionais que ajudam a garantir que todos os valores de entrada válidos produzem resultados válidos.

Para correres os testes de bónus, remove a flag #[ignore] e executa os testes com a feature big-primes, assim:

$ cargo test --features big-primes
Editar via GitHub A ligação abre numa nova janela ou separador
Rust Exercism

Estás pronto para começar Diffie-Hellman?

Inscreve-te no Exercism para aprenderes e dominares Rust com 99 exercícios, e mentoria humana real, tudo grátis.