To get things started, I have a sample candidate for every category.
Attached is the sample candidate for block encryption.
No idea if the crypto in this design is broken. If it is, the issue
isn't immediately obvious to me. Performance can easily be improved.
If you want a simple challenge to get started, take my candidate and
make it run faster.
I hope the code is fairly readable and easy to understand. If not, feel
free to ask questions.