RSA加密算法

本文详细介绍了RSA非对称加密算法的工作原理,包括对称加密的不足、互质关系、欧拉函数、欧拉定理、模反元素、密钥生成、加密解密过程以及RSA算法的可靠性。通过实例展示了如何利用数学理论进行公钥和私钥的计算,并讨论了RSA在实际应用中的填充模式和签名验证方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##一、对称加密算法
在RSA算法出现之前,人们一直用的是对称加密算法,什么是对称加密算法:
加解密双方使用同一套密钥,即甲用密钥加密,乙还得用与甲同样的密钥来减密,这就存在极大的安全隐患。
常用的对称加减密算法有:DES, 3DES,AES,SM1(国密中的对称算法,密钥长度是128位)等。
##二、非对称加密算法
针对对称算法的不足,后来有三位大牛想出了一套非对称算法,也就是现在我们常说的RSA算法。这个算法里用到了很多数学知识,起到数学,感觉就不是一般人能研究的,不过人类生活中很多东西都与数学息息相关,没有数学就没有现在美好的生活,所以下面简单说明几个数学概念。
###1、互质关系
质数, 素数,这两个名词很多人在数学习课本里都听过,好像在中学的数学课本里就有了,它们表示同一个东西,只是两种不同叫法,那什么是质数?
任意一个数如果只能被1和它本身整除,这个数就是质数。

那什么是互质关系呢?如果两个正整数,除了1以外,没有其他公因子,那这两个数就是互质关系。
通过互质关系的概念,不难发现两个质数肯定是互质关系,但不一定互质关系的两个数一定都是是质数,比如15与32。以下是别人关于互质关系的总结:

  a. 任意两个质数构成互质关系,比如13和61。

  b. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。

  c. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。

  d. 1和任意一个自然数是都是互质关系,比如1和99。

  e. p是大于1的整数,则p和p-1构成互质关系,比如57和56。

  f. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

###2、欧拉函数
何为欧拉函数?
在任意的正整数n,请问在小于等于n的正整数中,有多少个与n构成互质关系,计算这个值的方法,就叫做欧拉函数,以φ(n)表示。
比如正整数8,φ(8)=?,很快算出有1、3、5、7,所以φ(8)=4

根据前面对质数,互质关系,欧拉函数的介绍,大牛们把欧拉函数又推导出下面几个等式也成立:
1)如果n可以分解成两个互质的整数之积,即n=p×q,则有:φ(n)=φ(pq)=φ§φ(q);
2)一个数如果是质数,则小于它的所有正整数与它都是互质数;所以如果一个数p是质数,则有:φ§=p-1。
3)如果n可以分解成两个互质的整数之积n = p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2)
4)如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则
φ(pk)=pk-p(k-1)=pk(1-1/p).
比如: φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4; φ(8) = φ(23)=23(1-1/2)=4
5)因为任意一个大于1的正整数,都可以写成一系列质数的积:
n=p1k1p2k2…prkr,根据第三条定律,则φ(n)=φ(p1k1)φ(p2k2)…φ(prkr)
再根据第四条定律,则φ(n)=p1k1p2k2…pr^kr(1-1/p1)(1-1/p2)…(1-1/pr),也就等于
φ(n)=n(1-1/p1)(1-1/p2)…(1-1/pr),这就是欧拉函数的通用计算公式,举例:1323的欧拉函数,计算过程如下:
φ(1323)=φ(33x72)=1323(1-1/3)(1-1/7)=756

###3、欧拉定理
欧拉函数的用处,在于欧拉定理。
如果两个正整数a和n互质,则n的欧拉函数φ(n)可以让下面的等式成立:
a^φ(n)≡1mod(n)
比如,3和7互质,而7的欧拉函数φ(7)等于6,所以3的6次方(729)减去1,可以被7整除(728/7=104)。

###4、模反元素
如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。
根据欧拉定理有:
aφ(n)=axaφ(n-1)≡1mod(n),令b=a^φ(n-1),则ab≡1mod(n),这里b就是a的模反元素。

比如࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JXES智能生态系统

如文章对你有用,请作者喝个咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值