3个稳定版本
1.1.1 | 2023年10月12日 |
---|---|
1.1.0 | 2023年10月11日 |
1.0.0 | 2023年9月6日 |
#1492 in 密码学
每月24次下载
150KB
2K SLoC
KT2
KeyTree2 (KT2) 是一个用于Atlas数据访问层的第二代、抗量子密码库。它实际上是多个密码学原语的有效封装
- 对称加密:来自 ring 的 AES-256-GCM
- 签名:来自 CRYSTALS(我们将 SHAKE256 的轮数减少到 12)的修改版 Dilithium3,来自 crystals-dilithium
- 哈希:来自 blake3 的 BLAKE3
- 密钥封装:来自 CRYSTALS 的 Kyber768,来自 safe_pqc_kyber
自行承担风险
该库尚未经过公认的权威机构的正式安全审计。因此,代码中可能存在未知的安全漏洞、弱点或潜在的缺陷。用户在使用或实现此代码时请注意。
构建
cargo build --release
如何使用
use d3::Keypair;
let keypair = Keypair::generate(Some(&seed));
let sk = keypair.secret;
// pk is also available as keypair.public
let signature = keypair.sign(&msg);
// public key can now be separately derived from the secret key
let pk = PublicKey::from_sk(&sk);
let is_verified = pk.verify(&msg, &signature);
测试
cargo test
基准测试
基准测试使用 criterion.rs 运行
cargo bench
在Apple M1 Max上运行
基准测试 | 时间 |
---|---|
密钥对生成 | 93.799 µs |
签名 | 125.73 µs |
签名验证 | 82.825 µs |
文档
cargo doc --open
贡献者协议
通过向此存储库贡献,您同意您的贡献将根据 GPLv3 许可证 许可。
依赖关系
~11MB
~308K SLoC