Solutions to some of the Matasano Crypto Challenges found at cryptopals.com
learn programming in C/python, and my first crack at GIT and GitHub.
##Set 1: Basics
Challenge | Progress |
---|---|
1: Set 1 challenges are complete |
|
##Set 2: Block crypto
Challenge | Progress |
---|---|
9: Implement PKCS#7 padding | Complete |
10:Implement CBC moode | Complete |
11: An ECB/CBC detection oracle | Complete |
12: Byte-at-a-time ECB decryption (simple) | Complete |
13: ECB cut-and-paste | complete |
14: Byte-at-a-time ECB decryption (Harder) | complete |
15: PKCS#7 padding validation | complete |
16: CBC bitflipping attacks | complete |
##Set 3: Block & stream crypto
Challenge | Progress |
---|---|
17: The CBC padding oracle | Complete |
18: Implement CTR, the stream cipher mode | |
19: Break fixed-nonce CTR mode using substitutions | |
20: Break fixed-nonce CTR statistically | |
21: Implement the MT19937 Mersenne Twister RNG | |
22: Crack an MT19937 seed | |
23: Clone an MT19937 RNG from its output | |
24: Create the MT19937 stream cipher and break it |
##Set 4: Stream crypto and randomness
Challenge | Progress |
---|---|
25: Break "random access read/write" AES CTR | |
26: CTR bitflipping | |
27: Recover the key from CBC with IV=Key | |
28: Implement a SHA-1 keyed MAC | |
29: Break a SHA-1 keyed MAC using length extension | |
30: Break an MD4 keyed MAC using length extension | |
32: Break HMAC-SHA1 with a slightly less artificial timing leak |
##Set 5: Diffie-Hellman and friends
Challenge | Progress |
---|---|
33: Implement Diffie-Hellman | |
34: Implement a MITM key-fixing attack on Diffie-Hellman with parameter injection | |
35: Implement DH with negotiated groups, and break with malicious "g" parameters | |
36: Implement Secure Remote Password (SRP) | |
37: Break SRP with a zero key | |
38: Offline dictionary attack on simplified SRP | |
39: Implement RSA | |
40: Implement an E=3 RSA Broadcast attack |