微博:比特币布道者
时间:2023年9月21日 17:04
签名用的随机私钥k生成过程:在原bicoinjs-lib的SecureRandom()的基础上,再拼接上私钥和待签名交易的哈希值,即k = SHA256(privKey + SHA256(SHA256(message)) + SecureRandom())。
这样生成的“签名用随机私钥”够安全了吧,这样既保证了不同交易不会采用相同的随机私钥,又保证了随机私钥是隐私的且不可推导的。
SecureRandom()初始化时用的seed是取自Math.random,在生成签名用随机私钥时,又用当前的系统时间对seed的前四字节进行了二次修改。
网上没找到js版的RFC6979函数(k值的确定性初始化的行业标准算法),自己编写又力不从心,主要是感觉也没必要。
相关文章:
- 椭圆曲线数字签名算法(ECDSA)签名R S值
- Java密码学 非对称加密以及使用secp256k1进行数字签名(ECDSA),也适合Android(下)
- Java密码学 非对称加密以及使用secp256k1进行数字签名(ECDSA),也适合Android(上)
- libsecp256k1 与 openssl ecdsa
- 椭圆曲线数字签名算法
- BIP39:使用助记词生成确定性钱包秘钥
- 我们需要接受不完美的预测,也需要时刻提醒自己,再有把握的事情,也存在不确定性
- 我们需要接受不完美的预测,也需要时刻提醒自己,再有把握的事情,也存在不确定性。
- 比特币延展性攻击进行时,BIP62或永久性解决这个问题
- 货币价值的稳定性问题