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)
28KB
441 行
tlock:Rust中的实用时间锁加密/解密
tlock 是一个库,用于使用 tlock 方案加密和解密16字节二进制文件。它提供了 encrypt
和 decrypt
方法,这些方法消耗由 drand 信标提供的阈值BLS签名。
可用的参考互操作Go实现位于 drand/tlock。
目录表
特性
- 16字节u8数组的时间锁加密和解密
- 在G1和G2上使用公钥加密
- 与Go和JS实现的互操作性
- wasm32兼容库
安装
环境 | CLI命令 |
---|---|
Cargo (Rust 1.74+) | cargoinstall tlock |
该库已针对以下目标进行测试:x86_64-unknown-linux-gnu
,armv7-unknown-linux-gnueabihf
,aarch64-unknown-linux-gnu
,wasm32-wasi
。
使用
代码示例可在 tlock/examples 中找到。
tlock 系统依赖于 unchained drand 网络的随机性。
该crate不提供drand客户端。您可以使用 drand_core。
安全考虑
此软件未经审计。请自行决定使用。在此前提下,dee安全依赖于以下内容
- tlock:基于阈值BLS的实用时间锁加密 by Nicolas Gailly, Kelsey Melissaris, and Yolan Romailler,以及其在 drand/tlock 中的实现,
- 基于身份的加密 by Dan Boneh 和 Matthew Franklin,以及其在 thibmeu/tlock-rs 中的实现,
- 选择的drand信标保持诚实,
常见问题解答
我想加密超过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