09年 在线地球椭圆曲线网站 比特币吧方位网站 谁还记得

针对经济学家郎咸平今天早间颁發的“谷歌实现量子霸权却先把比特币吧拉下水”这一言论RenrenBit首创人赵东暗示,量子计较秘密破解比特币吧的椭圆曲线算法需要操纵十萬以上的量子比特数才有大概,今朝Google可以操纵几十个而技能难度则跟着操纵数2的幂级上升。哪天量子计较机假如然能破解比特币吧了狼叫兽必定不会先体贴比特币吧,而是本身银行的数字是否安详

比特币吧-椭圆曲线ECC算法描述(一)

比特币吧使用另一种算法用来保护消息摘要的真实性这种算法叫椭圆曲线算法(ECC)。在密码理论中椭圆曲线算法是一种非对程密码,也称公钥密码所谓非对程密码是指加密用的密钥和解密用的密钥不同,用作加密的称作私钥需要保密,用作解密的称作公钥顾名思义是公开的,并且从一个密钥不能推算出另一个密钥目前使用最广泛的两种非对程密码为RSA和ECC,RSA历史悠久签名较快,而验证较慢相哃密码强度而言,ECC密钥长度较短效率更高。RSA基于大数分解问题ECC基于椭圆曲线离散对数问题。下面介绍这种算法的作用和描述


计算一個或多个消息的摘要可以保证消息不会被更改(一旦更改就能发现),所以消息与摘要是一一对应的但是如果攻击者有摘要算法,他就鈳以同时替换消息和摘要如果只验证摘要是无法得知消息已被替换(更改),如何解决这一消息真实性的问题这就是公钥密码的用途の一,其原理:

(1)产生消息的人公开自己的密钥然后用私钥对消息摘要进行加密(俗称签名),与消息、消息摘要、摘要签名一同发送给接收者;


(2)发送者的公钥随处可得接收者使用公钥对消息签名进行解密(验签),如果结果正确则消息真实性得到验证从而对消息摘要进一步验证;如果结果错误则消息不可靠。
(3)公钥是由权威机构产生的并且可验证,所以替换公钥是不可能的
相比RSA,理解橢圆曲线密码算法的数学基础困难的多首先了解几个概念。
(1) 射影平面坐标系:它是对笛卡尔直角坐标系的扩展增加了无穷远点的概念。在此坐标系下两条平行的直线是有交点的,而交点就是无穷远点两者的变换关系为:笛卡尔坐标系中的点a(x,y)令x=X/Z,y=Y/Z则射影平媔坐标系下的点a的坐标为(X, YZ),比如点(23)就转换为(2Z,3ZZ)。
(2) 椭圆曲线:一条椭圆曲线在射影平面上满足方程:Y^2Z+a1XYZ+a3yZ^2=X^3+a2X^2Z+a4XZ^2+a6Z^3的所有点的集合且曲线上每个点都是非奇异的(连续的、可微分的)。该方程称为维尔斯特拉斯方程(Weierstrass)椭圆曲线并非是一个椭圆,只是其方程形式类似┅个计算 椭圆周长的方程
(3)射影平面转换为直角平面:椭圆曲线有一个无穷远点(0:1:0),那么把可以计算出直角平面坐标系下的曲線方程:y^2+a1xy+a3y=x^3+a2x^2+a4x+a6
这个方程代表的光滑曲线再加上一个无穷远点,就组成了椭圆曲线
(4)椭圆曲线一点切线的斜率:因为椭圆曲线平滑的,每┅个点都有切线斜率是切线的一个重要指标。它将在椭圆曲线密码算法中使用

原标题:有聊区块链与加密货币系列5——比特币吧安全的基石:椭圆曲线方程

上数学课了大家坐稳。

相信很多小伙伴听说过比特币吧的密码叫做私钥,私钥一旦丢失对应的BTC将永远封存。不存在重置私钥一说因此私钥的保管至关重要。丢失私钥是早期BTC持有者常犯的错误,因为当时BTC 并没有今天这么高的法币标价因此很多人并不重视。

为什么私钥丢失是致命事件可以强行破解私钥么?

理论上可以答案是算到地球灭亡。

以今天凌晨最高全网算力纪录100EH/s来看也就是每秒进行100*2^60次哈希运算,也就是每秒猜100*2^60次听起来很大,但是私钥的全部可能性是2^256种假设私钥呈现均匀汾布U0,2^256),强行破解也要几亿亿亿亿亿亿年

如果还不够直观,想想如果有360个地球每个地球上的每一克物质又变成一个新的地球,那这些地球上面的所有水分子就是所有的私钥

(找是找不到的,这辈子都不可能找到的)

那到底是什么加密算法让比特币吧有如此的密码安铨性呢

这就是本篇的硬核内容了。

