区块链-椭圆曲线加密生成公钥

椭圆曲线加密法:https://blog.csdn.net/qq_40452317/article/details/90075982

目录:https://blog.csdn.net/qq_40452317/article/details/89646633

先阅读上面那篇椭圆曲线加密法文章。

https://blog.csdn.net/qq_40452317/article/details/90046068中说公钥是一个随机数也就是私钥,通过椭圆曲线加密后称为公钥。如下图:

以一个随机生成的点k,将其与椭圆曲线上的点G相乘(这个相乘不是普通上的数学相乘,而是密码学上的相乘,具体看https://blog.csdn.net/qq_40452317/article/details/90075982)获得曲线上的另外一点,这个点也就是相对应的公钥K。

                                             K = k * G,其中K是公钥,k是私钥,G是椭圆曲线上的生成点。

生成点是secp256k1标准的一部分,比特币密钥的生成点都是相同的。用户的生成点是相同的,一个私钥k乘以G将得到相同的公钥K。k和K之间的关系是固定的,但只能单向运算,即从k得到K。

K = 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD  * G

有椭圆曲线加密法知道,如果给定椭圆曲线一点G,可以求出2G(G+G),3G(2G+G)····。当给出G时,已知x,求出xG并不困难,但是反之,已知xG时,求x时非常困难的。 

公钥K被定义为一个点:

K=(x,y)

其中,
x=F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A y=07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB

以上就是公钥的生成。

参考《精通比特币》

猜你喜欢

转载自blog.csdn.net/qq_40452317/article/details/90082353