The folks I work for run a yearly "hacking" (logic puzzle/decoding/decryption/programming) competition that anyone can attempt or enter. This year's one started yesterday and continues until the 30th of April.
The idea is this: you download the ZIP file containing the challenges, work through each one to get a passphrase, and submit your progress as you go. If you crack all of the challenges before the deadline, you get a chance to receive a ticket to the main HackFu event in UK (accommodation and food included) – travel costs possibly included for really great entries.
The challenges are surrounded by a framing story (penned by yours truly1) in which you, the intrepid Intergalactic Federation of Planets Special Operative Boon, have 72 hours to find and disarm the evil Baron Yapster's planet annihilating bomb before it blows up the poor innocent planet of Rathmullen. Each challenge contains an introduction and a conclusion (unlocked with the relevant passphrase). You can do the challenges in any order, but obviously the story makes more sense in the canonical order.
1 – It was pretty cool getting to exercise my fiction writing at my dayjob.
Skills you'll probably need:
- Scripting ability
- Ability to Google around and research stuff
- General knowledge of computing and cryptography
- Lateral thinking
The challenges are fun to get right and a neat tool for learning about a variety of things. I participated last year, but didn't really get much time to dedicate to it, so I only actually solved one – which was still a neat learning experience.
That challenge involved cracking one-time pad encryption. Did you know that the one-time pad, first thought of in 1882, is an uncrackable encryption technique? Here's how it works:
- You have a message you want to encrypt.
- You generate a page of random numbers. This is the one-time pad.
- You convert your message into a series of numbers per some scheme.
- You perform some mathematical operation (e.g. addition) between your message and the one-time pad, thus creating the encrypted version.
- You make sure no-one but the intended recipient of your message receives the one-time pad (this, obviously, is usually where the theoretical uncrackability is ruined by practical realities).
The challenge would have been impossible, but the encrypted message was provided along with a one-time pad book, in which the necessary one-time pad was hidden. The solution was to write a script to try to decrypt the message with all of the pads, and then search the output for English words. Ultimately a fairly simple thing to do, but it took a bit of research and thought to get right. That's pretty typical of the challenges offered.
If this stuff strikes you as interesting, I hope you enjoy playing with the challenges.
Anyway, hope it doesn't make me too much of a corporate shill to promote this here, but it can't be too much worse than the time twisterghost made a 64D Google+ page. :p If it helps, I enjoyed the challenge I did last year and would probably promote this even if I didn't have a hand in it this year.