« Previous
Next »
Summary
Cryptography track summary: the mental model, daily reflexes, and the lifelong discipline of "vetted libraries everywhere".
Crypto — track summary
EXAMPLE
# ===== Mental model ===== # - Confidentiality + Integrity + Authenticity (CIA + Auth) # - Symmetric (AEAD) for bulk encryption # - Asymmetric (Ed25519, X25519, RSA) for signatures + key exchange # - Hashes (SHA-256, BLAKE3) for integrity + lookup # - Password hashes (Argon2id) for credential storage # - HMAC for message integrity with a shared key # - HKDF for key derivation # - CSPRNG for ALL randomness with security implications # ===== Daily reflexes ===== # - Vetted libraries, every time # - AEAD by default: AES-GCM or ChaCha20-Poly1305 # - CSPRNG (crypto.randomBytes / secrets.token_bytes) for secrets # - Argon2id for passwords (NEVER MD5 / SHA family for passwords) # - timingSafeEqual / hmac.compare_digest for MAC comparisons # - KMS for keys (envelope encryption) # ===== Lifecycle reflexes ===== # - Document key rotation + recovery + compromise PLAYBOOKS # - Pin algorithm versions + KEK + DEK separation # - Audit logs for every key use # - Rotate keys on a schedule (30-365 days depending on sensitivity) # - Practise recovery + compromise drills # ===== Architecture patterns ===== # - Envelope encryption for storage at rest # - TLS 1.3 in transit; mTLS for service-to-service # - Signed deployment artifacts (Sigstore, cosign) # - Tokens (JWT signed; JWE encrypted if sensitive payload) # - WebAuthn / passkeys instead of passwords where possible # ===== Defensive standards ===== # - OWASP Cryptographic Storage Cheat Sheet # - NIST SP 800-57 (key management) # - NIST SP 800-63 (digital identity) # - PCI DSS for payments # - FIPS 140 for federal / regulated workloads # ===== Stay current ===== # - Post-quantum migration starting (Kyber + Dilithium standards) # - Reading: Cryptography Engineering, Boneh-Shoup, Real-World Cryptography # - Watch: USENIX Security, BlackHat, RWC conferences # - Subscribe to security@ lists for your stack # ===== What NEVER to do ===== # - Roll your own crypto # - Trust crypto without third-party review for new protocols # - Hardcode keys in source / env vars # - Email keys to teammates # - Skip rotation # - Compare MACs with == # - Use random.random() / Math.random() for security # - Encrypt without authenticating (use AEAD) # ===== Closing thought ===== # Crypto is the operational discipline of trusting math + libraries while # operating keys safely over time. The math is the easy part; the lifecycle is # where teams fail. Pick vetted libraries, keep KMS at the centre, write the # playbooks, and practise them.
Why it matters
Crypto is library + library + library + lifecycle. Master AEAD + CSPRNG + Argon2id + HMAC + HKDF, run keys via KMS, document rotation + recovery + compromise. The math is settled; the operational discipline is where you keep secrets actually secret.
Tip: Tweak the snippet with Try it Yourself », then sit the quiz at the bottom of the page.
Example
Example
// Next: passkeys at scale, hybrid PQC TLS, AEAD-vs-KEM in apps, attestation.Try it Yourself »
« Previous
Next »
Discussion
Loading…