前言
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman), 是第一个既能用于数据加密也能用于数字签名的算法,易于理解和操作,应用广泛。RSA的安全性依赖于大整数因子分解。目前来看,攻击RSA算法最有效的方法便是分解模n。一般认为RSA需要1024位或更长的密钥才有安全保障。
一、RSA算法简介
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA绝对是当今应用最为广泛的加密算法,像数字签名,数字证书,SSH,HTTPS加密连接全部都是他的典型应用。
二、数学基础
1.互质
互质又称为互素,如果两个或两个以上的整数的最大公约数是 1,则称它们为互质。
2.欧拉函数
欧拉函数指的是对正整数n,求小于或等于n的正整数中与n互质的数的数目,记作φ(n)。
3.欧拉定理
欧拉定理也称费马-欧拉定理,指的是:如果两个正整数m和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立。