RSA加密算法

RSA加密算法

图片丢失:请参考RSA 非对称加密原理(小白也能看懂哦~)

RSA数学基础

整除

如果 a 整除 b ,记为 a|b 。

若c = k1*a + k2 *b ,e|a 且 e|b , 则 e|c

最大公因子

所有同时整除 和 的整数中,最大的那个,称为 和 的最大公因子,记为 (a,b)

欧几里得算法(辗转相除法)
def gys(a, b):
    if b == 0:
        return a
    return gys(b, a % b)

print( gys(8,4) )
扩展欧几里得算法
def egcd(a, b):
    if b == 0:
        return a, 1, 0
    gcd, k1, k2 = egcd(b, a % b)
    return gcd, k2, k1 - a / b * k2

# 扩展欧几里得算法
# k1 * a + k2 * b =(a,b)

print(f"公因数、k1、k2分别为:")
print( egcd(13,4) )
互素

最大公因子的最小可能取值是1,当 (a,b) = 1 ,即a和b的最大公因子为1时,我们称a和b互素。

乘法逆元

同余定理:给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。对模m同余是整数的一个等价关系。

若a ≡ 0 (mod m),则 m|a;

	例如:26 ≡ 2(mod 12)   
		(26 - 2)/ 12 = 2  能被整除

如果 ax ≡ 1 (mod p),且 gcd (a,p) = 1 (即 a与p互质),则称a关于模p的乘法逆元为x。

法一:利用扩展欧几里得算法

首先模就是余数,比如 12 % 5 = 12 - 52 = 2,18 % 4 =18 - 44 = 2。

那么 ax≡1 (mod p) => ax % p = 1% p => ax - yp = 1

若把y前的符号变成 + 的形式就是ax+py=1,为方便理解下面我们把p写成b就是ax+by=1。

就表示x是a的模b乘法逆元,y是b的模a乘法逆元。

例如,求5关于模14的乘法逆元:
	(5,14) = 1 互素
	5x ≡ 1 (mod 14)
	5x - y14 = 1
	所以x = 3 , y = 2 所以 3是5关于模14的乘法逆元
欧拉函数

就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。

欧拉函数的通式:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5HmAXOWp-1635524341277)(…/Pictures/typora/SouthEast)]
其中p1, p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQWjI7wY-1635524341279)(…/Pictures/typora/image-20211029233050721.png)]

举例说明:

φ(10)=10×(1-1/2)×(1-1/5)=4; 10的质因数为2,5;
φ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8; 30的质因数为2,3,5;
φ(49)=49×(1-1/7)=42。 49的质因数为7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHFxsaQe-1635524341283)(…/Pictures/typora/image-20211029233005171.png)]

欧拉定理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93CsjuGp-1635524341285)(…/Pictures/typora/image-20211029233348940.png)]

欧拉定理推论

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMWsSXIk-1635524341287)(C:\Users\MG\AppData\Roaming\Typora\typora-user-images\image-20211029234301618.png)]

这个结论就有意思了, a 经过若干次幂再模 n 后又等于 a。

如果我们能把这个操作拆成两步,第一步不就是相当于加密,第二步不就相当于是解密!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R9q0iLvd-1635524341290)(…/Pictures/typora/image-20211029235000960.png)]

RSA加密算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c6Wirm8l-1635524341292)(…/Pictures/typora/image-20211029235133914.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oSXyKhFl-1635524341293)(…/Pictures/typora/image-20211029235155091.png)]
341290)]

RSA加密算法

[外链图片转存中…(img-c6Wirm8l-1635524341292)]

[外链图片转存中…(img-oSXyKhFl-1635524341293)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值