BTCV繁华资讯 > 货币新闻 > 最小椭圆曲线密码介绍:公钥密码_btcv-繁华资讯

最小椭圆曲线密码介绍:公钥密码_btcv-繁华资讯

作者:_btcv-繁华资讯来源:_btcv-繁华资讯 货币新闻 2020年09月13日

文摘:本文旨在简要介绍椭圆曲线加密术。本文预设读者的阅读目的是为了了解为什么ECC是一种有效的密码工具及其基本原理。我的目标是给出一个宽泛的解释。我将省略一些证明和实现细节,重点介绍抽象原理。-椭圆

本文的目的是简单介绍椭圆曲线密码体制。本文预设读者的阅读目的是为了了解为什么ECC是一种有效的密码工具及其基本原理。我的目标是给出一个宽泛的解释。我将省略一些证明和实现细节,重点介绍抽象原理。

极简椭圆曲线密码学入门:公钥密码学ECC

-椭圆曲线示例-

ECC 有什么用途?

ECC是一种加密数据的方法,只有特定的人才能解密。在现实生活中,ECC有一些常见的用例,但它的主要目的是加密互联网数据和流量。例如,可以使用ECC来确保在发送电子邮件时,除了收件人之外,没有人可以阅读电子邮件内容。

ECC 是一种公钥密码学

公钥密码有很多种,ECC只是其中一种。另外还有RSA,Diffie-Helman等算法。首先我想简单介绍一下公钥密码的背景,然后在这些概念的基础上讨论ECC和高层建筑。请读者在业余时间学习公钥密码知识。

公钥密码的操作模式如下图所示:

极简椭圆曲线密码学入门:公钥密码学ECC

-Wikia.org-

上图显示了两个密钥:公钥和私钥。这两个密钥分别用于加密和解密数据。这样,在加密数据的传输过程中,全世界的人都能看到(密文),却无法知道其内容。

假设Facebook将收到特朗普的私人消息。Facebook需要确保当特朗普通过互联网发送私人消息时,没有中介(国家安全局、互联网服务提供商)可以读取私人消息。在使用公钥加密的情况下,整个过程如下:

特朗普通知Facebook,他想给Facebook发一封私信

Facebook将其公钥发送给特朗普

特朗普用这个公钥加密私信:“我爱福克斯和朋友”公钥=“s80s 1s 9 sad JD s9s”

特朗普向Facebook发送加密的私人信息

Facebook用私钥解密私信“s80s 1s 9 Sad JD S9 S”=“我爱狐狸和朋友”

如您所见,公钥密码是一项非常有用的技术。以下是一些要点。

公钥可以发给任何人,而且是公开的。

私钥必须受到保护。如果中间方得到私钥,他们可以解密私钥。

计算机可以用公钥快速加密消息,用私钥解密消息。

没有私钥,电脑暴力破解加密信息需要很长时间(几百万年)。

公钥密码学原理:陷门函数

对于所有的公钥密码算法来说,关键是它们有自己独特的陷门函数。陷门函数是只能在一个方向上计算的函数,至少很容易在一个方向上计算。(用现代电脑从另一个方向暴力破解需要几百万年。(

非陷门功能示例:A B=C

给定A和B,我就能算出c,问题是我知道B和c也能算出A,这就是非陷门函数。

陷门功能:

“我爱福克斯和老友记”公钥=“s80s 1s 9 sadjd s9s”

给定“我爱福克斯和老友记”和公钥,我可以计算“s80s1s9sadjds9s”,但知道“s80s1s9sadjds9s”和公钥,我就无法计算“我爱福克斯和老友记”。

在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的陷阱功能类似于台球游戏的数学版。我们首先在曲线上找到一个特定的点,然后用一个函数(通常称为点函数)在曲线上找到一个新的点,然后重用点函数在曲线上不断跳跃,直到找到最后一个点。让我们看看算法的具体步骤:

极简椭圆曲线密码学入门:公钥密码学ECC

-arstechnica.com-

从a点开始:

a点B=-C(从a点到B点画一条直线,在-C点与曲线相交)

-C点通过x轴反射到曲线上的C点

a点C=-D(从a点到C点画一条直线,在D点与曲线相交)

三维点通过X轴反射到曲线上的三维点

一个点D=-E(从a点到D点画一条直线,在-E点与曲线相交)

-e点通过x轴反射到曲线上的e点

这是一个很棒的陷阱函数,因为如果你知道起点(a)在哪里,到达终点(e)需要多少次跳跃,你就可以很容易地找到终点。但是,如果只知道起点A和终点E在哪里,几乎不可能知道中间发生了多少次跳跃。

公钥:起点A终点E私钥:从A点到E点需要几跳。

几点疑问

下面是我第一次学ECC时遇到的一些问题,以及我的回答。希望能给读者带来帮助。

如何找到第二个点?如果点函数主要依靠在两个点之间画一条直线,我们不需要知道第二个点在哪里(就能开始计算)吗?

回答:不是,因为第二点(假设-R)其实是P点P的结果(假设第一点是P)。

P点P=-R

那什么是P点P?实际上是一条穿过p点的切线,见下图:

极简椭圆曲线密码学入门:公钥密码学ECC

-f5.com-

如果点函数产生的直线与曲线的交点距离原点太远,那该怎么办?

如果一条直线和一条曲线的交点离原点太远,我们可以定义一个最大值x,如果超过了x值,直线就会回来,从y轴重新开始。如下图所示:

极简椭圆曲线密码学入门:公钥密码学ECC

-arstechnica.com-

我发现了一个陷门函数,如何创建公钥和私钥?如何用它们来加密数据?

这是个好问题,但需要更深层次的回答。在本文中,我只想简单地解释一下RSA和ECC。具体细节可以参考更多的技术资料。

(译者注:虽然作者在原文中说出于对比特币和数字现金的兴趣而学习椭圆曲线密码,但这里描述的原理侧重于加密和解密,尚未涵盖椭圆曲线在数字现金中的主要用途(至少Ethereum):验证交易的权威性。在以太网中,用户不使用公钥或私钥加密交易数据,而是使用私钥对交易数据进行签名。这些签名信息随交易一起发送。获得这些签名信息的节点可以使用椭圆曲线算法来恢复地址。通过与原始交易数据的比较,我们可以知道交易是否是由有权使用该地址的用户发送的。(

原始链接:

https://blog . good account.com/非常-basic-椭圆曲线-密码学-16c4f6c349ed

作者:莱恩瓦格纳

翻译校对:敏敏阿健

标签: btcv交易平台