1个不稳定版本
0.1.0 | 2024年3月9日 |
---|
#1554 in 密码学
30KB
267 行
VSSS-Rust
VSSS-Rust是一个提供可验证秘密共享(VSS)方案实现的Rust库。可验证秘密共享是一种密码学技术,可以将秘密分割成份额,并在一组参与者中分发,使得只有特定的份额组合可以重构秘密,同时允许任何参与者验证自己份额的有效性。
特性
- 在Rust中实现了各种可验证秘密共享(VSS)方案。
- 支持Shamir秘密共享(SSS)和Feldman可验证秘密共享(VSS)方案。
- 基于用户定义的门限和总份额生成秘密份额。
- 生成份额的公开承诺以验证其可验证性。
- 对公开承诺进行份额验证。
- 使用拉格朗日插值从有效份额中重构秘密。
安装
将以下依赖项添加到您的Cargo.toml
文件中
[dependencies]
vsss-rust = "0.1.0"
用法
将vsss-rust
添加到您的项目依赖项中的Cargo.toml
文件,然后将必要的模块导入到Rust代码中。
extern crate vsss_rust;
use vsss_rust::shamirs_secret_sharing::{generate_shares as sss_generate_shares, reconstruct_secret as sss_reconstruct_secret};
use vsss_rust::feldman_verifiability::{FeldmanVSSParams, verify_share, reconstruct_secret};
use num_bigint::ToBigUint;
fn main() {
// Your code here
}
示例
请查看仓库中的example.rs
文件,了解如何使用此库的基本示例。
基准测试
此库包括性能测试的基准测试。您可以使用以下命令运行基准测试:
cargo bench
以下是一个运行摘要
基准测试 | 时间(ns)范围 | 发现异常值(%) |
---|---|---|
SSS份额生成 | [785.14 ns, 788.13 ns] | 1(1.00%)轻度高 |
SSS秘密重构 | [2.2811 µs, 2.2898 µs] | 1(1.00%)轻度高 |
VSS份额生成 | [14.999 µs, 15.004 µs] | 11(11.00%)总计 |
- 5(5.00%)轻度低 | ||
- 1(1.00%)轻度高 | ||
- 5(5.00%)高度严重 | ||
VSS份额验证 | [153.58 µs, 153.98 µs] | 20(20.00%)总计 |
- 3(3.00%)轻度低 | ||
- 11(11.00%)轻度高 | ||
- 6(6.00%)高度严重 | ||
VSS秘密重构 | [3.6152 µs, 3.6291 µs] | 12(12.00%)总计 |
- 5(5.00%)轻度高 | ||
- 7(7.00%)高度严重 |
文档
有关详细文档和使用示例,请参阅API文档。
贡献
欢迎贡献!如果您想为此项目做出贡献,请随时在GitHub仓库上打开拉取请求或提交问题。
许可证
本项目根据MIT许可证的条款授权。
待办事项
- 实现Ben-Or、Goldwasser和Wigderson的完美安全VSS方案。
- 实现基于Benaloh零知识的加密投票方案。
- 根据Genarro、Ishai、Kushilevitz和Rabin的方案,实现一个简化的5轮7BGW-VSS-Sh协议。
- 根据Genarro、Ishai、Kushilevitz和Rabin的方案,实现一个4轮共享阶段协议。
- 根据Genarro、Ishai、Kushilevitz和Rabin的方案,实现3轮3GIKR-VSS方案。
- 根据Fitzi、Garay、Gollakota、Rangan和Srinathan的方案,实现3轮3FGGRS-WSS方案。
- 根据Katz、Koo和Kumaresan的方案,实现3轮3KKK-WSS-Sh协议。
依赖关系
~4.5MB
~87K SLoC