This repository contains solutions to the Cryptopals challenges implemented in Rust programming language. The challenges cover a range of cryptography topics and aim to strengthen your understanding of the subject. I personally think it is a good way to increase your understaning of RUST programming language
WARNING: This is an academic proof-of-concept prototype, and in particular has not received careful code review. This implementation is NOT ready for production use.
- Challenge 1: Basic Crypto
- Contains 8 challenges that focus on basic cryptography concepts such as single-byte XOR cipher, fixed XOR, and hexadecimal decoding.
- Challenge 2: Block Crypto
- Contains 8 challenges that deal with cryptography at the block level, including fixed-nonce CBC encryption, detection of ECB mode, and more.
- Challenge 3: Block & Stream Crypto
- Contains 8 challenges that combine both block and stream cryptography, such as CTR encryption mode, password reset tokens, and more.
- Challenge 4: Stream Crypto and Randomness
- Contains 8 challenges that focus on stream cryptography and random number generation, including breaking random access read/write AES CTR and more.
- Challenge 5: Diffie-Hellman and Friends
- Contains 8 challenges that explore Diffie-Hellman and its variants, including breaking and fixing DH with parameters of your own choice, and more.
- Set 1 (Completed)
- Set 2 (Completed)
- Set 3 (Completed)
- Set 4 (Completed)
- Set 5 (In Progress)
- Set 6
- Set 7
- Set 8
- A basic understanding of cryptography and its principles
- Familiarity with Rust programming language
- Clone the repository using
git clone https://github.com/gitofdeepanshu/cryptopals.git
- Change to the project directory using
cd cryptopals
- Run the code using
cargo run
If you have any suggestions or improvements to the code, feel free to create a pull request.
This project is licensed under the MIT License.