Shared-key

A shared key is a secret known by both people in the conversations, but is (hopefully) unknown by others who may evesdrop on the conversation.

Most cryptographic systems assume that both people already know the shared key. Such cryptographic systems are called private-key cryptography, Symmetric Cryptography, shared-key cryptography.

All published cryptographic systems before 1976 are shared-key systems. As of 2006, all published cryptographic systems use a shared key at some point; techniques such as quantum cryptography and Public-key Cryptography are techniques for getting that key to the right people, and only the right people, when they don't already know an appropriate secret.

reciprocal cipher

main article: reciprocal cipher

Reciprocal ciphers are even more symmetrical than other shared-key ciphers.

The symmetry comes from the one-to-one relationship between a unit (like alphanumerical digits OR computer bits) in the plaintext being interchanged (substituted) with a unit of ciphertext. Due to this symmetry, the decryption of the ciphertext is the inverse function(s) of the algorithm.

Example - With a substitution of a lower-case letter from a reversal of the same 26 letters in the alphabet: a -> z, b -> y, c -> x, d -> w. To decrypt, we just flip the arrows or "invert" it. Interchanging the position of the letters does the same thing: a <-z, z -> a. Hence, since the relationship is 1 to 1, we could say a = z.

If a cryptanalyst figures out that a in plaintext is reciprocal encrypted to c in the ciphertext, he knows that a in the ciphertext is decrypted to c in the plaintext.

Some famous reciprocal ciphers include

Most mechanical cipher machines use a reciprocal cipher, so it wouldn't need a seperate "encode mode" and "decode mode".

non-reciprocal shared-key algorithms

An example of a non-reciprocal shared key cipher is a Caesar cipher with the key "shift=2":

``` abcdefghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyzab
```

Letters in the plaintext are substituted by a ciphertext letter 3 letters further in the alphabet: a->c, b->d, c->e, ... z->b. To decrypt, we flip the arrows or "invert" it: a->y, b->z, c->a, d->b, ...z->x. Since a->c while encrypting, but a->y while decrypting, this is not a reciprocal cipher. If a cryptanalyst figures out that a in plaintext is encrypted to c in the ciphertext, an a in the ciphertext could be decrypted to any other letter in the plaintext.

A person using symmetric encryption also has the means to decrypt the messages created by this process... because each will need to know the same key information to be able to utilize it. If everyone shares the same key, then the security by confidentiality is lessened if one person ends up sharing that information, compromising it for everyone else.

shared-key algorithms

Due to the less protective nature, sometimes there are settings like dials or switches on equipment; additional strings or keypad numbers for software. The Enigma is a device that used symmetric (private-key) cryptography. If a person knew the settings and had the ciphertext, they could convert it to plaintext, but had to have the Enigma device to do so. The same is true for computer programs using this symmetry, all users have to have a copy of it. There have even been computer programs that emulate how the Enigma machine worked.

Symmetric-key algorithms can be divided into stream ciphers and block ciphers. Stream ciphers encrypt the bits of the message one at a time, and block ciphers take a number of bits and encrypt them as a single unit.

Symmetric-key algorithms are not always used alone. In modern cryptosystem designs, both asymmetric and symmetric algorithms are used together. Such systems include SSL, PGP and GPG, etc. Asymmetric key algorithms make key distribution for faster symmetric key algorithms.