06 February 2009

Cryptography Challenge

Several years ago I developed the idea for a cryptography challenge. I think it was right after I saw the film U-571 and was thinking about the Enigma machines used by the Germans in World War II, and somewhat about the Navajo "windtalkers" used by the Americans, and I just became somewhat interested in effective cryptography and codemaking and codebreaking.
The rules:
1. The code has to be fairly easily memorisable - there has to be some kind of a reason to it. This is because for a code to be effective, in my mind, there needs to be no physical evidence of it - no key, no machine that if a copy of it was stolen could be used to decipher everything.
2. The code has to be repeatable. The idea here is that if 'they' (whoever is trying to break your code) capture a user of the code and are able to force them to produce a particular paragraph in the code, it will always be the same. This isn't really perhaps so tied to a real thing that you'd want in a code, but it has more to do with my sensibilities of reasonability and fairness. This condition developed because one of the first codes I developed was basically that only every fourth character mattered. This made the rest of the code completely unimportant, and then when I wrote it out again for someone to try to crack it (they'd lost the first copy or something), it was of course noticeably different.
3. Codes do NOT have to be cryptograms, i.e. 1-for-1 letter substitution. Those of course are acceptable, but generally basic, especially if they actually follow rule number 1. And this isn't so much a rule as it is a lack of a rule, like USCF rule 20F1.
4. Codes can either be merely for alphabet, alphanumeric, or incorporate symbols and punctuation as well. Perhaps later there should be a rule requiring the telling which of these sets is being encoded for, but we'll start without that. What do the participants in this challenge think?
5. Codes, as far as this contest goes, should not require knowledge of any spoken language other than English.
6. People interested in submitting a code should do so by submitting a sentence (or preferably several sentences) of text in code. This should be long enough, when decoded, that the decoders have some sense that what they are doing is right. And they should be coherent, so nothing like "Bats lick ice cream jumping under the sand to fall on the moon." It might be helpful if there was some standard sentence to be coded, but that would probably be too easy, so I would more suggest a hint, like "This is a Star Wars quote".
7. There are probably other things, but I'm forgetting them right now.
I really don't know how good I am on either end of this. It's my intent that people will submit encoded messages to be cracked and that other people (likely the same groups) will try to break the codes. This is purely for fun, or maybe for developing some codes to actually be used in your day-to-day live. Paranoid as I am, I actually have a code that I've been developing for several years that I use for keeping information in such a way that other people can't easily read it.
I will provide examples if requested, or if I think of a good code that I want to see if you guys can break.

8 comments:

  1. Is there supposed to be a space after the last - or not?

    ReplyDelete
  2. No, it begins and ends with a hyphen.

    ReplyDelete
  3. In that case I guess I should ask whether any of the spaces are actually supposed to be there, because I'm picking one up at the end of every line.

    ReplyDelete
  4. Er, rather at the end of every line that doesn't end with a hyphen

    ReplyDelete
  5. Yeah, they're supposed to be there. Browsers chop lines at spaces and hyphens, so that's just how the text is displayed. You can safely copy-paste from hyphen to hyphen.

    ReplyDelete
  6. I'm working on it... slowly. I've narrowed it down a good bit, but there are still at least tens of thousands of possibilities of what the code could be, and tens of possibilities as to what the message is.

    ReplyDelete
  7. Even if I gave you the text, it would still be quite difficult to determine the mechanism...

    ReplyDelete
  8. Yeah. I copied the entire mainpage from Wikipedia that day. I think even with the text I'd have some problems. I mean, I've been able to narrow down what it could be mainly by figuring out lots of things it isn't, and I have a handful of ideas as to what kinds of code it might be, but there are several variations of these, and dozens of sub-variations on each of those. I can't really think of a better solution method at this point than pretty much straight trial-and-error, and it's not something I really have all that much time for. Maybe I'll suddenly solve the thing in like ten months, but I sorta doubt it, especially considering that this is fairly low on my priority list.

    ReplyDelete