SECURITY

Solving a layered cryptographic puzzle

I solved the first stage of a team cryptography challenge, revealing the instruction needed to continue to password derivation and RSA decryption.

Turning an unknown cipher into a testable problem

My part of the team challenge was to identify the transformation used in Stage 1 and recover the instruction needed for the next stage. I approached it as a bounded search problem, comparing candidate decryptions rather than guessing a single method.

The search covered the 26 possible Caesar shifts, three supplied Vigenère keys, and all 24 orderings of four transposition columns. A shift of 11 revealed the next instruction. That result was the handoff to my teammates, who completed password derivation, RSA decryption, and signature verification.

My contribution

I focused on Stage 1: testing all 26 Caesar shifts, three supplied Vigenère keys, and the possible four-column transposition orders. I identified a Caesar shift of 11 that revealed the next instruction.

The output

A Caesar shift of 11 revealed the next instruction. My teammates used it to derive the password, decrypt the final message, and verify its signature.

View code on GitHub ↗

Try a Caesar shift

The text box starts with a synthetic example from the Stage 1 repository. Move the slider to change how far each letter shifts backward through the alphabet. At 11, FDP ESP VPJ becomes USE THE KEY. Try a neighboring shift to see how the result changes, or enter another short ciphertext. This demonstrates the Caesar operation only, rather than the full team challenge.

Decoded text

USE THE KEY

A browser implementation of the Stage 1 Caesar-shift operation. Change the shift or enter your own ciphertext.

All projects