作为基础的非对称加密,RSA算法的核心思路是利用一个正向计算简单而逆向穷举几乎不可能的数学公式计算数字化后的信息,由两个唯一参数作为公钥和私玥对数据进行加密和解密。

  这两个密钥保证了解密者不用担心密文被恶意篡改(密文被更改后解密会失败),而由于反向推算极为困难且不需要私钥参与加密,加密者也可以保证数据的安全。

  RSA算法的数学公式加密时为: M 的 E 次方对 N 取模 = 余数 C 。其中M为明文,C为密文,(E,N)为公钥

  解密时为: C 的 D 次方对 N 取模 = 余数 M 。其中M为明文,C为密文,(D,N)为私钥。

  显然已知C,N,E求M极为困难。

(取模运算在两数都为正数时与取余运算相同)

  为了保证两密钥唯一,选择两质数p,q,设其乘积为N,

  E可以在一个限制内随意设置,而D则由E简单推得。同样为保证E,D唯一:选择 q-1 , p-1 的乘积为 L ,1<E<L且最大公约数为1,同时,E 与 D 的乘积与 L 取模结果为1。

(此处设置 L =( p - 1) × (q - 1) ,是为了在 N = p × q 时,确保 E <  q ×(p - 1) &&   p ×(q - 1),以避免出现无法取 D 的情况)

  至此,求得的 (E,D,N)即为一组RSA密钥对

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zigzagggg/p/14499524.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!