cryspen/libcrux
GitHub: cryspen/libcrux
libcrux 是一个基于形式化验证的 Rust 密码学库,通过 HACL* 和 hax 工具链确保算法的功能正确性和内存安全性。
Stars: 214 | Forks: 43
# libcrux - 一个用 Rust 编写的高保障密码学库
libcrux 是一个用 Rust 编写的密码学库。它使用了从 [HACL* 项目](https://github.com/hacl-star/hacl-star) 生成的形式化验证代码,并包含了使用 [hax 工具链](https://github.com/cryspen/hax) 直接针对运行时安全性和功能正确性进行验证的 Rust 代码。有关更多详细信息,请参见下文。
libcrux 目前处于预发布阶段(其所有 crate 的版本号均 < `0.1`)。如果您希望在生产环境中使用任何这些 crate,请与[维护者](mailto:info@cryspen.com)联系,我们可以建议 libcrux 是否适合您的使用场景。
## 最低支持的 Rust 版本 (MSRV)
默认功能集的 MSRV 为 `1.78.0`。从 Rust 版本 `1.81.0` 开始支持 `no_std` 环境。
## 随机性
libcrux 提供了一个 DRBG 实现,可以独立使用 (`drbg::Drbg`) 或通过 `Rng` trait 使用。
## `no_std` 支持
只要目标平台具有全局分配器,`libcrux` 及其依赖的各个原语 crate 就支持 `no_std` 环境。
## 验证状态
作为整体验证状态的快速指示,此工作区中的子 crate 包含以下徽章:
- ![pre-verification] 表示该 crate 默认功能中包含的大部分(或全部)代码(尚未)经过验证。
- ![verified-hacl] 表示 crate 中的算法已经过验证,并作为 HACL* 项目的一部分提取到 Rust。HACL* 中的源 F* 代码经过了内存安全性、针对高级规范的功能正确性以及秘密独立性验证(有关详细信息,请参阅[这些](https://eprint.iacr.org/2017/536)[论文](https://arxiv.org/abs/1703.00053))。这些 crate 中访问来自 HACL* 代码的顶层 Rust API 可能未经过验证。
- ![verified] 表示默认功能集中包含的大部分(或全部)Rust 代码已使用 [hax 工具链](https://github.com/cryspen/hax) 进行了验证。在标明的情况下,代码经验证无 panic 且在数学上符合功能规范(有关 hax 的概述,请参阅[这篇论文](https://eprint.iacr.org/2025/142))
重要的是,从该存储库中的代码编译的可执行文件*未*被验证为具有抗侧信道能力,尽管我们尝试强制源代码具有秘密独立性(有时也称为“常量时间”)。
在任何情况下,请参阅每个子 crate 中关于验证的更详细说明,以了解在特定情况下已验证(或未验证)的内容,如果您有任何疑问,请[联系我们](mailto:info@cryspen.com)。
## 出版物
Libcrux 在 RWC 2023 的这篇文章中进行了介绍。用于构建 libcrux 的验证方法在[这篇论文](https://eprint.iacr.org/2025/142)中进行了描述。
标签:DRBG, FStar, HACL*, no_std, Rust, XML 请求, 云安全监控, 内存安全, 函数式正确性, 加密算法, 可视化界面, 后量子密码, 安全基础设施工具, 安全开发, 客户端加密, 密码学库, 嵌入式安全, 形式化验证, 系统编程, 网络安全, 网络流量审计, 随机数生成器, 隐私保护, 静态分析, 高安全保障