|
Cryptography (from Greek kryptós,
"hidden", and gráphein, "to write") is, traditionally, the study of ways to convert information from its normal, comprehensible form into an obscured guise, unreadable without special knowledge
— the practice of encryption. In the past, cryptography helped
ensure secrecy in important communications, such as those of spies, military leaders, and diplomats. In recent
decades, the field of cryptography has expanded its remit in two ways. Firstly, it provides mechanisms for more than just
keeping secrets: schemes like digital signatures and digital cash, for
example. Secondly, cryptography has come to be in widespread use by many civilians
who do not have extraordinary needs for secrecy, although typically it is transparently built into the infrastructure for computing
and telecommunications, and users are not aware of it.
Cryptography is an interdisciplinary subject, drawing from
several fields. Before the time of computers, it was closely related to linguistics. Nowadays the emphasis has shifted, and cryptography makes extensive use of technical areas of
mathematics, notably number theory, information theory, computational complexity, statistics and finite mathematics. It is also
a branch of engineering, but an unusual one as it must deal with active,
intelligent and malevolent opposition (see cryptographic engineering and security engineering).
Associated fields are steganography — the study of hiding the
very existence of a message, and not necessarily the contents of
the message itself (for example, microdots, or invisible ink) — and traffic analysis,
which is the analysis of patterns of communication in order to learn secret information.
Terminology
The original information which is to be protected by cryptography is called the plaintext. Encryption is the process of
converting plaintext into an unreadable form, termed ciphertext, or,
occasionally, a cryptogram. Decryption is the reverse process, recovering the plaintext back from the ciphertext. Enciphering
and deciphering are alternative terms. A cipher is an algorithm for encryption and decryption. The exact operation of ciphers is normally
controlled by a key — some secret piece of
information that customises how the ciphertext is produced. Protocols specify the details of how ciphers (and other cryptographic primitives) are to be
used to achieve specific tasks. A suite of protocols, ciphers, key management, user-prescribed actions implemented together as a
system constitute a cryptosystem; this is what an end-user
interacts with, e.g. PGP or GPG.
In ordinary parlance, a (secret) "code" is often used synonymously with "cipher". In
cryptography, however, the term has a specialised technical meaning: codes are a method for
classical cryptography, substituting larger units of text, typically words or phrases (e.g., "apple pie" replaces
"attack at dawn"). In contrast, classical ciphers usually substitute or rearrange individual letters (e.g., "attack at
dawn" becomes "buubdl bu ebxo" by substitution.). The secret information in a code is specified in a codebook.
The study of how to circumvent the use of cryptography is called cryptanalysis. Cryptography and cryptanalysis are sometimes linked together under the umbrella term
"cryptology", though "cryptography" also has this wider meaning. Both are acceptable terms for the entire field, and both have
long histories. "Crypto" is commonly used as an informal abbreviation.
"Cipher" is alternatively spelt "cypher"; similarly "ciphertext" and "cyphertext", and so forth. Both spellings have long
histories in English, and there is occasional tension between their adherents.
Cryptanalysis
Main article: Cryptanalysis
A cryptanalyst might appear to be the natural adversary of a cryptographer, and to an extent this is true: one can view this
contest all through the history of cryptography.
However, it is possible, in fact preferable, to interpret the two roles as complementary: a thorough understanding of
cryptanalysis is necessary to create secure cryptography.
There are a wide variety of cryptanalytic attacks, and it is convenient to classify them. One distinction concerns what an
attacker can know and do in order to learn secret information, e.g. does the cryptanalyst have access only to the ciphertext?
Does he also know or can he guess some corresponding plaintexts? Or even: Can he choose arbitrary plaintexts to be
encrypted? (see ciphertext only, known plaintext and chosen plaintext). While these example scenarios all view the cipher as an abstract black box, other attacks are based on the implementation of the cipher. If a cryptanalyst has access to, for example, timing or power consumption, he may be able to break a cipher otherwise resistant to analysis.
If a cryptosystem uses a key or a password, it is at risk from an exhaustive search; this is very commonly the weakest point in such systems. Linear and differential cryptanalysis are general methods for symmetric key cryptography. When cryptography relies on hard mathematical problems, as is usually the case in asymmetric cryptography, algorithms for tasks such as factoring become potential tools for cryptanalysis.
History of cryptography
Main article: History of cryptography
Cryptography has had a long and colourful history.
The earliest forms of secret writing required only pen and paper, and are now collectively termed classical
cryptography. The two main categories are transposition
ciphers, which rearrange the order of letters in a message, and substitution ciphers, which systematically replace groups of letters with others. Classical ciphers
tend to leak varying amounts of information about the statistics of the
plaintext, and because of this they are easily broken, for example by frequency analysis. Classical ciphers still enjoy popularity today, though mostly as puzzles (see cryptogram).
Early in the 20th century, several mechanical devices were invented for performing encryption, including rotor machines - most famously the Enigma cipher used in World War II. The ciphers
implemented by these machines brought about a significant increase in the complexity of cryptanalysis. The various attacks on
Enigma, for example, succeeded only after considerable effort. Occasionally, these devices have featured in films, such as in the
James Bond adventure From Russia with Love.
With the advent of digital computers and electronics, very complex ciphers could be implemented. A characteristic of computer ciphers is that they
operate on binary strings unlike classical and mechanical schemes, which use an alphabet of around 26 letters, depending on the
language. Computer ciphers are also much more resistant to cryptanalysis; few are susceptible to a ciphertext-only attack.
Extensive academic research into modern cryptography is relatively recent — it only began in the open community during
the 1970s with the specification of DES and the invention of RSA. It is well that much progress has been made in a short time; popular applications such as the Internet and mobile phones have
repositioned cryptography, historically the sole province of a few groups with exceptional needs for secrecy, into a mainstream
technology on which millions rely.
As well as noting lessons from its history, cryptographers are also careful to consider the future. Moore's law is routinely taken into account when specifying key-lengths, and the potential effects of quantum computing
have already been considered. Note also quantum
cryptography.
Secure communications
See also: Information security
Cryptography is commonly used for securing communications. Four desirable properties are:
- Confidentiality, also known as secrecy: only an authorised recipient should be able to extract the contents of the message from its encrypted
form. Otherwise, it should not be possible to obtain any significant information about the message contents.
- Integrity: the recipient should be able to determine if the message
has been altered during transmission.
- Authentication: the recipient should be able to identify the
sender, and verify that the purported sender actually did send the message.
- Non-repudiation: the sender should not be able to deny sending
the message.
Cryptography can provide mechanisms to help achieve all of the above. However, some goals aren't always necessary, practical
or even desirable in some contexts. For example, the sender of a message may wish to remain anonymous; clearly non-repudiation
would be inappropriate.
Symmetric key cryptography
Main article: Symmetric key algorithm
Symmetric key ciphers use the same key for encryption and decryption, or a little more precisely, the key used for decryption
is "easy" to calculate from the key used for encryption. Other terms include "private-key", "one-key" and "single-key"
cryptography.
Symmetric key ciphers can be broadly grouped into block ciphers and
stream ciphers. Stream ciphers encrypt one bit at a time, in contrast to
a block cipher, which operates on a group of bits (a "block") of a certain length all in one go. The block ciphers DES, IDEA and AES, and the stream cipher RC4, are among the most well-known symmetric key ciphers.
Other cryptographic primitives are sometimes classified as symmetric cryptography:
- Cryptographic hash functions produce a
hash of a message. While it should be easy to compute, it must be very
difficult to invert (one-way), though other properties are usually
needed as well. MD5 and SHA-1 are well-known hash
functions.
- Message authentication codes (MACs), also
known as keyed-hash functions, are similar to hash functions, except that a key is needed to compute the hash. As the
name suggests, they are commonly used for message authentication. They are often constructed from other primitives, such as block
ciphers, unkeyed-hash functions or stream ciphers.
Public key cryptography
Main article: Public key cryptography /
Asymmetric key algorithm
Symmetric key encryption has a troublesome drawback — two people who wish to exchange confidential messages must share a
secret key. The key must be exchanged in a secure way, and not by the means they would normally communicate. This is usually
inconvenient, and public-key (or asymmetric) cryptography provides an alternative. In public key encryption there are two keys
used, a public and a private key, for encryption and decryption respectively. It must be "difficult" to derive
the private key from the public key. This means that someone can freely send their public key out over an insecure channel and yet be sure that only they can decrypt messages encrypted with it.
Public key algorithms are usually based on hard mathematical problems. RSA, for example, relies on the (conjectured) difficulty of factorisation. For efficiency reasons, hybrid encryption systems are used in practice; a key is
exchanged using a public-key cipher, and the rest of the communication is encrypted using a symmetric-key algorithm (which is
typically much faster). Elliptic curve
cryptography is a type of public-key algorithm that may offer efficiency gains over other schemes.
Asymmetric cryptography also provides mechanisms for digital
signatures, which are way to establish with high confidence (under the assumption that the relevant private key has not been
compromised in any way) that the message received was sent by the claimed sender. Such signatures are often, in law / by implicit
inference, as the digital equivalent of physical signatures on paper documents. In a technical sense, they are not as there is no
physical contact nor connection between the 'signer' and the 'signed'. Properly used high quality designs and implementations are
capable of a very high degree of assurance, likely exceeding any but the most careful physical signature. Examples of digital
signature protocols include DSA and ElGamal.
Digital signatures are central to the operation of public key infrastructure and many network
security schemes (eg, Kerberos, most VPNs, etc).
Warnings
Myths and misunderstandings about cryptography are widespread, and there is an abundance of insecure cryptographic software on
the market, sometimes pejoratively referred to as snake oil. Readers, buyers, and users should therefore exercise substantial caution when
selecting books and products; self-education is advised.
Other topics
See also: Topics in cryptography
The security of all practical encryption schemes remains unproven, both for symmetric and asymmetric schemes. For symmetric
ciphers, confidence gained in an algorithm is usually anecdotal — e.g. no successful attack has been reported on an
algorithm for several years despite intensive analysis. Such a cipher might also have provable security against a limited class
of attacks. For asymmetric schemes, it is common to rely on the difficulty of the associated mathematical problem, but this, too,
is not provably secure.
Surprisingly, cryptography does have provably secure ciphers — the one
time pad, for example. However, such schemes require keys as long as the plaintext, so are almost always too cumbersome to
use.
When the security of a system fails, it is rare that a weakness in the cryptographic algorithms is exploited. More often, it
is a mistake in the implementation, the protocols used or some other human error. The study of how best to implement and
integrate cryptography is a field in itself, see: cryptographic engineering, security engineering and cryptosystem.
Cryptography can be used to implement some remarkable protocols: zero-knowledge
proof, secure multiparty computation
and secret sharing, for example.
See also
External links
|