In cryptography, encryption is the process of obscuring information to make
it unreadable without special knowledge, sometimes referred to as scrambling.
Encryption has been used to protect communications for centuries, but only
organizations and individuals with an extraordinary need for secrecy had made
use of it. In the mid-1970s, strong encryption emerged from the sole preserve of
secretive government agencies into the public domain, and is now used in
protecting widely-used systems, such as Internet e-commerce, mobile telephone
networks and bank automatic teller machines.
Encryption can be used to ensure secrecy, but other techniques are still needed
to make communications secure, particularly to verify the integrity and
authenticity of a message; for example, a message authentication code (MAC) or
digital signatures. Another consideration is protection against traffic
analysis.
Encryption or software code obfuscation is also used in software copy protection
against reverse engineering, unauthorized application analysis, cracks and
software piracy used in different encryption or obfuscating software.
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 most cases, that
procedure is varied depending on a key which changes the detailed operation of
the algorithm. 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, which operated by substituting according
to a large codebook.
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 ciphertext into readable plaintext.
Most modern ciphers can be categorized in several ways:
"Cipher" is alternatively spelled "cypher"; similarly "ciphertext" and "cyphertext",
and so forth. It also got into Middle French as cifre and Medieval Latin as
cifra.
The word "cipher" in former times meant "zero". It came from the Arabic word
şifr صِفْر "nothing", "zero" (from the verb şafira = "it was empty"), which also
became (via Italian) the word "zero". The zero (written as "0") was the crucial
innovation in positional Arabic versus Roman numerals. The word "cipher" was
used for any decimal digit, even any number. There are two theories about how
the word "cipher" may have come to mean encoding:
The Roman system was very cumbersome because there was no concept of zero or (empty space). The concept of zero which we all think of as natural was just the opposite in medieval Europe. In Sanskrit, the zero was called "sunya" or "empty". The Arabs translated the Indian into the Arabic equivalent "sifr". Europeans adopted the concept and symbol but not name, but transformed it into Latin equivalent "cifra" and "cephirium" {Fibonnaci did this}. The Italian equivalent of these words "zefiro", "zefro" and "zevero". The latter was shortened to "Zero". The French formed the word "chiffre" and conceded the Italian word "zero". The English used "zero" and "Cipher" from the word ciphering as a means of computing. The Germans used the words "ziffer" and "chiffer". The concept of zero or sifr or cipher was 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 simply encryption. Dr. Al-Kadi (ref-3) concluded that the Arabic word sifr, for the digit zero, developed into the European technical term for encryption.
In non-technical usage, a "(secret) code" is the
same thing as a cipher. Within technical discussions, however, they are
distinguished into two 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. 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.
In a pure mathematical attack (i.e., lacking any
other information to help break a cypher), three factors above all, count:
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
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 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 plaintext, 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 a combination of transposition,
polyalphabetic substitution, and "additive" substitution. In rotor machines,
several rotor disks provided polyalphabetic substitution, while plug boards
provided transposition. 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 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
Mathematical advances, that allow new attacks or weaknesses to be discovered and
exploited.
Computational power available, i.e. the computer power which can be brought to
bear on the problem.
Key size, i.e., the size of key used to encrypt a message. As the key size
increases, so does the complexity of brute 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 keylength.com 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.
Reference: Wikipedia.org