首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECDSA签名过程

ECDSA签名过程
EN

Cryptography用户
提问于 2019-03-21 10:17:24
回答 1查看 382关注 0票数 3

我正在努力学习ECDSA是如何工作的。我没有数学方面的背景,但一直在遵循一份指南,该指南使我从有限域,椭圆曲线中学毕业。我无法弄清楚签名是如何生成的,它的描述是这里

来陈述我所理解的。

  • E=私钥
  • G=发电机点
  • P=公钥
  • K=短时键

公钥是曲线上的一个点,计算为

e.G =P

签名算法从随机目标R开始。

kG =R

直接向上的指南代表R(其中u/v由用户选择):

uG + vP = kG

我有点不明白这种关系是如何或为什么成立的。它似乎是从曲线uG上的一个随机点开始,并添加了公钥的标量倍数(可以进一步表示v.e.G)。

EN

回答 1

Cryptography用户

发布于 2019-03-29 17:52:24

选择一个坐标字段\mathbb F_p,例如p = 2^{256} - 2^{32} - 977。在\mathbb F_p上选择y^2 = x^3 + a x + b形式的椭圆曲线,如a = 0b = 7。(这是比特币中使用的曲线secp256k1。)选择质数阶G的标准基点\ell,这样\ell是最小的正整数,使得[\ell]G = \underbrace{G + \cdots + G}_{\text{$\ell$ times}} = \mathcal O. \mathcal O是‘无穷大的点’,或者是群的恒等式。

ECDSA public键是曲线上具有坐标(x(P), y(P))的点P。消息m上的ECDSA 签名是带有1 < r, s < \ell的一对整数,使得verification方程 r \equiv f\bigr([H(m) \, s^{-1}]G + [r s^{-1}]A\bigr) \pmod \ell成立,其中f(A) = x(A) \bmod \ell是一种任意函数,将x坐标字段\mathbb F_p映射到标量环\mathbb Z/\ell\mathbb Z (这是一件相当奇怪的事情,但这就是生活)。

签名者知道secret标量 e,使得P = [e]G,其方程是r = f\bigl([H(m)\,s^{-1}]G + [r s^{-1} e]G\bigr) = f\bigl([H(m) \, s^{-1} + r s^{-1} e]G\bigr),,这意味着签名者可以随机一致地选择一个每个签名的秘密k,导出r = f([k]G),然后通过计算s := [H(m) \, k^{-1} + r k^{-1} e] \bmod \ell.求解s的标量方程k \equiv H(m)\,s^{-1} + r s^{-1} e \pmod \ell

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/68189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档