[Exercism][Rust] Diffie Hellman
題目網址(需登入 Exercism)
這個題目在 Rust 語言方面,沒有什麼太困難的地方。所以重點都是在 modular arithmetic 的運算上。
use rand::Rng;
pub fn private_key(p: u64) -> u64 {
let mut rng = rand::thread_rng();
rng.gen_range(2..p)
}
pub fn public_key(p: u64, g: u64, a: u64) -> u64 {
modular_exp(g, a, p)
}
pub fn secret(p: u64, b_pub: u64, a: u64) -> u64 {
modular_exp(b_pub, a, p)
}