当前位置: 代码迷 >> 综合 >> Compressed sigma-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics学习笔记
  详细解决方案

Compressed sigma-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics学习笔记

热度:76   发布时间:2024-02-19 22:51:39.0

1. 引言

Thomas Attema等人2020年论文《Compressed sigma-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics》发表于CRYPTO 2020。

主要关注3种类型的assumption:

  • Discrete Logarithm assumption:Bulletproofs中是基于Discrete Logarithm assumption构建的。
  • Strong-RSA assumption:《Transparent snarks from DARK compilers》可看成是基于Strong-RSA assumption下对Bulletproofs进行改进实现的polynomial commitment。
  • Knowledgeof-Exponent assumption,known to be unfalsifiable,目前仍有争议的安全假设。

本文主要介绍基于Discrete Logarithm assumption的∑\sum-protocol,Strong-RSA assumption可采用类似方式构建。

1.1 核心的∑\sum-Protocol

basic ∑\sum-Protocol Π0\Pi_0Π0?

  • public info: commitment PPP,arbitrary public linear form LLL
  • private info:secret vector x?∈Zqn\vec{x}\in\mathbb{Z}_q^nx Zqn?yyy
  • relation:P=Com(x?)∧y=L(x?)P=Com(\vec{x})\wedge y=L(\vec{x})P=Com(x )y=L(x )

basic ∑\sum-Protocol Π0\Pi_0Π0? 证明过程为:

  • Prover:选择secret random vector r?\vec{r}r ,计算commitment A=Com(r?)A=Com(\vec{r})A=Com(r )y′=L(r?)y'=L(\vec{r})y=L(r )
    A,y′A,y'A,y发送给Verifier。
  • Verifier:发送random challenge c∈Zqc\in\mathbb{Z}_qcZq? 给Prover。
  • Prover:计算z?=cx?+r?\vec{z}=c\vec{x}+\vec{r}z =cx +r
    将vector z?\vec{z}z 发送给Verifier。
  • Verifier:验证Com(z?)=APcCom(\vec{z})=AP^cCom(z )=APc以及L(z?)=cy+y′L(\vec{z})=cy+y'L(z )=cy+y是否成立即可。

以上basic ∑\sum-Protocol Π0\Pi_0Π0?的communication cost主要为z?\vec{z}z ——the opening of APcAP^cAPc,其communication complexity为O(n)O(n)O(n),其中nnn为vector length。

本文在basic ∑\sum-Protocol Π0\Pi_0Π0? 的基础上实现了amortized版本Π0Am\Pi_0^{Am}Π0Am?,针对的场景为:

  • public info: commitments P1,?,PsP_1,\cdots, P_sP1?,?,Ps?,arbitrary public linear form LLL
  • private info:secret vector x?1,?,x?s∈Zqn\vec{x}_1,\cdots,\vec{x}_s\in\mathbb{Z}_q^nx 1?,?,x s?Zqn?y1,?,ysy_1,\cdots,y_sy1?,?,ys?
  • relation:P1=Com(x?1)∧?∧Ps=Com(x?s)∧y1=L(x?1)∧?∧ys=L(x?s)P_1=Com(\vec{x}_1)\wedge \cdots\wedge P_s=Com(\vec{x}_s) \wedge y_1=L(\vec{x}_1)\wedge \cdots \wedge y_s=L(\vec{x}_s)P1?=Com(x 1?)?Ps?=Com(x s?)y1?=L(x 1?)?ys?=L(x s?)

amortized版本Π0Am\Pi_0^{Am}Π0Am?的communication cost应只比basic版本多s?1s-1s?1个elements——实际即为 the evaluations at the s?1s-1s?1 additional input vectors。

借助Bulletproofs算法,可将basic ∑\sum-Protocol Π0\Pi_0Π0? 的communication cost压缩为O(log?n)O(\log n)O(logn),Prover与Verifier之间的交互次数也增加为了O(log?n)O(\log n)O(logn)。技术上来说,这种压缩将degrade the soundness from unconditional to computational, and protocols with computational soundness成为argument of knowledge。(注意Bulletproofs方案不具有zero knowledge,最终prover会reveal zzz。)

本文考虑的是针对amortized版本Π0Am\Pi_0^{Am}Π0Am?的压缩。与Bulletproofs方案不同,不再发送整个vector z?\vec{z}z ,改为要求Prover知道相应的z?\vec{z}z ,使得Com(z?)=APcCom(\vec{z})=AP^cCom(z )=APc成立。

  相关解决方案