This article is about algorithms for encryption and decryption. For an overview of cryptographic technology
in general, see
Cryptography.
In cryptography, encryption is the process of transforming information (referred to as plaintext) to make it unreadable to anyone
except those possessing special knowledge, usually referred to as a key. The result
of the process is encrypted information (in cryptography, referred to as ciphertext). In many contexts, the word
encryption also implicitly refers to the reverse process, decryption (e.g. “software for encryption” can typically also perform decryption), to make the encrypted information
readable again (i.e. to make it unencrypted).
Encryption has long been used by militaries and governments to facilitate secret communication. Encryption is now used in
protecting information within many kinds of civilian systems, such as computers,
networks (e.g. the Internet e-commerce), mobile telephones, wireless microphones, wireless intercom systems,
Bluetooth devices and bank automatic teller
machines. Encryption is also used in digital rights management to
restrict the use of copyrighted material and in software copy protection to protect
against reverse engineering and software piracy.
Encryption, by itself, can protect the confidentiality of messages, but other techniques are still needed to verify the
integrity and authenticity of a message; for example, a message authentication
code (MAC) or digital signatures. Standards and cryptographic software and hardware to perform encryption are widely
available, but successfully using encryption to ensure security is a challenging problem. A single slip-up in system design or
execution can allow successful attacks. Sometimes an adversary can obtain unencrypted information without directly undoing the
encryption. See traffic analysis, TEMPEST.
History
-
Encryption has been used to protect communications since ancient times, but only organizations and individuals with
extraordinary need for confidentiality had bothered to exert the effort required to implement it. Encryption, and successful
attacks on it, played a vital role in World War II. Many of the encryption techniques
developed then were closely-guarded secrets (Kahn). In the mid-1970s, with the introduction of the U.S. Data Encryption Standard and public key
cryptography, strong encryption emerged from the preserve of secretive government agencies into the public domain.
Ciphers
In cryptography, a cipher (or cypher) is an algorithm for performing encryption and decryption — a series of
well-defined steps that can be followed as a procedure. An alternative term is encipherment. In non-technical usage, a
“cipher” is the same thing as a “code”; however, the concepts are distinct in
cryptography. In classical cryptography, ciphers were distinguished from codes. Codes
operated by substituting according to a large codebook which linked a random string of
characters or numbers to a word or phrase. For example, “UQJHSE” could be the code for “Proceed to the following
coordinates”.
The original information is known as plaintext, and the encrypted form as
ciphertext. The ciphertext message contains all the information of the plaintext message, but is not in a format readable
by a human or computer without the proper mechanism to decrypt it; it should resemble random gibberish to those not intended to
read it.
The operation of a cipher usually depends on a piece of auxiliary information, called a key or, in traditional NSA parlance, a
cryptovariable. The encrypting procedure is varied depending on the key, which changes the detailed operation of the
algorithm. A key must be selected before using a cipher to encrypt a message. Without knowledge of the key, it should be
difficult, if not impossible, to decrypt the resulting cipher into readable plaintext.
Most modern ciphers can be categorized in several ways:
- By whether they work on blocks of symbols usually of a fixed size (block ciphers), or
on a continuous stream of symbols (stream ciphers).
- By whether the same key is used for both encryption and decryption (symmetric key
algorithms), or if a different key is used for each (asymmetric key
algorithms). If the algorithm is symmetric, the key must be known to the recipient and to no one else. If the algorithm is
an asymmetric one, the encyphering key is different from, but closely related to, the decyphering key. If one key cannot be
deduced from the other, the asymmetric key algorithm has the public/private key property and one of the keys may be made public
without loss of confidentiality. The Feistel cipher uses a combination of substitution
and transposition techniques. Most (block ciphers) algorithms are based on this
structure.
Etymology of “Cipher”
“Cipher” is alternatively spelled “cypher” (however, this variant is now uncommon and therefore often incorrectly considered
an error by native speakers); similarly “ciphertext” and “cyphertext”, and so forth. It also got into Middle French as cifre and Medieval
Latin as cifra, from the Arabic sifr (zero).
The word “cipher” in former times meant “zero” and had the same origin (see Zero —
Etymology), and later was used for any decimal digit, even any number. There are these theories about how the word
“cipher” may have come to mean encoding:
- Encoding often involved numbers.
- Conservative Catholic opponents of the Arabic
numerals equated it with any “dark secret”.[citation needed]
- The Roman number system was very cumbersome because there was no concept of zero (or
empty space). The concept of zero (which was also called “cipher”), which we all now think of as natural, was very alien in
medieval Europe, so confusing and ambiguous to common Europeans that in arguments people would say “talk clearly and not so far
fetched as a cipher”. Cipher came to mean concealment of clear messages or encryption.
- The French formed the word “chiffre” and adopted the Italian word “zero”.
- The English used “zero” for “0”, and “cipher” from the word “ciphering” as a means of computing.
- The Germans used the words “Ziffer” (number, “Zahl”) and “Chiffre”.
Dr. Al-Kadi (ref-3) concluded that the Arabic word sifr, for the digit zero,
developed into the European technical term for encryption.
Ciphers versus codes
-
In non-technical usage, a “(secret) code” typically means a “cipher”. Within
technical discussions, however, the words “code” and “cipher” refer to two different concepts. Codes work at the level of meaning
— that is, words or phrases are converted into something else and this chunking generally shortens the message. Ciphers, on the
other hand, work at a lower level: the level of individual letters, small groups of letters, or, in modern schemes, individual
bits. Some systems used both codes and ciphers in one system, using superencipherment to
increase the security. In some cases the terms codes and ciphers are also used synonym to substitution and transposition.
Historically, cryptography was split into a dichotomy of codes and ciphers, and coding had its own terminology, analogous to
that for ciphers: “encoding, codetext, decoding” and so on.
However, codes have a variety of drawbacks, including susceptibility to cryptanalysis
and the difficulty of managing a cumbersome codebook. Because of this, codes have fallen into
disuse in modern cryptography, and ciphers are the dominant technique.
Types of Cipher
There are a variety of different types of encryption. Algorithms used earlier in the history of cryptography are substantially different from modern methods, and modern ciphers can
be classified according to how they operate and whether they use one or two keys.
Historical pen and paper ciphers used in the past are sometimes known as classical
ciphers. They include simple substitution ciphers and transposition ciphers. For example “GOOD DOG” can be encrypted as “PLLX XLP” where “L” substitutes
for “O”, “P” for “G”, and “X” for “D” in the message. Transposition of the letters “GOOD DOG” can result in “DGOGDOO”. These
simple ciphers and examples are easy to crack, even without plaintext-ciphertext pairs.
Simple ciphers were replaced by polyalphabetic substitution ciphers which
changed the substitution alphabet for every letter. For example “GOOD DOG” can be encrypted as “PLSX TWF” where “L”, “S”, and “W”
substitute for “O”. With even a small amount of known or estimated plaintext, simple polyalphabetic substitution ciphers and
letter transposition ciphers designed for pen and paper encryption are easy to crack.
During the early twentieth century, electro-mechanical machines were invented to do encryption and decryption using
transposition, polyalphabetic substitution, and a kind of “additive” substitution. In rotor
machines, several rotor disks provided polyalphabetic substitution, while plug boards provided another substitution. Keys
were easily changed by changing the rotor disks and the plugboard wires. Although these encryption methods were more complex than
previous schemes and required machines to encrypt and decrypt, other machines such as the British Bombe were invented to crack these encryption methods.
Modern encryption methods can be divided into symmetric key algorithms
(Private-key cryptography) and asymmetric key algorithms (Public-key
cryptography). In a symmetric key algorithm (e.g., DES and
AES), the sender and receiver must have a shared key set up in advance and
kept secret from all other parties; the sender uses this key for encryption, and the receiver uses the same key for decryption.
In an asymmetric key algorithm (e.g., RSA), there are two separate keys: a public key is
published and enables any sender to perform encryption, while a private key is kept secret by the receiver and enables
only him to perform correct decryption.
Symmetric key ciphers can be distinguished into two types, depending on whether they work on blocks of symbols of fixed size
(block ciphers), or on a continuous stream of symbols (stream ciphers).
Key Size and Vulnerability
In a pure mathematical attack (i.e., lacking any other information to help break a cypher), three factors above all,
count:
- Mathematical advances that allow new attacks or weaknesses to be discovered and exploited.
- Computational power available, i.e. the computing power which can be brought to bear on the problem. It is important to note
that average performance/capacity of a single computer is not the only factor to consider. An adversary can use multiple
computers at once, for instance, to increase the speed of exhaustive search for a key
(i.e. “brute force” attack) substantially.
- Key size, i.e., the size of key used to encrypt a message. As the key size increases, so
does the complexity of exhaustive search to the point where it becomes infeasible to
crack encryption directly.
Since the desired effect is computational difficulty, in theory one would choose an algorithm and desired difficulty level,
thus decide the key length accordingly.
An example of this process can be found at Key
Length which uses multiple reports to suggest that a symmetric cypher with 128 bits, an
asymmetric cypher with 3072 bit keys, and an elliptic curve cypher with 512 bits, all have similar difficulty at present.
Claude Shannon proved, using information theory considerations, that any theoretically
unbreakable cipher must have keys which are at least as long as the plaintext, and used only once: one-time pad.
References
- Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3
- Ibrahim A. Al-Kadi, “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992)
pp. 97–126.
- Ibrahim A. Al-Kadi, “Cryptography and Data Security: Cryptographic Properties of
Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.
- David Kahn, The Codebreakers - The Story of Secret Writing (ISBN 0-684-83130-9)
(1967)
- Abraham Sinkov, Elementary Cryptanalysis: A Mathematical Approach,
Mathematical Association of America, 1966. ISBN 0-88385-622-0
See also
External links
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)