计网-RSA算法

第一步:生成秘钥对,即公钥和私钥

1:随机找两个质数 P 和 Q ,P 与 Q 越大,越安全。(随机找两个质数)

比如 P = 67 ,Q = 71。计算他们的乘积 n = P * Q = 4757 ,转化为二进为 1001010010101,该加密算法即为 13 位,实际算法是 1024 位 或 2048 位,位数越长,算法越难被破解。

2:计算 n 的欧拉函数 φ(n)。(m = φ(n) = (P-1)(Q-1) )

φ(n) 表示在小于等于 n 的正整数之中,与 n 构成互质关系的数的个数。例如:在 1 到 8 之中,与 8 形成互质关系的是1、3、5、7,所以 φ(n) = 4。 如果 n = P * Q,P 与 Q 均为质数,则 φ(n) = φ(P * Q)= φ(P - 1)φ(Q - 1) = (P - 1)(Q - 1) 。 本例中 φ(n) = 66 * 70 = 4620,这里记为 m, m = φ(n) = 4620

3:随机选择一个整数 e,条件是1< e < m,且 e 与 m 互质。

公约数只有 1 的两个整数,叫做互质整数,这里我们随机选择 e = 101 请注意不要选择 4619,如果选这个,则公钥和私钥将变得相同。

4:有一个整数 d,可以使得 ed 除以 m 的余数为 1。( ed%m=1)

但是注意e不能和d一样,这样就会导致公钥和私钥一样。

5:生成公钥和私钥

公钥:(n,e)

私钥:(n,d)

第二步:加密解密

1:加密

a e   m o d   n = b ( a 是 明 文 , b 是 密 文 ) a^e\bmod n=b(a是明文,b是密文) aemodn=bab

2:解密

a e   m o d   n = b ( a 是 密 文 , b 是 明 文 ) a^e\bmod n=b(a是密文,b是明文) aemodn=bab

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值