公钥密码——RSA

密钥对:公钥&私钥
公钥:E, N
私钥:D, N
加密:密文 = 明文 ^ E modN
解密:明文 = 密文 ^ D modN

一. 生成密钥对

(1)求N
N = p * q (p, q 为很大的质数)
(2)求L
L = lcm(p-1, q-1) (L是p-1和q-1的最小公倍数
(3)求E
1 < E < L
gcd(E, L) = 1 (E和L的最大公约数为1,即E, L 互质)
(4)求D
1 < D < L
E * D modL = 1 (要保证存在满足条件的D,就要保证E, L 互质)

二. 加密

在这里插入图片描述

三. 对RSA的攻击

密码破译者知道的信息:
密文:窃听取得
E, N:公开的公钥

密码破译者不知道的信息:
明文
数D
其他:p, q, L

  1. 通过密文求明文
    离散对数困难问题
  2. 暴力破解寻找D
    当D足够长时,就不可能在现实的时间内通过暴力破解找出数D
    一般而言,RSA中,p,q>512bit, N>1024bit.
  3. 通过E,D求D
    需要知道p,q
  4. 中间人攻击
    在这里插入图片描述

四. 补充

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值