My attempt at completing the cryptopals crypto challenges and planning to learn Clojure on the side.
Run lein parallel-test
to run all challenges.
- Set 1
- Set 2
- Set 3
- The CBC padding oracle
- Implement CTR, the stream cipher mode
- Break fixed-nonce CTR mode using substitutions
- Break fixed-nonce CTR statistically
- Implement the MT19937 Mersenne Twister RNG
- Crack an MT19937 seed
- Clone an MT19937 RNG from its output
- Create the MT19937 stream cipher and break it
- Set 4
- Break "random access read/write" AES CTR
- CTR bitflipping
- Recover the key from CBC with IV=Key
- Implement a SHA-1 keyed MAC
- Break a SHA-1 keyed MAC using length extension
- Break an MD4 keyed MAC using length extension
- Implement and break HMAC-SHA1 with an artificial timing leak
- Break HMAC-SHA1 with a slightly less artificial timing leak
- Set 5
- Implement Diffie-Hellman
- Implement a MITM key-fixing attack on Diffie-Hellman with parameter injection
- Implement DH with negotiated groups, and break with malicious "g" parameters
- Implement Secure Remote Password (SRP)
- Break SRP with a zero key
- Offline dictionary attack on simplified SRP
- Implement RSA
- Implement an E=3 RSA Broadcast attack
- Set 6
- Set 7
- Set 8