密码学系列 - 私钥管理

私钥管理

区块链钱包的实现技术原理用一句话概括:助记词生成了种子(Seed),种子(Seed)生成私钥,私钥推导出公钥,公钥节选部分成了钱包地址。同时钱包提供了keystore,可以配合正常的密码使用,便捷了用户的钱包使用。

keyStore文件是为了方便用户记忆和使用私钥而设计的。keyStore文件的核心优势包括两点:

  • 1)提升用户体验:用户不需要输入复杂的私钥,只需要输入便于记忆的密码,和传统互联网账户密码没什么区别;
  • 2)密钥通过加密的方式存储在keyStore中,确保了私钥的安全性。

KeyStore是如何实现的?

加密私钥

为了确保私钥在keyStore文件中以加密方式(非明文)保存,keyStore文件生成时,会使用强对称加密算法(cipher)对私钥进行加密。这样私钥就可以以密文的形式存储在keyStore文件中。

密码校验

在keyStore文件中,用一个mac值确保密码的正确性,在密钥生成函数执行之后,它的输出(解密密钥)要和 ciphertext 密文连接在一起,并进行哈希散列,并且和 mac作比较。如果结果和 mac 相同,那么密码就是正确的

助记词

虽然助记词和 Keystore 都可以作为私钥的另一种表现形式, 但与 Keystore不同的是, 助记词是未经加密的私钥, 任何人得到了你的助记词, 可以不费吹灰之力的夺走你的资产。

发布了58 篇原创文章 · 获赞 66 · 访问量 8162

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/102136880