Efficient Modular NIZK Arguments from Shift and Product学习笔记

1. 背景知识

Prastudy Fauzi, Helger Lipmaa, and Bingsheng Zhang 2013年论文《Efficient Modular NIZK Arguments from Shift and Product》,提出:

  • 基于shift-by-ξ\xi argument 和 rotation-by-ξ\xi argument构建permutation argument,相应的security reduce to the ΦPSDL\Phi-PSDL assumption。
    Efficient Modular NIZK Arguments from Shift and Product学习笔记
  • Hadamard product argument
  • SET-PARTITION argument,用于证明the prover knows a partition of the given set of integers to two sets that have the same sum。(可由2个product argument和1个shift argument组成。)
  • SUBSET-SUM argument,用于证明the prover knows a non-zero subset of the given set of integers that sums to 0。性能要优于2010年论文《Short Pairing-Based Non-interactive Zero-Knowledge Arguments》和2012年论文《Progression-Free Sets and Sublinear Pairing-Based Non-Interactive Zero-Knowledge Arguments》的CIRCUIT-SAT argument。
  • DECISION-KNAPSACK argument,可基于SUBSET-SUM argument和range argument组合构建。
  • scan argument(可由shift argument构建),用于证明one vector is the scan (or sum-of-all-prefixes) of another vector。
  • range argument
  • 采用FFT based polynomial multiplication to reduce the prover’s computation from Θ(n2)\Theta(n^2) to n1+o(1)n^{1+o(1)} Zp\mathbb{Z}_p-multiplications。
  • 采用Pippenger’s[31] algorithm to speed up multi-exponentiations运算。
    Efficient Modular NIZK Arguments from Shift and Product学习笔记

与2010年论文《Short Pairing-Based Non-interactive Zero-Knowledge Arguments》和2012年论文《Progression-Free Sets and Sublinear Pairing-Based Non-Interactive Zero-Knowledge Arguments》的性能对比如下:
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记

2. 多项式分解

Polynomial factorization in Zp[X]\mathbb{Z}_p[X] can be done in polynomial time [25,230].
Let PolyFactPolyFact be an efficient polynomial factorization algorithm that on input a degree-dd polynomial ff outputs all dd roots of ff

3. Hadamard Product Argument

在2012年论文《Progression-Free Sets and Sublinear Pairing-Based Non-Interactive Zero-Knowledge Arguments》的hadamard product argument的基础上,在CRS集合上做了优化,基本的算法思路仍然保持不变:
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记

4. Shift and Rotation argument

Efficient Modular NIZK Arguments from Shift and Product学习笔记
可借助2010年论文《Short Pairing-Based Non-interactive Zero-Knowledge Arguments》中的permutation argument来证明,因为其中的permutation ρ\rho为public known,只需要验证相应的ρ\rho即可。
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记

5. range argument

Efficient Modular NIZK Arguments from Shift and Product学习笔记

6. scan argument

Efficient Modular NIZK Arguments from Shift and Product学习笔记
scan argument(可由shift argument构建),用于证明one vector is the scan (or sum-of-all-prefixes) of another vector。

7. SET-PARTITION argument

SET-PARTITION argument,用于证明the prover knows a partition of the given set of integers to two sets that have the same sum。(可由2个product argument和1个shift argument组成。)
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记

8. SUBSET-SUM argument

SUBSET-SUM argument,用于证明the prover knows a non-zero subset of the given set of integers that sums to 0。
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记
相比于2010年论文《Short Pairing-Based Non-interactive Zero-Knowledge Arguments》和2012年论文《Progression-Free Sets and Sublinear Pairing-Based Non-Interactive Zero-Knowledge Arguments》的CIRCUIT-SAT argument(需要7\geq 7个product和permutation argument),SUBSET-SUM argument更简单且仅需要product argument和a more efficient right shift-by-1 argument (zero argument is trivial).

8.1 非零向量证明

Efficient Modular NIZK Arguments from Shift and Product学习笔记

9. DECISION-KNAPSACK argument

DECISION-KNAPSACK argument,可基于SUBSET-SUM argument和range argument组合构建。
Efficient Modular NIZK Arguments from Shift and Product学习笔记
Efficient Modular NIZK Arguments from Shift and Product学习笔记

参考资料:
[1] 2013年论文 Efficient Modular NIZK Arguments from Shift and Product
[2] ppt Efficient Modular NIZK Arguments from Shift and Product