Crypto Pals Exercises:

Python code using jupyter notebook to facilitate in completeing
the CryptoPals Exercises found here:  www.cryptopals.com

If you want to run the program challenges, open the Challenge_List
in jupyter notebook, uncomment a challenge line, and run the cell.
The result should be displayed under the current cell.

If you want to look at the challenge structure, open the Main_Functions.py
file and find the challenge number.  This will show the inputs, operations
and outputs for each challenge.

All challenges use functions from Major_Functions.py or Base_Functions.py.
In the process of completeing these challenges, I want to make these functions
workable as a suite of tools, useful for other projects; possibly a recoding
adventure back into C++ for some hopeful performance gains and analysis.

*** It should be noted that this is currently a living document, and changes/
updates will be made.  Wording of functions, and descriptions will change
based on improvements in understanding and overall comprehension.
Effort is made to try and speak clearly and concisely!

Modules Required:

Python 3+ | PyCryptoDome 3+ | Jupyter Notebook* 

* Jupyter Notebook is not required, but is used for convenience as stated above.

Set 1:

Ch 1 : complete, convert hex to base64
Ch 2 : complete, fixed xor
Ch 3 : complete, single-byte xor cypher
Ch 4 : complete, detect single char xor
Ch 5 : complete, implement repeating key xor
Ch 6 : complete, break repeating key xor
Ch 7 : complete, AES in ECB mode
Ch 8 : complete, Detect AES in ECB mode

Set 2:

Ch 9 : complete, Implement PKCS#7 padding
Ch10 : In progress..., Implement CBC mode