带你了解网络新秩序:下一代分布式域名项目BitDNS
互联网的设计初衷是分布式的,的确,从物理角度看,没有一个实体拥有互联网,但互联网的关键组件和服务,例如web托管、云计算、DNS、社交媒体、搜索引擎、电子邮件服务等等,却都依赖少数物理或者虚拟服务器上
本文旨在简朴引见椭圆曲线密码学(elliptic curve cryptography)。本文预设读者的浏览目的是想晓得为何 ECC 是一个有效的密码学东西及其基本道理。我的目的是给出广义的诠释,我将省略一些证实和完成细节,聚焦于笼统的道理。
- 椭圆曲线示例 -
ECC 有什么用处?ECC 是一种加密数据的要领,只要特定的人材能对其举行解密。在现实生活中,ECC 有一些罕见的用例,然则最重要的用处是加密互联网数据和流量。比方,ECC 可以用来确保在发送电子邮件时,除收件人之外没人可以浏览邮件内容。
ECC 是一种公钥密码学公钥密码学的范例有许多,ECC 只是个中一种。另外另有 RSA、Diffie-Helman 等算法。起首,我要简朴引见一下公钥密码学的背景,然后再议论 ECC 以及这些观点基础上的高层建筑。请列位读者在有空时深切进修一下关于公钥密码学的学问。
公钥密码学的运作体式格局以下图所示:
- Wikia.org -
上图显现了两个密钥:公钥和私钥。这两个密钥离别用来加密和解密数据。这样一来,加密数据在传输的历程当中,全球的人都可以看到(密文),却没法晓得其内容。
假定 Facebook 将要收到来自特朗普的私信。Facebook 须要确保特朗普在经由历程互联网发送私信时,没有中心方(国家平安局、互联网效劳提供商)可以读取该私信。在运用公钥密码学的情况下,全部历程以下:
特朗普关照 Facebook 说他想发送一封私信给 Facebook
Facebook 将本身的公钥发送给了特朗普
特朗普运用该公钥加密了私信:“I love Fox and Friends” + Public Key = “s80s1s9sadjds9s”
特朗普将加密后的私信发送给 Facebook
Facebook 运用私钥解密该私信 “s80s1s9sadjds9s” + Private Key = “I love Fox and Friends”
如你所见,公钥密码学是一个异常有效的手艺。以下是一些症结点。
公钥可以发送给任何人,它是公然的。
必需保护好私钥。假如中心方取得私钥,他们就可以解密私信。
盘算机可以运用公钥疾速加密音讯,运用私钥疾速解密音讯。
假如没有私钥,盘算机须要很长一段时候(数百万年)才暴力破解加密音讯。
公钥密码学道理:陷门函数关于一切公钥密码学算法来讲,最症结的是它们都有本身奇特的陷门函数(Trapdoor Function)。陷门函数是一种只能单向盘算,至少是只在一个方向上易于盘算的函数。(假如运用当代盘算机从另一个方向暴力破解,须要数百万年时候。)
非陷门函数的例子:A + B = C
已知 A 和 B,我就可以盘算出 C 。问题在于,在已知 B 和 C 的情况下,我也能盘算出 A 。这就黑白陷门函数。
陷门函数:
“I love Fox and Friends” + Public Key = “s80s1s9sadjds9s”
已知 “I love Fox and Friends” 和公钥,我可以盘算出 “s80s1s9sadjds9s” ,然则已知 “s80s1s9sadjds9s” 和公钥,我没法盘算出 “I love Fox and Friends” 。
在 RSA 算法(多是最受迎接的公钥体系)中,陷门函数取决于将一个庞大的数分解成质因数的难易水平。
公钥:944,871,836,856,449,473 私钥:961,748,941 和 982,451,653
在上述例子中,公钥是一个很大的数,私钥是公钥的两个质因数。这是一个很好的例子,由于将私钥中的数相乘,很轻易就可以算出公钥,然则你只要公钥的话,须要很长时候才运用盘算机算出私钥。
注:在真正的密码学实践中,私钥的长度必需凌驾 200 位才被视为是平安的。
椭圆曲线密码学有什么差别?ECC 与 RSA 的用处雷同。ECC 会生成一个公钥和私钥,许可两边平安通讯。不过,ECC 比拟 RSA 有一大上风。一个 256 位的 ECC 密钥与一个 3072 位的 RSA 密钥平安性雷同。也就是说,在资本有限的体系(如智能手机、嵌入式盘算机和加密钱银收集)中,ECC 密钥需占用的硬盘空间和带宽是 RSA 密钥的 10% 不到。
ECC 的陷门函数重点来了。ECC 与 RSA 的重要区分在于陷门函数。ECC 的陷门函数类似于数学版的台球游戏。我们先在曲线上找到一个特定的点,然后运用函数(一般称为点函数)在曲线上找到一个新的点,接着重复运用点函数,在曲线上不停腾跃,直到找到末了一个点为止。我们来看一下该算法的详细步骤:
- arstechnica.com -
从 A 点入手下手:
A dot B = -C(从 A 点至 B 点画一条直线,与曲线相交于 -C 点)
-C 点经由 X 轴反射到曲线上的 C 点
A dot C = -D (从 A 点至 C 点画一条直线,与曲线相交于 -D 点)
-D 点经由 X 轴反射到曲线上的 D 点
A dot D = -E (在 A 点至 D 点画一条直线,与曲线相交于 -E 点)
-E 点经由 X 轴反射到曲线上的 E 点
这是一个很棒的陷门函数,由于假如你晓得出发点(A)在那里,以及抵达尽头(E)须要阅历多少次腾跃,很轻易就可以找到尽头。然则,假如你只晓得出发点 A 和尽头 E 在那里,险些不可能晓得中心阅历了频频腾跃。
公钥:出发点 A 、尽头 E 私钥:从 A 点至 E 点须要阅历频频腾跃
几点疑问以下是我首次进修 ECC 时碰到的几点疑问,以及我的解答。愿望能给列位读者带来协助。
怎样找到第二个点?假如点函数重要依靠在两个点之间画一条直线,我们不须要晓得第二个点在那里(就可以入手下手盘算)吗?回覆:不须要,由于第二个点(假定是 -R)实际上是 P dot P(假定第一个点是 P)得出的效果。
P dot P= -R
那什么是 P dot P?它实际上就是一条经由 P 点的切线。拜见下图:
- f5.com -
假如点函数发生的直线与曲线的交点间隔原点太远,那该怎么办?假如直线与曲线的交点间隔原点太远,我们可以定义一个最大值 X 。假如凌驾 X 值,直线就会绕返来,从 Y 轴重新入手下手。以下图所示:
- arstechnica.com -
我发现了一个陷门函数,怎样建立公钥和私钥?怎样用它们来加密数据?这是一个很好的问题,然则须要更深切的解答。在本文中,我只想简朴诠释 RSA 和 ECC 。列位读者可以查阅更多手艺资料来相识详细细节。
(译者注:虽然作者在原文中自述进修椭圆曲线密码学是出于本身对比特币和数字钱银的兴致,但此处所报告的道理集合在加解密上,还未触及椭圆曲线在数字钱银(至少是以太坊)中的重要用处:考证生意业务的权威性。在以太坊中,用户发送生意业务的历程并非运用公钥或私钥加密生意业务数据,而是运用私钥对生意业务数据署名,这些署名信息随生意业务发送,获得这些署名信息的节点可运用椭圆曲线算法恢复出一个地点,与生意业务原始数据比对即可知该笔生意业务是否是由有权运用该地点的用户发出的。)
加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:一文详解Bifrost Staking衍生品怎样挑选考证人和结算收益加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520