RSA 数学原理

2018-12-09  本文已影响5人  Kare

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

前奏

对称加密

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

加密: 明文 + 密匙

解密: 密文 + 密匙

非对称加密

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

用公钥加密,私钥解密

私钥加密,公钥解密

相关数学原理

欧拉定理

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

image
一下是几种情况
例如: 
ϕ(8) = ϕ(2^3) = 2^3 - 2^(2-1) = 8 - 4 = 4
ϕ(15) = ϕ(3) * ϕ(5) = 2 * 4 = 8

费马小定律

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

image

模反元素

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

image

迪菲赫尔曼密匙交换原理

image

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

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

说明:

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

关于RSA的安全:

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

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

优点

缺点

上一篇 下一篇

猜你喜欢

热点阅读