Track
/
Rust
Rust
/
Esercizi
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Facile

Istruzioni

Scambio di chiavi Diffie-Hellman.

Alice e Bob usano lo scambio di chiavi Diffie-Hellman per condividere dei segreti. Partono da numeri primi, scelgono le chiavi private, generano e condividono le chiavi pubbliche, poi generano una chiave segreta condivisa.

Passo 0

Il programma di test fornisce i numeri primi p e g.

Passo 1

Alice sceglie una chiave privata, a, maggiore di 1 e minore di p. Bob fa lo stesso per scegliere una chiave privata b.

Passo 2

Alice calcola una chiave pubblica A.

A = gᵃ mod p

Usando gli stessi p e g, Bob calcola allo stesso modo una chiave pubblica B dalla sua chiave privata b.

Passo 3

Alice e Bob si scambiano le chiavi pubbliche. Alice calcola la chiave segreta s.

s = Bᵃ mod p

Bob calcola

s = Aᵇ mod p

I calcoli producono lo stesso risultato! Ora Alice e Bob condividono la chiave segreta s.

Una possibile soluzione per questo esercizio è implementare una propria funzione di esponenziazione modulare. Per saperne di più, consulta la pagina seguente.

Per ottenere punti bonus

Molte implementazioni non funzionano per l'intero dominio degli input. Sono stati definiti dei test opzionali aggiuntivi che aiutano ad assicurarsi che tutti gli input validi producano risultati validi.

Per eseguire i test bonus, rimuovi il flag #[ignore] ed esegui i test con la feature big-primes, in questo modo:

$ cargo test --features big-primes
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Rust Exercism

Vuoi iniziare Diffie-Hellman?

Iscriviti a Exercism per imparare e padroneggiare Rust con 99 esercizi e il mentoring di persone reali, tutto gratis.