区块链 非对称加密

非对称加密技术也被称为公钥密码技术(简称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,比特币使用后者。

密码学中,最重要的函数之一是哈希函数。哈希函数将任意大小的数据(内容)映射到固定大小的数据(哈希值)。哈希函数是单向的,从内容生成哈希值很容易,但从哈希值映射到内容很难。比特币使用SHA-256哈希函数,该函数生成一 ...