12个版本
0.5.0 | 2021年3月14日 |
---|---|
0.4.2 | 2020年8月3日 |
0.4.1 | 2020年4月24日 |
0.3.3 | 2020年3月23日 |
#1498 in 密码学
1,769每月下载量
在 15 个crate中使用 (8 直接)
32KB
424 代码行
Sharks
快速、小巧且安全的Shamir秘密共享库crate
文档
用法
将此内容添加到您的 Cargo.toml
[dependencies]
sharks = "0.4"
如果您的环境不支持 std
[dependencies]
sharks = { version = "0.4", default-features = false }
要开始使用Sharks,请参阅Rust文档
功能
开发者友好
API简单明了,配置最小。
快速且小巧
代码尽可能符合习惯,且依赖最小。
设计上安全
实现禁止用户选择会导致不安全应用程序的参数,例如生成超过有限域长度允许的份额。
限制
因为它使用的Galois有限域是GF256,因此对于给定的密钥,只能生成最多255个份额。更大的数字将是不安全的,因为份额将开始重复。尽管如此,密钥可以任意长,因为计算是在单个字节块上进行的。
测试
此crate包含单元测试和基准测试(以及文档中包含的示例)。您可以使用cargo test
和cargo bench
运行它们。
基准测试结果 [最小值 平均值 最大值]
CPU | obtain_shares_dealer | step_shares_dealer | recover_secret | share_from_bytes | share_to_bytes |
---|---|---|---|---|---|
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz | [1.4321 us 1.4339 us 1.4357 us] | [1.3385 ns 1.3456 ns 1.3552 ns] | [228.77 us 232.17 us 236.23 us] | [24.688 ns 25.083 ns 25.551 ns] | [22.832 ns 22.910 ns 22.995 ns] |
英特尔(R) 酷睿(TM) i7-8565U CPU @ 1.80GHz | [1.3439 微秒 1.3499 微秒 1.3562 微秒] | [1.5416 纳秒 1.5446 纳秒 1.5481 纳秒] | [197.46 微秒 198.37 微秒 199.22 微秒] | [20.455 纳秒 20.486 纳秒 20.518 纳秒] | [18.726 纳秒 18.850 纳秒 18.993 纳秒] |
苹果 M1 ARM (Macbook Air) | [3.3367 微秒 3.3629 微秒 3.4058 微秒] | [741.75 皮秒 742.65 皮秒 743.52 皮秒] | [210.14 微秒 210.23 微秒 210.34 微秒] | [27.567 纳秒 27.602 纳秒 27.650 纳秒] | [26.716 纳秒 26.735 纳秒 26.755 纳秒] |
贡献
如果您发现漏洞、错误或希望添加新功能,请打开一个新问题。
要将您的更改引入代码库,请提交一个拉取请求。
非常感谢!
许可证
Sharks 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
有关详细信息,请参阅LICENSE-APACHE、LICENSE-MIT和COPYRIGHT。
依赖项
~1.1–1.6MB
~27K SLoC