8 个版本
0.0.2-pre.2 | 2023 年 12 月 1 日 |
---|---|
0.0.2-pre.1 | 2023 年 9 月 25 日 |
0.0.2-alpha.3 | 2024 年 7 月 23 日 |
0.0.1 | 2023 年 6 月 13 日 |
0.0.0 | 2023 年 1 月 10 日 |
#236 in 加密学
1,172 每月下载量
用于 2 个包 (通过 openmls_libcrux_crypto)
6MB
182K SLoC
libcrux - 形式化验证的加密库
libcrux 是一个形式化验证的加密库,它汇集了来自不同来源的验证工件。它使用 hacspec 作为用于正确性和安全性证明的规范的基础通用语言。
请参阅 架构 文档,以了解 libcrux 架构和属性的详细概述,以及 形式化验证 目录,以了解底层形式化证明的详细信息。
算法
注意 可用的算法仍在开发中,未来将不断增长。
算法 | 平台 |
---|---|
AES | x64 (AES-NI) |
AES-GCM | x64 (AES-NI) |
Chacha20 | x64, arm64 |
Poly1305 | x64, arm64 |
Chacha20Poly1305 | x64, arm64 |
Curve25519 | x64, arm64 |
EdDSA 25519 | x64, arm64 |
EcDSA P256 | x64, arm64 |
Sha2 | x64, arm64 |
Sha3 | x64, arm64 |
Blake2 | x64, arm64 |
HMAC | x64, arm64 |
HKDF | x64, arm64 |
Bls12-381 | x64, arm64 |
HPKE | x64, arm64 |
其他平台可能也能工作,但目前尚未进行测试或优化。
硬件支持
构建启用了目标架构上所有可用的硬件功能。此外,库始终执行运行时检查,以确保所需的 CPU 功能可用。
libcrux 使用以下配置进行其硬件抽象
- simd128 假设平台上有 128 位 SIMD 指令。这意味着 x64 CPU 上的 SSE3 和 SSE4.1 以及 arm CPU 上的 NEON。
- simd256 假设平台上有 256 位 SIMD 指令。这意味着 x64 CPU 上的 AVX 和 AVX2。
随机性
libcrux 提供了一个 DRBG 实现可供独立使用 (drbg::Drbg
) 或通过 Rng
特性使用。