zoukankan      html  css  js  c++  java
  • 公钥密码与数字签名

    数字签名的基本流程:将文件通过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)

  • 相关阅读:
    中国天气网数据获取
    雪球数据的定时爬取
    爬虫下载中间件
    简书全站CrawlSpider爬取 mysql异步保存
    房天下新房和二手房
    多线程
    selenium+chromdriver 动态网页的爬虫
    汽车之家下载文件和图片
    re正则
    532.数组中的K-diff数对
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5558490.html
Copyright © 2011-2022 走看看