#secret-sharing #security #rust

vsss-rust

提供可验证秘密共享(VSS)方案实现的Rust库

1个不稳定版本

0.1.0 2024年3月9日

#1554 in 密码学

MIT许可证

30KB
267

VSSS-Rust

Rust License

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