RSA算法(二)

号称世界上最重要的加密算法

生成步骤

甲要向乙进行通信,要生成私钥和公钥

一. 甲方随机生成两个质数a (61), b(53),实际上质数越大,就越难破解
二. 计算 a和b的乘积 n

n的长度就是秘钥的长度,n = 61×53 = 3233, 写成二进制是110010100001,一共有12位,所以这个密钥就是12位,实际应用中,RSA密钥一般是1024位,重要场合则为2048位

三、计算n的欧拉函数φ(n) —φ(n) = (p-1)(q-1)

φ(3233)等于60×52,即3120

四、随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质

甲 就在1到3120之间,随机选择了17。(实际应用中,常常选择65537。)

五、计算e对于φ(n)的模反元素d
ed ≡ 1 (mod φ(n))   ======》   ed - 1 = (n)

17d - k3120 = 1;  (d,k) =  (2753,-15)
六、将n和e封装成公钥,n和d封装成私钥。
n=3233,e=17,d=2753,所以公钥就是 (3233,17),私钥就是(3233, 2753)

n和e 构成公钥
n和d 构成私钥

加密和解密

加密

m^e ≡ c (mod n)

解密

c^d ≡ m (mod n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值