生成强大的RSA密钥的提示

vei*_*itr 5 cryptography rsa symmetric-key encryption-symmetric

是否有任何文档,包括生成强大RSA密钥的技巧?

我的意思不仅是“将XXX实用程序与-X标志一起使用”。

我的意思是理论上有一些规则。例如,模块n不应小于1024位,依此类推。

有人可以告诉我吗?

Kap*_*nir 5

为回答您的问题,提供了以下文档: ANSI X9.31标准要求使用强质数来生成数字签名的RSA密钥。这使得使用Pollard的p?分解n = pq成为可能。1种算法在计算上不可行。但是,强质数不能使用诸如Lenstra椭圆曲线因数分解和Number Field Sieve算法之类的更新算法来防止模因数分解。

第4版RSA实验室的“关于今天的密码学的常见问题”发布于1998年,可以在这里找到ftp://ftp.rsa.com/pub/labsfaq/labsfaq4.pdf 请注意以下问题:

问题3.1.4。什么是强素数,RSA需要它们吗?

在有关RSA的文献中,通常建议在选择密钥对时,应使用所谓的“强”素数p和q来生成模数n。强素数具有某些属性,使产品很难通过特定的分解方法进行分解;这样的性质包括,例如,存在大的素数因子p-1和大的素数因子p + 1。这些担忧的原因是某些分解方法(例如Pollard p-1和p + 1方法,请参阅问题2.3.4)特别适合素数p,使得p-1或p + 1仅具有很小的因子;强大的素数可以抵抗这些攻击。然而,过去十年来保理业务的进步似乎消除了强素数的优势。椭圆曲线分解算法就是这样一种进步。新的保理方法在强素数和“弱”素数上都有成功的机会。因此,仅选择传统的“强”素数不会显着提高安全性。重要的是选择足够大的素数。但是,使用强的大素数并不存在危险,尽管生成强素数可能比任意素数花费更长的时间。 将来可能会开发新的分解因数算法,该算法再次针对具有某些属性的素数。如果发生这种情况,选择强大的素数可能会再次有助于提高安全性。

问题3.1.5。RSA中应使用多大的密钥?

RSA密钥的大小通常是指模数n的大小。组成模数的两个素数p和q的长度应大致相等;与其中一个素数比另一个素数小得多时,这使得模量更难分解。如果选择使用768位模数,则素数应分别具有大约384位的长度。如果两个素数非常接近(除了100-200位,则完全相同),或更普遍的是,如果它们的差值接近任何预定量,则存在潜在的安全风险,但存在两个随机选择的素数的可能性如此接近是微不足道的。RSA模数的最佳大小取决于一个人的安全需求。模数越大,安全性越高,但RSA操作也越慢。考虑时应选择模数长度,

截至2010年,最大的分解式RSA数字为768位长(232个十进制数字)。通过最先进的分布式实施,将其分解为大约一千五百年的CPU时间(在数百台计算机上为两年的实时时间)。这意味着,到目前为止,还没有考虑更大的RSA密钥。实际上,RSA密钥的长度通常为1024到2048位。一些专家认为1024位密钥在不久的将来可能会变得易碎。很少有人看到在可预见的将来会破坏4096位密钥的任何方式。因此,通常假设如果n足够大,则RSA是安全的。