Solve various cryptography challenges ranging from decoding base64 data to performing a simplified TLS handshake.
Decode base64-encoded data
Decrypt a secret encrypted with a one-time pad, assuming a securely transferred key
Decrypt a secret encrypted with a one-time pad, where the key is reused for arbitrary data
Decrypt a secret encrypted with AES using the ECB mode of operation
Decrypt a secret encrypted with AES-ECB, where arbitrary data is appended to the secret and the key is reused. This level is quite a step up in difficulty (and future levels currently do not build on this level), so if you are completely stuck feel free to move ahead. Check out this lecture video on how to approach level 5.
Perform a Diffie-Hellman key exchange to establish a shared secret
Decrypt an RSA-encrypted secret using provided public and private keys
Decrypt an RSA-encrypted secret using the provided prime factors of n
Find a small hash collision using SHA256, considering only the first 2 bytes
Compute a small proof-of-work by appending response data to the challenge data, resulting in a SHA256 hash with 2 null-bytes
Complete an RSA challenge-response using provided public and private keys
Complete an RSA challenge-response by providing the public key
Sign a user certificate using a provided self-signed root certificate and root private key
Perform a simplified TLS handshake as the server, completing a Diffie-Hellman key exchange and establishing an encrypted channel to provide a user certificate and prove private key ownership
30-Day Scoreboard:
This scoreboard reflects solves for challenges in this module after the module launched in this dojo.