Posted on

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.

Table of Contents