购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.2 加密算法

区块链的开发和应用过程中,用到了大量的加密算法。

1.加密算法的概念

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的,数据加密过程中所应用到的算法即为加密算法。而该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

(1)公钥与私钥

公私钥对是区块链所使用的密码学的基石。公私钥对包含两部分:公钥和私钥。这两个密钥是具有特定数学关系的大整数,用于代替密码和用户名。

公钥,就像一个人的名字或用户名一样。在大多数情况下,拥有者可以向任意请求者分享他的公钥,而得到公钥的人可以引用它或联系到公钥本人。公钥与拥有者的信用(或者是比特币中你的交易历史)绑定,一个人可以有很多个公钥(因此有多个公私钥对)用于不同的目的。公钥可用于引用或查看账户,但这个公钥本身并不能用来对该账户作任何操作。

私钥则像密码一样,用于验证某些操作(私钥和密码之间的区别是,如果要使用密码,必须将其发送给某个人或服务器,以便其对密码进行验证。而使用私钥时则无须将其发送给任何人,私钥能够让你可以在不向任何人发送你的秘密信息的情况下对自己进行身份认证,这种身份验证是完全安全的,不易受其他系统的安全漏洞影响)。私钥不应向任何人分享,它曾经存储或直接使用过的唯一场所就是在你的本地设备上。

(2)对称加密与非对称加密

加密技术通常分为两大类:“对称式”和“非对称式”。

对称加密,是一种需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用,通常称为“Session Key”。这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56bits。所谓对称,就是采用这种加密方法的双方用同样的密钥进行加密和解密。因此,加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。

非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别人窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

包括比特币在内的区块链,一般都是对称加密和非对称加密相结合的,对称和非对称用在不同的环节,以比特币为例:

比特币用基于secp256k1椭圆曲线数学的非对称加密算法。它包含私钥与公钥,私钥用于对交易进行签名,将签名与原始数据发送给整个比特币网络,公钥则用于整个网络中的节点对交易有效性进行验证。保证了交易是由拥有对应私钥的人所发出的。

比特币私钥其实是使用SHA-256哈希算法生成的32字节的随机数,而比特币地址的生成,会把将公钥通过SHA-256哈希算法处理得到32字节的哈希值,再经过Base58编码处理变成地址。

2.不同加密算法的适用情况

由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。

由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

在实际的操作过程中,通常是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

需要注意的是,对称加密算法不能实现签名,签名只能采用非对称算法。 qOwzFfCyWkT8IybpA/+D8HIVtzIkotLpNSh46AtFFDjaFVrko2hXqXPwy0d7zOqQ

点击中间区域
呼出菜单
上一章
目录
下一章
×