This is a brief description of an unbreakable encryption method. It is used between two people who share the same key, called a one time pad (OTP), which is a string of randomly-generated numbers. We will use ten-sided dice for true randomness because even extremely fancy computers aren't perfect at creating these. Each digit in the pad is used only once- the lack of repetition makes the key more secure. The only weakness of this method is if an attacker gets her hands on the key.
This is just one example of a way to create a one time pad. The encoding process is clever and simplifies the encryption process. This method is lifted entirely from Perfect Encryption - Old Style! by Cliff.
Before moving on, there are a few terms you may need to know:
The 'straddling checkerboard' allows you to encode the plaintext message before you encrypt it. This makes the encryption process easier and offers an extra layer of security. The checkerboard uses the most common letters in the English language as the first line (which spells out three words to make it easier to memorize: 'at one sir'). The remaining letters of the alphabet are entered in the next two lines in alphabetical order. Since there are two spaces between the three words (columns 2 and 6), the second and third lines of the checkerboard are assigned those values. Thus, each letter is given a coordinate (e.g. Q = 6:1, or 61; H = 2:5 or 25; and T = 1). The structure of the checkerboard makes it easy to decrypt later- as we'll soon see.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
A | T | - | O | N | E | - | S | I | R | |
2 | B | C | D | F | G | H | J | K | L | M |
6 | P | Q | U | V | W | X | Y | Z | . | # |
21 3 29 60 62 1 5 9 25 0 21 27 5 9
21329 60621 59250 21275 9
69222 66600 00006 9
This is where you'll break out the 10-sided dice you have laying around...
51187 69890 33159 87236 25955 46669
Grab your encoded message and your key and follow the rules below to encrypt the message.
Encoded plain text: | 2 | 1 | 3 | 2 | 9 | 6 | 0 | 6 | 2 | 1 | 5 | 9 | 2 | 5 | 0 | 2 | 1 | 2 | 7 | 5 | 9 | 0 | 0 | 0 | 0 | ||||
- | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |||||
OTP: | 5 | 1 | 1 | 8 | 7 | 6 | 9 | 8 | 9 | 0 | 3 | 4 | 1 | 5 | 9 | 8 | 7 | 2 | 3 | 6 | 2 | 5 | 9 | 5 | 5 | ||||
Ciphertext: | 7 | 0 | 2 | 4 | 2 | 0 | 1 | 8 | 3 | 1 | 2 | 5 | 1 | 0 | 1 | 4 | 4 | 0 | 4 | 9 | 7 | 5 | 1 | 5 | 5 |
The encrypted text can now be shared openly- only the two people who have the OTP keys can make the ciphertext readable. Even if an attacker were to get their hands on the decrypted text, the encrypted text, and even the key for that message- future messages are secure. Since the numbers are generated at random (and do not repeat), there is no way to use ciphertext, known-plaintext, chosen-plaintext or adaptive-chosen-plaintext attacks. The only way to break this system is to get the entire OPT key. The only way to mess up the method itself is to not use actually random numbers.
Ciphertext: | 7 | 0 | 2 | 4 | 2 | 0 | 1 | 8 | 3 | 1 | 2 | 5 | 1 | 0 | 1 | 4 | 4 | 0 | 4 | 9 | 7 | 5 | 1 | 5 | 5 | ||||
+ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | |||||
OTP: | 5 | 1 | 1 | 8 | 7 | 6 | 9 | 8 | 9 | 0 | 3 | 4 | 1 | 5 | 9 | 8 | 7 | 2 | 3 | 6 | 2 | 5 | 9 | 5 | 5 | ||||
Encoded plain text: | 2 | 1 | 3 | 2 | 9 | 6 | 0 | 6 | 2 | 1 | 5 | 9 | 2 | 5 | 0 | 2 | 1 | 2 | 7 | 5 | 9 | 0 | 0 | 0 | 0 |
21329 60621 59250 21275 9
21 3 29 60 62 1 5 9 25 0 21 27 5 9
COMPUTERHACKER