使用secp256k1曲线,下面会产生同样的结果吗?
我已经使用openssl进行了测试,并且我相信答案是肯定的,但我希望了解基本数学的人能够在我假设这是真的之前确认这一点。
谢谢
发布于 2019-05-22 16:43:08
实际上,您不需要知道底层的数学(但是如果您想要的话,可以阅读[医]尖锐骨化)。压缩只影响键的表示,它不会改变键是什么。从私钥中提取公钥会创建相同的数学对象,无论它是以压缩或未压缩形式表示的公钥。
更准确地说,压缩改变了公钥的表示;本质上只有一种方法来表示私钥本身。此外,OpenSSL和许多其他程序所称的“私钥”实际上是一对密钥,包含私钥和公钥。这就是为什么压缩的私钥是有意义的,即使只有公钥被压缩。如果您有一个不包括公钥的私钥表示,它就不会有压缩形式和未压缩形式。顺便说一句,对于EC密钥,很容易从私钥中重构公钥,因此作为密钥对的表示是多余的,但是私钥的标准表示形式包括公钥,以方便使用。
压缩公钥的方式不是一般的压缩,比如zip。这是在大多数常用椭圆曲线上压缩公钥的一种特殊方法。公钥是曲线上的一个点,用它的坐标表示,即用两个数字表示。但只要知道一个坐标,再加上坐标的符号,就足以重建另一个坐标。(“符号”实际上不是真正的符号,但足够接近:曲线上最多有两个点,具有给定的x值,“符号”表示这两个点中的哪个是所需的点。)未压缩表示是一个起始字节0x04,表示“未压缩的表示”,后面是两个坐标x和y。压缩表示(也称为紧凑表示)是一个起始字节0x02或0x03,用于表示“压缩后的表示,而y为正/负”,后面跟着x坐标。
https://crypto.stackexchange.com/questions/70754
复制相似问题