RSA算法详解

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

有意添加请备注 啊啊啊啊

发布了25 篇原创文章 · 获赞 15 · 访问量 1882
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览