Cryptography Challenge Lab

Overview

For this lab, you will be doing selected exercises from the Cryptopals Crypto Challenges site. Those challenges are focused on exposing the pitfalls of cryptography in a hands-on manner. You can implement the lab in any language you desire, although Python is the suggested language if you want instructor assistance.

Deliverables

For each problem, provide a source code file named in the following format: crypto_problem_X.py.

For each problem, at the top of the source code file, provide a comment block explaining your solution in sufficient detail to be understandable to your peers. This is essential! Given the combined power of Google, GitHub, and Stack Overflow, demonstrating that you understand the code you are submitting is critical.

Setup

Python 3 setup instructions using PyCrypto library:

sudo apt-get install python3-pip
sudo apt-get install python3
pip3 install --upgrade pip
pip3 install pycrypto
#  sudo pip3 install --upgrade pycrypto   # To upgrade PyCrypto later

Part 1 - Fundamental Skills

Do all 8 of the Crypto Challenges Set 1 exercises

  1. Convert hex to base64
  2. Fixed XOR
  3. Single-byte XOR cipher
  4. Detect single-character XOR
  5. Implement repeating-key XOR
  6. Break repeating-key XOR
  7. AES in ECB mode
  8. Detect AES in ECB mode

To Be Continued...