Hello wired.co.uk readers!

Here's a collection of stuff I've been up to recently.

Cipher challenge

I cracked the cipher challenge! Wired have released an interesting guide to solving it.

My method:

  • I realised the morse was a reverse playfair from hints on Senad Zukic' s website.
  • I wrote a speedy C program to decrypt/encrypt playfair messages, and went through a huge wordlist looking for keys that produced decrypts that looked like English. I plan to put the program on Github soon, so it doesn't just fade away on my hard drive.
  • I found that LORENZ produced a decode that looked almost right but not quite. After some fiddling, I got the correct key - LORENZS. This gave me some of the Enigma settings for the main block of ciphertext.
  • I spent hours trying to crack the Enigma it cleverly, but in the end used brute force (assuming the choice of rotors and nothing else). I tried a lot of programs and online apps for the enigma - I think this was the enigma program that got me there in the end. All in all, an interesting challenge!

ZIP password recovery program

I've released an open-source program for cracking passwords on zip files. The rate is pretty decent: about 18 million checked per second on my desktop, but for archives with few files the false-positive rate is very high. I plan to make it decompress the file for each candidate key and check that the CRC matches - this would fix this issue, but unfortunately there are lots of different compression algorithms, all of which need to be implemented or, preferably, provided by a library.

AI for the game Go

I finally got around to uploading my AI for the game Go. This comprises several months of work from 2010. It's playing strength on 9 by 9 boards is roughly equal to the world champion computer players of 2006, but far behind more recent AIs (which in turn are weaker than the best human players).

Recent recipes

Strawberry vodka
Strawberry-infused vodka
Baked sweet potato
Spicy sweet potato
Kachumber
Kachumber