非对称加密算法简介
定义
非对称加密算法,也叫公钥密码算法。在区块链中的作用是:为交易加密,用于对交易发起、确认、签名、验证。
公钥密码算法是现代密码学发展过程中的一个里程碑。这类密码学算法需要两个密钥:公开密钥和私有密钥。因为加密和解密使用的是两个不同的密钥,另外,私钥可以推导公钥,而公钥不能倒推私钥,所以这种算法也叫做非对称加密算法。
特点
加密和解密使用的是两个不同的密钥;公钥是全网可见的,私钥只有信息拥有者才知道;私钥可以推导公钥,公钥不能倒推私钥。
用途
在发送信息过程中使用公钥加密私钥解密;
在数字签名过程中使用私钥签名(加密)公钥验证(解密)。
发送信息过程
公钥加密:发送方A用接收方B的公钥对信息加密,并将该加密后的信息传输到区块链网络。
私钥解密:接收方B用其独有的私钥对信息解密,从而确保信息获得传递的同时还保证信息的真实性。
数字签名过程
私钥签名:信息发布者用私钥对交易进行签名。用户发起交易时,用私钥对交易信息签名(加密),表明对交易具有所有权,并对真实性负责。
公钥验证签名:矿工用公钥对信息发布者的签名进行验证。矿工收到信息后,用公钥对签名进行验证(解密),若验证通过,则说明:第一,该信息是由特定的私钥的拥有者“签名”的;第二,该信息在签名后没有被改变过。那么,该信息可予以记录到区块链。
在比特币系统中,生成比特币地址的流程中也会用到公钥和私钥。
生成比特币地址流程
比特币系统随机产生一个随机数为私钥;
私钥通过Secp256k1椭圆曲线算法生成公钥;
公钥通过双哈希运算+Base58处理生成比特币地址。
私钥生成公钥过程所使用的Secp256K1椭圆曲线算法是一种单向加密函数,公钥生成比特币地址的过程中所使用的也是单向加密哈希函数。基于这些数学函数的密码学,使得生成数字密钥和不可伪造的数字签名成为可能。