type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:44 AM
Parent item
领域
签名
签名本质是构造一对新的随机秘钥对,和原秘钥对进行组合运算,将原文和随机公钥计算得到一个混合hash,签名结果是私钥和随机私钥的组合,组合系数就是混合hash。
- 椭圆曲线可以表示为,为模,为曲线参数;
- 选定一个基点坐标,根据私钥计算得到公钥坐标;
- 将这3个参数、、公开;
- 产生一个随机秘钥,计算随机公钥;
- 计算一个随机系数。将签名数据和坐标计算一个:;
- 计算签名结果:。其实就是2个私钥进行组合。 注意这里是线性变换
- 公开和,即签名数据。
验证签名
- 计算, 结果是的坐标值,因为,加上后就是;
- 签名数据和坐标值进行哈希:,得到,检查和原是否一致;
以太坊使用的签名和验签算法
以太坊中使用的签名和验证方法是得到随机秘钥对后:
- 计算;
- 签名结果
- 公开,和签名数据;注意:如果,那么需要更新再计算一次
以太坊使用的签名算法中。签名返回的中,其中。
注意:v值在早前的版本中,根据Rx的奇偶性取值27或28。在EIP-155之后,为了防范重放攻击,V被调整为,确保不同的链中V值不相同。
验证方法为:
因为
只要验证得到的结果是否等于。其中是签名者的公钥
注意:在验证过程中需要用到,即签名者的公钥,而以太坊未传输公钥, 需要眼前这个从签名中恢复出公钥。
公钥恢复
恢复的公式是
关键是求,而是已知的,只要根据公式求得即可。