Public-key cryptography
Public-key cryptography refers to a method of encryption (i.e. garbling a message so that unintended people cannot read it) in which for each person a pair of keys (digital codes) are involved, one called the public key, which is disseminated widely, and one called the private key, which is known only to the intended recipient. Any person can encrypt a message for a specific person, say Alice, using Alice's public key, which is known to everyone. However this message can now be decrypted only through Alice's private key. Thus a message intended for Alice can be encrypted and safely hosted in public servers without an unintended recipient being able to read it. This system of using two different paired keys is called an asymmetric key encryption algorithm.
Technically, public-key cryptography refers to a set of cryptographic algorithms that are based on mathematical problems that currently admit no efficient solution—particularly those inherent in certain integer factorization, discrete logarithm, and elliptic curve relationships. It is computationally easy for a user to generate a public and private key-pair and to use it for encryption and decryption. The strength lies in the "impossibility" (computational impracticality) for a properly generated private key to be determined from its corresponding public key. Thus the public key may be published without compromising security. Security depends only on keeping the private key private. Public key algorithms, unlike symmetric key algorithms, do not require a secure channel for the initial exchange of one (or more) secret keys between the parties.