ZERO TO RSA
从0证明RSA RSA 算法(即一个非对称加密算法)除了应用非常广泛外,其特性也非常吸引人(起码非常吸引我)。我在网上找了很多关于RSA的证明,要么不够详细(例如缺失对前置定理的证明),要么需要引出较多复杂的数论概念。作者本身水平不高,试图绕过这些复杂的概念,从初等数学的开始,完备地证明RSA。 关于RSA的背景知识可能很多,可以慢慢阅读,我在此尝试从初等数学开始证明。这些背景知识的证明有一定的顺序,如果读者发现某个证明看不懂,可以向前翻阅。 参考的文章如下:(因为参考的文章太多,大概率不全) 费马小定理 中国剩余定理 阮一峰的博客——RSA算法原理(一) 阮一峰的博客——RSA算法原理(二) 初等数论笔记Part 1: 欧拉定理 算法学习笔记(9):逆元 费马小定理 简介 如果 $p$ 是质数且 $\mathrm{gcd}(a,p)=1$ , 那么 $a^{p-1}\equiv 1\ (\mathrm{mod}\ p)$ 在证明该定理前,先证明一个简单的引理 引理1 如果 $p$ 是质数,且 $\mathrm{gcd}(a,p)=1$ , 那么 $$ \lbrace ka \ \mathrm{mod}\ p | k = \lbrace 1,2,…,p -1 \rbrace \rbrace= \lbrace 1,2,3,…,p-1 \rbrace $$ 即二者存在一对一的关系。由于这两个集合的元素个数相同,所以只要证明左侧集合没有重复元素即可 证明:假设存在 $k_1$ 和 $k_2$ 满足 $1 \leq k_1 < k_2 \leq p-1$ ,且 $k_1a\ \mathrm{mod}\ p = k_2a\ \mathrm{mod}\ p$ ....