首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EC密钥压缩

EC密钥压缩
EN

Cryptography用户
提问于 2019-05-22 13:32:47
回答 1查看 4.6K关注 0票数 2

使用secp256k1曲线,下面会产生同样的结果吗?

  1. 生成私钥->压缩私钥->生成公钥
  2. 生成私钥->生成公钥->压缩公钥

我已经使用openssl进行了测试,并且我相信答案是肯定的,但我希望了解基本数学的人能够在我假设这是真的之前确认这一点。

谢谢

EN

回答 1

Cryptography用户

发布于 2019-05-22 16:43:08

实际上,您不需要知道底层的数学(但是如果您想要的话,可以阅读[医]尖锐骨化)。压缩只影响键的表示,它不会改变键是什么。从私钥中提取公钥会创建相同的数学对象,无论它是以压缩或未压缩形式表示的公钥。

更准确地说,压缩改变了公钥的表示;本质上只有一种方法来表示私钥本身。此外,OpenSSL和许多其他程序所称的“私钥”实际上是一对密钥,包含私钥和公钥。这就是为什么压缩的私钥是有意义的,即使只有公钥被压缩。如果您有一个不包括公钥的私钥表示,它就不会有压缩形式和未压缩形式。顺便说一句,对于EC密钥,很容易从私钥中重构公钥,因此作为密钥对的表示是多余的,但是私钥的标准表示形式包括公钥,以方便使用。

压缩公钥的方式不是一般的压缩,比如zip。这是在大多数常用椭圆曲线上压缩公钥的一种特殊方法。公钥是曲线上的一个点,用它的坐标表示,即用两个数字表示。但只要知道一个坐标,再加上坐标的符号,就足以重建另一个坐标。(“符号”实际上不是真正的符号,但足够接近:曲线上最多有两个点,具有给定的x值,“符号”表示这两个点中的哪个是所需的点。)未压缩表示是一个起始字节0x04,表示“未压缩的表示”,后面是两个坐标xy。压缩表示(也称为紧凑表示)是一个起始字节0x02或0x03,用于表示“压缩后的表示,而y为正/负”,后面跟着x坐标。

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

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

复制
相关文章

相似问题

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