首页
/ kyber-py 项目使用教程

kyber-py 项目使用教程

2026-01-22 04:51:01作者:魏献源Searcher

1. 项目目录结构及介绍

kyber-py/
├── assets/
│   ├── ML-KEM-*
│   └── PQCLkemKAT_*.rsp
├── benchmarks/
├── docs/
├── src/
│   └── kyber_py/
│       ├── aes256_ctr_drbg.py
│       ├── kyber.py
│       ├── ml_kem.py
│       ├── polynomials_generic.py
│       └── ...
├── tests/
│   ├── test_kyber.py
│   └── test_ml_kem.py
├── .gitignore
├── LICENSE
├── README.md
├── pyproject.toml
├── pytest.ini
└── requirements.txt

目录结构介绍

  • assets/: 包含用于测试的KAT(Known Answer Test)文件,分别用于ML-KEM和Kyber的测试。
  • benchmarks/: 包含项目的性能测试代码。
  • docs/: 包含项目的文档文件。
  • src/kyber_py/: 项目的主要源代码目录,包含实现ML-KEM和Kyber的核心代码。
    • aes256_ctr_drbg.py: 实现AES256 CTR DRBG的文件。
    • kyber.py: 实现Kyber算法的文件。
    • ml_kem.py: 实现ML-KEM算法的文件。
    • polynomials_generic.py: 实现多项式环的通用操作。
  • tests/: 包含项目的单元测试代码,分别用于测试Kyber和ML-KEM。
  • .gitignore: Git忽略文件配置。
  • LICENSE: 项目许可证文件。
  • README.md: 项目介绍和使用说明。
  • pyproject.toml: 项目配置文件,定义项目依赖和构建工具。
  • pytest.ini: pytest配置文件。
  • requirements.txt: 项目依赖包列表。

2. 项目启动文件介绍

项目的主要启动文件位于 src/kyber_py/ 目录下,主要包括以下几个文件:

  • kyber.py: 实现Kyber算法的主要逻辑。用户可以通过导入该文件中的类和方法来使用Kyber算法。
  • ml_kem.py: 实现ML-KEM算法的主要逻辑。用户可以通过导入该文件中的类和方法来使用ML-KEM算法。

示例代码

from kyber_py.kyber import Kyber512

# 生成密钥对
pk, sk = Kyber512.keygen()

# 加密生成共享密钥和挑战
key, c = Kyber512.encaps(pk)

# 解密生成共享密钥
_key = Kyber512.decaps(sk, c)

assert key == _key

3. 项目的配置文件介绍

pyproject.toml

pyproject.toml 文件定义了项目的构建系统和依赖项。以下是该文件的部分内容示例:

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "kyber-py"
version = "0.1.0"
description = "A pure python implementation of ML-KEM (FIPS 203) and CRYSTALS-Kyber"
authors = [
    { name="Giacomo Pope", email="giacomo.pope@example.com" }
]
dependencies = [
    "pycryptodome>=3.10.1"
]

requirements.txt

requirements.txt 文件列出了项目所需的依赖包及其版本。用户可以通过运行 pip install -r requirements.txt 来安装所有依赖项。

pycryptodome>=3.10.1

pytest.ini

pytest.ini 文件是pytest的配置文件,定义了测试运行时的配置选项。

[pytest]
addopts = --cov=src/kyber_py --cov-report=term-missing

以上是 kyber-py 项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这些内容能帮助你更好地理解和使用该项目。

登录后查看全文
热门项目推荐
相关项目推荐