Home > Writeups > DEADROP Crypto 1 - INTERCEPTED TRANSMISSION 774

DEADROP Crypto 1 - INTERCEPTED TRANSMISSION 774

Decrypting a Vigenère-ciphered field report by recovering the key from an acrostic hidden in the challenge description, first letter of each sentence spells PIGEON.

INTERCEPTED TRANSMISSION 774

Challenge Description

Personnel report 774 was intercepted at the eastern relay station during routine signals sweep. Intelligence analysis confirms the encryption method dates to pre-digital agency protocols. Generally speaking, field operatives were instructed to memorize their cipher keys rather than write them down. Each key was derived from the mission codename, something the intercepting party would not know. Operationally, this cipher was considered unbreakable for decades and formed the backbone of avian fleet communications. Nobody told the eastern station that the key was hidden in plain sight.

We're given INTERCEPTED_TRANSMISSION_774.txt, a block of ciphertext.


Finding the Key

The challenge description is doing something. Read the first letter of each sentence:

  • Personnel report 774...
  • Intelligence analysis...
  • Generally speaking...
  • Each key was derived...
  • Operationally, this cipher...
  • Nobody told the Eastern station...

PIGEON That's the key. The last sentence even tells you directly: "the key was hidden in plain sight."


Decryption

Standard Vigenère decrypt with key PIGEON:

def vigenere_decrypt(ciphertext, key):
    key = key.upper()
    result = []
    ki = 0
    for ch in ciphertext:
        if ch.isalpha():
            shift = ord(key[ki % len(key)]) - ord('A')
            base  = ord('A') if ch.isupper() else ord('a')
            result.append(chr((ord(ch) - base - shift) % 26 + base))
            ki += 1
        else:
            result.append(ch)
    return ''.join(result)

with open('INTERCEPTED_TRANSMISSION_774.txt') as f:
    ciphertext = f.read()

print(vigenere_decrypt(ciphertext, 'PIGEON'))

Output ends with:

This message self-destructs in: it does not actually self-destruct.
The shredder is still broken. Unit 7 ate the manual.

FLAG: DEADROP{vigenere_was_unbreakable_they_said}

Alternative: Crib Dragging

If you missed the acrostic, knowing the flag format DEADROP{ lets you recover the key automatically:

For each position i in the (alpha-only) ciphertext, compute ciphertext[i+j] - 'DEADROP'[j] mod 26 for each character j. When the resulting key fragment repeats with period 6, you've found the right position and the repeating unit is the key.

Most Vigenère solvers (dcode.fr, guballa.de/vigenere-solver) will crack this in under a second given the ciphertext length.


Key Takeaway

Acrostics are a real historical key-distribution technique. You could communicate the key via a seemingly innocuous letter without the key ever appearing explicitly. Of course, if your adversary knows to look for acrostics, it's no longer secure. Neither is Vigenère, the Kasiski examination and index of coincidence analysis have broken it since the 1860s.


Flag

DEADROP{vigenere_was_unbreakable_they_said}

< Back to All Writeups