非对称密钥 —— RSA 算法

简介

RSA 算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA 是第一个既能用于数据加密也能用于数字签名的算法。

原理

RSA 算法原理如下:
1.随机选择两个大质数 p 和 q,p 不等于 q,计算 N=pq;
2.选择一个大于 1 小于 N 的自然数 e,e 必须与 (p-1)(q-1) 互素。
3.用公式计算出 d:d×e = 1 (mod (p-1)(q-1)) 。
4.销毁 p 和 q。
最终得到的 N 和 e 就是“公钥”,d 就是“私钥”,发送方使用 N 去加密数据,接收方只有使用 d 才能解开数据内容。

总结

RSA 的安全性依赖于大数分解,小于 1024 位的 N 已经被证明是不安全的,而且由于 RSA 算法进行的都是大数计算,使得 RSA 最快的情况也比 DES 慢上倍,这是 RSA 最大的缺陷,因此通常只能用于加密少量数据或者加密密钥,但 RSA 仍然不失为一种高强度的算法。

案例分析

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子:
(1) Alice 需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。
(2) Alice 的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给 Alice。
(4) Alice 的浏览器使用银行的公钥将自己的对称密钥加密。
(5) Alice 的浏览器将加密后的对称密钥发送给银行。
(6) 银行使用私钥解密得到 Alice 浏览器的对称密钥。
(7) Alice 与银行可以使用对称密钥来对沟通的内容进行加密与解密了。
asymmetric cryptography

对称 VS 非对称

  1. 对称加密(Symmetric Cryptography)
    加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
  2. 非对称加密(Asymmetric Cryptography)
    使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
  3. 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
------ END ------
0%