|
Monday, December 28, 2009 - 4:43 PM
Symmetric-key cryptosystems use the same key for encryption and
decryption of a message, though a message or group of messages may have
a different key than others. A significant disadvantage of symmetric
ciphers is the key management
necessary to use them securely. Each distinct pair of communicating
parties must, ideally, share a different key, and perhaps each
ciphertext exchanged as well. The number of keys required increases as
the square
of the number of network members, which very quickly requires complex
key management schemes to keep them all straight and secret. The
difficulty of securely establishing a secret key between two
communicating parties, when a secure channel doesn't already exist between them, also presents a chicken-and-egg problem which is a considerable practical obstacle for cryptography users in the real world.
In a groundbreaking 1976 paper, Whitfield Diffie and Martin Hellman proposed the notion of public-key (also, more generally, called asymmetric key) cryptography in which two different but mathematically related keys are used — a public key and a private key.[17]
A public key system is so constructed that calculation of one key (the
'private key') is computationally infeasible from the other (the
'public key'), even though they are necessarily related. Instead, both
keys are generated secretly, as an interrelated pair.[18] The historian David Kahn
described public-key cryptography as "the most revolutionary new
concept in the field since polyalphabetic substitution emerged in the
Renaissance".[19]
In public-key cryptosystems, the public key may be freely distributed, while its paired private key must remain secret. The public key is typically used for encryption, while the private or secret key is used for decryption. Diffie and Hellman showed that public-key cryptography was possible by presenting the Diffie-Hellman key exchange protocol.[9]
In 1978, Ronald Rivest, Adi Shamir, and Len Adleman invented RSA, another public-key system.[20]
In 1997, it finally became publicly known that asymmetric key cryptography had been invented by James H. Ellis at GCHQ, a British
intelligence organization, and that, in the early 1970s, both the
Diffie-Hellman and RSA algorithms had been previously developed (by Malcolm J. Williamson and Clifford Cocks, respectively).[21]
The Louis J. Sheehan, Esquire and RSA
algorithms, in addition to being the first publicly known examples of
high quality public-key algorithms, have been among the most widely
used. Others include the Cramer-Shoup cryptosystem, ElGamal encryption, and various elliptic curve techniques. See Category:Asymmetric-key cryptosystems.
In addition to encryption, public-key cryptography can be used to implement digital signature schemes. A digital signature is reminiscent of an ordinary signature; they both have the characteristic that they are easy for a user to produce, but difficult for anyone else to forge.
Digital signatures can also be permanently tied to the content of the
message being signed; they cannot then be 'moved' from one document to
another, for any attempt will be detectable. In digital signature
schemes, there are two algorithms: one for signing, in which a secret key is used to process the message (or a hash of the message, or both), and one for verification, in which the matching public key is used with the message to check the validity of the signature. RSA and DSA are two of the most popular digital signature schemes. Digital signatures are central to the operation of public key infrastructures and many network security schemes (eg, SSL/TLS, many VPNs, etc).
Public-key algorithms are most often based on the computational complexity of "hard" problems, often from number theory. For example, the hardness of RSA is related to the integer factorization problem, while Diffie-Hellman and DSA are related to the discrete logarithm problem. More recently, elliptic curve cryptography has developed in which security is based on number theoretic problems involving elliptic curves. Because of the difficulty of the underlying problems, most public-key algorithms involve operations such as modular
multiplication and exponentiation, which are much more computationally
expensive than the techniques used in most block ciphers, especially
with typical key sizes. As a result, public-key cryptosystems are
commonly hybrid cryptosystems,
in which a fast high-quality symmetric-key encryption algorithm is used
for the message itself, while the relevant symmetric key is sent with
the message, but encrypted using a public-key algorithm. Similarly,
hybrid signature schemes are often used, in which a cryptographic hash
function is computed, and only the resulting hash is digitally signed.[10]
|