#shamir-secret-sharing #secret-sharing #secret #shamir #sharing #share

无std sharks

快速、小巧且安全的Shamir秘密共享库crate

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 密码学

Download history 181/week @ 2024-03-13 505/week @ 2024-03-20 284/week @ 2024-03-27 290/week @ 2024-04-03 297/week @ 2024-04-10 181/week @ 2024-04-17 173/week @ 2024-04-24 239/week @ 2024-05-01 169/week @ 2024-05-08 163/week @ 2024-05-15 163/week @ 2024-05-22 236/week @ 2024-05-29 373/week @ 2024-06-05 401/week @ 2024-06-12 476/week @ 2024-06-19 486/week @ 2024-06-26

1,769每月下载量
15 个crate中使用 (8 直接)

MIT/Apache

32KB
424 代码行

Sharks

Rust Crates Docs Codecov License

快速、小巧且安全的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 testcargo 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-APACHELICENSE-MITCOPYRIGHT

依赖项

~1.1–1.6MB
~27K SLoC