RSA 的安全性如何?
RSA 的安全性如下:
明文攻击:
明文攻击分为以下三个子类别:
短消息攻击:在短消息攻击中,攻击者可能知道一些明文块。如果这个假设成立,攻击者可以尝试加密每个明文块,看看是否得到已知的密文。
因此,为了避免这种短消息攻击,建议在加密前填充明文。
循环攻击:
在这种攻击中,攻击者假设密文是通过对明文进行某种排列获得的。如果这个假设成立,攻击者可以反向操作,即连续对已知的密文进行排列,尝试获得原始明文。
未隐藏消息攻击:理论上发现,对于某些非常有限的明文消息,加密会产生与原始明文相同的密文。如果发生这种情况,原始明文消息就不能保密。因此,这种攻击被称为未隐藏消息攻击。
选择密文攻击:在选择密文攻击中,可以使用扩展欧几里得算法根据已知的密文找出明文。
因式分解攻击:RSA 的安全性完全依赖于攻击者无法将数字 N 分解为两个因子 P 和 Q 的假设。如果攻击者能够从方程式 N = P x Q 中找出 P 或 Q,那么攻击者就能找出私钥。
假设 N 的十进制位数至少为 300 位,攻击者就无法简单地找出 P 和 Q。因此,因式分解攻击失败。
对加密密钥的攻击:精通 RSA 数学的人有时会觉得它很容易,因为它需要一个很大的公钥或加密密钥 E。
这也使得 RSA 更安全。因此,如果试图通过使用较小的 E 值来加快 RSA 的工作速度,可能会导致被称为对加密密钥的攻击,因此建议将 E 值设置为 216 + 1 = 65537 或接近这个数值。
对解密密钥的攻击:对解密密钥的攻击如下:
泄露解密指数攻击:如果攻击者以某种方式获得了解密密钥 D,那么不仅使用相应的加密密钥 E 加密明文生成的密文处于危险之中,即使未来的消息也处于危险之中。为了避免这种泄露解密指数攻击,建议发送方也使用新的 P、Q、N 和 E 值。
低解密指数攻击:使用较小的解密密钥 D 值来加快 RSA 的工作速度是很诱人的。这可能使攻击者能够通过发起低解密指数攻击来猜测解密密钥 D。