The Cat Enigma!

Hello! Many of you have joined in with our April Fools’ activities, including the two challenges injected into the April 1st blogpost. We had several successful winners of the first competition, and a smaller number of the second, but many determined competitors – thanks to everyone who invested so much time and energy into the challenges!

We’d now like to give you the answers! Hopefully you won’t kick yourself too much if you competed but didn’t get all the way to the end. :)

Challenge 1

The first challenge commenced in the blog entry, which contained the cryptic message ‘GURER VF N CEVMR. VG’F JBEGU VG. UVAG: ZBGQ.‘ Deciphered via the magic of ROT-13, this pointed you to our April Fools MOTD (Message of the Day). Buried amongst rainbow text and pink unicorns was the string ‘VmlldyBwYWdlIHNvdXJjZSwgeW91bmcgZ3Jhc3Nob3BwZXIu‘, a Base64-encoded message pointing you to the source code of our blogpost, where the following message was hidden:

A$$p qk sc *$j7r, sc *$j7r /7 qsqv/§z Z/yr /k q a/ep,
sss /k kq7kr7 &l7k a/pr jq/7/§7 7kj$pr $§ /k7
sq§r /k klj§7 /§k$ q %aq§r Q§3 k*r§ /k klj§7 wqep
qzq/§ x*r§ c$l klz $§ /k7 x/§pc Rxx k*qk7 3/jkc! 3$ c$l k*/§p 7$?
Xraa / wrkkrj §$k 7*$x c$l x*rjr k*r ars$§q3r /7 sq3r 7xrrk ars$§q3r,
sss 7xrrk ars$§q3r 7xrrk ars$§q3r,
crq* 7xrrk ars$§q3r X*r§ e$sr wqep,
sq/a %/r k$ %/§pl§/e$j§7 qk t§ §rk

This was a Substitution Cipher (which various users decrypted in a variety of different ways, using ruby, javascript and python, as well as the ‘tr’ command line utility). The translation table is as follows:

itsaGgvewlckLomyhrzdWpAubEnj
/k7qZzyrxaepA$sc*jv3X%QlwR§&

If you want to try this for yourself, there’s an online tool for this here, or you can use the tr command line tool as follows (will require unicode support):

echo 'A$$p qk sc *$j7r, sc *$j7r /7 qsqv/§z Z/yr /k q a/ep,
sss /k kq7kr7 &l7k a/pr jq/7/§7 7kj$pr $§ /k7
sq§r /k klj§7 /§k$ q %aq§r Q§3 k*r§ /k klj§7 wqep
qzq/§ x*r§ c$l klz $§ /k7 x/§pc Rxx k*qk7 3/jkc! 3$ c$l k*/§p 7$?
Xraa / wrkkrj §$k 7*$x c$l x*rjr k*r ars$§q3r /7 sq3r 7xrrk ars$§q3r,
sss 7xrrk ars$§q3r 7xrrk ars$§q3r,
crq* 7xrrk ars$§q3r X*r§ e$sr wqep,
sq/a %/r k$ %/§pl§/e$j§7 qk t§ §rk' |
tr \/k7qZzyrxaepA\$sc*jv3X%QlwR§\& itsaGgvewlckLomyhrzdWpAubEnj

As this challenge had a larger ciphertext and was only lowercase, working out the translation table was relatively easy, and many of you seemed to manage to get it!

The first user to figure this out was elly - well done, you! The remaining users in the first ten to complete this challenge also won april-fools/ cloaks, and were the following:

Jessicah, Snova, hjf2010, Treeki, ttuttle, tonsofpcs, mth, awilcox, gnarf

Well done too to everyone who e-mailed in but came after these guys!

Challenge 2

As Challenge 1 went so well, we decided it would be a Good Idea to put together a second challenge. This was designed to be a little more complex, but started with a similar substitution cipher, with a text added to the source of the blog entry:

Un s%ctsn /%klt, kx$$&$* y/k%x*/ y/t z&tsr
X/tkt qkt n%x *%&$*, v&y/ n%xk ztys%eal ws%v&$* &$ y/t v&$r?
K vq$y y% l/%vtk n%x v&y/ lx*qk sx§hl, q$r k&rt n%x %ctk zt$etl
T%s&l/ n%xk /%%ctl tctkn l&$*st rqn, q$r wk&$* n%x y% y/t /%klt rt$y&ly
Un s%ctsn /%klt, n%x'kt q h%$n $% §%kt
Fx$$&$* qk%x$r v&y/ q §q$ %$ n%xk wqea, s&at q ykq&$ &$ y/t $&*/y...
Oq$ n%x l%sct y/t Oqy I$&*§q?
WUWKMJKSXVABPMDDWNBIUIQGLSBTYUYQCIRPUQBQLYCOLOZTVUWEFPZPMESSST

