RSA加密/签名过程

目录

RSA体制

RSA密钥生成

RSA加密方案

基本RSA加密

基本RSA解密

RSA签名方案

基本RSA签名生成

基本RSA签名验证


1977年提出

参考《椭圆曲线密码学导论》、《应用密码学:协议、算法与C源程序》

RSA体制

n:RSA运算模,是两个等长、保密随机素数p和q的乘积

e:加密指数,随机选取整数,满足 1 < e < Φ 且 gcd(e,Φ) = 1。(即e与Φ互素)

Φ:(p-1)(q-1)

d: 解密指数,整数,满足 1 < d < Φ 且 ed ≡ 1(mod Φ),此时d可知。(d与n也互素)

已证明:从公钥对 (n, e),计算出私钥 d 等价于从 n 分解出因子 p&q。此问题被称为整数的因子分解问题(IFP)

注1:gcd(a,b)即ab最大公约数

注2:x ≡ 1(mod Φ),即x对Φ取余,余数为1

注3:e与Φ互素,d与n互素,p与q生成密钥对后不能泄露。

RSA密钥生成

输入:安全参数 L

输出:RSA公钥对(n, e), 私钥d

过程:

1、随机选择两个素数p、q,长度皆为 L/2

2、计算n,Φ

3、任意选择 e

4、计算整数 d

5、返回 (n, e) 和 d

RSA加密方案

依据 m^{ed} m (mod n)

基本RSA加密

输入:公钥对(n, e),明文 m∈[0,n-1]

输出:密文c

过程:

1、计算 c = m^{e} mod n

2、返回 c

基本RSA解密

输入:公钥对(n, e),d,密文c

输出:铭文m

过程:

1、计算 m = m^e^d= c^d mod n

2、返回 m

RSA签名方案

依据 m^e^d m (mod n),以及杂凑计算 消息m 的摘要 h = H(m)。签名计算 s = h^d mod n 

通俗点说,RSA签名方案是以私钥对消息进行加密签名,使用公钥进行解密验签。

h:消息m的短指纹。

s:签名者的签名

基本RSA签名生成

输入:RSA公钥(n, e) 、RSA私钥d、明文m

输出:签名s

过程:

1、计算 h = H(m),其中 H 是一个杂凑函数

2、计算 s = h^d mod n

3、返回s

基本RSA签名验证

输入:(n,e),消息m,签名s

输出:验签通过?

过程:

1、计算 h = H(m)

2、由于验签是计算 s = h^d mod n,则 s^eh^d^e mod n ≡ h mod n,则 h’= s^e mod n 

3、若 h’= h 验签通过

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值