Skip to content

Ima96/CryptoChallenges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CryptoChallenges

General Information

  • Author : Imanol Etxezarreta
  • Purpose : Learn about cryptographics trying to solve different problems derived from weaknesses in real world and modern cryptographic constructions. Trying to do it implementing it in C.
  • State of completion
  • Usage instructions

Set 1: Basics

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

Set 2: Block crypto

  • Challenge 9: Implement PKCS#7 padding
  • Challenge 10: Implement CBC mode
  • Challenge 11: An ECB/CBC detection oracle
  • Challenge 12: Byte-at-a-time ECB decryption (Simple)
  • Challenge 13: ECB cut-and-paste
  • Challenge 14: Byte-at-a-time ECB decryption (Harder)
  • Challenge 15: PKCS#7 padding validation
  • Challenge 16: CBC bitflipping attacks

Set 3: Block & stream crypto

  • Challenge 17: The CBC padding oracle
  • Challenge 18: Implement CTR, the stream cipher mode
  • Challenge 19: Break fixed-nonce CTR mode using substitutions
  • Challenge 20: Break fixed-nonce CTR statistically
  • Challenge 21: Implement the MT19937 Mersenne Twister RNG
  • Challenge 22: Crack an MT19937 seed
  • Challenge 23: Clone an MT19937 RNG from its outputs
  • Challenge 24: Create the MT 19937 stream cipher and break it

Make instructions

Currently only for linux systems

Dependencies

  • cmake (>= 3.8)
  • openssl1.1.1
  • make

Usage instructions

With the following commands, a new folder will be generated inside build/ folder named bin/ with all the challenge binaries. Every challenge has a prefix with the form "ch##" where ## is the challenge number. Adittionally, some challenges use some files that are in their respective developing folders, and post-build commands copy those files to build/bin/resources/ folder.

git clone https://github.com/Ima96/CryptoChallenges.git
cd CryptoChallenges
mkdir build && cd build
cmake ..
make

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published