Cryptography Compendium — Filter & Quality Criteria
Filtro "Para o Kode" + critérios de qualidade do topic cryptography. Consumido por
/k-compendium cryptographydurante 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 StackCrité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:
- Qual primitivo usar no Koder Signer (assinatura ICP-Brasil)? → RSA-PKCS1 v1.5 (legado A1), RSA-PSS / ECDSA (preferido), futuro ML-DSA pra hybrid
- Qual KEM/KDF pro Koder ID? → X25519 + HKDF-SHA256 atual; hybrid X25519 + ML-KEM-768 no roadmap
- TLS config canônica nos serviços Koder Jet? → TLS 1.3 only; cipher suites AEAD; ALPN h2/h3
- Como armazenar senhas no Koder ID? → Argon2id; parameters revisitados a cada release
- Hash pra integrity check (kpkg, ISO, releases)? → BLAKE3 (perf) ou SHA-256 (compat); migration via metadata
- Confidential compute em VMs (s.khost1)? → SEV-SNP quando disponível; TDX pra Intel; ARM CCA pra Apple Silicon futuro
- E2E encryption em Koder Talk? → Signal Protocol (X3DH + Double Ratchet); MLS pra grupos > 50
- Cert chain validation (ICP-Brasil)? → cadeia AC Raiz V11/V12; OCSP stapling + CRL fallback; conforme DOC-ICP-04
- PQC migration timeline pra Stack? → começar hybrid em endpoints client-facing 2026-H2; full PQ 2028+
- 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+ linkdatatracker.ietf.org/doc/html/rfcNNNN - NIST:
FIPS PUB NouSP 800-NN+ linkcsrc.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\) |