“Cryptography” comes from the Ancient Greek word “krypto” meaning hidden or secret. Cryptography, the art and science of secrecy, has had a profound impact on the history of our species.
Cryptography was used by the Ancient Egyptians, Hebrews, Indians, and Greeks. We see it mentioned by Herodotus and in the Kama Sutra. Monarchs, aristocrats, military generals, elite merchants and religious clergies all over the world have used the art of secrecy for centuries. Although we know a considerable amount about the history of secrets, it’s hard to know the full truth about the progression of the art of secrecy because of its very nature. Quite fittingly, its largely a secret. Luckily for us, enough of it isn’t a secret.
Cryptography and cryptanalysis (codebreaking) have come along way since their humble beginnings. In the ancient world relatively simple ciphers were used by elites to protect their communications. The most famous use of early techniques in the ancient world is known as the Caesar cipher named after Roman General Julius Caesar.
Ciphers like the Caesar cipher remained effective, as far as we know, until Arab scholars invented cryptanalysis during the Abassid Caliphate. They invented a technique called Frequency Analysis which anchors its effectiveness in the discovery that letters, or the combination of characters used in languages, appear in different and somewhat predictable frequencies. This fact allowed code breakers to break simple substitution ciphers like the Caesar Cipher fairly easily using statistical analysis. The history of cryptography is a never ending battle between codemakers and codebreakers.
Medieval and early modern cryptographers adjusted by creating more complex ciphers. During the early modern period, ciphers were introduced in Europe that wouldn’t be broken for hundreds of years. Two of these ciphers, the Vigenere Cipher and the Great Cipher, wouldn’t be broken until the 19th Century. After these ciphers were broken there wasn’t much progress for codemakers until the 1920s, when Germany started using a machine called Enigma.
Cracking the Enigma
Up until this point in history the art of secrecy had largely been done by humans with hand, paper, raw intellect, and rudimentary cypher disks. The Enigma machine used by the Germans in the early 20th century was the first major breakthrough to protect messages since the Vigenere Cipher and the Great Cipher. It also kicks off the electrification and mechanization of secrecy.
Breaking the Enigma machine became an existential must-do for the Allies. Code breakers in Poland, France, and England took cryptanalysis to the next level. The Enigma and the war effort motivated the research and development of the necessary theoretical and practical work that laid the foundation of modern cryptography, modern computers, and the information age.
Everything you’ve read about cryptography up until this point (the breaking of Enigma) is now known as symmetric key cryptography. Meaning the encryption and decryption key(s) are the same (symmetric).
One of the crucial factors in determining the strength of any cipher is the number of possible keys the secret key could be. The larger the possibility space, the stronger the cipher. If the space is large enough, finding the correct secret key becomes impractical for an attacker. Symmetric cryptography is very useful but its usefulness is limited.
Although symmetric cryptography is effective it creates something known as the “key distribution problem”. How do you establish a strong secret key between you and another without communicating the secret key in a way that exposes it? To solve this problem, governments, banks, militaries and anyone else using symmetric cryptography had to use a trusted middle-man to share the secret between the two parties looking to establish secure and private communication. This middleman is not only inefficient and hard to scale, it’s also a central point of failure. The cipher could be unbreakable but if malicious parties intercept or corrupt the middleman it doesn’t matter.
Public Key Cryptography(Asymmetric Crypto)
In the 1970s researchers Diffie, Helman, and Merkle (DHM) solved the key distribution problem by eliminating the need for a shared secret key. They invented asymmetric cryptography with the discovery of Public Key Cryptography. The DHM team proved conceptually that the actions of encryption and decryption could be split up into two different keys: public and private. In DHM’s scheme the private key would be the decryption key and the public key would be the encryption key. In practical terms, DHM showed that by using public key cryptography anyone in the world could publicize their public key, other users around the world could use this public key to encrypt messages they send to the public key owner, and only the owner of the corresponding private key could decrypt those messages and read their content.
Although the two keys are different, they are mathematically related. DHM proved this conceptually, but the group of researchers needed to find a suitable mathematical function to implement the Public Key concept and bring it to life. They searched for a mathematical function that required energy to execute its operation and required an order of magnitude more energy to reverse engineer or undo the operation.
Functions with these two properties are called one-way functions. Cracking open an egg and cooking it is an everyday example of a one way function. It requires some energy and work to crack and cook but to un-cook and put the egg back in its shell would require significantly more energy and would be considered close to impossible by the standards of common sense.
Although DHM invented the concept of Public Key cryptography in the early 1970 a solution wasn’t found until the late 1970s by a different group of researchers at MIT. They called their implementation of DHM’s concept RSA, based on the first names of each of the researchers. These researchers were the first to find an appropriate one way function for the concept of Public Key Cryptography. This brought the concept to life with a practical implementation. RSA went on to be used by large institutions like governments, militaries, and organizations with large commercial and financial interests. Up until the nineties, only large organizations had the ability and computing power to create asymmetric keys.
However, as the personal computing revolution started to accelerate, by the late 80s everyday users had enough computing power on their devices to create asymmetric key pairs necessary for the use of Public Key Cryptography. A computer scientist and software engineer named Phil Zimmerman knew this, and wanted to make asymmetric crypto software for the masses that would end the government and commercial duopoly on asymmetric cryptography.
He succeeded with the rollout of his revolutionary PGP (Pretty Good Privacy) product which was the first publicly available free and open source software offering asymmetric cryptography to the individual computer user. Ordinary computer users could now communicate securely and privately using Phil Zimmerman’s PGP product, which is still in use today. PGP is the first public use of asymmetric cryptography, but it wouldn’t be the last.
The next implementation of public key cryptography for mass use was TSL (Transport Layer Security), previously known as SSL (Secure Sockets Layer). Billions of people use TSL everyday without knowing it to safely browse the web, send secure messages, and anything else that’s done over the internet without users ever seeing or interacting with cryptographic keys. In the background of your browsing experience, TSL uses symmetric and asymmetric cryptography in combination to create a secure internet experience for as many users as possible. You used TSL to securely navigate to this web page where this blog post is hosted.
By creating Bitcoin in 2009, Satoshi Nakamoto not only created a new money but used Public Key cryptography (asymmetric keys) as one of the foundations of this new money.
Like, DHM, Satoshi wanted to remove middle men. Public Key cryptography removed the need for a middle man which was needed in symmetric cryptography but in the case of Bitcoin, the middle man wasn’t a secret sharer, but rather an organization that determined the validity and chronological order of transactions (Payment Processor) as well as the supply of new units and their supply schedule (Central Bank). Satoshi removed the need for these types of organizations or trusted third parties with the combination of Public Key Cryptography and cryptographic hash functions (one-way functions). It seems, nested within Public Key Cryptography and one way functions was the essence of Bitcoin. Thanks to DHM, Satoshi, and countless others, mathematics now takes the place of middlemen to secure our communication and our money.
“We define an electronic coin as a chain of digital signatures”- Satoshi Nakamoto
Digital signatures allow someone to prove, mathematically, they have a private key, without revealing the private key itself. In the case of Bitcoin and all other crypto-assets that use Public Key Cryptography, any user can check for the appropriate mathematical relationship between a signature and a public key and verify the validity of every transaction in this manner. If the appropriate mathematical relationship is confirmed, others on the network know whoever broadcasted the transaction has control over the private key needed to generate the appropriate signature and the appropriate public key. Again, everyone can prove they have a certain secret without revealing it, and everyone else on the network can verify the truth mathematically without the aid of a third party. This is extremely powerful.
But Public Key Cryptography isn’t enough by itself to produce Bitcoin. You can define money as a chain of digital signatures, but who’s going to determine the order of transactions and how could a lone user know that a payer didn’t spend the same coins more than once? A payer may have proved mathematically that they have a secret but they may have used the same signature for the same electronic coins for two different transactions. This is the famous double spend problem. Satoshi recognized other digital signature based money schemes relied on a third party to monitor every transaction for a double spend and monitor the entire network for counterfeits. The problem with this set-up was its total reliance on a central authority. Satoshi needed a solution that removed the need for a central authority.
“The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.” – Satoshi Nakamoto
In the above paragraph Satoshi explains that by using one way functions (cryptographic hashes) and publishing them publicly (timestamp) we can prove “data must have existed at the time of publishing”. And within each timestamp includes “the previous timestamp in its hash, forming a chain”. Not only are “coins” linked using digital signatures, blocks of transaction data are linked using cryptographic hashes. Hashed timestamps infinitely rolled into the next hashed timestamp allow everyone on the network to know when transactions happened and can determine this mathematically without the need to trust a third party in perpetuity.
Now that Satoshi set up a system of proving the order of transactions based on linked hashed timestamps, Satoshi needed a way for the network to protect that data from later alteration and to signal consensus over the block of transactions the network has accepted. Bitcoin’s proof of work system uses a cryptographic hash function, SHA-256, for those two purposes: protecting the integrity of data stored within blocks and to signal majority decision making about blocks and the transactions contained in them.
“To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof-of-work system” – Satoshi Nakamoto
Once a block has been accepted by the network with the appropriate signatures, hashes, and proof of work, an attacker would have to redo the proof of work to alter the data in the block AND redo the proof of work of every block produced after the first block they attempted to alter. This is designed to be a very expensive attack, consisting of not only expensive direct costs but expensive opportunity costs. In addition, the total cost of the attack increases exponentially the farther away you are from the tip of the chain.
With this design we’ve protected the integrity of the data on the Bitcoin blockchain, but how does Proof of Work aid in consensus?
To add a block of transactions to the Bitcoin blockchain the protocol requires a hash to be produced that could only be produced in ten minutes by a certain amount of hashing power. The amount of power required to produce the hash is supposed to be roughly equal to the amount of hashing power currently on the Bitcoin network. This hash is a proof of work of not only the individual miner who produced the hash but it also acts as a proof of work for the network as a whole. Since the hashing contest is a game of randomness and the difficulty of producing the hash equals the collective hashing power of the network, the whole network needs to collectively expend energy for at least one of them to produce the right hash with the appropriate proof of work. A mix of competition and team-work makes the Bitcoin dream work. The PoW game that restarts every ten minutes is a collective co-opetition that removes the need for a central authority.
Those that engage in proof of work, miners, rally around and build on top of the longest chain of cryptographically valid blocks with the most accumulated proof of work. The “electronic coins” are linked together by digital signatures, the blocks are linked by timestamped hashes, and the blocks themselves are protected by SHA-256.
Cryptography makes all of this possible.
Satoshi produced an elegant solution to the double spend problem with Bitcoin, but the early years of Bitcoin weren’t incredibly user friendly. Bitcoin users were provided with a wallet.dat file, which housed their private key information and needed to be backed up regularly in case their computer died. Unless their file was properly encrypted, which is often a complex and painstaking process, this wallet.dat file often sat on a user’s computer unprotected against common malware. In addition, users had no recoverability in the event of a lost encryption password. Risk became an unfortunate consequence of the early Bitcoin ecosystem. In an effort to mitigate some of this uncertainty, developers began to further explore the deep-rooted relationship between security and usability.
In 2012, Bitcoin developer Pieter Wuille published Bitcoin Improvement Proposal (BIP) 32 outlining the invention of Hierarchical Deterministic Wallets, which allowed users to have one master private key for an infinite number of public addresses. At the time, this was a significant improvement in Bitcoin’s user experience infrastructure. Instead of having to encrypt and remember each private key, you could instead consolidate all of this information onto one file. Encrypting and backing up this one file protects the current funds and any future funds your wallet may receive.
Shortly thereafter in late 2013, HD wallets underwent further improvements with the introduction of mnemonic seeds (BIP39), which allowed a master private key to be represented by 12 or 24 words. Users could now back up their wallet by writing down 12-24 words and putting it in a secure location.
Although an improvement on user experience, our co-founders thought the 12-24 word seed as a backup was still not good enough for mass adoption. Our co-founders in 2013 set out to build a non-custodial bitcoin wallet that removed the need to write down, encrypt, and back up a private key or a random 12 or 24 word seed. They were successful in late 2014 with the introduction of our first product: The Airbitz Bitcoin Wallet.
Instead of encrypting and backing up a private key or 12-24 word seed, users of Airbitz(now Edge) would only have to produce a username and a password to backup and protect their Bitcoin Wallet. The username is used for backup purposes and the password is used to protect those backups. Our software hashes user passwords and those hashed passwords are used as encryption and decryption keys to protect and unlock user accounts. In addition, our software hashes passwords according to the capabilities of the device a user is using. A more powerful CPU will produce a more powerful hash of the password and hence a stronger encryption key. As hardware continues to improve our password hashing will progressively increase in strength in tandem with those improvements.
To build the Airbitz Bitcoin wallet, the co-founders used symmetric and asymmetric cryptography in combination to create a secure, private, and easy to use Bitcoin wallet. The co-founders used symmetric cryptography to protect private keys from loss and theft and they used asymmetric cryptography to enable users to transact on networks such as Bitcoin.
Blasting forward to 2017, the crypto-asset space had expanded significantly in depth and scope since 2014, bringing the total number of crypto-assets into the 1,000s and the market capitalization of the entire ecosystem to a couple hundred billion dollars. By late 2017 we were able to expand our wallet and platform’s capabilities to include other assets besides Bitcoin.
Users of the new multi-asset wallet, Edge, have access to vastly more assets with the same level of security, privacy, and usability they enjoyed with Airbitz. With the release of the Edge Wallet, users anywhere in the world could back up a significant amount of value spread across many different assets with just a username and a password. Edge like Airbitz and TSL, leverages symmetric and asymmetric cryptography in combination to create a secure, private, and easy way of interacting with the internet of money in as many ways as possible.
For example, imagine a user of Edge is living in Venezuela and holds $2,000 USD spread across BTC, DASH, and ETH. This is his and his family’s life savings. The user wants to cross the border into Colombia, but he knows Venezuelan security forces are known to confiscate personal belongings such as phones and luggage, check them for their content, and often withhold valuable items. This hypothetical user could delete his Edge Wallet before he gets to the border, pass the border checkpoint, download the Edge Wallet in Colombia on the same phone or a new one, and type in his username and password. The user’s phone will pull down an encrypted copy of his account from Edge servers, and the hash of the password he just typed in will decrypt the account right on his phone. The user will then see all of his value right where he left it, and will be able to transact with whoever he likes, whenever he likes, privately and securely. h
Cryptography makes all of this possible.
Threats to Cryptography: Quantum Computing?
Could Edge’s, Bitcoin’s, or any other crypto-asset’s cryptography be broken by a quantum computer? The good news is that the existence of a quantum computer does not put Edge’s use of symmetric cryptography at risk. Quantum computers will be no better at breaking symmetric cryptography than a classical computer. The bad news is the existence of a quantum computer theoretically puts certain public key cryptography and digital signatures systems at risk like RSA and ECDSA(what Bitcoin uses currently). However, the current asymmetric ciphers Bitcoin and other crypto-assets use are extremely strong, and other publicly available asymmetric ciphers may be quantum resistant.
Cryptanalysis, or codebreakers, need a massive theoretical or technological breakthrough to put the ciphers crypto-assets use at risk. Pure mathematical theory seems like a dead end because of the nature of factoring and the properties of prime numbers. Factoring is tough, time consuming, energy intensive, and includes many steps that seem mathematically non-negotiable. The hopes and dreams of breaking asymmetric cryptography seem to lie primarily in the advancement of technology. Code-breakers are looking to quantum computing as the technological breakthrough they need to break asymmetric cryptography.
Quantum computers are a threat because they can compute many things at once. Their classical computing counterparts, like the one you’re using right now, can only compute one number at a time. Because of a quantum computer’s ability to compute many things at once, researchers think they can break the usefulness of the discrete log problem which is the mathematical foundation of a lot of asymmetric cryptography. But this fact does not let us conclude that Quantum Computing breaks all public key cryptography. A Quantum computer may be able to break certain schemes like RSA or ECDSA but there are other classes of cryptographic systems like lattice based cryptography and multivariate-quadratic-equation based cryptography that are believed to be resistant to a Quantum Computing attack.
Although the theoretical threat is real to cryptocurrencies using signature algorithms like ECDSA, Quantum Computing doesn’t look to be a relevant practical threat in the short to medium term. This gives users and developers of crypto networks time to research, test, pick, and switch over to a quantum resistant cryptographic system when appropriate. Some researchers are even developing a protocol which allows users to securely move their funds from old (non-quantum-resistant) outputs to those adhering to a quantum-resistant digital signature scheme. According to the researchers this could be implemented via a soft-fork of Bitcoin.
In addition, technologies can be used in multiple ways. Some researchers and organizations will use quantum computing to do mind-bending cryptanalysis, but they might also use quantum computing to develop face-melting quantum cryptography. In fact, a young researcher in 1970 developed a theoretical proposal called quantum money that leveraged quantum cryptography to produce un-forgeable bank notes. His proposal was rejected initially and wasn’t published until 1983. This quantum money is a theoretical construct, but it shows researchers can in many different directions with powerful technologies. Quantum computing might be able to break existing asymmetric ciphers as well as aid in the development of a new paradigm of quantum cryptography.
The history of cryptography is a never ending battle between codemakers and codebreakers. The battle continues to this very day and it’s as intense as ever.