第十个知识点:RSA和强RSA问题有什么区别
这个密码学52件事数学知识的第一篇,也是整个系列的第10篇.这篇介绍了RSA问题和Strong-RSA问题,指出了这两种问题的不同之处.
密码学严重依赖于这样的假设,某些数学问题难以在有限的时间内解决.让我们看公钥(非对称)密码学,这也是这篇文章中我们使用的一个假设----单向函数(One-Way function)存在.例如,一个函数在一种情况下很容易计算,而在另一种情况下不容易计算.我们使用数论算法来产生这样的函数.
分解
数论中最先讨论的问题就是分解.给一个合数(N),分解问题就是找出正整数(p),(q)使得(N=pq).尽管这面临的似乎是一个简单的问题,但事实上它是很难的,值得深入研究的问题.我们可以在指数时间检查所有的(p=2,...,sqrt N).然而解决问题在指数时间不是足够快的.尽管有多年的研究,还没有多项式算法可以解决分解大数的问题.很显然对(N)的某个特定的值很容易解决.例如(N)是偶数.但是,我们讨论的密码学构造中,(N)是一个非常大的数,同时被连个大素数构造(p,q).
RSA问题
在RSA公钥加密中,Alice使用Bob的公钥((n,e))加密明文(M)生成(C),计算方法为(C=M^e(modspace n)),其中(n)是由两个大素数产生的,(ege 3)并且是一个奇数且和(Z^*_n)互质,(Z_n).Bob知道私钥((n,e)),其中(de=1(mode(p-1)(q-1)))意味着(M=C^d(modspace n)).攻击者能够窃听(C)同时知道公钥((n,e)).然而为了计算(M),攻击者必须找到(n)的分解.因此,这意味着RSA问题并不比整数因子分解困难,但是如果选择合适的(n),这仍然是一个很难解决的问题.
强RSA假设
强RSA假设不同于RSA假设主要在对手可以选择奇数的公共指数(ege3).对手的任务就是计算出(M)从一个给定的(C=M^e(mod space n)).这个问题至少和RSA一样简单,这意味着这个假设更强.他的问题至少和RSA问题一样简单这意味着强RSA假设是一个更强的假设。RSA问题已经有25年的历史了。公钥加密方案的优点完全来自于RSA问题.
[1] - http://people.csail.mit.edu/rivest/RivestKaliski-RSAProblem.pdf
(注:觉得它这篇写的有些混乱,可以直接参考这个链接的pdf).