1个不稳定版本
0.1.0 | 2024年3月13日 |
---|
#2421 在 密码学
每月128次下载
1.5MB
30K SLoC
Rustls是用Rust编写的现代TLS库。
rustls-post-quantum
此crate提供了对X25519Kyber768Draft00后量子密钥交换的实验性支持。有关更多详细信息,请参阅文档。
此crate在与主rustls crate相同的许可下发布。
lib.rs
:
此crate提供了一个包含混合[^1]、后量子安全[^2]密钥交换算法的rustls::crypto::CryptoProvider
,具体为X25519Kyber768Draft00。
X25519Kyber768Draft00是预标准化,因此应将其视为实验性。您可能会遇到意外的互操作失败,并且此处实现的算法可能不是最终广泛部署的算法。
然而,此密钥交换的两个组件都备受推崇:X25519本身已被rustls默认使用,并且其椭圆曲线的实现质量通常比其他椭圆曲线更高。Kyber768最近由NIST标准化为ML-KEM-768。
[^1]: 意味着一个运行经典和后量子密钥交换,并使用两者输出的构造。这是对后量子部分被破解的保险。
[^2]: “后量子安全”算法是指假定对使用密码学相关量子计算机的攻击不可防御的算法。相比之下,经典算法将被这样的计算机破解。请注意,目前尚不存在这样的计算机,可能永远也不会存在,但当前流量可能现在被捕获,然后在以后进行攻击。
如何使用此crate
有几种选择
要将此作为rustls默认提供者使用:在您的程序中尽早包含此代码
rustls_post_quantum::provider().install_default().unwrap();
要将密钥交换算法集成到自定义rustls::crypto::CryptoProvider
:
use rustls::crypto::{aws_lc_rs, CryptoProvider};
let parent = aws_lc_rs::default_provider();
let my_provider = CryptoProvider {
kx_groups: vec![
&rustls_post_quantum::X25519Kyber768Draft00,
aws_lc_rs::kx_group::X25519,
],
..parent
};
依赖关系
~7-15MB
~277K SLoC