RSA算法解析

基本步骤
  1. 随机选择两个大素数p和q,保密.
  2. 计算欧拉函数&n=(p-1)*(q-1)
  3. 计算n=p*q (n是公钥的一部分)
  4. 随机选择正整数e,且1<e<&n , e不能被n整除. (e是公钥的一部分)
  5. 私钥d = ( 2*&n+1 ) / e
  6. 公钥加密数据:密文C = 明文的e次方 mod n
  7. 私钥解密数据: 明文 = 密文C的d次方 mod n
举例
  1. p = 53, q = 59 (保密)
  2. &n = 52 * 58 = 3016
  3. n = 53 * 59 = 3127 (公钥的一部分)
  4. e = 3 (公钥的一部分)
  5. 私钥 d = (2 * 3016 + 1) / 3 = 2011
  6. 假如明文是89. 密文C = 89的3次方 mod 3127 = 1394
  7. 私钥解密数据: 明文 = 1394的2011次方 mod 3127 = 89

要应用rsa密码,应当采用足够大的整数n. 一般加密密钥和认证密钥选n为1024位,而平台根密钥和存储根密钥则选n为2048位.

e 的二进制表示中应该尽量含有少的1.
e=3是不安全的,因为e太小,对于小的明文M,则有C=M的e次方<n,加密运算未取模.直接对密文C开e次方,即可求出明文M.

现在普遍使用e=2的16次方+1 = 65537 , 二进制表示中只有两个1,且安全.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值