介绍一下RSA

RSA算法---非对称加密算法

非常可靠, 密钥越长就越难破解

密钥生成步骤

1. 随机选择两个不相等的质数 p q

2. 计算 p 和 q 的乘积 n

3. 计算 n 的欧拉函数φ(n)

4. 随机选择一个整数 e,条件是1< e < φ(n),且e与φ(n) 互质。

5. 计算 e 对于φ(n)的模反元素d。

6. 将n和e封装成公钥,n和d封装成私钥。

密钥生成步骤一共出现六个数字

这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。

结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。

可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。

加密用公钥、解密用私钥

假设鲍勃要向爱丽丝发送加密信息m,他就要用爱丽丝的公钥 (n,e) 对m进行加密。这里需要注意,m必须是整数(字符串可以取ascii值或unicode值),且m必须小于n。

所谓"加密",就是算出下式的c:

  m^e ≡ c (mod n)

解密: 计算出 m

 c^d ≡ m (mod n)

来源整理自:vue3js.cn 面试官系列