1个不稳定版本

0.1.0 2024年3月13日

#2421密码学

Download history 16/week @ 2024-04-06 1/week @ 2024-04-13 20/week @ 2024-04-20 12/week @ 2024-04-27 1/week @ 2024-05-04 11/week @ 2024-05-11 31/week @ 2024-05-18 36/week @ 2024-05-25 51/week @ 2024-06-01 46/week @ 2024-06-08 22/week @ 2024-06-15 21/week @ 2024-06-22 16/week @ 2024-06-29 11/week @ 2024-07-06 69/week @ 2024-07-13 31/week @ 2024-07-20

每月128次下载

Apache-2.0 OR ISC OR MIT

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