【问题标题】:Why are "large prime numbers" used in RSA/encryption?为什么在 RSA/加密中使用“大素数”?
【发布时间】:2012-08-03 15:28:40
【问题描述】:

我已经学习了公钥加密理论,但我错过了与物理世界的联系。例如

有人告诉我,良好的 RSA 加密应该依赖于具有 300 个十进制数字的素数,但为什么呢?这个数字是谁想出来的?破解这种加密需要多长时间(不同机器的统计数据)。

我尝试了 Google,但找不到我想要的。有人吗?

谢谢

【问题讨论】:

  • 请关注问题。希望标题更改能防止这被无情地否决和关闭..

标签: encryption rsa public-key


【解决方案1】:

非对称密码学的关键是具有非对称功能,允许解密由非对称密钥加密的消息,而不允许找到另一个密钥。在 RSA 中,使用的函数基于素数的因式分解,但它不是唯一的选项(例如Elliptic curve 是另一个选项)。

因此,基本上您需要两个素数来生成 RSA 密钥对。如果您能够分解公钥并找到这些质数,那么您将能够找到私钥。 RSA 的整体安全性是基于不容易分解大合数这一事实,这就是为什么密钥的长度会极大地改变 RSA 算法的鲁棒性的原因。

每年都有用计算器分解大质数的比赛,价格不错。分解 RSA 密钥的最后一步是 in 2009 by factorizing 768 bits 密钥。这就是为什么现在至少应该使用 2048 位密钥的原因。

像往常一样,Wikipedia 是 RSA 的一个很好的参考。

【讨论】:

  • RSA 的安全性基于分解大复合数的难度,这些数是两个大小大致相同的素数的乘积。
  • 不是真的...... RSA 的安全性是基于这样一个事实,即您无法有效地计算模逆......在这种情况下,您需要 PHI(n) 进行该计算,而您只需有 n 与 n=p*q 与 p 和 q 未知...如果您找到另一种计算 PHI(n) 的方法...除了 (p-1)*(q-1) ...您会破坏RSA 不分解 n ...但该任务被认为至少与分解 n 一样困难
  • 我参加聚会有点晚了,但这个答案确实凝聚了我对 RSA 的理解。
【解决方案2】:

RSA 使用单向数学函数的概念,因此如果您有密钥,加密和解密很容易,但如果您没有密钥,则很难(因为它需要大量的 CPU 周期)解密钥匙。甚至在他们考虑使用素数之前,数学家就已经确定了对单向函数的需求。

他们想到的第一个方法是,如果您的“密钥”是质数,而您的消息是另一个数字,那么您可以通过将两者相乘来进行加密。有钥匙的人可以很容易地划分出质数并得到消息,但对于没有质数的人来说,找出质数的钥匙就很难了。

【讨论】:

  • 抱歉我的粗心,删除了我的 cmets。我没有删除我的反对票,我认为这不会让它更清楚。
【解决方案3】:

所有公钥算法都基于trapdoor functions,也就是说,以一种方式“易于”计算但“难以”反转的数学结构,除非您还拥有一些附加信息(用作私钥)这一点反过来也变得“容易”。

“简单”和“困难”只是定性形容词,总是以computational complexity 的形式进行更正式的定义。 “难”通常是指无法在多项式时间内解决的计算O(nx)对于某些固定的x和n 是输入数据。

在 RSA 的情况下,“简单”函数是模幂 C = Me mod N 其中 N 的因数被保密。 “困难”问题是找到 C 的第 e 个根(即 M)。当然,“难”并不意味着它总是很难,而是(直观地)将 N 的大小增加一定的因子会使复杂度增加很多因素。

推荐的模数大小(2048 位或 617 个十进制数字)与当前计算能力的可用性有关,因此如果您坚持使用它们,您可以放心,这对攻击者来说将是极其昂贵的打破它。有关更多详细信息,我应该将您推荐给a brilliant answer on cryptography.SE(去投票:-))。

最后,为了有一个活板门,N被构建成一个合数。从理论上讲,为了提高性能,N 可能有超过 2 个因素,但一般的安全规则是所有因素必须平衡并且具有大致相同的大小。这意味着如果你有 K 个因子,并且 NB 位长,那么每个因子大致是 B/K 位长。

这个要解决的问题与integer factorization problem 不一样。这两者是相关的,如果您设法将 N 因素考虑在内,您可以通过重新执行生成密钥的一方所做的事情来计算私钥。通常,使用的指数 e 非常小 (3);不能排除某天somebody 设计了一种算法来计算 e-th 而无需分解 N

编辑:更正了 2048 位 RSA 密钥模数的十进制位数。

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2015-08-14
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多