因为网页显示的不太好,有的需要显示例如 X 的平方,但网页显示不出来。                                       

            RSA

rsa加密算法生成密钥 rsa加密例子_密钥对

 

RSA是完整的加密系统,它支持公钥/私钥对的生成、加密以及数字签名。Carol 为了加密消息以发送给Bob ,Bob 首先必须生成一个密钥对,并和 Carol 共享公钥。公钥由两个数字组成:模数 n 和公共指数e 。私钥也由两个数字组成:相同的模数 n 和私有指数 d 。通过随机选择两个大的质数 p 和 q ,并把它们一起相乘,就可以创建模数。所选择的指数 e 必须与 ( q - 1 ) × ( p - 1 ) 互质 (也就是说,e 与这个数必须不具有相同的因数)。质数 d 必须满足等式 d × e mod [ ( p - 1 ) × ( q - 1 ) ] = 1 。然后,如果 Carol 的明文是 M ,那么,她就能够通过计算 C = Me mod n ,把它加密成密文 C 。Bob 通过计算 M = Cd mod n 就可以恢复明文。

 

第一步 Bob 选择大的质数 p 和 q ,并使它们相乘,从而得到 n 。

第二步 Bob 选择一个公共质数 e ,它与 ( p - 1 ) × ( q - 1 ) 是互质数。

第三步 Bob 计算私有质数 d = e-1 mod [ ( p - 1 ) × ( q - 1 ) ] 。

第四步 Bob 与 Carol 共享密钥,数字 n 和 e 。

第五步 Carol 使用 C = Me mod n 把M加密成 C ,并把 C 发送给 Bob 。

第六步 Bob 使用 M = Cd mod n 把 C 解密成 M 。

 

RSA 加密示例

这里有一个 RSA 机密的示例,同样为了简洁起见,在这个例子中使用的数字都很小。

Bob 选择了质数 p = 5 和 q = 11 ,然后把这两个数字相乘,从而得到模数 n = 55 。

Bob 计算出 F( n ) = ( p - 1 ) × ( q - 1 ) = 4 × 10 = 40

Bob 选择一个数字 e ,e 与 40 是互质数。40的质因数是 2、2、2、5和1,所以 Bob 选择的私有指数 e = 3 。

Bob 选择了一个公共指数 d = 3-1 mod 40 。这个模数反函数实际上是非常困难的,但是对于所用的这些小数字,可以看到 27 × 3 mod 40 = 81 mod 40 = 1 。所以 d = 27 。

现在 Bob 的公钥就是数对 ( 3 , 55 ) ,其私钥就是数对 ( 27 , 55 ) 。Bob 把自己的公钥发送给 Carol 。

Carol 的消息 M = 25 。它把该消息加密成密文 C = 253 mod 55 = 15625 mod 55 = 5。Carol 把结果发送给 Bob 。

Bob 使用 M = 527 mod 55 = 7450 580 596 923 828 125 mod 55 = 25 对密文进行解密,这就是 Carol 的原始消息。