第十个知识点:RSA和强RSA问题有什么区别?
第十个知识点: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(mod\space n)\),其中\(n\)是由两个大素数产生的,\(e\ge 3\)并且是一个奇数且和\(Z^*_n\)互质,\(Z_n\).Bob知道私钥\((n,e)\),其中\(de=1(mode(p-1)(q-1))\)意味着\(M=C^d(mod\space n)\).攻击者能够窃听\(C\)同时知道公钥\((n,e)\).然而为了计算\(M\),攻击者必须找到\(n\)的分解.因此,这意味着RSA问题并不比整数因子分解困难,但是如果选择合适的\(n\),这仍然是一个很难解决的问题.
强RSA假设
强RSA假设不同于RSA假设主要在对手可以选择奇数的公共指数\(e\ge3\).对手的任务就是计算出\(M\)从一个给定的\(C=M^e(mod \space n)\).这个问题至少和RSA一样简单,这意味着这个假设更强.他的问题至少和RSA问题一样简单这意味着强RSA假设是一个更强的假设。RSA问题已经有25年的历史了。公钥加密方案的优点完全来自于RSA问题.
[1] - http://people.csail.mit.edu/rivest/RivestKaliski-RSAProblem.pdf
(注:觉得它这篇写的有些混乱,可以直接参考这个链接的pdf).