Public key cryptography, also known as asymmetric cryptography, is a type of cryptographic algorithms that operate with the help of two separate keys — private and public keys. These two are different, but at the same time they are mathematically related to one another. The keys have unrelated functional properties — the public key is used to encrypt plaintext or to verify a digital signature, whereas the private key’s main purpose lies in decrypting cipher-text or in creating a digital signature. The term ‘asymmetric’ identifies the oppositeness of these functions in contrast to ‘symmetric’ cryptography, where one key is used to perform both functions.
The first attempt to create a ‘non-secret encryption’ was made by a British cryptographer James H. Ellis at the Government Communication Headquarters in 1970. However, the scientist was unable to find a proper solution for this innovative technology. In 1973, his colleague Clifford Cocks came up with an RSA encryption algorithm, the first practical implementation of the public key cryptography. Nevertheless, this scientific field would not have been developing so rapidly if, in 1997, the British government did not declassify these findings, making them available to the public.
Generation of a public and private key pair and applying them for encryption and decryption does not require significant computational power. The main advantage of the public key cryptography lies in the ‘impossibility’ — computationally unfeasibility — of determining the private key from the corresponding public key. For this reason, the public key can be widely distributed without compromising the security and the safety of the data, whereas the private key can only be disclosed to individuals with proper authorisation.
Public key algorithms are the fundamental security component in cryptographic systems, applications and protocols. They are widely used in various Internet entities, for example, Transport Layer Security, Secure Sockets Layer (SSL — Internet security protocol), Pretty Good Privacy (PGP — data encryption and deception program), GNU Privacy Guard (GPG — cryptographic software), Bitcoins, etc.
When it comes to Bitcoins, private and public keys are used to ensure confidentiality, authenticity, integrity, and data originality of digital communication and data storage. These keys protect from man-in-the-middle attacks and other security threats. According to the main concept of public key cryptography, the public key, which operates like a bank account details, can be freely distributed anywhere (company website, business cards, brochures, etc.). However, the private key should be kept private and to ensure security of funds, it should not be revealed to the public.