8 个版本

0.0.2-pre.22023 年 12 月 1 日
0.0.2-pre.12023 年 9 月 25 日
0.0.2-alpha.32024 年 7 月 23 日
0.0.1 2023 年 6 月 13 日
0.0.0 2023 年 1 月 10 日

#236 in 加密学

Download history 130/week @ 2024-05-02 135/week @ 2024-05-09 100/week @ 2024-05-16 77/week @ 2024-05-23 120/week @ 2024-05-30 81/week @ 2024-06-06 65/week @ 2024-06-13 215/week @ 2024-06-20 166/week @ 2024-06-27 118/week @ 2024-07-04 86/week @ 2024-07-11 282/week @ 2024-07-18 297/week @ 2024-07-25 142/week @ 2024-08-01 355/week @ 2024-08-08 312/week @ 2024-08-15

1,172 每月下载量
用于 2 个包 (通过 openmls_libcrux_crypto)

Apache-2.0

6MB
182K SLoC

C 113K SLoC // 0.1% comments GNU Style Assembly 42K SLoC Rust 15K SLoC // 0.0% comments Assembly 10K SLoC // 0.0% comments F* 1.5K SLoC // 0.0% comments Shell 44 SLoC // 0.2% comments

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 特性使用。

依赖关系