Deconstructed (4 Part Series)
In my Blockchains Deconstructed article, I mentioned that there are many cool enabling technologies that work together to make Blockchains possible. One of these technologies is
Spy training 101! In order to pass today's lesson, you need to come up with a way to share a secret with the intended recipient (me). Unfortunately for you, you cannot seem to control your voice so anything you say can be heard by everyone. What do you tell me?
A simple solution to this is to tell me the following:
- buy a box with a digital lock (any lock will do, I used a digital lock because it is less confusing)
- keep the pin to unlock the lock to yourself
- keep the box unlocked
In order to share this secret with me without anyone else knowing, you will write the secret on a piece of paper, put it in my box and lock it up. You can be assured that the only one who can unlock the box is me because I am the only one who knows the pin to unlock this box. With this approach, we are all able to share our secrets with one another without exposing the secret itself!
In essence, this is how Asymmetric Cryptography works. Asymmetric Cryptography consists of 2 keys, a public and a private key. The unlocked box is the public key and the pin is the private key. When someone wants to share a secret with me, they would encrypt the secret by putting the secret into my unlocked box and locking it. I can decrypt it by entering the pin into the box and retrieving the secret. Asymmetric Cryptography is sometimes also referred to as Public Key Cryptography.
For the more curious readers, you might be wondering why this cryptography is called Asymmetric Cryptography and if there exists a Symmetric Cryptography. You are in fact correct; there is another form of cryptography called Symmetric Cryptography and the biggest difference between these 2 types of cryptography is the number of keys.
As described earlier, there are 2 keys in Asymmetric Cryptography.
The public key is used to encrypt something while the private key is used to decrypt it. What makes Asymmetric Cryptography even more special is that the inverse is true as well i.e. you can also encrypt something with the private key and this can only be decrypted with the public key. The most common reason for doing this is to prove to someone that that you have access to the private key corresponding to this public key.
Symmetric Cryptography on the other hand uses only one key. You encrypt and decrypt with this same key. An intuitive example of this is the lock on your house door. When you leave the house, you lock the door with a key. When you return home, you unlock the door with the same key. Anyone else with access to this key can also lock and unlock the door.
There are many different types of Asymmetric Cryptography but the most popular and widely adopted is the RSA encryption. The following is an example of a 4096 bit public private key pair generated using the RSA algorithm.
############### # Private Key # ############### -----BEGIN RSA PRIVATE KEY----- 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 M+2Z8FAKiJ+f4xkfPEU1OSU= -----END RSA PRIVATE KEY----- ############## # Public Key # ############## ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7ViW0KGeAUjDzqjGMly+8WlzJ+bPLOhP81JjFHYNnE/ j2F+SQS0ywcK3knHLvOXm+qSfOIvAaZf6xyKEbZRijrNGqwMavqhC3kbPbcI1K7raPGbsUQaJ9 VPqPGgzAWNXcNhsO0/kIvgJwCGdGNO5CzQ1CaCqKIEGEoVlfiaGzXkF+F6/yWReWkn2/aQohJ4 hTGJIxGZwBmeNRXFTpnaWMjAhFIpZXuCgV/0EZX218s+zE+XY/CwkUvZ6T5cvCEZcQcrOhQF7f zXsSOTQkfGMbQQZJJPq9UM1S0BiK3lEx4GERXllot1TvwQNDXkDurl6CFK8cpUQcFuAbA/rkZO cH7fB6Cqmlo6jcu2aJxeGG78uJ9ILATQPbl9VhOlMKcGBX2CdnBoOEsF+X94UnxBC+tIcfk9kP NLTTI+7wcAb/Kpzagp9TuUGEiW//Yapood5CHm8rJa8xXttcTp09yNXiEGsOuzVwPtV3Koi+bw upA8Pez5iPpnZD3CzT1IT0N7E4rc5OB4ZUQcNPtZ6NtvuZCbi7rNtcUrBNaECnPU0ul8yiIw/0 SGSDTwj27zLchkDFcUXv8rRQaY1wZi2hAFbcPyzhHWeltHiPIS/4mFBvaz3I4K5WbSdEgyxVBU IEEpci2RTtxaMTerEP700eJL9dwckXkPN2UTTazrqGzOAOEQ==
There are 2 general approaches to using Asymmetric Cryptography; as a standalone encryption or in conjunction with other encryption algorithms. Digital signatures is a good example of the former while Transport Layer Security (often referred to as TLS/SSL) is an example of the latter.
Blockchain transactions are a good example of digital signatures. When you want to initiate a transaction, you need to sign the entire payload with your private key. Once your transaction is mined, the miners will validate the integrity of your transaction by trying to recover the public key that corresponds to this signature. If it matches your public key (plus a few other checks), your transaction is valid.
TLS/SSL is a protocol for encrypting communications over a network. The initial communication (the TLS handshake) is where Asymmetric Cryptography is used to authenticate the identity of the website's origin server. Following that, a symmetric key pair (session keys) is generated which i used for all subsequent communication. HTTP + TLS/SSL = HTTPS.
And there you have it, Asymmetric Cryptography deconstructed! Stay tuned for other articles in the
Thanks for reading.
Claim your page on DEV before someone else does
Level up every day