区块链 非对称加密
非对称加密技术也被称为公钥密码技术(简称PKI)。它使用2个成对的密钥:
- 公钥 对外公开
- 私钥 必须严格保密,保管好不能弄丢
密钥本质上是一个数值,使用数学算法产生。可以用公钥加密消息,然后使用私钥解密;反过来也可以使用私钥加密,用公钥解密,这也被称为签名,相当于用私章盖印,对方就可以使用你的公钥来验证签名真伪(能正常解密)。
非对称加密的优点是解决了密钥的传输问题,因为公钥不怕公开。
对于比特币, 如果你泄漏了比特币钱包的私钥,其他人就可以拿走你钱包中的比特币,你也不能追踪到他,因为比特币网络中,所有账号都是一串数字(实际上就是公钥),是匿名的。
非对称加密技术主要有2个作用:
- 身份验证
- 消息加密
下面将介绍。
身份验证
当双方通信时,在发送方和接收方之间建立信任是很重要的。特别是,接收者必须信任消息的来源。例如,Bob向Alice发送一些钱,用于从她那里购买一些商品,让我们看看PKI如何在Bob和Alice之间建立这种信任。请看下图
- 首先,如果Bob想给Alice支付钱,他必须创建一对自己的私钥/公钥。注意,这2个密钥总是成对的,只能配对使用,不能混用。
- 现在,Bob要支付10美元给Alice,他创建了一条消息发送给Alice,其中包含Bob的(发送方)公钥、Alice的(接收方)公钥和金额(10美元)。
- 此笔汇款的目的,如“我想从你这里买电子书”也添加到信息中。现在,整个消息都使用Bob的私钥签名。当Alice收到这条消息时,她将使用Bob的公钥来验证消息确实来自Bob。
类似的,Bob也可以通过同样方式,验证Alice的身份。
消息加密
现在,Alice已经收到了付款,她想电子书发给Bob。Alice创建一条消息,并将其发送给Bob,如图所示
- Alice创建一条消息,比如“这是电子书”,用Bob的公钥加密。
- Alice发的消息,由于用Bob的公钥加密,所以只能由Bob的私钥解密,拦截消息的人,由于没有Bob的私钥,无法解密消息内容。这就确保了只有Bob能访问电子书网址。
这就保证了消息的私密性。
注意 如果要Bob要验证Alice的身份,Alice可以用自己的私钥给消息签名后,附上公钥发给Bob,Bob可以用Alice的公钥验证签名。
常用的PKI算法是RSA和ECDSA,比特币使用后者。
下一章:区块链 哈希 Hash
密码学中,最重要的函数之一是哈希函数。哈希函数将任意大小的数据(内容)映射到固定大小的数据(哈希值)。哈希函数是单向的,从内容生成哈希值很容易,但从哈希值映射到内容很难。比特币使用SHA-256哈希函数,该函数生成一 ...