非对称算法RSA原理——浅述

本文详细介绍了RSA非对称加密算法的原理,包括质数、欧拉函数、欧拉定理、模反元素和迪菲-赫尔曼密钥交换。通过这些概念阐述了RSA加密和解密的过程,指出选择大素数作为密钥可以增加破解的难度,确保加密安全性。

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

一、质数(RSA基因)
定义:指在大于1的自然数中,除了1和它本身之外不再有其他因数的自然数,也可说除了1和它本身之外,不能被其他自然数整除的数。
互质定义:公因数只有1的两个非零自然数。

二、欧拉函数(RSA建立基础)
定义:任意给定的正整数n,请问在小于等于n的正整数中,有多少个数(假设x个)与n构成互质关系?计算这个值(x)的函数叫做欧拉函数,以£(n)表示。(这里边的函数符号只是本文写的,不具参考意义。)

三、欧拉定理(RSA建立基本雏形)
如果两个正整数m和n互质,那么m的£(n)次方减去1可以被n整除。
m^£(n) mod n = 1
根据费马小定理,如果两个正整数m和n互质,且n为质数,则£(n)等于n-1,所以:
m^n-1 mod = 1
四、模反元素(RSA最后的翅膀)
定义:如果两个正整数e和x互质,那么一定可以找到一个整数d,使得ed-1可以被x整除,也可以说ed对x取余为1,那么d就是e相对于x的模反元素。
ed mod x = 1
五、最后做一次等式变化(RSA)
对欧拉定理变化,两边做k次幂得到m^(k
£(n)) mod n = 1,两边再乘m得到m^(k£(n)+1) mod n = m。
看到这里就发现是不是有个地方和模反元素很相似,替换m的次幂得到:
m^(e
d) mod n = m ——最后的等式雏形
可以看出,ed = k£(n)+1,所以,必要的条件是e和£(n)是互质的,一定有一个d是e相对于£(n)的模反元素。
这个等式被证实,不需要m和n互质,只需要m小于n等式依然成立!!
至此,似乎对m的加密和解密可以用最后的等式雏形来描述,但是有个问题,就是加密结果较大,明文比较小,悬殊较大。

六、迪菲赫尔曼密钥交换(公私钥的诞生)
非对称出现之前,人们用对称加密,密钥的保密性要求很高,迪菲赫尔曼密钥交换解决了这个密钥传递过程中保密问题。
举例子:
A私钥为13 B私钥为15
算法为:
3^13 mod 17 = 12(A公钥)
3^15 mod 17 = 6(B公钥)
然后 A 和 B互相把自己的公钥传给对方,再用自己的算法得到要保护的密钥。
6^13 mod 17 = 10 12^15 mod 17 = 10
10就是要保护的密钥。
问题:为什么上边两个算法用不同的公钥正好就能得到一样的数据呢? 因为迪菲赫尔曼密钥交换把变形的欧拉定理拆开了!形成了这个规律。

拆开后的公式为:
m^e mod n = C
C^d mod n = m^(e*d) mod n = m。

RSA诞生
m^e mod n = C ——加密

C^d mod n = m ——解密

需要找到d是e相对于£(n)的模反元素,等式即可成立。

现在来看看这个难度:
加密时候需要知道k£(n)+1,£(n)可以通过两个互质的数的积得到。n = ab, a b 互质,则£(n)=£(a)*£(b)
别人想破解,也需要知道£(n),那么就需要对n进行因式分解,所以我们选用n较大时候,破解的难度就更大了,现在1024bit的密钥可以很安全了,除了量子计算机外!!

参考文献:
https://blog.youkuaiyun.com/wjiabin/article/details/85228078?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值