Cryptopals
The Cryptopals Crypto Challenges
There are eight sets which get progressively harder. Some of the attacks are clever, but they are not puzzles, they are based off real-world vulnerabilities. The challenges are designed to get you thinking like a cryptographer and to understand how to break cryptography.
-
Set 1: Basics (Completed)
-
Set 2: Block crypto (Completed)
I have done the first two sets. I will be doing the rest of the sets in the future. I will be documenting my progress in this repository. Mosts of the set’s solution are written in Golang, javascript and Python.
How to Run
- Uncomment the specific challenge import and call to the function you want to run in
main.go
at root of project. - Run
go run *.go
from root of project. For windwows, rungo run .
from root of project.
Code
package main
import (
//c1 "cryptopals/Set1/challenge1" //c2 "cryptopals/Set1/challenge2" //c3 "cryptopals/Set1/challenge3" //c4 "cryptopals/Set1/challenge4" //c5 "cryptopals/Set1/challenge5" //c6 "cryptopals/Set1/challenge6" //c7 "cryptopals/Set1/challenge7" //c8 "cryptopals/Set1/challenge8" //c9 "cryptopals/Set2/challenge9" //c10 "cryptopals/Set2/challenge10" //c11 "cryptopals/Set2/challenge11" //c12 "cryptopals/Set2/challenge12" //c13 "cryptopals/Set2/challenge13" //c14 "cryptopals/Set2/challenge14" //c15 "cryptopals/Set2/challenge15" c16 "cryptopals/Set2/challenge16")
func main() {
// SET 1 //c1.Challenge1() //c2.Challenge2() //c3.Challenge3() //c4.Challenge4() //c5.Challenge5() //c6.CryptoPals() //c7.Challenge7() //c8.Challenge8()
// SET 2 //c9.Challenge9() //c10.Challenge10() //c11.Challenge11() //c12.Challenge12() //c13.Challenge13() //c14.Challenge14() //c15.Challenge15() c16.Challenge16()}