Crypto 配置文件¶
本文是英文规范的参考译文,更新于 28/10/2026。具有规范效力的是英文版:本译文不具规范效力,如有出入,以英文版为准。标识符和代码块保持原文,不作翻译。
状态: 已发布 — v2.0
范围: 密码算法选择、复合签名、密码敏捷性和验证器策略
目的¶
DCP 核心要求密码签名和哈希函数,但刻意不强制规定具体算法。Crypto 配置文件定义 DCP v2.0 中使用的具体密码选择,以及随时间演进这些选择的机制。
这种分离确保:
- 核心协议能在不做结构性改动的情况下经受算法过渡(例如后量子迁移)
- 验证器可以根据风险背景执行自己的算法策略
- 实现可以从经典算法开始,在准备好时再采用后量子算法
- 算法的弃用不会破坏核心规范
这里包含什么(不在核心中)¶
算法注册表¶
已批准的签名算法(Ed25519、ML-DSA-65、ML-DSA-87、SLH-DSA-192f)、密钥封装机制(X25519、ML-KEM-768、混合 X25519+ML-KEM-768)和哈希算法(SHA-256、SHA3-256、SHA-384)的集合。
参考性说明(2026 年 10 月 25 日),不属于配置文件: 目前还没有任何 DCP-AI SDK 实现 ML-DSA-87,也没有任何 SDK 导出混合 X25519+ML-KEM-768 交换(docs/NIST_CONFORMITY.md)。
完整的注册表见 DCP-AI v2.0 第 2 节。
复合签名绑定¶
pq_over_classical 绑定协议,确保经典签名和后量子签名组件都不能被剥离:
- 经典签名对
context || 0x00 || payload签名 - PQ 签名对
context || 0x00 || payload || classical_sig签名
绑定协议和传输格式见 DCP-AI v2.0 第 5 节。
域分离¶
防止跨工件重放攻击的上下文标签。每种工件类型都有唯一的上下文标签(例如 DCP-AI.v2.AgentPassport、DCP-AI.v2.Intent)。
完整的标签列表见 DCP-AI v2.0 第 4 节。
验证模式¶
由验证器决定的策略,确定需要哪些签名组件:
classical_only— 只需要经典签名hybrid_preferred— 需要经典签名,建议有 PQ 签名hybrid_required— 经典签名和 PQ 签名都需要pq_only— 只需要 PQ 签名(第 3 阶段)
验证模式和验证器策略格式见 DCP-AI v2.0 第 7 节。
密码敏捷性¶
算法公告系统,允许治理机构通过已签名的公告弃用或吊销算法,并由验证器自动响应。
见 DCP-AI v2.0 第 13.2 节以及 AUDIT 报告 的第 4 号缺口。
双哈希链¶
审计条目的并行 SHA-256 和 SHA3-256 哈希链,在某一哈希族被攻破时提供连续性。
见 DCP-AI v2.0 第 10.3 节。
什么留在核心中¶
- 工件必须签名的要求(但不规定用哪种算法)
- 审计条目必须以哈希链连接的要求(但不规定用哪种哈希函数)
- bundle 结构和验证模型
bundle_hash和merkle_root概念
规范性参考¶
- DCP-AI v2.0 — 第 2 节(算法注册表)、第 4 节(域分离)、第 5 节(复合签名)、第 7 节(验证模式)、第 10.3 节(双哈希)、第 13.2 节(公告系统)
- NIST 符合性 — 对 NIST 后量子密码的符合性
- 安全模型 — 威胁模型和保护层
实现说明(参考性)¶
2026 年 10 月 25 日添加。非规范性。 这些说明不增加任何要求,也不改变上文任何内容:它们描述
main上的参考代码 与本文的关系。两者不一致时,以上文的规范性文本为准。
- 复合绑定只在验证器要求时才使剥离可被发现。起作用的是验证器解析出的
有效模式,在应用风险等级、安全等级和策略之后,它可能比请求的
default_mode更严格。 在 SDK 验证器中,删除 PQ 签名并把绑定重新标注为classical_only时,若有效模式为classical_only或hybrid_preferred则会被接受(在hybrid_preferred下附带警告),若为hybrid_required或pq_only则被拒绝。 只有明确缺失的 PQ 签名才可能被容忍:在pq_over_classical下存在但 无效的 PQ 签名在任何模式下都会被拒绝,其他所有检查也照常适用。 - SDK 验证器中的
pq_only仍然要求带有经典签名字节的pq_over_classical绑定, 因为 PQ 签名覆盖了这些字节;它不接受只带 PQ 签名的 bundle。 - 公告系统不是自动的:只有当运营方加载公告并调用 公告辅助函数或相应地设置策略时,验证器才会应用它。
- SDK 验证器检查 SHA-256 审计链和 Merkle 根;自
@dcp-ai/sdk2.2.1、@dcp-ai/wasm2.1.1、dcp-ai2.10.1(PyPI)、Go v2.11.1 和 Rustdcp-ai2.11.1 起,它们也检查存在的二级 SHA3-256 字段(VERIFICATION.md 的 V2-11 及其勘误),更早的版本则不检查。