Ed25519 是一个基于椭圆曲线的数字签名算法,它高效,安全且应用广泛。TLS 1.3, SSH, Tor, ZCash, WhatsApp 和 Signal 中都使用了它。本文主要解说以下几点:

1. 介绍一点群论常识,意图是让咱们对 Ed25519 和其可延展性问题的原理有一种直觉。若想深入了解,还需参阅其他材料;

2. 针对 rust 库 ed25519-dalek 的 1.0.1 版本解说 ed25519 的完成;

3. 针对该库的延展性问题做出解释。

数学要点回忆

群的界说与性质

群论是抽象代数研究的内容,但抽象代数的一些思维是程序员十分熟悉的。面向对象中的继承就是一个很好的比如,咱们都知道子类继承了父类后,就能使用父类中界说的方法。能够将抽象代数了解为对一个抽象的数据结构界说了一些性质,由这些性质推导出来的定理关于一切的子类都成立。

沿袭刚刚的比方,来看看群(group)这个数据结构是如何界说的。

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

由此能够推出许多有意思的定理:

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

举几个比如: 

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

被一笔带过的群论术语

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

拉格朗日定理

现在介绍一个十分有意思的定理,这个定理的推导在文末引证的视频中。

“群的阶能被子群的阶整除。”

为什么说这个定理有意思呢,不仅仅由于它的证明进程串起了刚刚介绍的许多常识,还由于下面的定论:

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

Ed25519 的完成

现在咱们来讲 Ed25519,它是 EdDSA 算法的其中一种。EdDSA 有 11 个参数(https://datatracker.ietf.org/doc/html/rfc8032#autoid-3),这些参数的具体挑选关于算法的安全和功能有很大的影响。Ed25519 的具体挑选请参看链接(https://datatracker.ietf.org/doc/html/rfc8032#autoid-9)。

另外,值得一提的是这套算法用到了一个叫 Curve25519(https://datatracker.ietf.org/doc/html/rfc7748#autoid-5)的椭圆曲线。关于椭圆曲线,咱们只需知道,它上边有许多许多点,这些点相加能得到新的点,新的点还是在曲线上。这些点和这个加法能构成一个群。留意这里的椭圆曲线加法(https://www.wikiwand.com/en/Elliptic_curve_point_multiplication)是有特殊界说的。

咱们约定如下记法:

慢雾:Ed25519 实现原理与可延展性问题可延展性问题

这是个交互式的算法,可是没关系,有一个技巧叫做 the Fiat – Shamir heuristic(https://link.springer.com/chapter/10.1007%2F3-540-47721-7_12),它能够把任意的交互式算法转化成非交互式的算法。最终咱们会用非交互式算法。

数字签名算法都会给咱们如下 API:

慢雾:Ed25519 实现原理与可延展性问题可延展性问题慢雾:Ed25519 实现原理与可延展性问题可延展性问题慢雾:Ed25519 实现原理与可延展性问题可延展性问题代码地址(https://github.com/dalek-cryptography/ed25519-dalek/blob/97c22f2d07b3c260726b90c55cd45f34ec34a037/src/public.rs#L322-L355)

可延展性问题

密码学算法的完成和使用都有十分多要留意的当地。当咱们说一个数字签名算法是安全的,一般指的是即使在攻击者能够取得任意消息的签名(Chosen Message Attack)的情况下,攻击者仍然不能假造签名。Ed25519 满足这个性质,但不代表 Ed25519 是绝对安全的。在原始的论文中也提到,可延展性问题是能够承受的,且原始的算法就有这个问题。慢雾:Ed25519 实现原理与可延展性问题可延展性问题慢雾:Ed25519 实现原理与可延展性问题可延展性问题

此时快讯

【欧盟的数字欧元可能在UTXO上运行】金色财经报道,根据5月下旬发布的一份报告,欧盟对数字欧元的运作方式进行了原型设计。由Eurosystem设计的后端原型和结算引擎称为N€XT。管理机构没有使用分布式账本技术(DLT)平台,通常使用类似于以太坊的账户系统,而是在基于未花费交易输出(UTXO)的模型上测试了数字欧元。
报告称,“测试表明UTXO允许快速有效地验证交易。该系统被证明能够支持不同类型的交易,同时通过不向欧元系统透露他们的支付方式或账户余额来保护用户的隐私。”

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注