Avi's work-in-progress on this cuteness - https://cryptopals.com/
Switch branches/tags
Nothing to show
Clone or download

README.md

Avi in Cryptopals Challenge Wonderland

Oh golly hi! These are my solutions and work on the Cryptopals Crypto Challenges in C, Go (Golang), JavaScript, Python, Ruby. Eventually I'll settle on finishing it in one language then go back. Here's an example of my current set up:

├── c                              # Solutions in C
├── go                             # Solutions in Go
│   ├── rabbit_hole_01
│   │   ├── 1.go                   # Solution #1 in Go
│   ├── rabbit_hole_02
│   │   ├── 2.go                   # Solution #2 in Go
│   ├── rabbit_hole_0i
│   │   ├── {i}.go                 # Solution #{i} in Go
│   ├── cryptopals_wonderland.go   # Run all packages from solutions here
│   ├── README.md                  # List of which challenges are completed, notes, etc.
├── graphpaper                     # Photos/scans of my journal with notes for the challenges
├── js                             # Solutions in JavaScript
├── py                             # Solutions in Python
├── rb                             # Solutions in Ruby
├── LICENSE
└── README.md                      # What you're currently reading!

Challenges

I've hyperlinked sets 1-2 with their challenges, sets 3-8 I'll repeat the same for once I get there. Language(s) completed in will be written in bold inside brackets next to them.

Set 1: Basics [IN-PROGRESS SET]

  1. Convert hex to base64 [Go]
  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

Set 2: Block Crypto

  1. Implement PKCS#7 padding
  2. Implement CBC mode
  3. An ECB/CBC detection oracle
  4. Byte-at-a-time ECB decryption (Simple)
  5. ECB cut-and-paste
  6. Byte-at-a-time ECB decryption (Harder)
  7. PKCS#7 padding validation
  8. CBC bitflipping attacks

Set 3: Block and Stream Crypto

Set 4: Stream Crypto and Randomness

Set 5: Diffie-Hellman and Friends

Set 6: RSA and DSA

Set 7: Hashes

Set 8: Abstract Algebra