5个版本
0.4.4 | 2022年12月26日 |
---|---|
0.4.3 | 2022年4月3日 |
0.4.2 | 2021年10月19日 |
0.4.1 | 2021年10月7日 |
0.4.0 | 2021年6月16日 |
#1161 in 密码学
4,109次每月下载
在4个crate中使用 (2直接使用)
96KB
2K SLoC
零知识帕里尔
此库包含Rust编写的Paillier密码系统零知识证明集合。每个证明可以作为独立的证明使用,但通常它将作为其他协议的一部分使用。对于每个证明,我们在注释中声明所需的安全假设。请注意,需要比DCRA(Paillier密码系统中使用的假设)更多假设的证明。
当前实现的证明
- 证明密文加密了零
- 证明知道明文(密文的正确性)
- 正确生成Paillier密钥对的证明
- 非交互式正确生成Paillier密钥对的证明
- Paillier密文位于区间[0,q]内的范围证明
- 非交互式Paillier密文位于区间[0,q]内的范围证明
- 正确打开密文的证明
- 证明密文加密了来自给定消息空间的消息
- 复合模数的离散对数知识的不透明证明
- 明文乘法NI证明:密文
e_a = Enc(a), e_b = Enc(b), e_c = Enc(c),满足
ab = c mod n
- 多个已知密文的多个明文之间的线性关系NI证明
用法
目前没有统一的API,请参考每个证明附带的测试示例。
遗留
Rust-paillier最初是一个由Snips主要贡献者的库,实现了基本的Paillier密码系统。由于KZen对Paillier零知识证明的需求,原始库被分叉,并添加了另一层证明。随着越来越多的zk-proofs被添加,我们意识到基础Paillier密码系统层已经稳定,只需偶尔进行一些小改动;而另一层的zk-proofs则以更快的速度发展,代码应被视为更多实验性的。在这个阶段,我们决定将库分为基础层(rust-paillier)和zk-paillier,这是当前的库。
最后,我们想感谢Morten Dahl,rust-paillier的主要维护者和KZen顾问。另一个感谢要送给Pascal Paillier。
开发流程
Rust utilities wiki包含了关于工作流程和环境设置的信息.
请随时联系我们或加入KZen Research的Telegram,以讨论代码和研究。
许可证
zk-paillier在GPL-3.0许可证下发布。有关更多信息,请参阅LICENSE。
联系方式
依赖关系
~15MB
~244K SLoC