ECDSA密钥

一、对称加密算法

  指加密和解密使用相同密钥的加密算法。对称加密算法用来对敏感数据等信息进行加密,常用的算法包括DES、3DES、AES、DESX、Blowfish、、RC4、RC5、RC6。

二、非对称加密算法

  指加密和解密使用不同密钥的加密算法,也称为公私钥加密,公钥是公开的,私钥是私有的。

   1.公钥加密,私钥解密:

  当Alice给Bob写信,不希望信件被别人解读,可以使用Bob公开的公钥对信件加密。Bob收到信件后,用自己的私钥解密即可。

  2.私钥签名,公钥验证:

  当Alice给Bob写信,希望证明是Alice自己写的信,而不是伪造的信件,可以使用Alice自己的私钥进行签名。Bob收到信件后,用Alice的公钥验证签名即可。

  常见的非对称加密算法:RSA、DSA、ECC、Diffie-Hellman、El Gamal。

三、ECC(Elliptic Curve Cryptosystems)

  ECC椭圆曲线加密算法相比于RSA来说,可以用比RSA更短的密钥长度达到与其相同的安全程度,一般认为160位的椭圆曲线密钥提供的安全强度与1024位RSA密钥相当。

四、ECDSA

  ECDSA椭圆曲线数字签名算法是DSA作用于椭圆曲线的一个变种算法,Secp256k1是ECDSA曲线的参数,也是比特币选择的特定椭圆曲线。
 公钥其实是secp256k1椭圆曲线的一个坐标点,即(x,y)形式,用16进制表示是:
(9e377b88660311e038b2928f429f5d86bfd4da457cc879d7d8bbeced5473fa2e,
baec5bed260c762e715fa0f333283757dbce71114278a3efdef9416c7c7c09ea)

  1.未压缩公钥

  前缀04 + x坐标 + y坐标
049e377b88660311e038b2928f429f5d86bfd4da457cc879d7d8bbeced5473fa2ebaec5bed260c762e715fa0f333283757dbce71114278a3efdef9416c7c7c09ea

  2.压缩公钥

  前缀03 + x(如果y是奇数),前缀02 + x(如果y是偶数)
 baec5…c7c09ea从最后一位0xa来看,是偶数,所以压缩公钥是:
039e377b88660311e038b2928f429f5d86bfd4da457cc879d7d8bbeced5473fa2e