Cryptography


CSE 365 - Spring 2024

Solve various cryptography challenges ranging from decoding base64 data to performing a simplified TLS handshake.


Lectures and Reading


Challenges

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.

Rank Hacker Badges Score