Cybersecurity and AI Architecture Fellow of the British Computer Society (FBCS)
1-Day Course · Intermediate · Hands-on
Cryptography · SEC-341

Cryptography for Developers

Use cryptography correctly. This one-day course covers symmetric encryption (AES-GCM), asymmetric crypto (RSA, ECDSA, Ed25519), password hashing (Argon2id, bcrypt), key derivation, TLS configuration, certificate management, common crypto mistakes, key management (KMS, Vault) and post-quantum readiness. Hands-on in Python, Node.js, Java and Go.

SEC-341. The syllabus

One day, from primitives to production

Hands-on cryptography in four languages. Every module includes implementation exercises. (Times are approximate.)

Morning

Symmetric, Asymmetric and Password Hashing

S1-00 Symmetric Encryption: AES-GCM Hands-On 1.5 hrs

Implement AES-256-GCM encryption and decryption in Python, Node.js, Java and Go. Understand authenticated encryption, nonce generation (never reuse), and additional authenticated data (AAD). Compare AES-GCM with AES-CBC and understand why CBC with HMAC is fragile. Each language uses its standard library, not a wrapper.

S1-01 Asymmetric Cryptography: RSA and ECDSA 1 hr

Generate RSA and ECDSA key pairs. Sign and verify data with ECDSA (P-256, P-384) and RSA-PSS. Encrypt and decrypt with RSA-OAEP. Understand key sizes, performance tradeoffs, and when to use each algorithm. Cover Ed25519 as the modern alternative.

S1-02 Password Hashing: Argon2id, bcrypt, scrypt 1 hr

Passwords must be hashed with memory-hard functions. Implement Argon2id (preferred), bcrypt, and scrypt. Understand the tuning parameters (time, memory, parallelism) and how to set them for your hardware. Cover the migration path from older hashing to Argon2id without forcing password resets.

S1-03 Key Derivation: HKDF and PBKDF2 1 hr

Derive keys from passwords (PBKDF2) and from shared secrets (HKDF). Understand the extract-then-expand pattern. Implement both in Python and Node.js. Cover when to use each and why HKDF is not a password hashing function.

S1-04 Random Number Generation (CSPRNG) 0.5 hr

Cryptographic security depends on unpredictable random numbers. Use the OS CSPRNG (os.urandom, crypto.randomBytes, SecureRandom, crypto/rand). Understand why Math.random() and random.random() are not cryptographically secure. Cover seeding, entropy sources, and testing randomness.

Afternoon

TLS, Key Management and Post-Quantum

S1-05 TLS Configuration 1 hr

Configure TLS correctly for web servers and APIs. Cover TLS 1.3 (preferred), cipher suite selection, HSTS, OCSP stapling, and certificate transparency. Test your configuration with testssl.sh and SSL Labs. Understand the common misconfigurations that downgrade security.

S1-06 Certificate Management 1 hr

Manage X.509 certificates for TLS and code signing. Cover certificate lifecycle (issuance, renewal, revocation), Let's Encrypt automation, private CAs for internal services, and certificate pinning. Implement automated certificate renewal in a CI/CD pipeline.

S1-07 Common Crypto Mistakes 1 hr

Review the most common cryptographic mistakes developers make: ECB mode, nonce reuse, unauthenticated encryption, using encryption for integrity, weak random numbers, key in source code, and rolling your own crypto. Each mistake is demonstrated and then corrected.

S1-08 Key Management: KMS and Vault 1.5 hrs

Store keys in hardware or managed services, not in your application. Implement key management with AWS KMS, GCP KMS, Azure Key Vault, and HashiCorp Vault. Cover envelope encryption, key rotation, access policies, and audit logging. Understand the operational model for each option.

S1-09 Post-Quantum Readiness 1 hr

Quantum computers will break RSA and ECC. Understand the timeline, the NIST post-quantum standards (ML-KEM, ML-DSA, SLH-DSA), and what you should do today: inventory your cryptographic assets, plan migration to hybrid (classical + PQ) schemes, and test PQ algorithms in your environment.

S1-10 Crypto Lab and Wrap-Up 1.5 hrs

Hands-on lab: given a set of cryptographic operations implemented incorrectly (wrong mode, reused nonce, missing authentication, weak random), identify each flaw and fix it. Then implement a complete encrypt-sign-verify-decrypt pipeline. Course wrap-up and take-away reference card.

~16 hrs
Total instructional hours
16
Individual modules
1 day
Delivery days
Reserve a place

Get cryptography right, in one day.

One day of hands-on cryptography for developers. AES-GCM, ECDSA, password hashing, TLS, key management and post-quantum readiness. Four languages, one day.

1 day intensive 4 languages Python/Node/Java/Go Private corporate cohorts available
Reserve a Place

Corporate and sovereign cohorts, and bespoke on-site delivery, on request.