How about something cryptographic that isn't a cipher? I'll even throw in some historical relevance.
In the 1940s, Soviet spies in the United States corresponded with Moscow using a cryptographic system known as a One Time Pad. OTP is literally the perfect code--completely unbreakable. Most codes are just \"excessively difficult, but with enough computers, it could be done\" unbreakable. OTP is literally unbreakable; if you follow its rules perfectly, then millenia from now, regaurdless of advances in cryptography and computing, a message you encode in OTP will still be unreadable.
The system is simple. You and your partner are equipped in advance with a pad of sheets of completely random numbers -- and these two pads are identical. When you need to send a message, you start by encoding your message in a standard cipher -- A=1, B=2, and so forth. You then take a sheet from your pad, and add the series random numbers to the message, doing all arithmetic mod 26. This you transmit, and your partner decrypts by using his copy of the sheet and subtracting off the random numbers. Then you both burn that sheet and
never use it again. Thus \"One Time\" pad. (Actually, this is a simplification that isn't as secure--but it illustrates the point; for this exercise, it'll do).
Why is the \"one time\" part important? Well, it turns out that if you use the sequence twice, the messages are relatively easy to crack, though certainly harder than a symbol cipher. And as it historically turns out, the Soviets did exactly that. Their system was a little different than I described (they translated whole words to numbers instead of using a cipher), but it was perfectly secure from a cryptographic perspective. But apparently, Russian manufacturing being what it was, some of the pads were duplicated, and that means . . . used twice.
The United States's
Project VENONA took advantage of the mistake, successfully decrypting many messages between KGB agents abroad and Moscow.
Can you solve the same problem?
The following two messages have been encoded with a Two Time Pad. It was supposed to be a One Time Pad, but the cipher was used twice. Of course, you won't be able to read the end of the longer message -- but if you're able to read any of either message at all, you'll know why. I've left the spaces and punctuation unchanged. The alphanumerics are rotated according to a series of random* numbers, arithemetic done mod 26.
* I used dice. So don't be tryin' to attack my pseudorandom number generator.
For fun, I've used messages actually decoded through Venona as the cleartext. In the 40's, this stuff was Top Secret.
---- First message ----
Uvxi: Xzj Lclbmhnmy
Mp: Chwxvr
5 Xyox., 1944
Lp Hqdohh,
KCVFGWXXN roubxa znfg Psginsxd sq wol sdgaxxnym IWABWLKGKB rn 31vl Dgxddf. Zu ael nnmrnys, fautprx ysb kphqk.
PGJS
---- Second message ----
Uvxi: Rnoizh
Hy: Ljxdxwywij
8 Zzun., 1944
Slwsq qt oau iprgneyw ge cdwtkcvzhg vtakslli frclr lgfzwk jeu ujoxja nebo flfdztn Ldkonn. Plqm Okpgmd ua ii gejdmvzabbjs bjwskdehcxod fm use qhvfxy scmq am Jwqguskxp.
(P.S., These messages are pretty tough to crack as written. I recommend attacking them with software helper tools if you know how to do two time pad puzzles. If you don't, noodle around for a bit about how you'd do it and maybe take a crack at the easier bits. Then make use of the hints I've supplied below, in ascending order of usefulness and cheatiness. As a benchmark, Lothar got about a quarter of each message translated in about half an hour before deciding software or mechanical help would be really nice for the rest. )
1.
Basic method for two time pads -- match up the messages character for character, exactly. Guess a word. Given the format of the message, some are pretty easy to guess. Go down to the corresponding letters in the other message and rotate them by the same amount. Did you get garbage? You guessed wrong. Did it look reasonable? You guessed right. Use what you got to guess another word. (Start with the first three lines; those are easiest).
2.
The first message concerns the activity and movement of a KGB agent on the west coast. The second contains information about resources for an agent in Argentina, and a further message for him. The messages aren't related.
3.
The part of the second message you can't read says, \"_onspirative in his future work in Argentina.\"
4.
The first message contains two Russian codewords: SHIRMANOV and SEVASTOPOL. (Don't worry, the rest is in English).
5.
The first message contains the words 'steamship' and 'nothing'.
6.
The fulltext of the first message can be found at nsa.gov/public_info/_files/venona/1944/5sep_soviet_sailed_from_portland.pdf .