您当前的位置: 首页 > 

mutourend

暂无认证

  • 3浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

mutourend 发布时间:2021-02-03 11:06:51 ,浏览量:3

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对应。 在这里插入图片描述

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0418s