Do u know RSA?
First Post:
Last Update:
Word Count:
Read Time:
Last Update:
Word Count:
731
Read Time:
2 min
RSA概述
RSA是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
预备知识
模运算 mod
在正整数范围内选取a,b,分别对另一个正整数n进行取余运算,得到a与b关于n同余,记作
模逆运算
如果正整数a,b,n满足a与b互为模n的逆元,记作
python实现:
1 | |
其余模运算基本原理可以参照这篇文章:https://blog.sengxian.com/algorithms/mod-world
欧拉函数 phi
n的正整数之中,有多少个数与n构成互质关系。
1.若1与任何数都构成互质关系
2.若
3.若p为质数,则
4.若
欧拉定理
若两个正整数a和n互质,则n的欧拉函数
How to ENCRYPT?
1.首先,我们选取两个不相同的大素数p和q,并计算
2.计算
3.选取一个小于e
4.计算e在模n下的逆元d,即
5.(n, e)封装为公钥,(p, q, d)封装为私钥
6.将密文转码为十六进制数据m
7.c即为可以传输的密文
至此RSA加密完成
How to DECRYPT?
最简单的情况:已知p,q,e,c
1.计算
2.计算逆元
3.
即可得到明文
解密算法证明
分两种情况证明,
m与n互质
m与n不互质
由于m与n不互质,所以m与n必定有一个大于1的公因子,而由于p与q均为质数,所以
由于
即
假设
由此可以得到
至此证明完毕
reward
Alipay


Wechat

