RSA 数学原理

RSA是一种基于非对称加密算法的技术,由公钥和私钥组成,其中公钥用于加密,私钥用于解密。它的安全性基于大整数因子分解的难度。欧拉定理和费马小定律是其数学基础,模反元素和迪菲赫尔曼密匙交换原理则确保了密钥的安全交换。RSA的主要优点是安全性高,但速度较慢,适合加密小量数据。
摘要由CSDN通过智能技术生成

提起RSA大家一定不陌生,在开发中经常使用,也经常听同事说道。

前奏

对称加密

话说很久以前,人们就懂的了加密这个技术。在战争时期,间谍就会拿着 密文密匙 来对信息就行传递。 这种简单的 密文 + 密匙(key) 就是 对称加密

加密: 明文 + 密匙

解密: 密文 + 密匙

非对称加密

由于这种加密方式过于简单,所以后来引入了数学算法。 RSA 就是由特殊的数学算法构成的,也是非对称加密算法。非对称加密需要两个密钥:公钥(public key) + 私钥(private key)

用公钥加密,私钥解密

私钥加密,公钥解密

相关数学原理

欧拉定理

如果两个正整数m和n互质,那么m的φ(n)次方减去1,可以被n整除。

一下是几种情况

  • 定理0 算术函数f如果满足对于任意两个互质的正整数m和n,均有f(mn)=f(m)f(n),就称f为积性函数(或乘性函数)。 如果对于任意两个正整数m和n,均有f(mn)=f(m)f(n),就称为完全积性函数。* 定理1 对于素数p,ϕ§=p−1。* 定理2 ϕ(pn)=pn−pn−1,因为素数幂pn不互质的只有p的倍数,一共有pn/p=pn−1个。* 定理3 若m、n互质,ϕ(mn)=ϕ(m)ϕ(n),所以欧拉函数是积性函数。 因为mn互质NN,和m互质的数乘上和n互质的数就会和mn互质。* 定理4 设n=p1a1p2a2…pkak为正整数n的素数幂分解,那么ϕ(n)=n(1−1/p1)(1−1/p2)…(1−1/pk)。 由定理2,ϕ(pn)=pn−pn−1=pn (1-1/p),又由定理3,ϕ(n)=p1a1p2a2…pkak(1−1/p1)(1−1/p2)…(1−1/pk)=n(1−1/p1)(1−1/p2)…(1−1/pk)```
    例如:
    ϕ(8) = ϕ(2^3) = 2^3 - 2^(2-1) = 8 - 4 = 4
    ϕ(15) = ϕ(3) * ϕ(5) = 2 * 4 = 8

### 费马小定律

**欧拉定理的特殊情况:如果两个正整数m和n互质,而且n为质数!那么φ(n)结果就是n-1。**

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/12/2/1676f78a35ea46ca~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image" style="margin: auto" />

### 模反元素

**如果两个正整数e和x互质,那么一定可以找到整数d,使得 ed-1 被x整除。 那么d就是e对于x的“模反元素”**

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/12/2/1676f7a231e29512~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image" style="margin: auto" />

### 迪菲赫尔曼密匙交换原理

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/12/3/16771440b82b2b77~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image" style="margin: auto" />

那么,通过一系列的数学转换,最终得出了RSA算法

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/12/3/1677146cfe6d5bef~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image" style="margin: auto" />

公钥:e 和 n
私钥:d 和 n
明文:m
密文:c


### 说明:

* n会非常大,长度一般为1024个二进制位。(目前人类已经分解的最大整数,232个十进制位,768个二进制位)
* 由于需要求出φ(n),所以根据欧函数特点,最简单的方式n 由两个质数相乘得到: 质数:p1、p2 Φ(n) = (p1 -1) \* (p2 - 1)
* 最终由φ(n)得到e 和 d 。

总共生成6个数字:p1、p2、n、φ(n)、e、d

### 关于RSA的安全:

除了公钥用到了n和e 其余的4个数字是不公开的。 目前破解RSA得到d的方式如下:

* 要想求出私钥 d 。由于e\*d = φ(n)\*k + 1。要知道e和φ(n);
* e是知道的,但是要得到 φ(n),必须知道p1 和 p2。
* 由于 n=p1\*p2。只有将n因数分解才能算出。

那么RSA有优点和弊端是什么了?

**优点**

* 相对安全

**缺点**

* 速度慢,耗时(因为,起内部原理是一系列的数学计算)
* 加密数据量小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值