我目前正在为我的硕士论文开发 X3DH 信号协议的简化 Python 实现。我的主要目标是比较三个版本的性能:经典实现、使用 Kyber 的后量子安全变体以及使用 PSWOOSH 的基于格的方法。
但是,我在 pqcrypto 库中遇到了一些错误,特别是pqcrypto._kem.kyber512 的导入错误。鉴于该库在过去四年中缺乏更新,我担心它不再可用。我希望得到有关替代 python 后量子加密库的建议。
代码:
from pqcrypto.kem import kyber512
错误: “C:\Users-----\AppData\Local\Programs\Python\Python312\Lib\site-packages\pqcrypto\kem\kyber512.py”,第 1 行,位于 从 .._kem.kyber512 导入 ffi 作为 __ffi,lib 作为 __lib ModuleNotFoundError:没有名为“pqcrypto._kem.kyber512”的模块
我尝试进入找到此内容的指定路径:
from .._kem.kyber512 import ffi as __ffi, lib as __lib
from .common import _kem_generate_keypair_factory, _kem_encrypt_factory, _kem_decrypt_factory
PUBLIC_KEY_SIZE = __lib.CRYPTO_PUBLICKEYBYTES
SECRET_KEY_SIZE = __lib.CRYPTO_SECRETKEYBYTES
CIPHERTEXT_SIZE = __lib.CRYPTO_CIPHERTEXTBYTES
PLAINTEXT_SIZE = __lib.CRYPTO_BYTES
generate_keypair = _kem_generate_keypair_factory(__ffi, __lib)
encrypt = _kem_encrypt_factory(__ffi, __lib)
decrypt = _kem_decrypt_factory(__ffi, __lib)
但是(._kem.)完全为空
说得对,
pqcrypto
库似乎已不再积极维护,并且可能与更新的 Python 版本不兼容。
对于替代的 Python 后量子加密库,我可以推荐以下几种选择:
-
Cryptography 模块(带 PQ KEM 后端)
-
虽然
cryptography
本身不提供后量子算法,但它可以通过第三方后端支持它们。 -
Open Quantum Safe (OQS) 项目
提供了一个
liboqs
库,该库包含各种 PQ 算法,并可以与cryptography
集成。 -
可以在 https://github.com/open-quantum-safe/liboqs 上找到
liboqs
,并参考其文档了解如何在 Pythoncryptography
模块中使用它。 -
PyBerny
-
这是一个专门针对 Kyber 的 Python 库。如果主要关注 Kyber,则这是一个不错的选择。
-
可以在 https://pypi.org/project/pyberny/ 上找到它。
-
Lattice-based cryptography libraries:
-
许多专注于基于格密码学的库可以使用,例如 NTRU 和 SABER 。这些库通常是用 C 或 C++ 编写的,但可能提供 Python 绑定或包装器。
-
需要搜索提供 Python 支持的特定库。
-
Open Quantum Safe (OQS) 项目
-
除了
liboqs
之外,OQS 项目还提供了其他资源,例如用于测试和比较不同 PQ 算法的工具。 - 可以访问他们的网站 https://openquantumsafe.org/ 以了解更多信息。
选择合适的库取决于的具体需求和优先级:
- 支持的算法: 确保该库支持要使用的特定 PQ 算法(Kyber、PSWOOSH 等)。
- 性能: 某些库可能比其他库具有更好的性能。
- 易用性: 考虑库的文档和 API 设计。
- 社区支持: 一个活跃的社区可以提供帮助和资源。
对于的 X3DH 信号协议实现,我建议首先探索
cryptography
模块与
liboqs
后端的集成。
这将为提供各种 PQ 算法的灵活性和潜在的高性能实现。