首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非素数Diffie-Hellman

非素数Diffie-Hellman
EN

Security用户
提问于 2019-04-23 04:57:40
回答 2查看 2.2K关注 0票数 5

当使用Diffie-Hellman密钥交换时,据说使用安全素数很重要.但是,如果生成一个具有足够比特长度的非素数模,是否有攻击可用于从公共通信中恢复共享秘密(g,g^a,g^b,模)或解密加密消息?

EN

回答 2

Security用户

回答已采纳

发布于 2019-04-23 07:11:55

是的,它可能是可以解密的。

注:我本没有意识到你的问题有一个微妙的细微差别。你提到了安全素数然后是非素数。但安全素数是一个数学术语。不是每个素数都是安全的质数!安全素数是素数2p +1,因此p也是素数。重要的是,在DH中模量是素数,但它应该是一个安全的质数,最好的安全。

为什么不使用非素数

非素数是否安全取决于你所说的足够长。如果数字比平常大得多,也许不可能合理地打破它们,但这在很大程度上取决于确切的数字。

我们使用安全素数作为模数(p)的原因之一是确保我们在<0,p范围内生成许多可能的秘密。当p不是素数时,情况可能不是这样。我们产生的秘密越少,就越容易用暴力强迫他们。

例如,假设我们使用g=5,p=25。那么产生的秘密S将永远是0或5。很明显,这比所有从0到24的数字要容易得多。安全素数(非正常素数)生成大素数子群,这意味着秘密可以有许多值,即使不是所有可能的值。

另一个更大的问题是,如果你使用一个非素数,你只需要解p因子的离散对数问题,这就容易多了。您可以在CryptoSE上阅读更多内容。

现在,正如你所看到的,仍然有可能想到足够大的数字,这样就足够安全了。例如,如果我们选择两个不同的素数,它们都足够大,它们本身是安全的,然后乘以它们并将结果作为p使用,那么这应该是安全的。但是,对于任意的值,您并不确定,因为可能有许多小的因素或相同的因素,使用不必要的大数字会使您的性能降低。

也许还有其他我不知道的问题。

感谢AleksanderRas提供到CryptoSE的链接。

为什么要使用安全素数

使用安全素数的原因与使用素数的第一个原因有关。即使是素数也可能有一个很小的素数群。这意味着它不会产生来自<0,p范围的许多秘密。安全素数更擅长拥有大的素数群,从而产生更多的秘密,从而使蛮力变得更难。您可以在CryptoSE上阅读更多内容。

票数 6
EN

Security用户

发布于 2019-04-23 07:14:23

是的,恢复共享秘密是非常可行的,因为现在您将“只”使用离散日志问题模块化构成复合数字的所有素数。这仍然需要一些时间,但在合理的时间内是有可能做到的。

有关更多信息,请参见关于CryptoSE的这个问题

票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/207868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档