Khan Academy Cryptography Challenge

This page contains the solution to the Khan Academy cryptography challenge.

Clue 1
Clue 1 contains a simple Caesar cipher. Once you transcribe the message, open up any Caesar cipher decryption tool to decrypt it.

Message 1:

After shifting 19 letters:

Reformatted:

Message 2:

After shifting 23 letters:

Reformatted:

Note that the "hidden symbol of death" refers to a painting by Hans Holbein. The keyword here is "skull" (Note: The exact keyword has the letters repeated)

Clue 2
Clue 2 contains a Vigenère cipher. One of the clues given by the challenge is "multiplying by 2", which means that the letters are repeated. Therefore, the keyword is "sskkuullll".

Message:

After Decryption:

Reformatted:

Clue 3
Clue 3 contains a Polybus squared cipher. The key is that 1,1 stands for A, 1,2 stands for B, and so on. The letter 'Z' is ignored as it does not appear. Using dcode.fr, we are able to decrypt the message easily:

(Remember to select 'column, line'!)



Message:

After Decryption:

Reformatted:

Special Note: There are a few numbers that have been cut off. If we add a 3 in the middle in "4343" near the end, we see the the last word is "news".

Clue 4 and Solution
This one is probably the toughest one, as the glyphs you saw in "The Discovery" were encrypted using multiple steps. For those who want a fast solution, simply copy and paste the program found in the link below to a Python 2.7 repl.it:

https://www.coastalvectors.com/blog/2016/10/2014-crypto-challenge/

The solution is below:

Explanation
This is taken from the Coastal Vectors link, and describes the encryption process:

1. First, we convert the letters in the message to numbers, using the Polybus square below. The spiral pattern is hinted by the image you see in Clue #4 (Message -> #). You start by reading the row, and then the column.



2. Then, we convert each of the 2 numbers (separately) to a 6 bit binary number. For example, 1 becomes 001, 5 becomes 101, etc. In the Crypto checkpoint 2 exercise, the word "hi" converts to 0203, which becomes 000010000011.

3. We convert the pad (which is the newspaper article in the discovery) to a binary string. Ones are represented by vowels and y, and other consonants are represented by zeroes. Other characters (whitespace, commas, etc) are skipped over.

Here's the python 2.7 code to speed this up:



vowels = ["a","e","i","o","u","y"] padbin = [] pad = "open me to read"
 * 1) Convert pad to binary

for c in pad: if ord(c) < ord('A') or ord(c) > ord('z'): continue if c.lower in vowels : padbin.append(1) else: padbin.append(0)

for x in range(len(padbin)): print padbin[x],

In the second crypto challenge, the pad "open me to read" translates to 101001010110.

4. We XOR the two. We can use the XOR calculator at http://xor.pw/ to do this by machine.

5. We split the result into blocks of 4 numbers. For each block, we split the 4 numbers into 2 groups of 2. We then convert it as follows: For example, if we originally had 0010, we would now have 0,2.



Now, according to the pictogram above, convert the numbers into a symbol. In our example of 0,2, there would a line pointing up and a line pointing northwest.