一个好的Diffie-Hellman密钥生成需要多大的素数?

use*_*812 3 encryption

我一直在阅读示例代码,展示如何执行DH密钥交换.超级简单,我理解它.然而,我不知道的是p和q的适当大小应该是什么.在样本中,数字非常小.但我认为,在实践中,它们应该更大.多大了?16-22位数的素数是否足够?

Jac*_*ack 5

为DH选择安全组需要的不仅仅是使用足够大的素数.由于素数可以重复使用,因此可以重用预先计算的参数.例如,IETF RFC 3526有许多提议的组.第8节估计了每个拟议组的安全性.

请注意,Diffie-Hellman实现通常会避免小q(不幸的是,由SquareRootOfTwentyThree提出).原因是亚组限制攻击.上面的IETF小组已被选中以避免此类攻击.