含义:“'如果很难分解大整数,那么很难破解RSA',未经证实”


30

我正在阅读CLRS,并说:

如果分解大整数很容易,那么破坏RSA密码系统就很容易。

这对我来说很有意义,因为有了p和的知识,就很容易创建公开密钥知识的秘密密钥。不过,它解释了相反的陈述,我不太了解:q

相反的说法,即如果很难分解大整数,那么很难破解RSA。

以上声明的正式含义是什么?如果我们假设分解很困难(以某种正式方式),那为什么不意味着破坏RSA加密系统很难呢?

现在考虑一下,如果我们假设分解是困难的……并且我们发现它意味着RSA密码系统很难破解。这正式意味着什么?


3
可能意味着破解RSA很困难,但尚未得到证明
Tom van der Zanden

2
打破RSA核心的离散对数问题,而“非常相似”尚未被证明等同于分解,这是该领域的一个主要开放性问题(包括密码学和TCS)
vzn

1
第二个不应该使用破折号而不是逗号吗?当从属子句中有逗号时,是否不使用破折号? The converse statement -- that if factoring large integers is hard, then breaking RSA is hard -- is unproven.
Czipperz 2015年

@ruakh:糟糕,是的...我什至要确保仔细检查它,但我还是记错了。我一直忘了应该将您简化为一个您知道很容易解决的问题,而不是一个您至少知道与当前问题一样难的问题。:-)谢谢,我删除了它。
Mehrdad

数学参数:“如果,则B ”的含义与“如果不是B,则A ”相同。您不能说“如果不是A则不是B ”。ABBAAB
drzbir

Answers:


50

考虑它的最简单方法是考虑对立面。

该声明:

如果很难分解大整数,那么很难破解RSA

等效于以下内容:

如果轻松破解RSA,那么分解大整数很容易

该说法尚未得到证实。

他们的意思是,假设我们有一个可以解决多项式时间分解的算法。然后,我们可以使用它来构造一个在多项式时间内求解RSA的算法。

但是,可能还有其他一些不涉及整数分解因素的破解RSA的方法。很有可能我们会发现我们无法以不允许我们在多项式时间内分解整数的方式破解RSA。

简而言之,我们知道RSA 至少和分解一样容易。有两种可能的结果:RSA和因式分解具有同等的难度,或者RSA是比因式分解更容易解决的问题。我们不知道是哪种情况。


10
“至少一样容易”-这是一种解释折减的方法,应该与其他方法一起更明确地加以教导。
G. Bach 2015年

你可以做到这一点无论哪种方式,如果X是至少坚硬如Y,Y至少是那么容易,因为X.
jmite

2
这就是我的意思-几乎每个人都可能听说过“ X至少和Y一样难”,但是“ Y至少和X一样容易”很少被解释-尽管它同样有用。
G. Bach

1
我似乎还模糊地记得Donald Knuth提到的一种算法,该算法可以使能够神奇地破解任意RSA加密消息的机器将两个大素数的乘积分解。我可能有这个错误:-(
gnasher729

31

硬性方法的存在并不意味着没有简单的方法。

破解RSA的方法有很多种,我们只需要找到其中一种即可。


这些方法之一是分解一个大整数,因此,如果这很容易,我们可以这样做,并且RSA被破坏。这也是我们唯一知道的方法。如果这样做不可行,我们仍然可以找到另一种计算量较少的方法来执行我们的任务,而无需从n显式计算pq


要证明RSA已损坏,我们需要证明一种简便的方法。

为了证明RSA是安全的,我们需要证明所有方法都很难做到。


最后,您的陈述是未经证明的,因为尚未证明没有其他更容易的方法可以从密文中提取信息。


1
如果我们可以生成一种算法,通过生成一些特殊的RSA加密消息,将其破解,然后进行更多计算,就可以分解两个大质数的乘积,则可以证明RSA和分解同样困难。那将意味着RSA并不比分解容易。这并不意味着容易或困难。
gnasher729

@ gnasher729足够了吗?该算法是否可以考虑两个大素数的乘积,但不包括两个以上素数的乘积或涉及小素数的乘积?
otakucode

@我认为RSA仅取决于互质因素。因此,绕开具有多种因素的产品将是直截了当的。
塔米尔(Taemyr),2015年

10

另一种看待它的方法是,打破RSA仅需要一个特殊的因式分解情况,无论是否存在因式分解的一般问题,这种情况可能都不容易。

举一个简单的例子,考虑一下分解确实确实很困难的情况,但仅适用于具有不同因子的数字。仅使用两个不同的因子来分解复合数(如RSA中所用)可能仍然很容易。3


7

这意味着(目前)RSA问题似乎比分解更具体。

所以,RSA问题是这样的:知道一个半素和一些指数Ë 和值v 找到,使得v èpqe,v,mvmemodpq

pq,pq

dmvd

m

实际上,在1998年,Boneh和Venkatesan发表了一个证明,证明不能使用某些简单的算法类(加,时间,指数,没有XOR / NAND类型的东西)将RSA问题解决方案转换为分解算法。该论点有一个简单的独创性:通过数学方式处理这些算术运算,我们可以发现“归约算法”(为精确起见:这是一种将RSA“ oracle”用于半素数分解为半素数的算法)本身就是一个分解因数算法,因此我们可以将其修改为不调用其oracle的变体。因此,我们采取了三分法:或者(a)没有这样的归约算法,或者(b)归约算法没有很好的算术解释,或者(c)分解是多项式时间,就像归约算法一样。


“不知道找到给定e的逆指数d会告诉您有关模数因子的任何信息”,不是吗?你可以计算pq 给定 ñËd。表示的算法显然是PP,不知道在P中吗?
吉尔斯(Gilles)'所以

@Gilles实际上我认为您是对的,因此我已相应确定了答案。
CR Drost 2015年

3

RSA depends on two abstract mathematical tasks that are believed to be hard: integer factoring, as you know, but also the discrete logarithm problem. You can break RSA if you can quickly factor a number that's the product of two large unknown primes; but you can also break RSA if you can quickly find logeC in the finite group Zm, where e and m are the public RSA exponent and modulus, and C is the ciphertext.

These two mathematical tasks are related, but (if I remember correctly) it's believed that a solution to one would not imply a solution to the other. I don't know if they are the only two ways to break RSA mathematically.


I think you might be misremembering things. Those aren't really two different problems: if you can find the discrete log modulo m, then you can factor m. In other words, a solution to the discrete log problem certainly does imply a solution to the factoring problem.
D.W.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.