iwantcoding.com
🔥 Daily 👥 Rooms 🏆 Top Log in Sign up
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 »

Discussion

Loading…

Next »