f5devcentral/openssl-pqc-stepbystep-lab

GitHub: f5devcentral/openssl-pqc-stepbystep-lab

一份面向后量子密码学的 OpenSSL 动手实验指南,帮助构建符合 NIST 与 CNSA 2.0 的量子抗性 CA 基础设施。

Stars: 11 | Forks: 6

![License](https://img.shields.io/badge/license-MIT-blue.svg) ![OpenSSL](https://img.shields.io/badge/OpenSSL-3.5.x-green.svg) ![NIST PQC](https://img.shields.io/badge/NIST%20PQC-FIPS%20203%2F204%2F205-blue.svg) ![CNSA 2.0](https://img.shields.io/badge/CNSA%202.0-Compliant-brightgreen.svg) ![OQS](https://img.shields.io/badge/OQS-Non--NIST%20Algorithms-orange.svg) # 后量子密码学证书颁发机构实验室 ## 量子抗性 PKI 基础设施动手实践 本动手实验指南提供使用 OpenSSL 构建量子抗性证书颁发机构(CA)基础设施的教程。本仓库根据您的合规要求和算法兴趣提供三条不同的学习路径。谁准备好了一起狂欢?
## 🎯 选择您的学习路径 本仓库提供三条学习路径。请选择与您的组织需求相符的路径: | | **FIPS 203/204/205 路径** | **CNSA 2.0 路径** | **替代算法路径** | | --- | --- | --- | --- | | **目标受众** | 商业组织 | 政府承包商、机密系统 | 研究人员、国际合规、纵深防御 | | **合规标准** | NIST FIPS 标准 | NSA CNSA 2.0 | 非 NIST 算法、国际标准 | | **算法覆盖** | ML-DSA、ML-KEM、SLH-DSA | ML-DSA-87、ML-KEM-1024 | FrodoKEM、BIKE、HQC | | **用例** | 通用量子抗性基础设施 | 国家安全系统 | 算法多样性、保守安全 |
## 📚 [学习路径 1:NIST FIPS 203/204/205](/fipsqs/00_fips_quantum_ca_intro.md) **面向使用 NIST 标准实现量子抗性密码学的商业组织。** 此路径使用 OpenSSL 3.5.3 的原生后量子密码学支持——无需外部量子库提供者。非常方便,也非常简单。 ### 模块 | 模块 | 描述 | | -------- | ------------- | | [00 - 简介](/fipsqs/00_fips_quantum_ca_intro.md) | FIPS 203/204/205 概述、先决条件和实验目标 | [01 - 环境搭建](/fipsqs/01_fips_quantum_ca_environment.md) | 验证支持 PQC 的 OpenSSL 3.5.x | [02 - 根 CA](/fipsqs/02_fips_quantum_ca_root.md) | 使用 ML-DSA-87 构建根 CA | [03 - 中间 CA](/fipsqs/03_fips_quantum_ca_intermediate.md) | 使用 ML-DSA-65 创建中间 CA | [04 - 证书](/fipsqs/04-fips_quantum_ca_certs.md) | 为服务器和用户签发最终实体证书 | [05 - 吊销](/fipsqs/05_fips_quantum_ca_recovation.md) | 实现 OCSP 和 CRL 证书吊销 | [06 - 混合方法](/fipsqs/06_fips_quantum_ca_hybrid_methods.md) | IETF 混合 PQC 方法(X25519MLKEM768、复合签名) ### 涵盖算法 - **ML-DSA-44/65/87**(FIPS 204)——基于格的签名 - **ML-KEM-512/768/1024**(FIPS 203)——基于格的密钥封装 - **SLH-DSA** 变体(FIPS 205)——基于哈希的签名 - **X25519MLKEM768** ——混合 TLS 1.3 密钥交换(IETF 实验室)
## 📚 [学习路径 2:NSA CNSA 2.0](/cnsa2/01_cnsa_quantum_ca_intro.md) **面向政府承包商和需要 CNSA 2.0 合规的组织。** 此路径使用 OpenSSL 3.2+ 并配合用户编译的 Open Quantum Safe (OQS) 提供程序,以实现严格的 CNSA 2.0 算法合规性。 ### 模块 | 模块 | 描述 | | -------- | ------------- | | [01 - 简介](/cnsa2/01_cnsa_quantum_ca_intro.md) | CNSA 2.0 要求和合规截止日期概述 | [02 - 根 CA](/cnsa2/02_cnsa_quantum_ca_root.md) | 使用 ML-DSA-87 构建根 CA | [03 - 中间 CA](/cnsa2/03_cnsa_quantum_ca_intermediate.md) | 使用 ML-DSA-87 创建中间 CA | [04 - 证书](/cnsa2/04_cnsa_quantum_ca_certificates.md) | 发行 CNSA 2.0 合规证书 | [05 - 吊销](/cnsa2/05_cnsa_quantum_ca_revocation.md) | 实现 OCSP 和 CRL 证书吊销 ### 涵盖算法 | 算法类型 | 批准的算法 | NIST 指定 | | ---------------- | --------------------- | ------------------ | | 数字签名 | ML-DSA-87 | FIPS 204 | | 密钥建立 | ML-KEM-1024 | FIPS 203 | | 哈希函数 | SHA-384、SHA-512 | FIPS 180-4 | **注意:** *CNSA 2.0 目前不支持 ML-DSA-44、SLH-DSA 或 Falcon 算法。*
## 📚 [学习路径 3:替代 PQC 算法(包括 NIST 提案)](/altpqc/00_alt_pqc_introduction.md) **面向研究人员、需要算法多样性的组织以及对国际 PQC 实现感兴趣的人员。** 此路径探索主要 NIST FIPS 标准之外的后量子算法,提供选项并了解更广泛的 PQC 格局。我们将使用 OpenSSL 3.5.x 和 OQS 提供程序来访问替代算法。启用这些算法的附录非常有趣,可以在这里找到 [addendum_updating_openssl_pqc](addendum_updating_openssl_pqc.md)。 ### 模块 | 模块 | 描述 | | -------- | ------------- | | [00 - 简介](/altpqc/00_alt_pqc_introduction.md) | 非 NIST 算法、国际标准、用例概述 | [01 - 环境搭建](/altpqc/01_alt_pqc_environment.md) | Ubuntu 25.10、OpenSSL 3.5.x、OQS 提供程序配置 | [02 - FrodoKEM](/altpqc/02_alt_pqc_frodokem.md) | 保守的无结构格 KEM(欧洲推荐;BSI、ANSSI) | [03 - BIKE 和 HQC](/altpqc/03_alt_pqc_bike_hqc.md) | 基于码的 KEM(HQC 是 NIST 选择的备用方案) | [04 - 国际 PQC](/altpqc/04_alt_pqc_interational.md) | 欧盟、韩国和中国的算法标准 | [05 - 性能分析](/altpqc/05_alt_pqc_perf_analysis.md) | 比较算法、延迟影响、用例、极客数据 ### 涵盖算法 | 算法 | 类型 | 数学基础 | 关键特征 | |----------- | ------ | ------------------- | ------------------- | | **FrodoKEM** | KEM | 无结构格(LWE) | 保守安全,欧洲认可(BSI、ANSSI) | | **BIKE** | KEM | 基于码(QC-MDPC) | NIST 第 4 轮候选 | | **HQC** | KEM | 基于码(准循环) | NIST 选择的 ML-KEM 备用方案 |
## 🔧 先决条件 ### 系统要求 - **操作系统:** CNSA 2.0 - Ubuntu 25.04 并使用 OpenSSL 3.2+。NIST FIPS 和替代 PQC - Ubuntu 25.10 并使用 OpenSSL 3.5.3(内置所有 FIPS PQC 要求,并支持新版 OQS 库)。 - **权限:** root 或 sudo 访问权限 - **注意:** *CNSA 指南旨在要求使用外部 OQS 库与早期版本的 OpenSSL(在这种情况下为 3.2)配合使用。FIPS 和替代 PQC 实验依赖于更新版本的 Ubuntu(2510)和当前版本的 OpenSSL(3.5.3),其中已内置所有 FIPS PQC 要求并支持新版 OQS 库。有关编译 OQS 的补充说明,请参见下方链接。* ### 所需知识 - 熟悉 Linux 命令行 - 理解 PKI 概念(证书、CA、链) - 熟悉 X.509 证书结构 - 了解 TLS/SSL 基础知识(用于 KEM 测试)
## 📖 环境搭建 有关设置 PQC 环境的详细说明,包括从源代码构建 OQS 提供程序,请参见: ### [补充说明:编译 Open Quantum Safe (OQS) 库以设置 OpenSSL 环境](/addendum_updating_openssl_pqc.md) 本补充说明涵盖: - Ubuntu 25.10 的 OQS 提供程序安装 - 启用 HQC 的 liboqs 编译 - 在 oqs-provider 中启用 HQC - 常见安装问题的故障排除
## ⚠️ 重要说明 ### 教育用途 本实验专为 **教育和内部测试用途** 设计。生产部署应: - 使用硬件安全模块(HSM)存储密钥 - 实施空气隔离的根 CA,优先使用脱机安全存储(如 U 盘) - 启用全面的审计日志记录 - 遵循组织的安全策略 ### 手动输入命令 所有学习路径仅使用 **手动命令输入**——不提供脚本。这样可以确保您: - 理解 PKI 工作流的每一步 - 学习正确的 OpenSSL 语法和选项 - 培养故障排除技能 - 形成密码学操作的肌肉记忆 - 您可以复制/粘贴,但这只是在欺骗自己…… *“叹气”*
## 📖 附加资源 ### NIST 标准 - [FIPS 203:ML-KEM 标准](https://csrc.nist.gov/pubs/fips/203/final) - [FIPS 204:ML-DSA 标准](https://csrc.nist.gov/pubs/fips/204/final) - [FIPS 205:SLH-DSA 标准](https://csrc.nist.gov/pubs/fips/205/final) ### NSA CNSA 2.0 - [CNSA 2.0 公告](https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF) - [CNSA 2.0 常见问题解答](https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF) ### OpenSSL 和 OQS - [OpenSSL 3.5 文档](https://www.openssl.org/docs/) - [Open Quantum Safe 项目](https://openquantumsafe.org/) - [OQS 提供程序 GitHub](https://github.com/open-quantum-safe/oqs-provider) ### IETF 标准 - [RFC 9794:PQ/T 混合术语](https://datatracker.ietf.org/doc/rfc9794/) - [TLS 1.3 中的混合密钥交换](https://datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/) ### 国际 PQC - [韩国 KpqC 竞赛](https://www.kpqc.or.kr/) - [欧洲后量子密码学研究](https://www.enisa.europa.eu/publications/post-quantum-cryptography-current-state-and-quantum-mitigation)
## 📄 许可证 本实验指南在 MIT 许可证下提供。详见 [LICENSE](/LICENSE) 文件。
标签:BIKE, CNSA 2.0, FIPS 203, FIPS 204, FIPS 205, FrodoKEM, HQC, NIST FIPS, NSA CNSA 2.0, OpenSSL, OpenSSL 3.0, OpenSSL 3.5, oqsprovider, OQSProvider, SSL/TLS量子安全, 后量子TLS, 后量子密码, 后量子算法集成, 学习路径, 实验指南, 证书签发, 证书颁发机构, 量子安全CA, 量子安全基础设施, 量子抗性, 量子计算, 非NIST算法