公钥密码与数字签名

数字签名的基本流程:将文件通过Hash函数,生成摘要,对摘要签名,得到被签名的摘要+文件。

 

RSA签名方案:

初始化过程:配制一对RSA钥匙,公钥(n,e),私钥(n,d)

签名过程:S=Sigk(m)=(h(M))d (mod n)

(M是文件,h是单向散列函数,S是文件M的签名)

 

传输过程:M||S(文件M和签名一同传送)

验证过程:当SeΞh(M) (mod n)则验证成功,否则验证失败。

 

EIG签名方案:

初始化过程:选择大素数p和g<p(g是p的素根),选一整数x<p,(g,p,x)是私钥,

      计算y=gx(mod p),(g,p,y)作为公钥

签名过程:选择随机数k,满足0<k<p-1,(k,p-1)=1

     计算h(M),r=gk(mod p)

           s=(h(M)-xr)k-1mod(p-1)

传输过程:将(r||s)作为签名,将M||r||s 传送

验证过程:先计算h(M),yrrsΞgh(M)(mod p)则验证成功


如果一个文件需要两个人签名才能生效,怎么设计算法?

把RSA改成两方参与的算法:

1.独立选择大素数p和q,计算n=pXq,计算φ(n)=(p-1)(q-1)

2.选整数Ka,Kb,(1<=Ka,Kb<φ(n),φ(n)分别与Ka,Kb互素,在模φ(n)下,KaKb有唯一逆元e,eKaKb=1 mod (φ(n))

3.取公钥(n,e),私钥A(n,Ka),私钥B(n,Kb),销毁p,q

签名C=MKaKb (mod n)   验证M=Ce (mod n)

 

转载于:https://www.cnblogs.com/13jhzeng/p/5558490.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值