轨道
/
Rust
Rust
/
练习
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

简单

说明

Diffie-Hellman 密钥交换。

Alice 和 Bob 使用 Diffie-Hellman 密钥交换来共享秘密。 他们从质数开始,选取私钥,生成并交换公钥,然后生成共享的密钥。

步骤 0

测试程序会提供质数 p 和 g。

步骤 1

Alice 选取一个私钥 a,它大于 1 且小于 p。 Bob 同样选取一个私钥 b。

步骤 2

Alice 计算出公钥 A。

A = gᵃ mod p

Bob 使用相同的 p 和 g,同样根据他的私钥 b 计算出公钥 B。

步骤 3

Alice 和 Bob 交换公钥。 Alice 计算出密钥 s。

s = Bᵃ mod p

Bob 计算出

s = Aᵇ mod p

两次计算得到的结果相同! 现在 Alice 和 Bob 共享密钥 s。

这道练习的一种解法是自己实现一个模幂运算函数。想了解更多,可以参考这个页面。

加分项

很多实现在输入的全部取值范围内并不能正常工作。 我们还定义了一些额外的可选测试,用来帮助确保所有合法的输入都能得到正确的结果。

要运行这些加分测试,请去掉 #[ignore] 标记,并使用 big-primes feature 来执行测试,像这样:

$ cargo test --features big-primes
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Rust Exercism

准备好开始 Diffie-Hellman 了吗?

注册 Exercism,借助 99 个练习 和真人导师指导,学习并掌握 Rust,全部免费。