根据这一Matasano加密挑战,NIST的“喜欢”下列素模量,这似乎在十六进制来表示:




/>我对此有一些疑问:


这个数字是否在任何地方指定?我尝试用十进制和十六进制对它进行谷歌搜索,希望能在NIST文档中的某个地方找到它,但是却找不到它。
为什么选择这个特定数字?我知道Diffie-Hellman需要素数模数,并且它应该足够大以防止某些分解因数攻击,并且它也应该是安全的素数,也可以防止某些因数分解攻击,但是具有这些性质的数字很多。这个数字是任意选择的,还是有其他选择标准?
这个数字是否用于Diffie-Hellman之外的其他事物,例如RSA或椭圆曲线算法?


评论

我不知道#1和#2(->没有完整答案),但是我可以说您不能将这个素数用于ECC,因为它对于那种用例来说太大了(除非您变得超级疯狂)而且您偶然在RSA中使用它的机会微不足道,并且由于它是众所周知的,所以您不会故意使用它。如今,没有您无法检测到的对(有限域)组参数的已知攻击(只需检查它是否是安全的素数即可)。

#1 楼


这个数字是否在任何地方指定?


在此RFC中已正式将其指定为1536位MODP组(尽管其使用早于RFC)。但是,从我看到的结果来看,同一文档中的2048位MODP组实际上更受欢迎。
这是一个安全的条件;另外,前64位和后64位均为1。

(大多数)中间位来自$ \ pi $的二进制扩展;这样做是为了证明这个数字并不是出于暗中考虑而选择的;

Richard Schroeppel创建了用于选择此号码的过程;我对此的最早参考文献是RFC,附录E


这个数字是否用于Diffie-Hellman以外的其他东西?


否据我所知;作为众所周知的素数,它不适用于RSA,并且太大而无法真正用于椭圆曲线。而且,由于它没有中等大小的子组,因此对于DSA来说效果不佳(因为签名会远远超出要求)。它适用于El Gamal和IES,但实际上是Diffie-Hellman在公共密钥加密上下文中重复使用。

评论


$ \ begingroup $
这与NIST有什么关系?我在该文档中看到的NIST唯一提及的是无关的内容(有关AES的内容)。
$ \ endgroup $
– Elias Zamaria
16年5月9日在20:40

$ \ begingroup $
@EliasZamaria:并非如此-该组最初是由IETF创建的,用于IKE(Internet密钥交换)。 NIST没有参与。此外,NIST非常希望使用大小为2048或3072位的MODP组,因此NIST“喜欢”此特定的1536位组的说法有些过于热情...
$ \ endgroup $
–雨披
16年5月9日在20:50



#2 楼

这种特殊的素数已广泛用于Internet密钥交换协议(IKE)的实现中,通常称为第5组。第5组已经在许多设备中使用了十多年。根据您的观点,这个事实是好是坏。如果您正在实施IKE并希望与IKE的其他实现进行互操作,那就很好。如果您担心某个邪恶的实体使用它的广泛部署来摊销离散对数攻击的成本,那么这是不好的。我宁愿我所知道的关于花费时间尝试攻击1536位离散日志的邪恶实体,而不是对平民百姓做所有其他邪恶的事情-但这可能只是我。