What you will learn
- Distinguish encoding, hashing, and encryption
- Recognize properties of common ciphers
- Follow a repeatable cryptanalysis workflow
Work from classical ciphers to modern cryptographic concepts while learning the difference between encoding, hashing, and encryption.
20 challenges available.
Base64 is an encoding method used to transmit binary data as text. It's not encryption, but it's often used for…
The Caesar cipher is one of the oldest classical ciphers used by Julius Caesar. It encrypts by shifting alphabet…
ROT13 (Rotate 13) is a type of Caesar cipher that shifts the alphabet by 13 letters. Interesting feature of ROT13:…
ECB leaks repeated block patterns. This introductory task first checks the difference between encryption and encoding.…
RC4 was once widely used but is now deprecated. This introductory task focuses on recognizing the provided data…
Decrypt a Vigenere cipher when the key length is known and retrieve the flag. Ciphertext:…
MD5 collisions are practical. Hashes with broken collision resistance must not be used for security-sensitive…
Simple signatures such as hash(secret || message) can be vulnerable to length extension attacks with Merkle-Damgard…
Padding oracle attacks use error differences as a plaintext recovery signal. This introductory task decodes leaked…
Unsalted fast password hashes can often be reversed with precomputed lookup databases. Reverse the given MD5 hash. MD5…
A one-time pad is safe only when the key is used once. Reusing the key lets known plaintext recover other plaintexts.…
Pseudo-random output with a fixed seed is reproducible and must not be used for cryptographic secrets. Flag generation…
Factor a tiny RSA modulus, recover the private exponent, and decrypt a list of ciphertext values. Public key and…
ciphertext.txt is an English report encrypted with the affine cipher E(x) = (a*x + b) mod 26. Letter case is preserved…
Two systems reused the same RSA modulus n and only changed the public exponent. The ciphertexts c1 and c2 of the same…
An old IoT device performed Diffie-Hellman key exchange with a prime p of only 36 bits. handshake.txt contains p, g, A…
/challenge/signatures.json, created with fresh keys at every start, holds the DSA public parameters (p of 1024 bits, q…
An embedded-device team made the RSA private exponent d very small to speed up decryption. The public exponent e in…
A service generated both session tokens and an encryption keystream from a linear congruential generator x_{k+1} =…
broadcast.json contains the same plaintext encrypted with unpadded RSA e=3 under three pairwise-coprime moduli.…