rsa 是目前最有影响力的公钥加密算法
公钥数据加密算法的意思是 非对称加密 明文通过公钥加密 但是 只能 通过私钥匙去解密
rsa的基本思路
res 公钥密码体制 m为明文 c为密文
1: 选取两个大素数p,q p,q 都保密
2.计算 n = pq r =(p-1)(q-1) n 公开 r 保密
3.随机选取 正整数 1< e <r 满足 gcd(e, r) =1 e 是公开的加密密钥
4.计算d de = 1(mod r) d是保密的解密密钥
5. 加密变换: c=m^e mod n
6. 解密变换: m=c^d mod n
三、 RSA为什么能用公钥加密,私钥解密?
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
四、 算法实现的关键点一 Miller-Rabin素性测试算法
待补充
五、 算法实现的关键点二 a^b%n的计算
=================================================
非对称的 加密解密用的不是同一个
和des 一样的 如果加密的数据不是分组大小的整数倍 则会根据具体的应用方式增加额外的填充位
缺乏解决大数的因子分解的有效方法,因此,可以推测出目前没有有效的办法可以破解RSA
RSA算法基于的原理,基本上来说,加密和解密数据围绕着模幂运算,这是取模计算中的一种。取模计算是整数计算中的一种常见形式。x mod n的结果就是x / n的余数。比如,40 mod 13 = 1,因为40 / 13 = 3,余数为1。模幂运算就是计算ab mod n的过程
开始前,首先要选择两个大的素数,记为p和q。根据当今求解大数因子的技术水平,这两个数应该至少有200位,这们在实践中才可以认为是安全的。n = pq