We stand today on the brink of a revolution in cryptography. The development of cheap digital hardware has freed it from the design limitations of mechanical computing and brought the cost of high grade cryptographic devices down to where they ca be used in such commercial applications as remote cash dispensers and computer terminals.
In turn, such applications create a need for new types of cryptographic systems which minimize the necessity of secure key distribution channels and supply the equivalent of a written signature. At the same time, theoretical developments in information theory and computer science show promise of providing provably secure cryptosystems, changing this ancient art into a science.
-Whitfield Diffie and Martin Hellman; “New Directions in Cryptography”; IEEE Transactions on Information Theory; Nov. 1976.
Public Key Cryptography (PKC) uses two keys, a “public key” and a “private key”, to implement an encryption algorithm that doesn’t require two parties to first exchange a secret key in order to conduct secure communications. In a nice mathematical twist, this conceptual breakthrough also enables an elegant implementation of digital signatures.
For thousands of years, it was unanimously agreed in the cryptography community that the only way for two parties to establish secure communications was to first exchange a secret key of some kind. This seemed to be simple common sense: if the recipient didn’t have a secret to give them some leverage, how could they be in a better position to decrypt the message than an eavesdropper? Practically speaking, this meant that one of the parties first had to send a trusted person to the second party with a secret key (which typically took a fair amount of time), or send the key through an existing encryption channel that couldn’t be completely trusted (if it was broken, all of the keys transmitted over that channel were also broken).
Nevertheless, there was increasing motivation to examine the problem for both military and commercial use. The task of military encryption key management had greatly expanded with the growth in electronic communications networks, and the number of parties that needed to communicate to organize a large-scale military operation such as World War II had numbered in the thousands. Practical experience with military communications showed that much of the conversations had ended up unencrypted, simply because there wasn’t time to establish a secure connection. In the commercial domain the problem was quickly growing to become even more challenging, with increasing use of electronic networks to conduct sensitive business communications and financial transactions, often between parties from different organizations that had not previously communicated or had the chance to exchange encryption keys beforehand.
The subsections below describe the history of the development of the seemingly magical solution to these problems, just in time for use on the Internet — Public Key Cryptography (PKC):
Diffie, Hellman, Merkle. The first researchers to discover and publish the concepts of PKC were Whitfield Diffie and Martin Hellman from Stanford University, and Ralph Merkle from the University of California at Berkeley. As so often happens in the scientific world, the two groups were working independently on the same problem — Diffie and Hellman on public key cryptography and Merkle on public key distribution — when they became aware of each other’s work and realized there was synergy in their approaches. In Hellman’s words: “We each had a key part of the puzzle and while it’s true one of us first said X, and another of us first said Y, and so on, it was the combination and the back and forth between us that allowed the discovery.”
The first published work on PKC was in a groundbreaking paper by Whitfield Diffie and Martin Hellman titled “New Directions in Cryptography” in the November, 1976 edition of IEEE Transactions on Information Theory, and which also referenced Merkle’s work. The paper described the key concepts of PKC, including the production of digital signatures, and gave some example algorithms for implementation. This paper revolutionized the world of cryptography research, which had been somewhat restrained up to that point by real and perceived Government restrictions, and galvanized dozens of researchers around the world to work on practical implementations of a public key cryptography algorithm.
Diffie, Hellman, and Merkle later obtained patent number 4200770 on their method for secure public key exchange.
Rivest, Shamir, Adleman (RSA). The Diffie-Hellman-Merkle key exchange algorithm provided an implementation for secure public key distribution, but didn’t implement digital signatures. After reading the Diffie-Hellman paper, three researchers at MIT named Ronald Rivest, Adi Shamir, and Leonard Adleman (RSA) began searching for a practical mathematical function to implement a complete PKC approach. After working on more than 40 candidates, they finally discovered an elegant algorithm based on the product of two prime numbers that exactly fit the requirement for a practical public key cryptography implementation.
RSA’s breakthrough was first publicized by Martin Gardner in August, 1977, in his widely read column Mathematical Games in the magazine Scientific American, and included an offer from RSA to mail a complete report on the PKC method to anyone that requested it. Recognizing the power of the idea and fearing its use by non-government elements, the US National Security Agency (NSA) requested that RSA stop distributing the report. However, when queried, they were unable to provide a legal basis for their request, so the university bravely decided to continue distribution. In February, 1978, RSA published a more detailed paper on their work in the journal Communications of the ACM, and the PKC cat was out of the bag for good.
In a foreshadowing of the struggle over PGP, the legal battle with the US Government over the RSA algorithm went on for several years. In one of the most comical incidents, RSA was written up by Adam Back as a 5 line PERL program, for which Peter Junger requested and received written instructions from the US Government prohibiting export outside of the country. Many people subsequently put the program in their email signatures or printed it on t-shirts to protest the Government restrictions.
In 1982, RSA formed the company RSA to market their PKC algorithm in electronic security products. They obtained patent number 4405829 on the RSA algorithm in the US, but could not obtain a patent internationally because they had already published the idea and most other countries bar retroactive patenting of open source concepts.
Whether as a licensed product, as part of PGP, or implemented by others, the RSA algorithm has become the foundation of an entire generation of public key cryptography security products. Because it provides secure communications over distances between parties that have not previously met, RSA provides the ideal mechanism required for private communications over electronic networks, and forms the basis of almost all of the security products now in use on the Internet for financial and other private communications, including most organizational level Public Key Infrastructure (PKI) systems.
In September 2000, the US patent for the RSA algorithm expired, for the first time enabling software developers everywhere to freely include this PKC standard in their products.
Ellis, Cocks, Williamson. In December, 1997, it was revealed that researchers at the GCHQ organization did some work in the early 1970’s in the field of “non-secret encryption”, which is related to public key cryptography, but without inclusion of the concept of digital signatures. However, these claims are not verifiable since the work was not published, and there are no evidentiary artifacts available such as original copies of the papers (although modern transcriptions are linked below). Therefore, in keeping with a long tradition, credit for the development and publication of PKC must remain with the researchers who first published their work in the open scientific literature, as described above. The work of the GCHQ researchers is described below as related by James Ellis in his paper The History of Non-Secret Encryption.
Ellis began thinking about the shared secret key problem in the late 1960’s when he discovered an old Bell Labs paper from October, 1944 titled “Final Report on Project C43”, describing a clever method of secure telephone conversation between two parties without any prearrangement. If John calls Mary, then Mary can add a random amount of noise to the phone line to drown out John’s message in case any eavesdroppers are listening. However, at the same time Mary can also record the telephone call, then later play it back and subtract the noise she had added, thereby leaving John’s original message for only her to hear. While there were practical disadvantages to this method, it suggested the intriguing logical possibility: there might be methods of establishing secure communications without first exchanging a shared secret key.
Ellis thought about this seemingly paradoxical idea for awhile, and while lying in bed one night developed an existence proof that the concept was possible with mathematical encryption, which he recorded in a secret CESG report titled The Possibility of Non-Secret Encryption in January, 1970. This showed logically that there could be an encryption method that could work without prior prearrangement, and the quest in GCHQ then turned to find a practical example.
The first workable mathematical formula for non-secret encryption was discovered by Clifford Cocks, which he recorded in 1973 in a secret CESG report titled A Note on Non-Secret Encryption. This work describes a special case of the RSA algorithm, differing in that the encryption and decryption algorithms are not equivalent, and without mention of the application to digital signatures. A few months later in 1974, Malcolm Williamson discovered a mathematical expression based on the commutativity of exponentiation that he recorded in a secret report titled Non-Secret Encryption Using A Finite Field, and which describes a key exchange method similar to that discovered by Diffie, Hellman, and Merkle. It is not known to what uses, if any, the GCHQ work was applied.