#加密 #加密解密 #实用 #安全 #公钥 #时间锁

tlock

Rust实用时间锁加密库

5个版本

0.0.5 2024年2月29日
0.0.4 2023年8月23日
0.0.3 2023年7月23日
0.0.2 2023年3月27日
0.0.1 2023年3月22日

#848 in 密码学


3 个crate中使用 (通过 tlock_age)

MIT 许可证

28KB
441

tlock:Rust中的实用时间锁加密/解密

Documentation License crates.io

tlock 是一个库,用于使用 tlock 方案加密和解密16字节二进制文件。它提供了 encryptdecrypt 方法,这些方法消耗由 drand 信标提供的阈值BLS签名。

可用的参考互操作Go实现位于 drand/tlock

目录表

特性

  • 16字节u8数组的时间锁加密和解密
  • 在G1和G2上使用公钥加密
  • 与Go和JS实现的互操作性
  • wasm32兼容库

安装

环境 CLI命令
Cargo (Rust 1.74+) cargoinstall tlock

该库已针对以下目标进行测试:x86_64-unknown-linux-gnuarmv7-unknown-linux-gnueabihfaarch64-unknown-linux-gnuwasm32-wasi

使用

代码示例可在 tlock/examples 中找到。

tlock 系统依赖于 unchained drand 网络的随机性

该crate不提供drand客户端。您可以使用 drand_core

安全考虑

此软件未经审计。请自行决定使用。在此前提下,dee安全依赖于以下内容

常见问题解答

我想加密超过16个字节

您应该考虑使用tlock_age。它依赖于这个库来加密age文件密钥,允许任意大小的文件使用时间锁加密。

实际时间锁加密是如何工作的?

对于简单解释,您可以使用挥动手中的密码学

对于更详细的内容,您应该花时间阅读Nicolas Gailly、Kelsey Melissaris和Yolan Romailler的tlock: 从阈值BLS的实际时间锁加密

RFC 9380 哈希到椭圆曲线

RFC 9380标准化了许多与椭圆曲线的交互。tlock最初没有使用它,但现在已升级以支持它。从0.0.4版本开始,默认启用rfc9380功能。这不是一个向后兼容的更改。

许可证

本项目遵循MIT许可协议。

贡献

除非您明确声明,否则您提交的任何贡献,如果旨在包含在您的工作中,都应按照上述MIT许可协议进行,不附加任何额外条款或条件。

依赖项

~7.5MB
~130K SLoC