RSA名字来源
RSA是三位作者的英文首字母分别是:
Ronald Linn Rivest(罗纳德·林恩·里维)
Adi Shamir(阿迪·沙米尔)
Leonard Adleman(伦纳德·阿德曼)
RSA算法
RSA是非对称加密, RSA算法主要是根据两个大素数相乘来完成秘钥生成的,所以安全性决定于素数的大小。
科普:
费马小定理:假设a是一个整数,p是一个素数,a^p -a 一定是p的倍速
欧拉总计函数:欧拉大神无所不能,表达式:φ(n)
φ(n)表示了在小于或等于n正整数当中与n互素的数的个数
互素(搜狗百科):互质是公约数只有1的两个整数,叫做互质整数。公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形。
RSA算法的原理
A随便找两个不相对的较大质数p与q并且计算出乘积N=pq,再通过欧拉函数可以计算出φ(n)的值,然后找出小于或等于n自然数并且在其中找出有多少个互素φ(p)φ(q)=(p-1)(q-1)=r,再随便选择一个小于r的整数e并re要互素
到这来就告一段落,并且得到公钥(N,e)
想休息?不不不还没完。
先找一个数d,这个d要满足ed-1是r的倍数
ok,到这里,私钥也出来了就是(N,d)
现在,A可以把pq给放到垃圾桶了,然后被公钥交给B
B给A发一条消息,首先需要把这段消息变成数字的形式
假设消息Z是整数(Z小于N)
加密过程:
首先取Z的e次方,还要找一个数L,这个L要满足Z^e-L是N的倍数
L也就是经过加密的密文
这个时候B也就可以将L交给A了
解密:
A要找到一个数使得L^d减去这个数的结果是N的部数,这个数是唯一的只能是Z。
ok
其他链接
哔哩哔哩
会同步该博客发一些自制视频
微博
用的比较少
Github
一些源代码
知乎
不懂的我一般会在上面提问
简书
同步该博客内容相同
CSDN
同步该博客内容相同
个人联系方式
QQ:2446264712
微信:X15019749137
邮箱:xiaoyangaichibaozi@yeah.net
有意添加请备注 啊啊啊啊