非对称加密——学习笔记

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

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

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。