Creating Codes and Ciphers
If you have read through the other pages on codes, and tried
one or two of the cryptograms, you know that simple substitution
ciphers don't offer much real security for a secret message.
If you want to create a more unbreakable code, you have to do
something more.
On the other hand, you don't want to get too complicated.
During World War Two, some Russian army units were confused by
more complicated codes, and so reverted to simple Caesar ciphers.
As a result, their messages were easily deciphered by the Germans.
Obviously, simplicity can be a virtue in codes and ciphers, as
long as they are also difficult to decipher.
Ways to Make Tougher Codes and Ciphers
Make Mistakes on Purpose
A newsletter subscriber pointed out a mistake I made in a
cryptogram. A few mistakes like that would make it hard to decipher,
he said. True, but for the receiver of a message who had the
key, there would be no problem. For example, suppose in deciphering
a message you thought "w" was "e", and then
came to a word that should be "the", but was coded
as "ghs". That might throw you off, but a receiver
of a message would have no trouble deciphering and then understanding
a message full of misspellings: "Tha munny is in an envalope
unda the rok." Purposeful mistakes can make a message more
secure without any real problems for the receiver.
Don't Punctuate
Another very simple way to further disguise a message is to
leave out the punctuation. This simple change makes the code-breaker's
job much tougher. Look at the following cryptogram from the Cryptogram
Puzzles Page, with punctuation removed:
3325863186243288162116341232162431312433193
3248826193232168786211634125324332589863232
2488338689892426868842861988348716318632868
8328633251988538625195786341688258631168934
With no separation of words, it's difficult to to even guess
whether letters are represented by 2 digits or 5. But will it
cause any problems for the receiver? probablynotyoucanreadthiscantyou?
Mix Codes and Ciphers
Suppose "The eggs are in the basket," was code for
"The money has arrived." If it was then also enciphered
using numbers to replace letters, it would be doubly encrypted.
Even if the code breaker deciphers the string of digits, he is
left with a message that doesn't mean anything to him. A system
of this sort does require that the sender and receiver have a
code book in addition to a cipher key, however, so it is not
as simple to use a other methods.
Use Multiple Ciphers
If each word in a message was encrypted with a different cipher,
it would be very difficult to decipher. But could you keep such
a system simple enough to use for communication?
Yes. Suppose you have twenty simple alphanumeric ciphers.
In one perhaps a=3, b=e, c=5, and so on. Each other cipher is
different, but all twenty could be listed on one page. Now if
each party had that key, the understanding could be that the
user would simply start with the first cipher for the first word,
then the second for the second word, and after twenty words start
back at the first cipher, and so on. That would be a tough code
to break without the key.
You might think it would be virtually unbreakable. It seems
that letter-frequency analysis would be useless since the cipher
changes continually. And how could anyone guess that there were
twenty different ciphers being used?
Actually, there is a way. First of all, at some point in the
process a code breaker would probably realize that there was
more than one cipher involved. With 10 digits and 26 letters,
there would only be about a thousand possible codes based on
a simple substitution cipher (my math may be off, but you get
the point - there is a limited number). A "brute force attack"
on one or two words using all possible ciphers would prove that
there was more than one cipher used.
At that point the code breaker might notice that there is
some repetition of one-letter words, which are likely "a"
and three letter words, likely to be "and" or "the".
For example, if the cipher text was long enough he might see
"6" occur three times, and "y7k" appear four
times, including once at the start of a sentence. These are likely
"a" and "the". A rotating set of ciphers
is not a new idea, so he considers how to determine how many
ciphers were used.
He counts the number of words between each "6",
and "y7k", to arrive at the maximum number of ciphers
that could be rotated through the message. Suppose there are
only 24 words between one "y7k" and another. Both are
almost certainly the same cipher (it is possible that "y7k"
represents a different word in another cipher, but not likely),
so he now knows that there no more than 23 ciphers. If there
were more "y7k" could not show up again after just
24 words.
Now, on the assumption that the ciphers are simply rotated
through, he takes every 23rd word out and applies letter-frequency
analysis to these. This yields nothing, so he tries every 22nd
word, and then every 21st word. Finally, when he tries every
20th word, he breaks one cipher, and more importantly, determines
that there are 20 rotating ciphers in the message.
He then can start with the second word of the message and
pull out every 20th word after that to break the second cipher.
Following the same procedure, he soon has every cipher figured
out. Then he can reassemble the message to read it.
As you can imagine, with the help of computers, almost any
code you can invent could be broken. Want more unbreakable codes
and ciphers? I may have more on these in the future. Keep an
eye on the Secret Codes page. The link is below.
Note: All the pages on codes, ciphers and cryptograms
are listed on the page: Secret Codes.
|