公钥加密
更新一些帮助理解网络、区块链的小科普。
在数字世界,信息就是包裹📦,甚至很多时候是私人或有权限的物品。我们希望自己的“物品”以某种安全的方式到达某处,有时是信息,有时是价值,既能够保证隐私,又能够验证真实的虚拟身份。
如何在互联网上传递信息和价值(钱),以及如何更好的在互联网上传递信息和价值。我们可能要了解一些让这件事成立的building blocks。
今天来聊聊加密。
对称加密 (Symmetric Encryption)
想象Bob有一个上锁的箱子和一把开锁的钥匙,只有他自己或者有该钥匙备份的人能打开箱子。这就是对称加密,用同一把钥匙上锁(encrypt)和开锁(decrypt)。
非对称加密 (Asymmetric Encryption)
想象Bob有一个特别的箱子,这个箱子的锁有三个转向:上锁(A)、开锁(B)、上锁(C)。相应的这锁有两把钥匙,第一把只能顺时针拧,从A-B-C;另一把只能逆时针拧,从C-B-A。Bob自己留第一把钥匙,也就是“私钥”。Bob配了100把第二种钥匙(也就是“公钥”),把它分发给亲朋好友,再放一些在门口的垫子下面。
现在Jessie想往Bob的箱子里放个文件,她用Bob的公钥给箱子上锁(C-B-A),最后只有Bob拿自己的那把私钥才能开锁(A-B-C)。
公钥加密是基于非对称加密。
数字签名 (digital signature)
想象Bob自己往箱子里放了一个文件,并上锁(A-B-C)。也就是说,任何有他公钥的人都可以打开这个箱子(C-B-A)。假设这时快递员给Jessie送来了个箱子,说这是Bob寄来的,怎么证明这真是Bob发出的呢?
Jessie只要拿出Bob给她的那把公钥,如果顺时针转锁不开,逆时针转锁开了,就可以证明了。这就是数字签名。
总结一下,在公钥加密(非对称加密)中:任何人可以给你发送用你的公钥(public key)加密(encrypt)过的信息,只有你可以用私钥(private key)解密(decrypt);如果你用私钥(private key)加密(encrypt)一个信息,那么有你公钥(public key)的人既可以解密(decrypt),又可以验证这个信息是不是真是你发出的(经你签过名的)。
Resource: https://blog.vrypan.net/2013/08/28/public-key-cryptography-for-non-geeks/
微信扫码关注该文公众号作者