此系列的第一篇详细介绍RSA算法的原理,并且给出正确性证明和简单的安全性证明。
1.RSA算法简介
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。——维基百科
RSA加密算法是非对称加密算法意味着其加密秘钥和解密秘钥是不相同的,加密秘钥称为公钥,解密秘钥称为私钥。我们一般用 (n,e) ( n , e ) 来表示公钥,用 (n,d) ( n , d ) 来表示私钥,其中 n n 是两个大素数
的乘积,即 n=pq n = p q 。若 n n 的比特位数为2048位,我们便称此RSA算法是2048位的。由于RSA算法的安全性取决于
分解的困难性,所以 n n 的位数越大,算法越安全,当前RSA2048及以上被认为是安全的。
用
表示明文, c c 表示密文,RSA加密过程:
RSA解密过程:
m≡cdmodn m ≡ c d m o d n
2.数论基础
2.1.欧拉函数
对正整数 n n ,欧拉函数是小于或等于