首页 > 解决方案 > Diffie-Hellman 密钥交换中的 2048 位部分指的是哪里?

问题描述

我查阅了有关 Diffie-Hellman 密钥交换算法的各种来源,并且了解了其操作背后的逻辑。但是,我看到了“Diffie-Hellman 2048 位密钥交换”的表达,我有点难以理解 2048 位的值与什么实体相关联。

给定公式:

A=(g^a)mod(p)

是否涉及:

我主要倾向于第一选择,但我无法通过多个来源进行验证。此外,据我所知,质数随着向大数移动而变得越来越少。如果这两个陈述都是真的,那么我想知道可以用 2048 位表示的素数的数量是否足以进行 Diffie-Hellman 密钥交换操作。那么,当我们选择 2048 位作为 p 的大小时,p候选素数只是那些可以用 2048 位严格表示的素数,还是超出此范围的素数?

标签: securitydiffie-hellman

解决方案


简而言之,DH KEX 算法要求 Alice 和 Bob 公开决定两个 PRIME 数字,g并且p(在您上面引用的等式中)。通常g是一个很小的质数并且p相当大,通常在 2000 到 4000 位长之间。正如您正确指出的那样,生成具有特殊属性的素数可能需要大量计算,因此许多实现都使用固定的 Diffie-Hellman 参数。

另外,您可以检查weakDH,它显示了对通过 TLS 协议的仍然可选择的 DH 实现(512 位长)的可能攻击,使用筛计算得到pDH 方程的值。


推荐阅读