00:03
这节课讲椭圆曲线运宽法则,变加200。嗯,这个运算法则都是基于短的方程。Y平方同于X立方加X+BP。MP是一个大叔叔。而1K1。是Y平方同1X立方加7。我们可以看一下HCVK的参数。这个参数有好几个。嗯,都都是需要。都都是需要了解的。是,是一个非常大的数数,这个数数的值不,不需要去背它,只是需需要了解它的含义。它是坐标点的有限率,意思就是X的值和Y的值都是。
01:01
必须小于P的。而A和B自然就是转了Y二次式方程里面的A和B的参数。嗯。NN等于这这一大口的数字,这也是一个数数。嗯,它代表是11的个数,12个数减一。C波数是N-1。嗯,N多了,多了一个就是因为多了一个5000万元的,五千万元的并没有算在410里面。煤气。微信这个。在在这个椭圆曲线里面,这个默认的就是1并,并没有其他含义。嗯,GXGY是是坐标点,也就是X符合XOY的这这个方程的坐标点。
02:04
并且另令是要唯一。嗯,这这个是人为规定的。下面我们就可以看一下点加运算7加扣。这个是什么含义呢?就直接上,直接上图。嗯,PP加克意思就是。7和Q连伸直线,然后延伸出去,然后和椭圆曲线相交于R这个点。AI.关于X轴的对称点就就是P加后。这这个是规规定的加法运算,跟传统的呃,比如说向量的计算,这个肯定是不一样的。嗯,这个这个怎么运算呢?就就是这红色的部分这个K你可以当成斜率。
03:09
K=Y2-Y1÷X2-X1。然后X3=K平方减X1-X2。Y3等于。KBAA1-X3。括号。嗯,括号外边减Y1。这个我们直接看一下代码。嗯。代码K。这个是Y坐标,Y坐标之差除以X坐标之差。然后RX也就是X3=K平方减X1-X2。然后另外一个就计算Y的值的。这个跟。等价于Y3=K倍,又是1-X3。
04:02
括号,然后括号外面减Y1。这样。嗯,T加克的坐标点就可算出来了。嗯,P是,P和克都是坐标点,而P加克也是坐标点,这是什么含义呢?这个。就主要是私钥的问题,这个P假设P的私钥是S1 Q的私钥是S2,那么P+Q的C2就是S1+SS2,这个model n,注,注意这个地方不并不是Mo p了,S Mo n.因为这个参数里面。C才跟C要有关,这个P是只跟坐标点的计算也有关,也就是跟只跟XY有关。
05:03
点点加的X跟XY嗯,都有关,这这是什么含义呢?And.这这些都是根据这几个公式直接写下来的。我们直接看一下结果。我们可以看到X3。等有两个X3。说明了什么?说明了X3。不,不仅仅跟X1和X有关,还跟Y有关。嗯,再再看另外一个,这个是算外三的。这个外山呢,可以看到这个。很大一头了。这个外山,其中一个外山,这是第二个外山。这说明这个。
06:03
外山的坐标的。它不仅仅跟Y2和Y1有关,还跟S有关。也就说明点加到Y跟XY和Y都有关的。下面看2倍的运算。二百零算是是怎么回事呢?这个这个2倍的二倍点运算,主要是解决P加扣这个不不能运算的问题。7加科的就主要是。当两个点重合的时候。这个。Y2-Y1X2-X1X2-X为0啊,这个也就是无意义,所以只能通过。2倍点运算去解决。
07:02
你可以把K当成斜率去看这个图像。这个。这个P和R这这个直线,这个在P这个地方,就是P点的切线,然后和。和椭圆曲线相交于r.R点关于对称点就是2P。嗯,公式,公式就是红色的部分,这个代码也可以看一下。嗯。2批的。首先是计算斜率,这个斜率是这个。K=3X的平方加A÷2Y2倍Y1。这个地方差不多也是这样的,然后计算。X的坐标X3=K平方减2X。
08:01
这个地方看起来也差不多了,然后再计算坐标。Y3=KV。X1-X3,然后括号外边减Y1。嗯,这这个地方差不多烟也是这样的,这样呢,就把。2P的坐标点算出来了。P是坐标点,AP同样是坐标点。但但这个是什么含义呢?就假设P的要是X。那么2P的C就是2S。嗯,其中X是整数。注意这个地方摸摸的N的时候。他并并不是没得,是没得。这个时刻需要记住。然后再看这个,求X之少二倍,二倍,点X只跟X有关,这是什么含义?
09:06
这个我们直接根据这几个公式套。然后把Y给全部消掉。来看一下X3等于什么,我们可以看到。这X3只跟1有关。也就是说跟万是没有关系的。同样求Y的时候,2倍点的Y只跟Y有关。就就是我们也可以看一下公式。我们可以看到外餐。二三年等于这。只跟外衣有关。还跟。X11点关系都没有。所,所以求Y200点的Y值跟Y有关。嗯。根根据私钥计算公钥。
10:01
按规定这个G的C21。9SD。上面讲的是P加克和2P,并没有。就是当X如果大于等于,如果是当当X>2的时候。并没有这样的公式。所以我们需要采用额外的方法去解决。这个方法也叫大的2的方法,或者叫二进制拆解法。对2对S进行二进制裁剪。嗯,我们看一个十进制的13,也就是当X=13的时候。嗯,变成二进制就是1101,大概也就等于8+4+1。然后13g等于。
11:01
我们从右边往左边看。就是第一位是1,所以1×1g,然后第二位是0。这个1GB变成2g的,然后它因为它是0,所以就是0×2g。然后再看第3位。第三位就2级可能就变成4g了。因为他是,所以就是一层的司机,然后再到最后一位。1。这个4g就变成8g了,然后8g1×8g。这个1g2g4g8g,这个可以通过。2倍点的公式去算A加号。加号就可以根据PQ的运算去计算,这样就就可以把SG给算出来。
12:02
这个SG它也是一个坐标点。嗯,这是一个非常的运算,这是一个多项式的算法。嗯,根据私钥算出膏要是非常快的。然后我们再看一个折班的运算。这是这是什么意思呢。我们之前讲过2倍运算。但是这折半运算不不知道怎么算,这个我们。可以根据这这个。这个方法去计算。这个1/2,你可可以把1/2的乘法利润给求出来。乘方6元就就变成了一个整数,注意是没的N,而不是的P。我们可以看到这个。
13:00
这个就是求他。2的1/2的乘方里面就是一个很长的整数,然后。然后就。这一大头整数乘以P。就是走办预算。假设。Two.Q=P÷2。那么。P就等于。这这这等式肯定是成立的。And.嗯,看看一下代码。这个P夹克2P。都已经讲过了。然后。这个P,那自然就是对S进线2进的拆减。就是这个地方。
14:01
我们可以看一下代码。这个地方。这个是自定义的椭圆区间,Y平方等于X立方加7的79这个。几大参数。这个几几大参数,不不是随意写的。这个A和B,这个0和7。然后P=79 N=67。这这个这个是经过我的测试呃,才写上去的,并并不是随意写输出就行。然后H它肯定是等于1的。GXD是符合椭圆曲线上的点。这,这也不是随便写的。然后这个自定义椭圆曲线参数一写好了,然后就直接调用。
15:03
电科的方法。然后把根据私钥算出公钥,我们可以看一下结果。我们可以看到。这66个点都计算出来了。嗯。凭什么坐标点是这个样子,我们看第一个点。呃,最后一个点。X是一样的。然后Y63+16=79,刚好就等于P。这说明初步验证是正确的。如如何进一步验证呢?那我们就通过第二个例子。嗯,第二个例子用的就是那。
16:01
这B256KE1。这个里面用到了比特币里面的函数就是b t cec.这个这个库是。BTCBTCD,圆码里面的图形曲线的计算。这,这肯定是正确的。我们看一下对,出去看一下对一下结果,如果出现验证成功了,是说明是对的。我们看一下运行记录。我们可以看到最终是验证成功了,并且打印了前前。前1000个点的坐标点。这第一个参数,第一个数字是吃药。这打印出来是1~1000的私钥,然后之后的就是。
17:05
坐标点X和坐标点Y。
我来说两句