椭圆曲线数字签名方案与委托协议中的问责推理
椭圆曲线数字签名方案
基本 ECDSA 方案
基本 ECDSA 方案用于对消息 $m$ 进行签名和验证,实体 $A$ 的签名步骤如下:
1. 随机选择 $d \in {1, \cdots, n - 1}$ 作为私钥,并计算 $P = dG$ 作为公钥,其中 $G$ 是椭圆曲线 $E$ 上的基点。
2. 随机选择 $k \in {1, \cdots, n - 1}$,计算 $r \equiv (kG)_x \bmod n$,若 $r = 0$,则返回步骤 1。
3. 计算 $s \equiv k^{-1}(h(m) + dr) \bmod n$,若 $s = 0$,则返回步骤 1。
4. 消息 $m$ 的签名为 $(r, s)$。
实体 $B$ 验证签名时,首先获取公共参数和 $A$ 的公钥 $P$,然后检查 $((s^{-1}h(m))G + (s^{-1}r)P)_x \bmod n \equiv r$ 是否成立,若成立则接受签名,否则拒绝。
除了基本 ECDSA 方案,还有一些变体方案:
- ECDSS1 和 ECDSS2 :先计算 $r_1(r_2) \equiv h(kG, m)$ 和 $s_1 \equiv k/(r + d) (s_2 \equiv k/(1 + rd))$,得到签名 $(r_1, s_1) ((r_2, s_2))$,最后通过检查 $r_1 \equiv h(s(P + rG), m) (r_2 \equiv h(s(G + rP), m))$ 进行验证。
- NR -
超级会员免费看
订阅专栏 解锁全文
90

被折叠的 条评论
为什么被折叠?



