主页 > 苹果版imtoken钱包官网 > 比特币密码学的数学基础:椭圆曲线密码学

比特币密码学的数学基础:椭圆曲线密码学

苹果版imtoken钱包官网 2023-04-18 05:35:43

使用最广泛的区块链是比特币。

每个人都熟悉比特币。之所以很多人相信它的价值,是因为依靠数学算法背书比政府背书更合理,可能人为因素太多。至于比特币背后的技术,其实大部分人都不了解,所以我们来说说比特币,或者更通俗的说,区块链的数学基础。

为什么加密的本质是数学不对称?

从数学上讲,所有的加密货币之所以能够流通而不被破解,就取决于一种数学上的非对称美。人们通常喜欢对称而不喜欢不对称作为缺陷。在获取信息的时候,大家都希望是透明的,因为不透明和隐藏总是让人感到不安。但是,不对称有时也有它自己的美和美,比如黄金分割是不对称的。

对于信息安全来说,完全透明和对称会带来很多安全隐患。当我们自己是信息的所有者时,我们其实并不希望别人获得我们的信息,尤其是私人信息,但往往为了方便,我们不得不开放很多信息的访问权限,让对方验证真实性并了解我们。谁是,或者可以让对方做一些统计,以便为我们提供更好的服务。过去,我们不公开信息,很多事情是做不来的。例如,当您向银行申请贷款时,几乎所有的个人和财务信息都被披露给了银行。

在一个信息完全开放的社会,要完全保护信息安全几乎是不可能的。为了保护隐私信息,尤其是隐私,必须有一套非对称机制,以便在特定授权的情况下,无需拥有该信息即可使用该信息,无需授予访问权限即可验证该信息到信息。

比特币的意义在于证明我们可以通过加密和授权来保护信息不被泄露,一些被授权的人仍然可以使用这些信息。

比特币之所以这样做,是因为加密密钥和解密所需的密钥不相同。用于加密的密钥就是所谓的私钥,只有比特币的所有者拥有,解密者使用私钥生成的公钥,可以给任何人。

比特币加密算法

这种加密的不对称性在于,在有限的计算时间内,无法从公钥中推导出私钥。因此,您可以认为持有私钥的人可以看到所有信息,而持有公钥的人只能看到部分信息或仅验证信息的真实性。为了进一步理解这种不对称特性,让我们看一个具体的例子。

我们要卖房子,首先要证明房子是我们的,有资格卖。过去,我们必须让买家看到房产证,相关部门或公证机构要证明房产证是真实的。这样来回走动之后,购房者就会知道很多关于你的信息,甚至可以伪造一份和你一模一样的房产证。

未来,数字房地产证书可以存储在区块链中。作为房主,区块链的算法会给我们一个私钥,所有的信息都在你的手中。然后就可以生成对应的公钥给买家验证我们所有者的所有权,这样就足够了,买家不需要知道我们的其他信息。

这个使用区块链协议验证房产证的过程可以用一张图来说明:

当然比特币加密算法,需要注意的是,购房者使用公钥来验证房契的真实性。如果他买了房子,契据会转移到他的名下,原业主的私钥会失效,然后新的业主就可以拥有一个新的私钥,这个过程会记录在区块链账本中。

接下来,让我们看看这是如何在数学上完成的。我们以比特币协议为例。它使用一种称为椭圆曲线加密的方法。与目前流行的 RSA 加密算法相比,椭圆曲线加密方法可以用更短的密钥达到同等甚至更好的加密效果。

比特币加密算法

那么,什么是椭圆曲线加密呢?让我们从椭圆曲线及其性质开始。

椭圆曲线与椭圆无关比特币加密算法,它们是一组具有以下属性的曲线:

这种曲线的形状如下图所示:

这种曲线的特点是上下对称,非常平滑,有很多好的特性,特别是从曲线上的任意一点(图中A点)画直线时,最多有三个交点曲线本身(包括这一点)。本身)。

那么这样的曲线与加密有什么关系呢?我们用下图来说明。

比特币加密算法

在图中,我们从 A 点开始,通过 B 点画一条线,最后在 C 点与曲线相交。利用这个性质,我们定义了一个称为点积“·”的运算,我们使用

A·B=C

