PQC-Tool 抗量子密码算法工具

PQC-Tool 抗量子密码算法工具 PQC-Tool 抗量子密码算法工具版本: v1.0日期: 2026-07-01作者: duww.com1. 项目概述1.1 项目背景随着量子计算技术的快速发展传统基于 RSA、ECC 的公钥密码体系面临被 Shor 算法攻破的威胁。NIST 于 2024 年正式发布了三项抗量子密码标准标准编号算法名称类型用途FIPS 203ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism)密钥封装通用密钥交换与加密FIPS 204ML-DSA (Module-Lattice-Based Digital Signature Algorithm)数字签名身份认证与文档签名FIPS 205SLH-DSA (Stateless Hash-Based Digital Signature Algorithm)数字签名备用可证明安全性的签名本项目旨在开发一个免安装、即开即用的 Windows 桌面工具帮助用户直观地体验和理解这三种抗量子密码算法的完整操作流程。1.2 设计目标免安装运行双击启动.bat即可使用首次运行自动创建虚拟环境并安装依赖完整功能覆盖支持三大 FIPS 标准的所有核心操作密钥生成、封装/解封、签名/验证多参数级别每种算法支持多个安全等级的参数集选择本地密钥管理密钥持久化存储支持加载、删除、按算法筛选直观用户体验暗色主题 UI、流程引导、自动填充、一键复制真实算法实现基于 pqcrypto 库PQClean C 实现非模拟1.3 目标用户密码学研究人员与教育工作者信息安全工程师与架构师需要评估 PQC 算法性能与密钥大小的开发团队对抗量子密码感兴趣的技术爱好者2. 系统架构2.1 总体架构系统采用B/S 架构 本地服务模式┌─────────────────────────────────────────────────────┐ │ Windows 桌面 │ │ │ │ ┌─────────────── 启动.bat ──────────────────┐ │ │ │ 1. 检查 Python 环境 │ │ │ │ 2. 自动创建 venv首次 │ │ │ │ 3. 安装依赖 pip install首次 │ │ │ │ 4. 启动 Flask 服务 127.0.0.1:5200 │ │ │ │ 5. 自动打开浏览器 │ │ │ └────────────────────────────────────────────┘ │ │ │ │ ┌─────────────── Flask 后端 ─────────────────┐ │ │ │ │ │ │ │ app.py ─── Flask REST API │ │ │ │ │ │ │ │ │ ├── pqc_core.py ── PQC 算法核心封装 │ │ │ │ │ ├── PQCCrypto 类 │ │ │ │ │ │ ├── ML-KEM 操作 │ │ │ │ │ │ ├── ML-DSA 操作 │ │ │ │ │ │ └── SLH-DSA 操作 │ │ │ │ │ └── KeyStore 类 │ │ │ │ │ └── data/*.json 密钥存储 │ │ │ │ │ │ │ │ │ ├── templates/index.html ── Web UI │ │ │ │ ├── static/css/style.css ── 暗色主题 │ │ │ │ └── static/js/app.js ── 前端交互逻辑 │ │ │ └────────────────────────────────────────────┘ │ │ │ │ ┌──── pqcrypto (C 扩展) ────────────────────┐ │ │ │ PQClean 官方参考实现的 Python 绑定 │ │ │ │ ├── pqcrypto.kem.ml_kem_* │ │ │ │ ├── pqcrypto.sign.ml_dsa_* │ │ │ │ └── pqcrypto.sign.sphincs_* │ │ │ └────────────────────────────────────────────┘ │ │ │ │ ┌──── 浏览器 (http://127.0.0.1:5200) ────────┐ │ │ │ 用户交互界面 │ │ │ └────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘2.2 技术栈层级技术版本要求说明运行环境Python≥ 3.10虚拟环境隔离Web 框架Flask≥ 3.0轻量级 HTTP 服务PQC 算法pqcrypto≥ 0.4.0PQClean C 实现的 Python 绑定底层依赖cffi≥ 1.17C FFI 接口pqcrypto 内部使用前端渲染HTML5 CSS3 JS-原生实现无框架依赖数据编码base64 / hex-Python 标准库2.3 目录结构PQC-Tool/ ├── app.py # Flask 后端入口REST API 页面路由 ├── pqc_core.py # PQC 算法核心封装类 ├── requirements.txt # Python 依赖列表 ├── 启动.bat # 免安装启动脚本 ├── data/ # 密钥存储目录运行时自动创建 │ └── ML-KEM-768_xxxx.json │ └── ML-DSA-65_xxxx.json │ └── SLH-DSA-SHA2-128s_xxxx.json ├── templates/ │ └── index.html # Web UI 主页面 ├── static/ │ ├── css/ │ │ └── style.css # 暗色主题样式 │ └── js/ │ └── app.js # 前端交互逻辑 └── venv/ # Python 虚拟环境首次运行自动创建3. 核心模块设计3.1 pqc_core.py — PQC 算法核心模块3.1.1 PQCCrypto 类负责所有抗量子密码算法的操作执行提供统一接口封装。类结构classPQCCrypto:_pqcrypto_available:bool# pqcrypto 库可用性标志def_check_pqcrypto()# 检查 pqcrypto 是否已安装def_get_kem_module(name)# 动态加载 KEM 模块importlibdef_get_sign_module(name)# 动态加载签名模块importlib# ML-KEM (FIPS 203) 操作defml_kem_keygen(param_name)→dictdefml_kem_encapsulate(param_name,pk_hex)→dictdefml_kem_decapsulate(param_name,sk_hex,ct_hex)→dict# ML-DSA (FIPS 204) 操作defml_dsa_keygen(param_name)→dictdefml_dsa_sign(param_name,sk_hex,message)→dictdefml_dsa_verify(param_name,pk_hex,message,sig_hex)→dict# SLH-DSA (FIPS 205) 操作defslh_dsa_keygen(param_name)→dictdefslh_dsa_sign(param_name,sk_hex,message)→dictdefslh_dsa_verify(param_name,pk_hex,message,sig_hex)→dict关键设计决策动态模块加载使用importlib.import_module()按需加载算法模块避免启动时导入所有 18 个变体双重编码输出所有密钥/签名数据同时输出 Hex 和 Base64 两种格式满足不同使用场景密钥指纹使用 SHA-256 哈希前 16 字节作为密钥指纹便于密钥识别和比对降级模式当 pqcrypto 不可用时使用os.urandom()生成随机数据作为模拟结果确保 UI 仍可演示操作流程pqcrypto API 映射关系操作pqcrypto 调用参数顺序KEM 密钥生成module.generate_keypair()→(pk, sk)KEM 封装module.encrypt(pk)→(ct, ss)KEM 解封module.decrypt(sk, ct)→ss签名密钥生成module.generate_keypair()→(pk, sk)签名module.sign(sk, message)SK 在前消息在后验证module.verify(pk, message, signature)PK 在前3.1.2 KeyStore 类负责密钥的持久化存储与管理。类结构classKeyStore:data_dir:Path# data/ 目录def_key_file_path(algorithm,key_id)→ Pathdefsave_key(algorithm,key_data)→str# 保存密钥返回 key_iddefload_key(algorithm,key_id)→dict# 加载密钥deflist_keys(algorithmNone)→list# 列出密钥可按算法筛选defdelete_key(algorithm,key_id)→bool# 删除密钥存储格式每个密钥保存为独立 JSON 文件命名规则{algorithm}_{key_id}.json{algorithm:ML-KEM-768,fips_standard:FIPS 203,public_key:9d4c...,public_key_b64:nUwM...,secret_key:8a3f...,secret_key_b64:ij8L...,pk_size:1184,sk_size:2400,pk_fingerprint:a1b2c3d4e5f6a7b8,sk_fingerprint:f0e1d2c3b4a59687,key_id:a1b2c3d4e5f6a7b8,saved_at:2026-07-01T10:30:00}key_id 生成规则使用公钥的 SHA-256 哈希前 16 字节即pk_fingerprint确保密钥唯一标识与公钥绑定。3.2 算法参数配置3.2.1 ML-KEM (FIPS 203) 参数参数集NIST 安全等级经典安全性PK 大小SK 大小CT 大小SS 大小ML-KEM-512等级 1~128-bit800 B1,632 B768 B32 BML-KEM-768等级 3~192-bit1,184 B2,400 B1,088 B32 BML-KEM-1024等级 5~256-bit1,568 B3,168 B1,568 B32 Bpqcrypto 模块映射ML-KEM-512→pqcrypto.kem.ml_kem_512以此类推3.2.2 ML-DSA (FIPS 204) 参数参数集NIST 安全等级经典安全性PK 大小SK 大小签名大小ML-DSA-44等级 2~128-bit1,312 B2,560 B2,420 BML-DSA-65等级 3~192-bit1,952 B4,032 B3,293 BML-DSA-87等级 5~256-bit2,592 B4,896 B4,627 Bpqcrypto 模块映射ML-DSA-44→pqcrypto.sign.ml_dsa_44以此类推3.2.3 SLH-DSA (FIPS 205) 参数SLH-DSA 提供 SHA2 和 SHAKE 两个哈希函数族每个族提供小签名 (s)和快速签名 (f)两种变体参数集哈希族安全等级PK 大小SK 大小签名大小SLH-DSA-SHA2-128sSHA-2132 B64 B7,856 BSLH-DSA-SHA2-128fSHA-2132 B64 B17,088 BSLH-DSA-SHA2-192sSHA-2348 B96 B16,224 BSLH-DSA-SHA2-192fSHA-2348 B96 B35,664 BSLH-DSA-SHA2-256sSHA-2564 B128 B29,792 BSLH-DSA-SHA2-256fSHA-2564 B128 B49,856 BSLH-DSA-SHAKE-128sSHAKE132 B64 B7,856 BSLH-DSA-SHAKE-128fSHAKE132 B64 B17,088 BSLH-DSA-SHAKE-192sSHAKE348 B96 B16,224 BSLH-DSA-SHAKE-192fSHAKE348 B96 B35,664 BSLH-DSA-SHAKE-256sSHAKE564 B128 B29,792 BSLH-DSA-SHAKE-256fSHAKE564 B128 B49,856 B设计特点SLH-DSA 的公钥/私钥远小于 ML-DSA但签名体积显著更大“s”small变体牺牲签名速度换取更小签名“f”fast变体反之作为 ML-DSA 的备用签名方案其安全性基于哈希函数而非格假设提供数学上可证明的安全性4. API 设计4.1 REST API 端点一览通用接口端点方法说明/GET主页面返回 index.html/api/infoGET系统信息pqcrypto 状态 所有算法参数/api/keys/list?algorithmGET列出已保存密钥可按算法筛选/api/keys/algorithm/key_idGET获取密钥详情/api/keys/algorithm/key_idDELETE删除密钥ML-KEM (FIPS 203) 接口端点方法请求体说明/api/ml-kem/keygenPOST{param_name, save}密钥生成/api/ml-kem/encapsulatePOST{param_name, public_key}密钥封装/api/ml-kem/decapsulatePOST{param_name, secret_key, ciphertext}密钥解封ML-DSA (FIPS 204) 接口端点方法请求体说明/api/ml-dsa/keygenPOST{param_name, save}密钥生成/api/ml-dsa/signPOST{param_name, secret_key, message_text?, message?}签名/api/ml-dsa/verifyPOST{param_name, public_key, signature, message_text?, message?}验证SLH-DSA (FIPS 205) 接口端点方法请求体说明/api/slh-dsa/keygenPOST{param_name, save}密钥生成/api/slh-dsa/signPOST{param_name, secret_key, message_text?, message?}签名/api/slh-dsa/verifyPOST{param_name, public_key, signature, message_text?, message?}验证4.2 请求/响应数据格式密钥生成响应{algorithm:ML-KEM-768,fips_standard:FIPS 203,public_key:9d4c1a3f...Hex 全文,public_key_b64:nUwMGj8/...Base64 全文,secret_key:8a3f2b1c...Hex 全文,secret_key_b64:ij8LGhwM...Base64 全文,pk_size:1184,sk_size:2400,pk_fingerprint:a1b2c3d4e5f6a7b8,sk_fingerprint:f0e1d2c3b4a59687,key_id:a1b2c3d4e5f6a7b8,// 仅当 savetruesaved:true// 仅当 savetrue}KEM 封装响应{algorithm:ML-KEM-768,fips_standard:FIPS 203,ciphertext:5e7f...Hex 全文,ciphertext_b64:Xn8M...Base64 全文,shared_secret:3a1b...Hex 全文,shared_secret_b64:OhsM...Base64 全文,ct_size:1088,ss_size:32}KEM 解封响应{algorithm:ML-KEM-768,fips_standard:FIPS 203,shared_secret:3a1b...Hex 全文,shared_secret_b64:OhsM...Base64 全文,ss_size:32}签名响应{algorithm:ML-DSA-65,fips_standard:FIPS 204,signature:7c2d...Hex 全文,signature_b64:fC0M...Base64 全文,message_hex:48656c6c6f...消息的 Hex,message_text:Hello PQC World!,// 仅当输入为文本sig_size:3293,msg_size:16}验证响应{algorithm:ML-DSA-65,fips_standard:FIPS 204,valid:true,message_hex:48656c6c6f...,message_text:Hello PQC World!,signature_hex:7c2d...}错误响应{error:缺少公钥}HTTP 状态码400参数错误、404密钥不存在、500算法执行异常4.3 消息输入格式签名和验证接口支持两种消息输入方式文本模式message_text— UTF-8 编码的文本字符串Hex 模式message— 十六进制编码的原始字节两种方式互斥优先使用message_text当两者都提供时message_text生效。5. 前端 UI 设计5.1 页面布局┌──────────────────────────────────────────────┐ │ 抗量子密码算法工具 v1.0 pqcrypto 已加载 │ ← 顶部标题栏 ├──────────────────────────────────────────────┤ │ ML-KEM ✍️ML-DSA SLH-DSA 密钥管理 │ ← 标签导航 ├──────────────────────────────────────────────┤ │ │ │ ML-KEM FIPS 203 │ ← 面板标题 │ 基于模块格的密钥封装机制... │ ← 算法说明 │ │ │ 参数级别[ML-KEM-768 ▾] PK:1184B SK:2400B │ ← 参数选择 │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 密钥生成 │ │ 密钥封装 │ │ 密钥解封 │ │ ← 操作卡片网格 │ │ KeyGen │ │ Encap. │ │ Decap. │ │ │ │ [生成] │ │ [PK输入] │ │ [SK输入] │ │ │ │ ☑保存 │ │ [封装] │ │ [CT输入] │ │ │ │ │ │ │ │ [解封] │ │ │ │ 结果区域 │ │ 结果区域 │ │ 结果区域 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ML-KEM 工作流程 │ ← 流程说明 │ ①生成(pk,sk) → ②发送pk → ③封装(ct,ss) │ │ → ④发送ct → ⑤解封(ss) │ │ 双方共享 ss 可用于 AES 等对称加密 │ │ │ ├──────────────────────────────────────────────┤ │ FIPS 203·FIPS 204·FIPS 205 就绪 │ ← 底部状态栏 └──────────────────────────────────────────────┘5.2 交互流程设计ML-KEM 操作流程自动填充链密钥生成 → 自动填充公钥到封装输入框 → 自动填充私钥到解封输入框 密钥封装 → 自动填充密文到解封输入框 密钥解封 → 显示共享密钥可验证与封装结果一致ML-DSA / SLH-DSA 操作流程自动填充链密钥生成 → 自动填充私钥到签名输入框 → 自动填充公钥到验证输入框 签名 → 自动填充签名到验证输入框 → 自动填充消息文本到验证输入框 验证 → 显示验证结果通过/失败密钥管理流程密钥管理页 → 刷新列表 → 显示所有已保存密钥卡片 → 加载密钥 → 切换到对应算法标签页 → 自动填充密钥到操作输入框 → 删除密钥 → 确认后删除 → 刷新列表5.3 UI 组件清单组件类型功能app-header页眉显示标题、版本号、pqcrypto 状态tab-nav导航栏4 个标签按钮ML-KEM/ML-DSA/SLH-DSA/密钥管理param-selector选择器参数级别下拉框 参数信息提示op-card操作卡片包含输入框、按钮、结果展示result-area结果区域显示算法操作结果支持 Hex/Base64 复制verify-result验证结果✅/❌ 验证通过/失败视觉指示flow-diagram流程图ML-KEM 5 步工作流程说明key-card密钥卡片密钥摘要信息 加载/删除操作toast-container通知操作成功/失败的浮动通知app-footer页脚状态栏显示当前操作状态5.4 CSS 主题设计采用深色科技风格主题CSS 变量体系:root{--bg-primary:#0a0e17;/* 主背景深海蓝 */--bg-secondary:#111827;/* 二级背景暗灰蓝 */--bg-card:#1a2332;/* 卡片背景蓝灰 */--bg-input:#0f1724;/* 输入框背景深蓝 */--border-color:#2a3a50;/* 边框蓝灰 */--border-focus:#4f8cff;/* 聚焦边框亮蓝 */--text-primary:#e2e8f0;/* 主文字亮灰 */--text-secondary:#94a3b8;/* 辅助文字灰蓝 */--text-muted:#64748b;/* 弱化文字暗灰 */--accent-blue:#4f8cff;/* 主强调色科技蓝 */--accent-green:#22c55e;/* 成功色翠绿 */--accent-red:#ef4444;/* 错误色亮红 */--accent-orange:#f59e0b;/* 警告色琥珀 */--accent-purple:#a78bfa;/* 信息色紫罗兰 */}响应式适配默认布局grid-template-columns: repeat(auto-fit, minmax(340px, 1fr))≤768px单列布局流程图垂直排列6. 数据流与安全性设计6.1 数据流用户操作 (浏览器) │ │ POST /api/ml-kem/keygen {param_name, save} │ ▼ Flask app.py │ 解析请求参数 │ 验证参数合法性 │ ▼ PQCCrypto.ml_kem_keygen(param_name) │ 动态加载 pqcrypto.kem.ml_kem_768 │ module.generate_keypair() → (pk_bytes, sk_bytes) │ bytes_to_hex(pk_bytes) → pk_hex │ bytes_to_base64(pk_bytes) → pk_b64 │ key_fingerprint(pk_bytes) → fingerprint │ ▼ KeyStore.save_key (if savetrue) │ 写入 data/ML-KEM-768_fingerprint.json │ ▼ Flask jsonify(result) │ ▼ 浏览器渲染结果 │ 显示 Hex/Base64 密钥数据 │ 自动填充到后续操作输入框6.2 安全性设计6.2.1 密钥数据安全控制项实施方式本地绑定服务仅监听127.0.0.1不暴露到网络数据存储密钥以 JSON 文件存储在本地data/目录无远程传输传输安全浏览器 ↔ Flask 使用本地 HTTP无 TLS因仅本机通信请求限制MAX_CONTENT_LENGTH 16MB防止超大请求密钥删除支持显式删除密钥文件需用户确认6.2.2 算法实现安全控制项实施方式算法来源pqcrypto 基于 PQClean 官方参考实现NIST 标准参考代码降级提示pqcrypto 不可用时UI 显示模拟模式橙色徽章参数验证所有 API 端点验证param_name是否在支持的参数集中输入验证检查必需字段公钥、私钥、签名等是否非空6.2.3 注意事项⚠️ 本工具为演示与教育用途密钥以明文 JSON 存储在本地磁盘。生产环境中应使用密钥管理系统KMS或硬件安全模块HSM保护私钥。本工具不建议直接用于生产加密或签名操作。7. 算法工作流程详解7.1 ML-KEM (FIPS 203) — 密钥封装机制ML-KEM 是一种基于模块格Module-Lattice的密钥封装机制用于在不安全信道中安全地协商共享密钥。工作流程Alice Bob │ │ │ ① KeyGen → (pk, sk) │ │ │ │ ② 发送 pk ──────────────────→ │ │ │ ③ Encapsulate(pk) → (ct, ss) │ │ │ ④ ←───────────── 发送 ct ───── │ │ │ │ ⑤ Decapsulate(sk, ct) → ss │ │ │ │ ss ≡ ss双方共享相同密钥 │关键属性共享密钥ss固定 32 字节256-bit可用于后续 AES-256 等对称加密密文ct的大小与参数级别相关768B ~ 1568B即使攻击者截获pk和ct也无法恢复ss基于格问题的困难性7.2 ML-DSA (FIPS 204) — 数字签名算法ML-DSA 是一种基于模块格的数字签名算法用于身份认证和消息完整性验证。工作流程签名者 验证者 │ │ │ ① KeyGen → (pk, sk) │ │ │ │ ② 发送 pk ──────────────────→ │ │ │ │ ③ Sign(sk, message) → sig │ │ │ │ ④ 发送 (message, sig) ───────→ │ │ │ ⑤ Verify(pk, message, sig) → ✓/✗关键属性签名大小远小于 SLH-DSA2,420B ~ 4,627B vs 7,856B ~ 49,856B签名速度更快适合高频签名场景安全性基于格问题假设7.3 SLH-DSA (FIPS 205) — 基于哈希的签名算法SLH-DSA 是一种无状态stateless的基于哈希的数字签名算法作为 ML-DSA 的备用方案。关键属性安全性仅依赖哈希函数SHA-2 或 SHAKE不依赖格假设提供数学上可证明的安全性reducible security proof公钥/私钥非常小32B ~ 128B但签名体积较大7,856B ~ 49,856B“s”small变体签名更小但速度更慢“f”fast变体签名更大但速度更快无状态设计每次签名独立无需维护签名状态计数器8. 运行与部署8.1 启动方式双击启动.bat脚本自动检查 Python 环境首次运行自动创建venv/虚拟环境并安装依赖后续运行直接激活已有虚拟环境启动 Flask 服务127.0.0.1:5200自动打开浏览器8.2 停止方式在命令行窗口按CtrlC关闭命令行窗口或通过taskkill /F /PID 进程PID终止8.3 系统要求项目要求操作系统Windows 10/11Python≥ 3.10需预装内存≥ 4GBSLH-DSA 签名操作需要浏览器Chrome/Edge/Firefox 现代版本磁盘空间≥ 500MB含 venv pqcrypto C 扩展8.4 首次运行依赖安装requirements.txt内容flask3.0 pqcrypto0.4.0 cffi1.17pqcrypto 包含预编译的 Windows wheel安装过程无需本地 C 编译器。9. 测试验证9.1 已完成的验证测试测试项结果说明pqcrypto 导入✅所有 KEM 和 Sign 模块正常加载ML-KEM-768 完整流程✅KeyGen → Encapsulate → Decapsulate共享密钥一致ML-DSA-65 完整流程✅KeyGen → Sign → Verify签名验证通过SLH-DSA-SHA2-128s 完整流程✅KeyGen → Sign → Verify签名验证通过所有 SLH-DSA 12 变体✅每个变体密钥大小与签名大小均与 FIPS 规范一致Flask API 启动✅服务正常监听 127.0.0.1:5200API /api/info✅返回正确的算法参数与 pqcrypto 状态API /api/ml-kem/keygen✅密钥生成 保存功能正常密钥存储 CRUD✅save/load/list/delete 功能正常浏览器 UI 渲染✅暗色主题、标签切换、操作卡片正常显示9.2 密钥大小验证结果所有算法的密钥/签名大小与 pqcrypto 模块常量完全一致与 FIPS 规范匹配。10. 附录10.1 FIPS 标准参考FIPS 203: ML-KEM Standard — Module-Lattice-Based Key-Encapsulation MechanismFIPS 204: ML-DSA Standard — Module-Lattice-Based Digital Signature AlgorithmFIPS 205: SLH-DSA Standard — Stateless Hash-Based Digital Signature Algorithm10.2 pqcrypto 库参考GitHub: github.com/cryptoang/pqcrypto基于 PQClean 项目github.com/PQClean/PQCleanPQClean 是 NIST PQC 标准化过程的官方参考实现集合10.3 算法命名对照表FIPS 标准名pqcrypto 模块名原 NIST 提交名ML-KEM-512pqcrypto.kem.ml_kem_512Kyber-512ML-KEM-768pqcrypto.kem.ml_kem_768Kyber-768ML-KEM-1024pqcrypto.kem.ml_kem_1024Kyber-1024ML-DSA-44pqcrypto.sign.ml_dsa_44Dilithium2ML-DSA-65pqcrypto.sign.ml_dsa_65Dilithium3ML-DSA-87pqcrypto.sign.ml_dsa_87Dilithium5SLH-DSA-SHA2-128spqcrypto.sign.sphincs_sha2_128s_simpleSPHINCS±SHA2-128s-simpleSLH-DSA-SHA2-128fpqcrypto.sign.sphincs_sha2_128f_simpleSPHINCS±SHA2-128f-simple………10.4 与传统密码算法的对比属性RSA-2048ECC P-256ML-KEM-768ML-DSA-65SLH-DSA-SHA2-128f抗量子安全❌❌✅✅✅PK 大小256 B64 B1,184 B1,952 B32 BSK 大小256 B32 B2,400 B4,032 B64 B签名/CT 大小256 B64 B1,088 B3,293 B17,088 B量子威胁Shor 算法可破Shor 算法可破格问题困难格问题困难仅依赖哈希安全