我的代码实现——Compressed sigma-Protocol

1. 引言

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

本人就 Thomas Attema等人2020年论文《Compressed sigma-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics》做了相应的代码实现,具体见:

  • https://github.com/3for/Compressed_sigma-protocol

在该代码库中,目前仅基于Discrete Logarithmic assumption做了相应的实现,RSA assumption 和 Knowledge-of-Exponent Assumption 暂未实现:

  • Discrete Logarithmic assumption 采用的是curve25519-dalek。
    使用Pedersen vector commitment scheme的一个主要缺陷是所需generators的数量与vector dimension成正比。如需commit to an n n n-dimensional vector,则需要 n + 1 n+1 n+1 generators of the group G \mathbb{G} G。同时,对于compressed ∑ \sum -protocol Π c \Pi_c Πc,其verification time与dimension n n n呈正比。【因此设计了5.3.1和5.3.2场景,可减少generator数量的需求。】

  • 基本的 nizk、scalar 实现参考了Spartan库,但是Spartan库中的bullet.rs 【主要基于Hyrax,实现了zero-knowledge属性,但是存在Prover cheat问题,具体参见issue:Add another challenge in dotproduct proof? #33】reduce到 n = 1 n=1 n=1,本文根据论文reduce到了 n = 2 n=2 n=2,且不要求zero-knowledge,具体见:
    https://github.com/3for/Compressed_sigma-protocol/blob/main/src/nizk/nozk_noinv_bullet.rs

  • polynomial 实现参考了 algebra库 中的poly 模块,由于curve25519不是FFT friendly的,所以只实现了Field trait,而未实现FFTField trait。

  • 该论文中的各种protocol实现见sigma_protocol 目录下,*.rs 命名与protocol对应。
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值