Overthewire : Krypton
16 November, 2020
A brief writeup of solving the Overthewire War Game Krypton
0 ➜ 1
- Simple enough, base64 encoded string
- Use
echo '<password>' | base64 --decode
1 ➜ 2
- README is useful
- Decrypt using https://gchq.github.io/CyberChef/
2 ➜ 3
- Another substitution cipher
- Using the encryption binary, you can see what ABCDEFGHIJKLMNOPQRSTUVQXYZ becomes. That'll give away the substitution and hence the password
3 ➜ 4
- As the hints say, perform a frequency analysis.
- It is crucial to do a uni, bi and tri-gram analysis.
- Also refer to common frequency distribution of english letters, can be found here
- The common frequency distribution is just a reference, so some trial and error will be required
4 ➜ 5
- This level enabled me to learn about recovering Vigenere encrypted cipher text when the key length is known, using the 𝛘2 method from here. Very interesting method...
- I didn't get a chance to actually code out a decryptor using the above method, so I used one of the many publically available Vigenere decryptors with known key length.
5 ➜ 6
- This time the key length is not known, however there is still a publically available decryptor so used that.
- There is a way to estimate the keyword length using Index of Coincidence as mentioned here
6 ➜ 7
- Hints indicate that the key is an 8 bit LFSR
- Use inputs of varying length to gauge the pattern in the cipher text.
- The password is actually encrypted using a Vigenere cipher, just that the key is obtained using LFSR.
That's all the levels there are. The most interesting concepts I learnt from this war game are LFSR and Vigenere Cipher.