这就是比特币吧所使用的方程用来保护消息摘要的真实性。这种算法叫椭圆曲线算法(Ellipse Curve Cryptography与传统嘚基于大质数因子分解困难性的加密方法不同,ECC通过椭圆曲线方程式的性质产生密钥是典型的非对称加密算法,抗暴力求解的能力极强

插一句,目前我国居民二代身份证正在使用256 位的椭圆曲线密码比特币吧也选择ECC作为加密算法,也就是说比特币吧的密码学安全度是等哃于身份证的比特币吧系统不安全性的说法可以退下了。

那么椭圆曲线方程是不是就是一种椭圆方程呢

不是的,椭圆曲线的形状并不昰椭圆只是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程故得名

基本上来说,椭圆曲线方程是一个齐次方程曲线上的烸个点都必须是非奇异的,也就是光滑的即各个维度的偏导数不同时为0

具体的标准式我就不贴了有兴趣出门左转百度维尔斯特拉斯方程(Weierstrass

为什么椭圆曲线可以用于加密呢

这就要温习前面所讲的,比特币吧私钥可以轻松生成公钥而基于公钥无法反解私钥的基本瑺识,而比特币吧的私钥产生公钥的过程就是基于椭圆曲线来运算的

小明就读于小学二年级,会计算加法但是不会计算除法。你是小奣的怪蜀黍大强你想出一道题给他做,让他虽然能理解题目意思但是做起来有难度:

强:小明小明过来,叔叔问你1+1等于几?

明:叔叔的大学白念了吧我幼儿园就会了,等于2

强:那考你个难的,7+7等于几

明:切,你当人家上课啃铅笔头下课帮小红寫作业都是白干的是吧。手指都不用数等于14呗。

强:行有叔叔当年的风采,那叔叔再问你几个7相加等于56

明:“……”默默掏出草稿纸、铅笔、手指头、脚趾头,进行了10分钟的深度计算:27等于1437等于2147等于28……叔叔,我算出来了,是8个对不对?

强:好小子叔叔就不信考不倒你。几个7相加等于864192你心中默念,以小明的计算能力要算到这个数恐怕得一年半载的。

明:叔叔好厲害呀我算不出来。

这个例子想说明的是基于加法阶数难求问题的密码方案对于椭圆曲线密码来讲,椭圆曲线的基点就是例子里面嘚7而私钥就是基点的加法阶数(例子里面的8),公钥是基点(7)进行对应阶数的加法(8次)得到的结果(56

具体来看比特币吧的例子——

以一个随机生成的私钥k(可以理解为一个极大的数)为起点,我们将其与曲线上已定义的生成点G 相乘以获得曲线上的另一点也就是楿应的公钥K

生成点是secp256k1标准的一部分Secp256k1是指比特币吧中使用的ECDSA(椭圆曲线数字签名算法)曲线的参数。

比特币吧密钥的生成点都是相同的:

其中k 是私钥G是生成点,在该曲线上所得的点K 是公钥因为所有比特币吧用户的生成点是相同的,一个私钥k 乘以G 将得到相同的公钥Kk K の间的关系是固定的,但只能单向运算即从k 得到K

为了展示整数点的乘法我们将使用较为简单的实数范围的椭圆曲线。但实际上椭圓曲线密码里的加法是建立在“有限域上的二元三次曲线上的点”上,组成一个“有限加法循环群”是离散的。

我们的目标是找到生成點G 的倍数k*G也就是将G相加k 次。在椭圆曲线中点的相加等同于从该点画切线找到与曲线相交的另一点,然后映射到x

针对上面这张图说┅下k*G的计算过程,这里我们假定k的值为8

1.已知椭圆曲线上的一点G,我们做其在曲线上的切线此时切线与原本的椭圆曲线就会产生一个交點,这个点我们记作-2G那么与-2G关于x轴对称的点就是2G了。

2.重复上面的动作对点2G做切线,使得切线与椭圆曲线相交交点记为-4G,再取-4G关于x轴嘚对称点就得到了4G

3.再次重复前面的动作对点4G做切线,使得切线与椭圆曲线相交交点记为-8G,再取-8G关于x轴的对称点就得到了8G

这里8G點就是我们所说的公钥K点的坐标就是公钥Kxy

事实上这个动作我们可以重复很多很多次,能坚持读到这里的小伙伴一定想到了这昰阿贝尔群(Abelian Group):

任意取椭圆曲线上两点PQ(若PQ两点重合,则作P点的切线)作直线交于椭圆曲线的另一点R',过R'y轴的平行线交于R定義P+Q=R。这样加法的和也在椭圆曲线上,并同样具备加法的交换律、结合律

好了,上面的整个过程如果看明白了我们接着来说为什么通過公钥K得不到私钥k

假定我们现在已知点8G(公钥K)我们可以反向推出它关于x轴的对称点-8G到了这一步我们会发现想通过-8G反向堆出4G变成叻不可能的事情。因为-8G是椭圆曲线上的一个点在平面上过这个点有无数条直线,这里或许会有一条或者几条与椭圆曲线相切但这些切線我们却无从求得。或许我们可以逐条测试通过穷举法找出过点-8G且与椭圆曲线相切的直线,进而得到可能的点4G但不要忘记,我们只是進行了反向推理的第一步我们想从4G得到2G也需要同样的计算量。

如果私钥是长这个样子:

那么计算量将是不可想象的

我要回帖

更多关于 比特币吧 的文章

 

随机推荐