Perfil Crypto¶
Tradução informativa da especificação em inglês, atualizada em 28/10/2026. A versão normativa é a inglesa: esta tradução não tem valor normativo e, em caso de divergência, prevalece o inglês. Identificadores e blocos de código são mantidos sem tradução.
Estado: Publicado — v2.0
Escopo: Seleção de algoritmos criptográficos, assinaturas compostas, agilidade criptográfica e política de verificador
Finalidade¶
O núcleo do DCP exige assinaturas criptográficas e funções hash, mas deliberadamente não impõe algoritmos específicos. O perfil Crypto define as escolhas criptográficas concretas usadas no DCP v2.0 e os mecanismos para fazê-las evoluir ao longo do tempo.
Essa separação garante que:
- O protocolo do núcleo sobreviva às transições de algoritmos (por exemplo, a migração pós-quântica) sem mudanças estruturais
- Os verificadores possam aplicar as suas próprias políticas de algoritmos conforme o contexto de risco
- As implementações possam começar com algoritmos clássicos e adotar os pós-quânticos quando estiverem prontas
- A descontinuação de um algoritmo não quebre a especificação do núcleo
O que fica aqui (não no núcleo)¶
Registro de algoritmos¶
O conjunto de algoritmos de assinatura aprovados (Ed25519, ML-DSA-65, ML-DSA-87, SLH-DSA-192f), mecanismos de encapsulamento de chaves (X25519, ML-KEM-768, híbrido X25519+ML-KEM-768) e algoritmos hash (SHA-256, SHA3-256, SHA-384).
Nota informativa (25/10/2026), não faz parte do perfil: nenhum SDK do DCP-AI implementa ainda o ML-DSA-87, e nenhum exporta a troca híbrida X25519+ML-KEM-768 (docs/NIST_CONFORMITY.md).
Veja a seção 2 do DCP-AI v2.0 para o registro completo.
Vinculação de assinaturas compostas¶
O protocolo de vinculação pq_over_classical, que garante que nem o componente de assinatura clássico nem o pós-quântico possa ser removido:
- A assinatura clássica assina
context || 0x00 || payload - A assinatura PQ assina
context || 0x00 || payload || classical_sig
Veja a seção 5 do DCP-AI v2.0 para o protocolo de vinculação e o formato de transmissão.
Separação de domínios¶
Etiquetas de contexto que impedem ataques de reenvio entre artefatos. Cada tipo de artefato tem uma etiqueta de contexto única (por exemplo, DCP-AI.v2.AgentPassport, DCP-AI.v2.Intent).
Veja a seção 4 do DCP-AI v2.0 para a lista completa de etiquetas.
Modos de verificação¶
Política decidida pelo verificador, que determina quais componentes de assinatura são exigidos:
classical_only— apenas assinaturas clássicas são exigidashybrid_preferred— a clássica é exigida e a PQ é recomendadahybrid_required— a clássica e a PQ são exigidaspq_only— apenas assinaturas PQ são exigidas (fase 3)
Veja a seção 7 do DCP-AI v2.0 para os modos de verificação e o formato da política de verificador.
Agilidade criptográfica¶
O sistema de avisos de algoritmos, que permite que autoridades de governança descontinuem ou revoguem algoritmos por meio de avisos assinados, com resposta automatizada dos verificadores.
Veja a seção 13.2 do DCP-AI v2.0 e a lacuna nº 4 do relatório de AUDIT.
Cadeias de hash duplo¶
Cadeias de hash SHA-256 e SHA3-256 paralelas para as entradas de auditoria, dando continuidade se uma família de hash for comprometida.
Veja a seção 10.3 do DCP-AI v2.0.
O que permanece no núcleo¶
- O requisito de que os artefatos sejam assinados (mas não com qual algoritmo)
- O requisito de que as entradas de auditoria sejam encadeadas por hash (mas não com qual função hash)
- A estrutura do bundle e o modelo de verificação
- Os conceitos
bundle_hashemerkle_root
Referências normativas¶
- DCP-AI v2.0 — seções 2 (registro de algoritmos), 4 (separação de domínios), 5 (assinaturas compostas), 7 (modos de verificação), 10.3 (hash duplo), 13.2 (sistema de avisos)
- Conformidade com o NIST — conformidade com a criptografia pós-quântica do NIST
- Modelo de segurança — modelo de ameaças e camadas de proteção
Notas de implementação (informativas)¶
Acrescentadas em 25/10/2026. Não normativas. Estas notas não acrescentam nenhum requisito nem mudam nada do que está acima: descrevem como o código de referência em
mainse relaciona com este texto. Onde divergem, prevalece o texto normativo acima.
- A vinculação composta torna a remoção detectável apenas onde o verificador a exige. O modo que conta é
o efetivo que o verificador resolve, que pode ser mais estrito que o
default_modesolicitado depois de aplicados o nível de risco, o nível de segurança e a política. Nos verificadores dos SDKs, remover a assinatura PQ e rerrotular a vinculação comoclassical_onlyé aceito quando o modo efetivo éclassical_onlyouhybrid_preferred(com um aviso emhybrid_preferred), e recusado quando éhybrid_requiredoupq_only. Apenas uma assinatura PQ explicitamente ausente pode ser tolerada: uma assinatura PQ presente sobpq_over_classicale inválida é recusada em todos os modos, e todas as demais verificações continuam valendo. pq_onlynos verificadores dos SDKs continua esperando a vinculaçãopq_over_classicalcom os bytes da assinatura clássica presentes, porque a assinatura PQ os cobre; ele não aceita um bundle que traga apenas uma assinatura PQ.- O sistema de avisos não é automático: um verificador aplica um aviso quando o seu operador o carrega e chama os auxiliares de avisos ou ajusta a política de acordo.
- Os verificadores dos SDKs verificam a cadeia de auditoria SHA-256 e a raiz de Merkle; desde
@dcp-ai/sdk2.2.1,@dcp-ai/wasm2.1.1,dcp-ai2.10.1 (PyPI), Go v2.11.1 e Rustdcp-ai2.11.1, também verificam os campos secundários SHA3-256 presentes (V2-11 do VERIFICATION.md e sua errata), o que as versões anteriores não fazem.