kaidokert/krabipqc-rs
GitHub: kaidokert/krabipqc-rs
该项目是一个面向微控制器的 Rust no_std 后量子密码学原型库,实现 ML-DSA 和 ML-KEM 算法,旨在探索嵌入式平台上的后量子加密可行性。
Stars: 1 | Forks: 0
# krabipqc-rs
[](https://github.com/kaidokert/krabipqc-rs/actions/workflows/rust.yml)
[](https://github.com/kaidokert/krabipqc-rs/actions/workflows/cortex_m.yml)
[](https://coveralls.io/github/kaidokert/krabipqc-rs?branch=main)
[](https://crates.io/crates/krabipqc)
[](https://docs.rs/krabipqc)
面向微控制器的 `no_std` ML-DSA 和 ML-KEM 原型。
## 范围
- ML-DSA: `ml_dsa_44`, `ml_dsa_65`, `ml_dsa_87` — keygen / sign / verify。
- ML-KEM: `ml_kem_512`, `ml_kem_768`, `ml_kem_1024` — keygen / encaps / decaps。
- 不使用 unsafe,不使用堆,不使用 `alloc`
## 资源占用
在 QEMU 下测量。`.text` 是链接后的示例二进制文件大小;stack 是峰值高水位标记。更大的参数集会按比例增加资源占用。
| 操作 | Cortex-M3 .text | Cortex-M3 stack | RISC-V .text | RISC-V stack |
|------------------------------|----------------:|----------------:|-------------:|-------------:|
| ML-DSA-44 verify | 14.5 KiB | 23 868 B | 17.2 KiB | 23 736 B |
| ML-DSA-44 sign (`lowmem`) | 16.5 KiB | 67 956 B | 20.3 KiB | 67 940 B |
| ML-KEM-512 decaps | 17.8 KiB | 28 156 B | 21.7 KiB | 28 116 B |
默认 sign 峰值约为 80 KiB stack;`lowmem` 在每次重试时重新推导 NTT 向量,以在拒绝时增加额外机器周期为代价,将其降至约 68 KiB。
## 状态
非常处于实验阶段。API 会发生变化;尚未分析 side-channel 属性;未经审计。请勿用于任何重要场合。
## 许可证
Apache-2.0;详见 [`LICENSE`](LICENSE)。
标签:可视化界面, 通知系统