1
0
Files
cryptopal_rs/cryptopal_book/src/challenge_35.md
2025-09-02 16:43:02 +08:00

824 B
Raw Blame History

Challenge 35: 实现带协商群组的 DH并使用恶意的 "g" 参数进行破解

协议流程:

A->B
发送 "p", "g"

B->A
发送 ACK

A->B
发送 "A"

B->A
发送 "B"

A->B
发送 AES-CBC(SHA1(s)[0:16], iv=random(16), msg) + iv

B->A
发送 AES-CBC(SHA1(s)[0:16], iv=random(16), A's msg) + iv

再次进行中间人攻击,但这次操控 "g"。尝试以下情况会发生什么:

    g = 1
    g = p
    g = p - 1

为每种情况编写攻击代码。

这种情况何时会发生?

老实说,在真实世界的系统中并不常见。如果你能操控 "g",很可能你能操控更严重的东西。大多数系统会预先约定一个静态的 DH 群组。但是相同的构造存在于椭圆曲线 Diffie-Hellman 中,在那里这变得更加相关。