RSA算法的编程思路

  1)确定密钥的宽度

  2)随机选择两个不同的素数p和q,他们的宽度是密钥宽度的二分之一。

     3) 计算出p和q的乘积n。

  4)在2和n的函数之间随机选择一个数e,e必须和n的函数值互素,整数e用做加密密钥(n的函数=(p-1)*(q-1))

  5) 从公式ed恒等于1mod n的函数 中求出解密密钥d。

  6)得公钥(e,n),私钥(d,n)

  7) 公开公钥,但不公开私钥

  8)将明文P(假设p是一个小于n的整数)加密为密文C,计算方法为:

          c=(p的e次方)mod n

  9)将密文C解密为明文P,计算方法为:

          P=(c的d次方)mod n

  然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/gui--li/archive/2012/07/23/2605619.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值