#shamir-secret-sharing #secret-sharing #mnemonic #codes #split #numbers #random

sssmc39

基于 mnemonic 码的 Shamir 秘密共享 (SLIP-39) 的开发中

3 个版本

0.0.3 2020年6月15日
0.0.2 2020年1月29日
0.0.1 2019年8月20日

#1663 in 加密学

Download history 35/week @ 2024-03-29 5/week @ 2024-04-05

每月 138 次下载
用于 slip39

Apache-2.0

90KB
2K SLoC

Build Status

rust-sssmc39

"我认为 Shamir 秘密共享(以及许多其他东西,例如 RNGs),有一个属性,即它们足够复杂,以至于人们会因为很少的理由而兴奋地实现它们,并且它们足够复杂(或者有很少的理由投入大量时间),它们实现得不好。" -Gregory Maxwell

"拿着我的伏特加" -Yeastplume

这是目前非常开发中的 Rust 实现 SLIP-0039: Mnemonic 码的 Shamir 秘密共享。它正在开发中,最终将集成到 Grin 钱包中,但我希望它对任何想要实现主密钥共享方案的人来说都是有用的。该规范不仅操作于 BIP-39 码,还可以分割几乎任何大小的密钥,因此应该适用于各种需求。

再次强调,这是一个未经测试的开发中版本,所以请自行承担风险。

状态

  • 域算术、底层加密和 RS1024 代码就绪。
  • 份额分割、份额到 Mnemonic 的转换和反向转换就绪。
  • 从份额 Mnemonic 中恢复密钥就绪
  • 通过原始 Python 引用实现的测试向量(见下文)
  • 主密钥到组 Mnemonic 的转换就绪(见 src/lib.rs 中的测试)

待解决

  • 某些代码区域的调整(检查 TODOs)
  • API 调整
  • 文档
  • 持续集成
  • 社区审查和一定程度上的代码审计
  • 发布

鸣谢

代码使用 SLIP-0039 Python 引用实现 作为参考编写

域算术代码借鉴自 Rusty Secrets,所有派生源文件中都有许可证详细信息。

Rusty Secrets 是从 sellibitze's secretshare 分支出来的。

依赖关系

~3.5–6.5MB
~153K SLoC