Tracks
/
Rust
Rust
/
Ejercicios
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Fácil

Instrucciones

Intercambio de claves Diffie-Hellman.

Alice y Bob usan el intercambio de claves Diffie-Hellman para compartir secretos. Empiezan con números primos, eligen claves privadas, generan y comparten claves públicas y, por último, generan una clave secreta compartida.

Paso 0

El programa de prueba proporciona los números primos p y g.

Paso 1

Alice elige una clave privada, a, mayor que 1 y menor que p. Bob hace lo mismo para elegir una clave privada b.

Paso 2

Alice calcula una clave pública A.

A = gᵃ mod p

Con los mismos p y g, Bob calcula de forma similar una clave pública B a partir de su clave privada b.

Paso 3

Alice y Bob intercambian sus claves públicas. Alice calcula la clave secreta s.

s = Bᵃ mod p

Bob calcula

s = Aᵇ mod p

¡Los cálculos producen el mismo resultado! Ahora Alice y Bob comparten el secreto s.

Una posible solución para este ejercicio es implementar tu propia función de exponenciación modular. Para aprender más sobre esto, consulta la siguiente página.

Para puntos extra

Muchas implementaciones no funcionan para todo el dominio de argumentos. Hay tests opcionales adicionales definidos que ayudan a garantizar que todos los argumentos válidos produzcan resultados válidos.

Para ejecutar los tests de bonificación, quita el flag #[ignore] y ejecuta los tests con la feature big-primes, así:

$ cargo test --features big-primes
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Rust Exercism

¿Todo listo para empezar Diffie-Hellman?

Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.