To complicate things, however, we used both upper and lowercase letters. Deciphering the lowercase text was relatively simple, as there was enough text to make divining the translation table relatively straight forward, but there were only seven unique uppercase letters in the song lyrics which emerged which were easy to identify by looking up the song (or remembering it, for those of you who’re also fans of Father Ted!) – at this point, if you competed, you probably had a translation table that looked something like this:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
qwertz*/&pas§$%hjklyxcvbn|__O_I___K___U__T_F____X___

This seemed to be the step many of you got stuck on – as the final string beginning ‘WUWKM…‘ was substituted using the same table as the rest of the text. Many competitors had translated the song lyrics and the ‘Cat Enigma‘ comment:

My lovely horse, running through the field
Where are you going, with your fetlocks blowing in the wind?

I want to shower you with sugar lumps, and ride you over fences
Polish your hooves every single day, and bring you to the horse dentist

My lovely horse, you're a pony no more
Running around with a man on your back, like a train in the night...

Can you solve the Cat Enigma?

But you left the sequence of capital letters at the end unaltered! Whilst many of you guessed that ‘Enigma’ referred to the infamous German electromechanical enciphering machine, without the ‘WUWKM… ciphertext translated, you had difficulty progressing further!

As this seemed to be where efforts paused, we gave you a little clue, courtesy of njan’s enigmacat (whose name is actually cinak, but who is generally called Mittens), consisting of the first eight letters of the translation table – PQOWIELA- filling some of the blanks.

From there, some of you managed to take the next step – working out that the capital letters were entered according to a predictable pattern on a qwerty keyboard. Based on the ‘O_I‘ sequence in the partially complete translation table above, we’d hoped that might not be such a big step, but perhaps it was! Tap the translation table out on a qwerty keyboard and see what we mean.

Still – with a little nudging, this was a step that some of you managed to take together (and many others guessed at or were very close to), and with the complete translation table:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
qwertz*/&pas§$%hjklyxcvbn|PQOWIELAKSJDURYTHFGMZNXBCV

It was possible to un-translate the enigma ciphertext:

DMDITKIJWZHXATLLDVXEMEBSGJXPOMOBYENAMBXBGOYCGCUPZMDFRAUATFJJJP

As many of you guessed, Catreferred to the enigma rotor settings, which when entered into any of the various online enigma machines (in javascript, java, or swf flavours) should produce the final plaintext. This wasn’t meant to trip anyone up (this applet defaults to the right settings, as do some of the others, and just needs the rotors to be configured) – although there are a variety of settings for enigma machines including rotor and reflector choice and plugboard settings we went with the default for many (Rotors I, II, III, Reflector B, no plugboard settings). Configured this way, the Enigma ciphertext deciphers to:

WELLDONEPLEASESENDCOOKIESANDMILKTOPINKUNICORNSATFREENODEDOTNET

Phew! All done! :) The first to complete the second part of the competition were sbp and [bjoern]. Other successful entrants were kmdm, x0F, Tordek, Lopmon, Gryllida, and yano.

Thanks to those of you who participated and we had fun talking to and interacting with – and we’ll probably be doing something similar next year! :)

April 1st, the aftermatch

Some of you might have remembered the wolfgame bot in #defocus from 2008-04-01. Reception was even better this time and people really liked it. We might even make this a tradition. Feedback in comments, please.

To get your wolfgame fix during the rest of the year, join #wolfgame . We are waiting :)

We will publish the solutions to our riddles here, but we had to promise to not do so before Sunday so we won’t. Watch this space if you are interested.

Also, remember our new nick expiry times. This is now active policy.

Important service announcement regarding #defocus

As many of you are aware, back in 2008 we changed our policy in #defocus and the method in which the channel works to require users have voice to speak. For the past few years we’ve been using a combination of manual action, scripts and bots to voice users as needed to control when and how and when they are voiced.

Starting today, we are changing the policy to one we believe is fairly balanced and which gives users much more control over gaining and keeping voice in the channel.

The new bot, known as brrflrqxt, will voice users as they send the command “!join” to #defocus and those who pass its tests will be allowed to keep their voice. The tests involve problem solving, proving that you are human, and therefore capable of lying, cheating, and backstabbing like any valuable member of #defocus; thus ensuring a safe and productive environment for all our users.

If you have any questions about this policy, feel free to ask any member of staff.

GURER VF N CEVMR. VG’F JBEGU VG. UVAG: ZBGQ.

enigma_cat_says_PQOWIELA