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

有意添加请备注 啊啊啊啊

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值