zoukankan      html  css  js  c++  java
  • 多方计算中的秘密分享VSS与PVSS

    一、 秘密分享

    秘密分享的方式有很多种,我们根据论文《Publicly Verifiable Secret Sharing》中的描述,进行讨论。

    egin{equation}s_{A i}=left{egin{array}{l}
    ext { randomly chosen in } mathbb{Z}_{p} ext { for } i=j_{1}, ldots, j_{k-1} \
    s-sum_{ell=1}^{k-1} s_{A j_{ell}}(mod p) ext { for } i=j_{k}
    end{array} ight.end{equation}

    对于秘密s,我们给产生k-1的随机数,然后用秘密减去这些随机数的和对p求余,产生一个k份的秘密。

    只有k个用户同时合作,才能把秘密恢复。

    同时,我们可以公开验证,分享秘密的人有没有将正确的si分享给每个用户。我们只需要将公开的加密得到的S进行累乘,则可以实现所有秘密的累加。而秘密分享者,需要公开对秘密进行加密的S。

    另外一种秘密分享的方式可以让每个用户独立验证,si是否正确。下文中xi是每个人的公钥。dealer选择k-1个随机数,然后公开egin{equation}S=g^{s} ext { and } F_{j}=g^{f}end{equation}。

    因此每个人的秘密被加密为si,之后我们可以用下面这种方式计算出Si。

    egin{equation}s_{i}=s+sum_{j=1}^{k} f_{j} x_{i}^{j}(mod p)end{equation}

    然后我们可以验证,Si是否等于gsi。

    egin{equation}S_{i}=S cdot prod_{j=1}^{k-1} F_{j}^{left(x_{i}^{j} ight)}end{equation}

  • 相关阅读:
    2019/1/2
    2018/12/22
    2018/12/18
    2018/12/17
    2018/12/16
    编程总结汇总
    学习总结汇总
    第十三周学习总结--助教
    第十一周编程总结
    第10周编程总结
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12871523.html
Copyright © 2011-2022 走看看