RSA算法过程

构造一个公钥密码系统的要求

  1. 产生一对密钥是计算可行的
  2. 发送方利用公钥和明文,产生密文是计算可行的
  3. 接收方利用私钥和密文,产生明文是计算可行的
  4. 对于攻击者,利用公钥来推断私钥是计算不可行的
  5. 已知公钥和密文,恢复明文是计算不可行的
  6. (可选) 加密和解密的顺序可交换

RSA 算法的起源

  1. RSA 算法在1977年由MIT 的Ron Rivest、Adi Shamir 和Leonard Adleman 一起提出,并以他们三人姓氏开头字母命名,是一种获得广泛使用的非对称加密算法。
  2. 1983年麻省理工学院在美国为RSA 算法申请了专利。这个专利2000年9月21日失效。由于该算法在申请专利前就已经发表,在世界上大多数其它地区这个专利权不被承认。

RSA 算法的安全性概述

  1. 对极大整数进行因数分解的难度(The Factoring Problem) 决定了RSA 算法的可靠性。换言之,对一个极大整数做因数分解愈困难,RSA 算法就愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA 加密的信息的可靠性就肯定会极度下降。目前看来找到这样的算法的可能性非常小。

  2. 目前还没有可靠的攻击RSA 算法的方式。短的RSA 钥匙可能被强力方式解破(比如768-bit,即232个十进制位以下的整数)。只要其钥匙的长度足够长(比如1024-15360-bit),用RSA 加密的信息看来很难被破解。

  3. 在分布式计算技术和量子计算理论日趋成熟的今天,RSA 加密的安全性受到了挑战。

RSA公钥和密钥的生成

  1. 挑选两个不同的大素数 p , q p,q pq,令 N = p ∗ q 。 N= p*q。 N=pq

  2. 利用欧拉 ϕ \phi ϕ函数来计算$\phi (N) $。 有 ϕ ( N ) = ϕ ( q ) ϕ ( p ) = ( p − 1 ) ( q − 1 ) \phi(N) = \phi(q)\phi(p) = (p - 1)(q - 1) ϕ(N)=ϕ(q)ϕ(p)=(p1)(q1)

  3. 挑选一个整数 e e e ,满足条件:小于 ϕ ( N ) \phi(N) ϕ(N) 并与之互素。

  4. 通过式子 d e ≡ 1 ( m o d   ϕ ( N ) ) de \equiv 1 (mod \, \phi(N)) de1(modϕ(N)) 计算得到 d d d, 也就是说 d d d e e e的模 ϕ ( N ) \phi(N) ϕ(N)逆元。

  5. 销毁 p ,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值