表示这三点之间的关系,意思是:连接A点到B点的直线,与曲线相交于C点。由于椭圆曲线关于x轴对称,我们做一个对称的点D C 绕 x 轴,以 D 为新点,与 A 点连成一条线。因此,与椭圆曲线有另一个交点 E,经此连线后,我们得到

A·D=E

然后我们可以不断重复这个过程。假设我们经过 K 次这样的点乘操作后最终停在 Z 点。

注意:在这个过程中,有四点需要说明:

比特币加密算法

首先,点乘的运算满足交换律和结合律,所以先计算哪一步,再计算哪一步,结果是一样的。我们不会证明这个性质。

其次,有可能这样的点积计算多次后,某个交点的x值,也就是横坐标很大。为了防止连续迭代后计算结果发散,我们在右侧设置了横坐标较大的边界。Max(最大值),超过Max后,让直线反射回来。

第三,虽然图中的曲线是连续的,每个点的值都是实数,但是我们在实际使用的时候,是通过一些变换离散化的,所以所有的点都是整数值。

最后,有些人可能会担心,经过一次又一次的操作,它会不会回到原来的点。这个不用担心,这个操作有点像两个巨大的素数相乘,然后除以一个素数取余数(也称为模运算,Mod),只要算法设计好,并且原点重复。几率接近于零。

如果我们把上面曲线运算中的点乘看作是数字的乘法,经过K次点乘后,就相当于K的幂,那么当给定起点A和终点Z时,K为A实际上等价于以Z为底的对数。因此,这种计算的过程称为椭圆曲线的离散对数计算。那么为什么要谈这个连续的计算过程呢?

上面提到的椭圆曲线的计算有一个特点。如果我告诉你它从 A 开始,经过 B 到 C,然后到 D,到 E 等等,总共走了 K 步,你可以计算它最后停在 Z。该过程直观且简单。但是,如果我告诉你起点是A,终点是Z,你就得猜一下我经历了多少步才能完成上述过程,这几乎是不可能的,或者计算量极大。这种不对称性使验证结果变得容易,但破解密码要困难得多。

具体来说,比特币使用的加密协议是一个名为 SECP256K1 的标准,它使用了如下非常简单的椭圆曲线:

比特币加密算法

使用上面形式很简单的曲线,我们完成了对外界来说很复杂的加密。

椭圆曲线加密方法有很多。虽然它们的算法和密钥长度不同,但它们的原理是相似的。美国国家标准与技术研究院为这类算法规定了最小密钥长度为 160 位,有 192 位、224 位等。它们都比 RSA 要求的最小 1024 位短得多,而这正是椭圆曲线加密的优势所在。

这么短的钥匙安全吗?事实上,在 2003 年,一个研究团队使用 10,000 台 PC 在一年半的时间里破解了一个 109 位的短密钥。然而,解密时间随着密钥长度呈指数增长。解密 160 位密钥需要大约 1 亿倍的计算量,而解密 192 位和 224 位密钥则更加困难。因此,除非计算机的速度提高一百万倍,否则很难破译椭圆曲线加密消息。

当然,2019 年,谷歌在量子计算方面取得了突破。在某些计算中,原本需要数万年才能完成的计算可以在瞬间完成。因此,很多人担心区块链的加密是否仍然安全。应该说,如果谷歌的技术真的能走出实验室,可以用于更多的计算,不仅仅是具体的计算,目前的区块链加密算法还需要修改。

但是,椭圆曲线加密的思想仍然是安全的,因为加密(以及验证密码的难度)和解密从来都不是不对称的。即使计算机的计算能力增加一万亿倍,也可以使用更复杂的加密,比如量子计算。也无济于事。总之,只要存在这种数学不对称性,加密就是安全的。

说到椭圆曲线,还有一条信息是怀尔斯用这个工具证明了费马大定理。最初日本数学家谷山峰发现椭圆曲线可能与费马大定理有关,随后另一位日本数学家志村五郎进一步提炼了他的想法,形成了所谓的“谷山-志村猜想”,怀尔斯是从他们的工作中得到启发的,他们终于完成了费马大定理的证明。

从这里我们可以看出,那些看似无用的数学理论,最终可能会有很大的实际用途,而数学的各个分支往往是相关联的。