RC4 (Rivest Cipher 4, 1987). A stream cipher designed by Ron Rivest at RSA Security. Internally it maintains a 256-byte state permutation S and two indices i and j. The Key Scheduling Algorithm (KSA) seeds S from the key; the Pseudo-Random Generation Algorithm (PRGA) outputs one keystream byte per step. Variable-length key from 40 to 2048 bits. RC4's selling points were speed (the simplest stream cipher to implement) and minimal memory footprint. It powered SSL 3.0 / TLS 1.0 / TLS 1.1 web traffic, WEP, WPA-TKIP and countless proprietary protocols.
RC4's death was slow but inevitable:
- 1995: Wagner and Goldberg showed weak keys in RC4's KSA.
- 2001: Fluhrer, Mantin and Shamir published the FMS attack, exploiting the first-byte bias to recover WEP keys with a few million captured packets.
- 2005: Klein's attack reduced the WEP break to under a minute on a typical home router.
- 2013: Microsoft, Mozilla and Google began deprecating RC4 in browsers.
- 2015: RFC 7465 formally prohibited RC4 in TLS.
RC4 is dead. The only encounter an examiner has with RC4 in 2026 is on legacy hardware (very old Cisco gear, ancient Windows DC traffic, MS Office 97-2003 password protection on .doc files), in malware that uses RC4 as a configuration-decryption layer, and in WEP-secured IoT devices that should be replaced.
Blowfish (Bruce Schneier, 1993). A 64-bit block, Feistel-style cipher with 16 rounds and a variable key length of 32 to 448 bits. Public domain (unpatented and free for any use), which made it the symmetric cipher of choice for open-source projects in the 1990s. It is fast on 32-bit CPUs but the 64-bit block makes it vulnerable to Sweet32 birthday attacks for long sessions (after roughly 32 GB on one key, ciphertext collisions become probable, leaking plaintext via XOR). Blowfish is not recommended for new bulk-encryption applications.
The one place Blowfish survives in mainstream production is bcrypt, the password-hashing function based on a deliberately expensive Blowfish key schedule. Niels Provos and David Mazieres designed bcrypt in 1999; it is still the default password hash in PostgreSQL, OpenBSD, and many Rails / Laravel / Django stacks. bcrypt's strength is the tunable cost factor (work parameter from 4 to 31), which lets defenders make password cracking deliberately slow.
Twofish (1998). Schneier's successor to Blowfish, an AES finalist with a 128-bit block and 128/192/256-bit keys. Lost to Rijndael in the AES competition but is still used in some VeraCrypt installations (selectable as an alternative cipher) and in older PGP versions. No serious cryptanalytic break is known.