非对称加密——学习笔记

在区块链中,为保证传输信息的安全性,采用非对称加密算法,即椭圆曲线加密算法。

非对称加密算法的定义:指的是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对信息进行解密。在这对密钥中,对外公开的密钥叫作公钥,不公开的密钥叫作私钥。

在信息传递时,公钥用于加密,私钥用于解密。公钥由私钥生成,私钥可以推导出公钥,但从公钥无法推导出私钥。

私钥的生成:比特币系统中,随机抽取出一个256位的随机数作为私钥,私钥的总数为2^256个,所以很难遍历出所有可能的与公钥对应的私钥。

公钥的生成:私钥经过Secp256k1椭圆曲线算法,生成65字节长度的随机数。

地址的生成:比特币地址由公钥生成,其过程首先将公钥进行SHA256和RIPEMD160双哈希运算,且生成20字节长度的摘要。这个摘要再经过密码学家才能搞懂的运算,最后生成了可以让人识别的比特币字符地址。

数字签名:就是在信息后面加上一段内容,作为发送者的证明,以证明该信息没有被篡改。

数字签名的过程是:发送方将信息用接收方的公钥加密,得到密文。另一方面,与其并行的是将信息通过哈希算法处理得到一个哈希值,即摘要。这个哈希值再经过发送方的私钥加密得到发送方的签名。签名与密文一并发给接受者,接受者再使用自己的私钥解密密文,密文再次哈希运算,得到摘要,与使用发送方的公钥来解密还原签名得出的摘要进行对比,看是否一致,从而得出是否信息来自发送者或验证信息是否被篡改。

你可能感兴趣的:(非对称加密——学习笔记)