This scavenger hunt may be done as individuals or as pairs. It is just for fun. You do not have to do it, and it will not be part of anyone’s grade.
A cryptographic key is a secret used to encrypt or decrypt messages.
For the Enigma machine, the key is its initial configuration: reflectors,
rotors, and plugboard. Instead of having to remember a complicated
configuration, it would be easier if users of the Enigma could remember
a short phrase, and the configuration would be derived programmatically
from that phrase. We have programmed a key generator,
which does just that. The function
Keygen.config : string ->
Enigma.config generates an Enigma configuration from any string.
To build the file you need to link the
Each of the clues below, except the first, is encrypted with a key
Keygen.config from a passphrase. Your task is to figure out
the passphrase for each clue, then decrypt the clue. Once you decrypt
a clue, it will lead you toward discovering the next passphrase,
and so forth.
In choosing passphrases, we limited ourselves to OCaml strings that contain only lower-case letters, numbers, and spaces. They do not contain any punctuation symbols or upper-case letters. That should make your job a little easier.
Since the Enigma machine supports only the letters ‘A’..’Z’, we follow a couple conventions in constructing the plaintext of our clues: instead of spaces we use the letter ‘X’, we spell out numbers and punctuation as words, and we use only uppercase letters.
When you are done decrypting all the clues, submit a PDF to the “Scavenger Hunt” assignment on CMS. Your submission should contain the passphrase and plaintext for each clue, as well as anything else the plaintext might ask you to include.
There will be no hints on the clues or their passphrases. But if you can’t figure out how to run the key generator, you are free to ask for help.
Do not post hints on Piazza. That would ruin the scavenger hunt for everyone.
Good luck! :)
A phrase that appears at the end of every lecture.