RSA加密示例

该文档的完整下载地址:http://download.csdn.net/detail/o6108/9408071

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

            RSA

 

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

 

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

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

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

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

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

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

 

RSA 加密示例

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

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

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

Bob 选择一个数字 与 40 是互质数。40的质因数是 22251,所以 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 = 5Carol 把结果发送给 Bob 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值