Published on Sep 21, 2019
Quantum cryptography is an effort to allow two users of a common communication channel to create a body of shared and secret information. This information, which generally takes the form of a random string of bits, can then be used as a conventional secret key for secure communication.
It is useful to assume that the communicating parties initially share a small amount of secret information, which is used up and then renewed in the exchange process, but even without this assumption exchanges are possible.
The advantage of quantum cryptography over traditional key exchange methods is that the exchange of information can be shown to be secure in a very strong sense, without making assumptions about the intractability of certain mathematical problems. Even when assuming hypothetical eavesdroppers with unlimited computing power, the laws of physics guarantee (probabilistically) that the secret key exchange will be secure, given a few other assumptions.
Cryptography is the art of devising codes and ciphers, and cryptoanalysis is the art of breaking them. Cryptology is the combination of the two. In the literature of cryptology, information to be encrypted is known as plaintext, and the parameters of the encryption function that transforms are collectively called a key.
Existing cryptographic techniques are usually identified as ``traditional'' or ``modern.'' Traditional techniques date back for centuries, and are tied to the the operations of transposition (reordering of plaintext) and substitution (alteration of plaintext characters). Traditional techniques were designed to be simple, and if they were to be used with great secrecy extremely long keyswould be needed. By contrast, modern techniques rely on convoluted algorithms or intractable problems to achieve assurances of security.
There are two branches of modern cryptographic techniques: public-key encryption and secret-key
encryption. In public-key cryptography, messages are exchanged using keys that depend on the assumed difficulty of certain mathematical problems -- typically the factoring of extremely large (100+ digits) prime numbers. Each participant has a ``public key'' and a ``private key''; the former is used by others to encrypt messages, and the latter by the participant to decrypt them.
In secret-key encryption, a k-bit ``secret key'' is shared by two users, who use it to transform plaintext inputs to an encoded cipher. By carefully designing transformation algorithms, each bit of output can be made to depend on every bit of the input. With such an arrangement, a key of 128 bits used for encoding results in a key space of two to the 128th (or about ten to the 38th power).
Assuming that brute force, along with some parallelism, is employed, the encrypted message should be safe: a billion computers doing a billion operations per second would require a trillion years to decrypt it. In practice, analysis of the encryption algorithm might make it more vulnerable, but increases in the size of the key can be used to offset this.
The main practical problem with secret-key encryption is determining a secret key. In theory any two users who wished to communicate could agree on a key in advance, but in practice for many users this would require secure storage and organization of a awkwardly large database of agreed-on keys.