ECDSA确定性签名

微博:比特币布道者

时间:2023年9月21日 17:04

签名用的随机私钥k生成过程:在原bicoinjs-lib的SecureRandom()的基础上,再拼接上私钥和待签名交易的哈希值,即k = SHA256(privKey + SHA256(SHA256(message)) + SecureRandom())。

这样生成的“签名用随机私钥”够安全了吧,这样既保证了不同交易不会采用相同的随机私钥,又保证了随机私钥是隐私的且不可推导的。

SecureRandom()初始化时用的seed是取自Math.random,在生成签名用随机私钥时,又用当前的系统时间对seed的前四字节进行了二次修改。

网上没找到js版的RFC6979函数(k值的确定性初始化的行业标准算法),自己编写又力不从心,主要是感觉也没必要。

相关文章:

比特币布道者

比特币的坚定信仰者!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注