6、椭圆曲线密码学中的签名与验证及序列化

椭圆曲线密码学中的签名与验证及序列化

1. 椭圆曲线签名基础

在交易中,签名的最终用途是证明秘密的合法所有者正在花费比特币。这里使用的签名算法是椭圆曲线数字签名算法(ECDSA)。

1.1 目标设定

我们有一个秘密值 $e$,满足 $eG = P$,其中 $P$ 是公钥,$e$ 是私钥。目标是一个随机的 256 位数字 $k$,通过计算 $kG = R$,我们将 $R$ 的 $x$ 坐标记为 $r$。

1.2 离散对数问题

方程 $uG + vP = kG$ 等价于离散对数问题。若知道 $e$,则 $e = (k - u)/v$。这意味着任何满足该方程的 $(u, v)$ 组合都可以。若不知道 $e$,就需要不断尝试 $(u, v)$ 直到满足等式。由于离散对数问题被认为是困难的,所以能提供正确 $u$ 和 $v$ 的人被认为知道秘密 $e$。

1.3 签名哈希

我们还需要考虑签名的目的,这在签名/验证术语中称为签名哈希,用 $z$ 表示。它是一个将任意数据转换为固定大小数据的确定性函数,是包含签名者意图的消息指纹。将其纳入 $uG + vP$ 计算中,有 $u = z/s$,$v = r/s$,其中 $s = (z + re)/k$。签名由 $r$ 和 $s$ 两个数字组成。

1.4 为何不透露 $k$

如果透露 $k$,根据 $uG + vP = R$ 等等式推导,会得出 $(k - u)/v = e$,从而泄露秘密 $e$,这违背了签名的初衷。所以可以透露 $R$,但不能透露 $k$。同时,必须使用真正随机的 $k$,因为意外泄露已知签名的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值