10 个版本

0.3.0 2022年4月14日
0.2.4 2021年11月25日
0.2.3 2021年9月20日
0.2.1 2021年6月10日
0.1.1 2019年11月20日

#2517 in 密码学

每月 45 次下载

MIT/Apache

38MB
1M SLoC

GNU Style Assembly 567K SLoC // 0.0% comments C 354K SLoC // 0.2% comments Bitbake 59K SLoC // 0.0% comments Rust 4K SLoC // 0.0% comments Python 1.5K SLoC // 0.1% comments SWIG 348 SLoC // 0.0% comments Jinja2 204 SLoC INI 5 SLoC

rainbow

This (implementation of an) cryptographic algorithm is insecure.
This crate will only compile if you enable the "cryptographically-insecure" feature.

Only use this crate and algorithm for research and educational purposes.

此crate包含对以下方案的C实现绑定的引用,来自 PQClean.

本项目打包了参与 NIST PQC 标准化工作 的后量子加密算法。目前是一个围绕 PQClean 项目的C实现包装的集合。

序列化

如果您需要 serde 支持,请启用 serialization 功能。

包含的 PQClean 实现列表

以下是包含的方案及其来自 PQClean 的对应实现列表。Rust 友好的接口中使用的是 "default" 实现,其他实现仅作为 ffi 方法公开。

  • rainbowI-circumzenithal
    • clean
  • rainbowI-classic
    • clean
  • rainbowI-compressed
    • clean
  • rainbowIII-circumzenithal
    • clean
  • rainbowIII-classic
    • clean
  • rainbowIII-compressed
    • clean
  • rainbowV-circumzenithal
    • clean
  • rainbowV-classic
    • clean
  • rainbowV-compressed
    • clean

注意事项

此实现需要大量的堆栈空间。您可能需要指定 RUST_MIN_STACK=800000000,可能。

Rainbow 已不再获得所声明的安全性,请参阅 https://eprint.iacr.org/2022/214.pdf

许可证

本项目中的包装和包装生成脚本受 MIT 或 Apache 2.0 许可证的覆盖,您可选其一。

我们链接的实现不受此限制。有关适当的许可证,请参阅 PQClean 项目。

依赖项