NOVA scienceNOW's "Can Science Stop Crime" introduced you to Tadayoshi Kohno, a University of Washington computer scientist who's made it his mission to take over networked machines, identifying surprising security holes that the bad guys can make use of. But hacking isn't just a question of guessing a password--systems use a process of encryption to mask information, making it a meaningless jumble of code unless you possess a secret key.
Ever since writing has existed, people have wanted to send secret messages to one another--and others have wanted to intercept and read them. These days, the "messages" are bank information, government files, or control over surveillance systems. The eavesdroppers have evolved into hackers and government agencies like the NSA. But the constant power struggle between secret keepers and secret stealers continues apace, spurring new invention and broadening the horizons of science along the way. Over the next week, this four-part blog series will take you through the history of cryptography, its present, and future possibilities of unbreakable codes.
LHIEL XEU SRWP R SLNVAB VX TNO VQ XDMZ SRV DLLH XMABADIU QVWVXDIE
Ever send a secret message to a friend to avoid the snooping eyes of a younger sibling? If so, you're probably already familiar with the sort of encoding techniques I'll describe here, the earliest examples of substitution ciphers: schemes for replacing letters with others to render a message unreadable.
The first recorded examples of ciphers--specific procedures for encrypting information--replaced each letter in a message with a different letter. ("A" would always be replaced by "S," for example.) Simple versions of these ciphers were supposedly first used by Julius Caesar to transmit battle commands, and they're even sometimes called Caesar ciphers.
This sort of cipher is monoalphabetic because it assigns just one specific code letter to each letter of the alphabet in the message. It comes with a key that specifies how to change each letter to disguise the message and how to reverse the change to read it. The key could look something like:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
L A Q E F J S W B H I M P G U T X R Z O K N C Y V D
Using this key, the code LOOK BEHIND YOU would translate to MUUI AFWBGE VUK.
Of course, as these ciphers entered wide use, people quickly began to discover ways to read the message without being given the key. Look at our example--the repeated UU in the first word could only be something like EE or OO, and trying different substitutions lets you work out the original message. The longer the message, the better letter frequency analysis will work.
Secret keepers were forced to up the complexity of their codes. The result was the polyalphabetic ciphers--a method which switched the encoding process of each letter throughout the message, so "A" might be replaced with "S" at one time and then with "R" later on in the message, all according to a set pattern. The more complicated the key, the harder the message would be to figure out. However, tools like frequency analysis could still crack secret messages when the text was long enough, because the key would have to repeat--meaning some parts of the message would be encoded with the same substitutions as others.
Armies and civilian secret-keepers alike quickly took up polyalphabetic ciphers as a much more secure way to communicate. To code them quickly, senders used tools like the cipher disk in the image below. This disk was standard issue for Confederate officers during the Civil War.
A reproduction of a Confederate cipher disk. Via Wikimedia.
This Confederate cipher wheel can implement a Vigenère Cipher, which uses a key phrase or sentence to encode a message. For each letter of the raw message, you'd turn the dial so "A" on the outer circle lined up with the letter in the code phrase on the inner circle. You'd then find the letter from your message on the inner circle and substitute the matching letter on the outer circle! Rinse and repeat for each letter of the code phrase and message.
This was the state of substitution cryptography before the advent of complex calculating machines. Soon, mechanical developments would make this sort of code look like child's play.
Our blog series on cryptography will continue later this week.