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
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.