Cryptopals Challenge Solutions w/Tutorials https://cryptopals.com/
[X] Set 1, Challenge 1: Convert hex to base64 tutorial!
[X] Set 1, Challenge 2: Fixed XOR tutorial!
[X] Set 1, Challenge 3: Single-byte XOR cipher tutorial!
[X] Set 1, Challenge 4: Detect single-character XOR tutorial!
[X] Set 1, Challenge 5: Implement repeating-key XOR tutorial!
[X] Set 1, Challenge 6: Break repeating-key XOR tutorial!
[X] Set 1, Challenge 7: AES in ECB mode tutorial!
[X] Set 1, Challenge 8: Detect AES in ECB mode tutorial!
[X] Set 2, Challenge 9: Implement PKCS#7 padding tutorial!
[X] Set 2, Challenge 10: Implement CBC mode tutorial!
[X] Set 2, Challenge 11: An ECB/CBC detection oracle tutorial!
[X] Set 2, Challenge 12: Byte-at-a-time ECB decryption (Simple) tutorial!
[X] Set 2, Challenge 13: ECB cut-and-paste tutorial!
[X] Set 2, Challenge 14: Byte-at-a-time ECB decryption (Harder) tutorial!
[X] Set 2, Challenge 15: PKCS#7 padding validation tutorial!
[X] Set 2, Challenge 16: CBC bitflipping attacks tutorial!
[X] Set 3, Challenge 17: The CBC padding oracle tutorial!
[X] Set 3, Challenge 18: Implement CTR, the stream cipher mode tutorial!
[ ] Set 3, Challenge 19: Break fixed-nonce CTR mode using substitutions
[ ] Set 3, Challenge 20: Break fixed-nonce CTR statistically
[ ] Set 3, Challenge 21: Implement the MT19937 Mersenne Twister RNG
[ ] Set 3, Challenge 22: Crack an MT19937 seed
[ ] Set 3, Challenge 23: Clone an MT19937 RNG from its output
[ ] Set 3, Challenge 24: Create the MT19937 stream cipher and break it