作为RSA公共指数,3有多糟糕

saf*_*f32 8 security encryption rsa

我正在创建一个应用程序,我必须使用RSA使用公钥加密某些东西.我希望这种加密速度非常快.最初,我尝试使用F48(= 65537)作为指数的2048位密钥,但速度不够快.所以现在我正在考虑以下两个选项:

  1. 2048位模数,e = 3
  2. 1024位模数,e = 65537

两者都满足我的性能要求但哪一个提供更好的安全性?我还应该注意,我使用PKCS#1填充方案.

Mar*_*ers 9

如果在PKCS#1中使用OAEP等随机填充,则使用低指数的大多数(全部?)已知弱点不再相关.

您还试过使用e = 17吗?没有规则说你必须选择3或65537.


Tho*_*nin 5

如果你使用一个好的填充方案,那么没有已知的原因,为什么e = 3应该比任何其他公共指数具有更差的安全性.如果你也没有使用一个好的填充方案,使用短指数会有问题,但问题更多在于填充方案而不是指数.

许多研究人员的"直觉"是,e = 3并不比任何其他公共指数更好,并且e = 3可能会在某个未指定的未来日期略微变弱,尽管现在没有任何指向这样的弱点.

密钥长度对安全性具有更高的实际影响.最近破解了一个768位的RSA密钥(这并不容易!大型计算机和大脑的四年工作).1024位密钥在短期内被认为是足够的,但是长期使用(例如,加密数据具有高价值并且在2030年仍然必须保密)将要求更大的密钥,例如2048位.有关如何估算加密强度以及各种研究人员和组织已对其进行估算的详细信息,请参阅此站点.

如果您使用非常快速的非对称加密,您可能需要调查比RSA更快的Rabin-Williams加密方案,同时为相同的输出长度提供至少相同级别的安全性(但是没有易于使用的该方案的详细标准,与带有PKCS#1的RSA相反,所以你在这里有点自己).