Perfil Crypto¶
Traducción informativa de la especificación en inglés, actualizada el 28/10/2026. La versión normativa es la inglesa: esta traducción no tiene valor normativo y, si difieren, prevalece el inglés. Los identificadores y bloques de código se conservan sin traducir.
Estado: Publicado — v2.0
Alcance: Selección de algoritmos criptográficos, firmas compuestas, agilidad criptográfica y política de verificador
Propósito¶
El núcleo de DCP exige firmas criptográficas y funciones hash, pero deliberadamente no impone algoritmos concretos. El perfil Crypto define las elecciones criptográficas concretas usadas en DCP v2.0 y los mecanismos para hacerlas evolucionar con el tiempo.
Esta separación garantiza que:
- El protocolo del núcleo sobrevive a las transiciones de algoritmos (p. ej., la migración poscuántica) sin cambios estructurales
- Los verificadores pueden aplicar sus propias políticas de algoritmos según el contexto de riesgo
- Las implementaciones pueden empezar con algoritmos clásicos y adoptar los poscuánticos cuando estén listas
- La obsolescencia de un algoritmo no rompe la especificación del núcleo
Qué vive aquí (no en el núcleo)¶
Registro de algoritmos¶
El conjunto de algoritmos de firma aprobados (Ed25519, ML-DSA-65, ML-DSA-87, SLH-DSA-192f), mecanismos de encapsulación de claves (X25519, ML-KEM-768, híbrido X25519+ML-KEM-768) y algoritmos hash (SHA-256, SHA3-256, SHA-384).
Nota informativa (25/10/2026), no forma parte del perfil: ningún SDK de DCP-AI implementa aún ML-DSA-87, y ninguno exporta el intercambio híbrido X25519+ML-KEM-768 (docs/NIST_CONFORMITY.md).
Véase la sección 2 de DCP-AI v2.0 para el registro completo.
Vinculación de firmas compuestas¶
El protocolo de vinculación pq_over_classical, que garantiza que no puede eliminarse ni el componente de firma clásico ni el poscuántico:
- La firma clásica firma
context || 0x00 || payload - La firma PQ firma
context || 0x00 || payload || classical_sig
Véase la sección 5 de DCP-AI v2.0 para el protocolo de vinculación y el formato de intercambio.
Separación de dominios¶
Etiquetas de contexto que impiden ataques de reenvío entre artefactos. Cada tipo de artefacto tiene una etiqueta de contexto única (p. ej., DCP-AI.v2.AgentPassport, DCP-AI.v2.Intent).
Véase la sección 4 de DCP-AI v2.0 para la lista completa de etiquetas.
Modos de verificación¶
Política que decide el verificador y que determina qué componentes de firma se exigen:
classical_only— solo se exigen firmas clásicashybrid_preferred— se exige la clásica y se recomienda la PQhybrid_required— se exigen la clásica y la PQpq_only— solo se exigen firmas PQ (fase 3)
Véase la sección 7 de DCP-AI v2.0 para los modos de verificación y el formato de la política de verificador.
Agilidad criptográfica¶
El sistema de avisos de algoritmos, que permite a las autoridades de gobernanza declarar obsoletos o revocar algoritmos mediante avisos firmados, con una respuesta automatizada de los verificadores.
Véase la sección 13.2 de DCP-AI v2.0 y la carencia n.º 4 del informe de AUDIT.
Cadenas de doble hash¶
Cadenas de hash SHA-256 y SHA3-256 paralelas para las entradas de auditoría, que dan continuidad si una familia de hash queda comprometida.
Véase la sección 10.3 de DCP-AI v2.0.
Qué permanece en el núcleo¶
- El requisito de que los artefactos estén firmados (pero no con qué algoritmo)
- El requisito de que las entradas de auditoría estén encadenadas por hash (pero no con qué función hash)
- La estructura del bundle y el modelo de verificación
- Los conceptos
bundle_hashymerkle_root
Referencias normativas¶
- DCP-AI v2.0 — secciones 2 (registro de algoritmos), 4 (separación de dominios), 5 (firmas compuestas), 7 (modos de verificación), 10.3 (doble hash), 13.2 (sistema de avisos)
- Conformidad con el NIST — conformidad con la criptografía poscuántica del NIST
- Modelo de seguridad — modelo de amenazas y capas de protección
Notas de implementación (informativas)¶
Añadidas el 25/10/2026. No normativas. Estas notas no añaden ningún requisito ni cambian nada de lo anterior: describen cómo se relaciona el código de referencia de
maincon este texto. Donde difieren, prevalece el texto normativo anterior.
- La vinculación compuesta hace detectable la eliminación solo donde el verificador la exige. El modo que cuenta es
el efectivo que resuelve el verificador, que puede ser más estricto que el
default_modesolicitado una vez aplicados el nivel de riesgo, el nivel de seguridad y la política. En los verificadores de los SDK, quitar la firma PQ y reetiquetar la vinculación comoclassical_onlyse acepta cuando el modo efectivo esclassical_onlyohybrid_preferred(con un aviso enhybrid_preferred), y se rechaza cuando eshybrid_requiredopq_only. Solo puede tolerarse una firma PQ explícitamente ausente: una firma PQ presente bajopq_over_classicale inválida se rechaza en todos los modos, y todas las demás comprobaciones siguen aplicándose. pq_onlyen los verificadores de los SDK sigue esperando la vinculaciónpq_over_classicalcon los bytes de la firma clásica presentes, porque la firma PQ los cubre; no acepta un bundle que lleve solo una firma PQ.- El sistema de avisos no es automático: un verificador aplica un aviso cuando su operador lo carga y llama a las ayudas de avisos o ajusta la política en consecuencia.
- Los verificadores de los SDK comprueban la cadena de auditoría SHA-256 y la raíz de Merkle; desde
@dcp-ai/sdk2.2.1,@dcp-ai/wasm2.1.1,dcp-ai2.10.1 (PyPI), Go v2.11.1 y Rustdcp-ai2.11.1 también comprueban los campos secundarios SHA3-256 presentes (V2-11 de VERIFICATION.md y su errata), que las versiones anteriores no comprueban.