大话比特币(四)密钥和地址

读《精通比特币2》有感 + 自己的理解与补充知识
补充的教材:《密码学原理与实践》(第三版)、《密码编码学与网络安全 原理与实践》(第六版)

前言:今天读到了《精通比特币2》的第四章,但是文章讲的太简略了,如果没有密码学补充知识就很难看懂,故这里进行一些补充说明,希望能够更好地帮助大家理解,如果博客有误还请大家在评论区指正,谢谢!

一、介绍

  • 密码体制:公钥密码体制
  • 私钥、公钥、地址的关系:私钥是随机选出的一个数字(使用操作系统底层的随机数生成器产生256位随机数,如果小于n则可以作为私钥),然后通过椭圆曲线算法生成公钥,再利用SHA256和RIPEMD160生成地址(以公钥 K作为输入,计算其SHA256哈希,然后对结果再计算RIPEMD160 哈希,得到一个长度为160位(20字节)的数字)

二、基础知识

1、韦达公式

这个我确实给忘了哈哈哈,只用看三个根相加即可
在这里插入图片描述

2、Abel群

只要记住它除了满足一般的群公理,即运算的结合律、G 有单位元、所有 G 的元素都有逆元之外,还满足交换律公理。

  • 封闭性:若a和b属于G,则a*b也属于G
  • 结合性:在G中a,b,c,有(a·b)·c=a·(b·c)
  • 单位元:G中存在元素e使得对G中的a,e·a=a·e=a
  • 逆元:对G中任何a存在a’使得 a’·a=a`a’=e
  • 交换性:对G中a,b,有a·b = b·a

3、本原元

如果模幂运算 ax = 1 (mod n),记满足该方程的最小正整数m为模n下a的阶记为ordn(a),并且如果a的阶等于 φ \varphi φ(n),则称a为n的本原元,其中 φ \varphi φ(n)=n-1

其中,ordn(a)必然是 φ \varphi φ(n)=n-1的因子,所以求a的阶只需要计算 ad (mod n)即可,这里d是 φ \varphi φ(n)=n-1的因子。

例如:求n=23的本原元
请添加图片描述

三、椭圆曲线

1、实数上的椭圆曲线

这里通过《密码学原理与实践》(第三版)上的案例对椭圆曲线进行解释,便于后面理解比特币的椭圆曲线。
请添加图片描述
请添加图片描述
请添加图片描述

2、模素数的椭圆曲线

有了上面的基础,我相信你也很快可以看懂啦
请添加图片描述

请添加图片描述
请添加图片描述

3、比特币中的椭圆曲线

椭圆曲线方程:
在这里插入图片描述
椭圆曲线图片:
在这里插入图片描述
乘法的快速计算(图像法)
倍乘法的流程如下:(参考博客:https://blog.csdn.net/u012391423/article/details/116233630
在这里插入图片描述

  1. 过 G点做切线 , 与椭圆曲线相交的点即为 -2G , -2G = G + G
  2. -2G点 上下翻转 , 得到 2G交点
  3. 过 2G点做切线 , 可以计算获得 -4G = -2G + -2G
  4. -4G点 上下翻转 , 得到 4G交点
  5. 依次类推…

四、公钥的生成

比特币的私钥是一个随机生成的数字k,这里可以看到教材中最后那个加密案例,这个k相当于那个k,然后将其与椭圆曲线上预定的生成点G相乘(这里我还没有太清楚这个生成点G是一直不变还是会相应改变),得到的曲线上另一个点就是公钥K,即:K=k*G (是不可逆的,因为难算)
这里的乘法就按照上面教的做即可。
K=(x,y)

tips:

  1. 这篇回答中跑了一下代码,可以看看https://zhuanlan.zhihu.com/p/36705648
  2. 为什么比特币中的椭圆曲线不可逆
    https://blog.csdn.net/superbfly/article/details/88639055?
    假定我们现在已知点8G(公钥K),我们可以反向推出它关于x轴的对称点-8G。到了这一步我们会发现,想通过-8G反向堆出4G变成了不可能的事情。因为-8G是椭圆曲线上的一个点,在平面上过这个点有无数条直线,这里或许会有一条或者几条与椭圆曲线相切,但这些切线我们却无从求得。或许我们可以逐条测试,通过穷举法找出过点-8G且与椭圆曲线相切的直线,进而得到可能的点4G。但不要忘记,我们只是进行了反向推理的第一步,我们想从4G得到2G也需要同样的计算量。这还只是我们将私钥k定为了8,如果私钥k真的是我们上面的1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD,那么计算量将是不可想象的。

五、比特币地址

还没看,看了补充

Guess you like

Origin blog.csdn.net/qq_43681877/article/details/122516897