Cryptography Compendium — Filter & Quality Criteria

Filtro "Para o Kode" + critérios de qualidade do topic cryptography. Consumido por /k-compendium cryptography durante Passos 3 e 2.


Estrutura do compendium cryptography

compendium/cryptography/
├── INDEX.md
├── 01-timeline.md                ← linha do tempo ~1900 a.C. → hoje
├── 02-fundamentos.md             ← Kerckhoffs, Shannon, OWF, IND-CPA/CCA, modelos de adversário
├── 03-classica.md                ← substituição, transposição, Enigma, Lorenz, Purple
├── 04-simetrica.md               ← AES, ChaCha20, modos (GCM, XTS, SIV, OCB), AEAD
├── 05-assimetrica.md             ← DH, RSA, ECC (P-256, secp256k1, Curve25519), EdDSA, Schnorr, BLS
├── 06-hash-e-mac.md              ← SHA-2/3, BLAKE3, HMAC, KDFs (Argon2, scrypt, HKDF)
├── 07-protocolos.md              ← TLS, SSH, IPsec, OAuth/OIDC, Signal, MLS, Noise, WireGuard
├── 08-pos-quantica.md            ← ML-KEM, ML-DSA, SLH-DSA, FALCON, HQC; lattice/code/hash/isogeny
├── 09-confidential-computing.md  ← TPM, SGX, TDX, SEV, ARM CCA, FHE, MPC, ZKP
├── 10-criptomoeda.md             ← primitivas usadas em Bitcoin/crypto (cross-ref blockchain compendium)
├── 11-ataques.md                 ← criptanálise, side-channel, protocolo, implementação, físicos, quantum
├── 12-pessoas.md                 ← criptógrafos canônicos
├── 13-incidentes.md              ← Crypto AG, Heartbleed, ROCA, KRACK, etc.
└── 14-koder-aplicada.md          ← escolhas cripto da Koder Stack

Critérios de qualidade por seção

Para novos primitivos (04-simetrica, 05-assimetrica, 06-hash-e-mac)

Um primitivo merece entrada se atender ≥ 2 critérios:

  • Padronizado em FIPSSPRFC/ISO OU
  • Adotado em pelo menos 1 protocolo major (TLS, SSH, signal, IPSec) OU
  • Quebrou ou se aproximou de quebrar primitivo existente OU
  • Atinge propriedade nova (PQ-resistant, leakage-resilient, threshold-friendly)

Para protocolos (07-protocolos)

Um protocolo merece entrada se:

  • Tem RFC publicada ou draft IETF maduro (≥ -10 ou WGLC) OU
  • É deployment-ready em vendor major (Apple, Google, Mozilla, Microsoft) OU
  • Tem implementação open-source revisada (Cloudflare, Mozilla NSS, BoringSSL)

Para pesquisa PQC (08-pos-quantica)

Pesquisa merece entrada se:

  • Avança roadmap NIST (PQC competition, additional signatures, round 4) OU
  • Adiciona security level ou variante usável OU
  • Demonstra ataque sub-exponencial em scheme submetido

Para confidential computing (09-confidential-computing)

Conteúdo merece entrada se:

  • Adiciona TEE (hardware) novo OU
  • Atinge milestone em FHE (CKKS, BFV, TFHE, BGV) ou MPC (SPDZ, SHE) OU
  • ZKP scheme com proving time < segundos em problema prático

Para ataques (11-ataques)

Ataque merece entrada se:

  • Reduz security level efetivo de primitivo padronizado OU
  • Custo prático (< $1M, < 1 ano) OU
  • Side-channel novo em hardware atual OU
  • Novo tipo de attack model (fault, transient, microarch)

Para incidentes (13-incidentes)

Incidente merece entrada se:

  • Afetou > 1M usuários OU > 1 vendor major OU
  • Exposed weakness arquitetural (não só implementation bug) OU
  • Mudou recomendação canônica (algoritmo deprecated, RFC obsoleta, FIPS revisado)

Para timeline (01-timeline)

Evento merece entrada se:

  • É publicação canônica (papers, standards, ataques notáveis) OU
  • Quebra de cipher / migração obrigatória OU
  • Marco regulatório (FIPS adoption, GDPR Art. 32, ICP-Brasil DOC, EU eIDAS)

Filtro para o Kode

Priorizar informações que respondem a:

  1. Qual primitivo usar no Koder Signer (assinatura ICP-Brasil)? → RSA-PKCS1 v1.5 (legado A1), RSA-PSS / ECDSA (preferido), futuro ML-DSA pra hybrid
  2. Qual KEM/KDF pro Koder ID? → X25519 + HKDF-SHA256 atual; hybrid X25519 + ML-KEM-768 no roadmap
  3. TLS config canônica nos serviços Koder Jet? → TLS 1.3 only; cipher suites AEAD; ALPN h2/h3
  4. Como armazenar senhas no Koder ID? → Argon2id; parameters revisitados a cada release
  5. Hash pra integrity check (kpkg, ISO, releases)? → BLAKE3 (perf) ou SHA-256 (compat); migration via metadata
  6. Confidential compute em VMs (s.khost1)? → SEV-SNP quando disponível; TDX pra Intel; ARM CCA pra Apple Silicon futuro
  7. E2E encryption em Koder Talk? → Signal Protocol (X3DH + Double Ratchet); MLS pra grupos > 50
  8. Cert chain validation (ICP-Brasil)? → cadeia AC Raiz V11/V12; OCSP stapling + CRL fallback; conforme DOC-ICP-04
  9. PQC migration timeline pra Stack? → começar hybrid em endpoints client-facing 2026-H2; full PQ 2028+
  10. Como auditar implementações cripto na Stack? → testar contra known-answer vectors (Wycheproof, NIST CAVP); fuzz com libFuzzer; constant-time check com ctgrind

Regras de escrita por arquivo

O que SEMPRE incluir:

  • Paper acadêmico: título + autores + ano + venue + DOIeprint (`eprint.iacr.orgYYYY/NNN`)
  • RFC: RFC NNNN — Título + link datatracker.ietf.org/doc/html/rfcNNNN
  • NIST: FIPS PUB N ou SP 800-NN + link csrc.nist.gov
  • CVE: formato CVE-YYYY-NNNNN + NVD link ou breve descrição
  • Padrão IEC/ISO: ISO/IEC NNNNN
  • Tamanhos: chaveblocosaída em bits, sempre
  • Status: ativo, deprecated, broken, embargado
  • Recomendação prática: "use", "evite", "proibido em FIPS após 2030"

O que NUNCA fazer:

  • Inventar atribuição histórica — se data não for sabida, "década de NN" ou "circa AAAA"
  • Atribuir algoritmo a um único autor quando há equipe ou disputa de prioridade
  • Confundir cipher (algoritmo) com mode (modo de operação) com construction (esquema completo)
  • Misturar key length com block length com security level

Notação consistente (já em INDEX.md):

Símbolo Significado
\(E_k(P)\) encryption: chave \(k\), plaintext \(P\)
\(D_k(C)\) decryption: chave \(k\), ciphertext \(C\)
\(H(m)\) hash de \(m\)
\(text{MAC}_k(m)\) tag MAC de \(m\) com chave \(k\)
\(oplus\) XOR
\(lambda\) parâmetro de segurança
\(text{negl}(lambda)\) função negligível em \(lambda\)