# A1: Scavenger Hunt
**Deadline:** Friday, 03/02/19, 11:59 pm; no late submissions accepted
*This scavenger hunt may be done as individuals or as pairs. If you pair up
with someone, you **may not** share your Enigma solution code (or snippets
or pseudocode or hints, etc.) with them. This entire scavenger hunt
is a karma problem.*
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](keygen.ml),
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 `qcheck` package.
Each of the clues below, except the first, is encrypted with a key
derived by `Keygen.config` from a phrase. Your task is to figure out
the phrase for each clue, and to decrypt the clue. Since the Enigma
machine supports only the letters 'A'..'Z', we follow a couple
conventions in forming plaintext messages: instead of spaces we use
the letter 'X', we spell out numbers as words, and we use only
uppercase letters. In addition, for simplicity, the phrases used to
derive keys only contain uppercase letters, whitespace, and numbers.
When you are done decrypting all the clues, submit a PDF to the "A1:
Scavenger Hunt" assignment on [CMS][cms]. Your submission should
contain the phrase 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 phrases.** 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 Discourse.** That would ruin the scavenger hunt for
Good luck! :)
### Clue 0
This is the number of your favorite CS class at Cornell 😉
### Clue 1
### Clue 2
### Clue 3
### Clue 4
### Clue 5
### Clue 6
### Clue 7