title | tags | ||||||
---|---|---|---|---|---|---|---|
34. 双线性配对基础 |
|
椭圆曲线上的双线性配对在密码学(基于身份的加密系统)和零知识证明(zkSnark)中有着重要作用,这一讲,我们将介绍双线性配对的基础,下一讲再介绍具体算法。
双线性配对是一种数学运算,它在两个群(通常是椭圆曲线上的点构成的群)之间建立关系,并映射到一个第三个群(通常是乘法群)上。
双线性配对定义: 设群
-
双线性:对于所有的
$a, b \in \mathbb{Z}$ ,以及$P \in G_1$ 和$Q \in G_2$ ,有$\text{e}(P^a, Q^b) = \text{e}(P, Q)^{ab}$ 。
更严格的,双线性可以写为满足
$\text{e}(P + Q, S) = \text{e}(P, S) \cdot \text{e}(Q, S)$ 和$\text{e}(P, Q + S) = \text{e}(P, Q) \cdot \text{e}(P, S)$ 。
-
非退化性:如果
$P$ 和$Q$ 是群$G_1$ 和$G_2$ 中的非零元素,则$\text{e}(P, Q) \neq 1$ 。 -
可计算性:存在多项式时间的有效算法计算任意
$P \in G_1$ 和$Q \in G_2$ 的配对$\text{e}(P, Q)$ 。
其中双线性最重要,后两个性质只是保证配对是非平凡的,可以被有效计算的。
如果双线性配对中
举个例子,设
椭圆曲线与双线性配对结合,可以构造出新的加密算法,比如基于身份的加密(IBE)、短签名和零知识证明等。这一节,我们会介绍椭圆曲线的双线性配对。
为了简便,我们专注于对称的双线性配对,即
-
双线性:对于所有的
$a, b \in \mathbb{Z}$ ,以及$P, Q \in G_1$ ,有$\text{e}(aP, bQ) = ab \text{e}(P, Q)$ 。
更严格的,双线性可以写为满足
$e(P, Q + R) = e(P, Q) \cdot e(P, R)$ 和$e(P + R, Q) = e(P, Q) \cdot e(R, Q)$
-
非退化性:如果
$P$ 和$Q$ 均不是群$G_1$ 的无穷远点$O$ ,则$\text{e}(P, Q) \neq O$ 。 -
可计算性:存在多项式时间的有效算法计算任意
$P, Q \in G_1$ 的配对$\text{e}(P, Q)$ 。
下面一张图可以帮你理解椭圆曲线的双线性配对,它就是选取椭圆曲线
决策性 Diffie-Hellman 问题(DDH)指的是在一个群
在普通群结构中,DDH 问题的难解性取决于群的特性。然而,在椭圆曲线上,双线性配对提供了一种解决 DDH 问题的有效方法。
给定椭圆曲线点群
这是因为跟据双线性,有
这一讲,我们介绍了双线性配对的基本概念和性质,以及它如何解决 DDH 问题。它和椭圆曲线结合能够构造出新的密码学和零知识证明算法,比如基于身份的加密(IBE)、短签名和zkSnark。下一讲,我们将介绍可以实现双线性配对的算法。