Essential software - python 2.7 (and 3.0, sadly) - ipython - pycrypto - pypng - gmpy - hashpump(y) - requests - ncat - pari/GP - sage - fplll - Web browser with PDF reader - pngcheck - binwalk Essential attacks - Frequency analysis (for Caesar and Vigenere) - Crib-dragging for OTP reuse - Meet-in-the-middle attacks for iterated ciphers - Hash length extension attacks - CBC padding oracle attack - CBC attacker-controlled IV - Wiener's attack on RSA - Fermat Difference-of-Squares Factorization - Boneh-Durfee-Frankel on RSA, bruting "k" - d-bit fault attack on RSA - CRT fault attack on RSA - Hastad's broadcast attack on RSA - Pohlig-Hellman attack on Diffie-Hellman - Baby-step-giant-step (Shanks) and Pollard Kangaroo for narrow exponents - Shamir's lattice-reduction on Merkle-Hellman - HMAC-CRC32 forgery - Hill cipher known-plaintext attack - Compress-before-encryption length snooping - Nguyen's attack on Goldreich–Goldwasser–Halevi https://kel.bz/post/lattices/ Essential culture - The Code Book, Simon Singh - Cryptonomicon, Neal Stephenson - Between Silk and Cyanide, Leo Marks - Sneakers (1992 film) - The Imitation Game (2014 film) - Citizenfour (2014 documentary)