Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 2.26 KB

File metadata and controls

43 lines (35 loc) · 2.26 KB

Cryptopals Challenges in Rust

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.

Contents

  • 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.

Progress

  • Set 1 (Completed)
  • Set 2 (Completed)
  • Set 3 (Completed)
  • Set 4 (Completed)
  • Set 5 (In Progress)
  • Set 6
  • Set 7
  • Set 8

Prerequisites

  • A basic understanding of cryptography and its principles
  • Familiarity with Rust programming language

Running the code

  1. Clone the repository using git clone https://github.com/gitofdeepanshu/cryptopals.git
  2. Change to the project directory using cd cryptopals
  3. Run the code using cargo run

Contributing

If you have any suggestions or improvements to the code, feel free to create a pull request.

License

This project is licensed under the MIT License.