This question was prompted by a long Wikipedia session with me reading tons of articles on cryptography, causing far more questions than it answered.
Let's say that I and another person know each other. We plan to do something important and dangerous. We need to send messages back and forth long-distance. We conclude that all purchasable hardware and software is compromised, and therefore devise our own scheme:
- I pull out the network cable from my computer, randomly generate a huge table numbered like 1, 2, 3, 4, 5... both horizontally and vertically, filled with random alphabetic letters, fitting on a standard A4 paper.
- I print out two copies of this table.
- I destroy the computer.
- I keep one copy myself and give the other copy to the other person, who is sitting with me.
I tell him that, in order to send a message to me, or decrypt messages from me, he is to find any letter in the table corresponding to the character he needs to type in English, for example "A", and check which number column and row it exists in. For example, it may be in the 3rd column on the 16th row. That means he is supposed to type "3" followed by a randomly picked letter followed by "16" on the blank paper, followed by another random letter. He is then to continue like this until he has a message such as:
First of all, how would anyone ever be able to tell that the letters are all nonsensical and not used for anything other than separating the numbers? And even if they did, what do the numbers mean? They have no way of knowing this unless they have a copy of our sheet which only exists in two copies in the world and was generated by an offline computer which is now physically destroyed.
And we wouldn't be using the same column+row value each time for each letter, as they are found many times around the table.
And, what if to further complicate everything, we decide to write the messages in reverse? Or to do every other look-up in reverse, so that the columns and rows are swapped every other character? With just a few simple rules like that, it seems like they could never, ever decrypt our messages, even with the most powerful computers in the world.
I probably am making a fool out of myself here, but I seriously don't understand how anyone, no matter how smart, given unlimited time, could ever break this cipher/encryption scheme which I just came up with quickly without having any expertise in the field. I clearly must be missing something.