A big problem with sending encrypted messages is managing the keys required to decrypt them. There are various solutions to this problem, heres a fun one.
A solved sudoku puzzle consists of 81 decimal digits. Why not use this as a crypto key? You could even send the unsolved puzzle right along
with the encrypted message. The recipient solves the puzzle, punches the digits into a program and voila.
A big limitation, of course, is anyone who can solve the puzzle can read the message. As long as your arch-enemy is stupid or lazy, this might well be enough.
Can we improve this? Sure
First, the number of possible sudoku puzzles is roughly equivalent to the key space of a 72 bit crypto key. That is not good at all. Instead of using the solution as a key directly, we could use it as a numeric index into a large database of pre-calculated keys. The keys themselves could be as large as necessary to resist direct cryptographic attack. The key database could be transmitted ahead of time, perhaps on a portable disk, and thus acts somewhat like a one time pad.
Second, dont transmit the puzzle with the message. Pre-arrange to find the correct puzzle in a known public location. Perhaps if we could get a series of these published somewhere, we could use a different one for each day you transmit a message...
...hey, wait a sec
.I wonder if this is baked?