用于密码学的同源数学

BTCStudy 发布于 2026-05-12 阅读 268

本文为同源密码学提供数学基础,介绍同源(isogenies)的定义、性质(如可分离性、度)、自同态、j-不变量、对手同源和挠点等概念。文章从椭圆曲线和群论出发,解释有理映射如何形成群同态,以及同源如何通过核与子群一一对应。重点包括:同源是满射的群同态;自同态构成环;j-不变量用于分类同构曲线;可分离同源的度等于核的大小;每个同源有唯一对手同源,其合成是倍乘映射。这些概念是理解基于同源的密钥交换协议(如SIDH/SIKE)的前提,但需注意SIKE已于2022年被攻破。

作者:Maria Corte-Real Santos

来源: https://www.mariascrs.com/2020/11/06/isogenies-for-crypto.html

原文出版于 2020 年 11 月,文中提到的 SIKE/SIDH 算法已在 2022 年发现有致命漏洞,但本文的主要目的是讲述基本概念。

2020 年 7 月 22 日,NIST(美国国家标准及技术研究所)的后量子密码学标准化工作的 第三轮最终评估 发布了。公钥加密和密钥握手算法的候选之一是 SIKE,这是一种基于 “同源( isogenies)” 的密钥封装机制(KEM)。想要基本理解这一方案的非专业认识可能会发现,SIKE 协议的理解门槛非常高,因为在进入密码学的部分之前,你需要先懂得大量数学背景知识。本文希望为同源以及相关的概念提供一个简短的介绍( 希望做得到!)。在后续篇章中,我会将这些概念运用到密码学中,介绍 SIDH(它是作为 SIKE 基础的密钥交换协议)。

假设你已具有这些知识:

  • (有限域上的)椭圆曲线
    • 它是什么
    • 它们如何靠点加法(addition of point)形成一个 “群(group)”
  • 少量 群论
  • 函数的基本属性,比如 “满射(surjectivity)”、“单射(injectivity)”、“双射(bijectivity)”,等等

译者注:

  • 数学 上,一个 “域” 是指一个集合,在其中,加减乘除都有意义,并且其操作跟有理数上的对应操作一样。
  • 一个由某种操作形成的 “群” 则意味着,在该集合内,该操作满足结合律、任意两个元素在该操作下生成的元素都属于该群、每个元素都有逆元素,该集合有个单位元(ideneity element) —— 群内任何其它元素与该单位元作这种操作都会得出自身。
    • 对一个椭圆曲线点加法群来说,它的单位元是一个无穷远点;任何点与它相加都会得到自身。
  • 设有映射 $f:X \to Y$,满射意味着 $Y$ 中的每一个值,在 $X$ 中都至少有一个值与之对应;单射意味着 $X$ 中的两个值在 $Y$ 中的对应值必定不同;同时是满射和单射的,则是双射的。)

同源

设 $E_1$ 和 $E_2$ 是一个有限域 $\mathbb{F}_q$ 上的两条椭圆曲线。在这里,$q$ 是某个质数的幂。还要指出,$E_1$ 和 $E_2$ 都在点加法下形成了群;并且,因为 $\mathbb{F}_q$ 是有限的,这两个群自然也是有限的。

:通常,在数学论文中,我们用 $E_i(K)$ 来表明我们在讨论凭 $K$ 取值的点(k-valued points)。我这里不用这个记号,因为我们只考虑有限域上的椭圆曲线。

假设我们要考虑这两条椭圆曲线的一种映射:

$\phi:E_1 \longrightarrow E_2$

但是,且慢,说有一个从某条椭圆曲线到另一条椭圆曲线的映射,是什么意思呢?我们可能还好奇,这个映射要满足什么属性,我们才会说它是 “好的”(在几何和代数的双重意义上)?

  • $\phi$ 作用在椭圆曲线的点上;每个点都有一个 $x$ 坐标值和 $y$ 坐标值。所以我们可以写作:$\phi=(\phi_1,\phi_2)$,它以下面这种形式,作用在位于 $E_1$ 上的点 $P=(x,y)$ 上:

$\phi(P)=\phi((x,y))=(\phi_1(x),\phi_2(y))$

  • 我们希望这个映射是 有理的(rational)。意思是,如果 $\phi=(\phi_1,\phi_2)$ ,那么 $\phi_1$ 和 $\phi_2$ 都只是其分母和分子都是多项式的代数分子式。比如:

$\frac{x^3+4x+1}{2x+5}$

  • 我们希望 $\phi$ 具有这种属性,是因为在数学上有个众所周知的事实:一个有理的映射 要么是满射的,要么是常数的。虽然这看起来不重要,然而,一旦我们要定义一些属性并开始了解同源,这就会变得非常有用。

  • 因为 $E_1$ 和 $E_2$ 形成了群,理想情况下,我们希望 $\phi$ 是一个群同态(group homomorphism)。直觉上,这意味着 $\phi$ 将保持群的结构。在数学上,如果 $+_i$ 是 $E_i$ 上的群运算(即 $E_i$ 上的点加法)、而 $P,Q$ 是 $E_1$ 上的两个点,那么:

    • $\phi(P+_1 Q)=\phi(P)+_2 \phi(Q)$

如果我们将 $E_i$ 的单位元(identity)标记为 $O_i$ ,我们可以作出如下定义。

定义:一个有理的映射 $\phi:E_1 \longrightarrow E_2$ 被称为一个 同源,当 $\phi(O_1)=O_2$ 。

事实证明,如果一个映射是 有理的,并且 将单位元映射成自身,那么这个同源天然是一个 群同态,这正是我们想要的一种属性。此外,同源要么是单位元映射(一个常数映射,将单位元映射成自身),要么必然是满射的。

在有限域 $\mathbb{F}_q$ 上,有一个非常著名的同源叫做 “弗罗贝尼乌斯映射( Frobenius Map)”。设 $P=(x,y)$ ,这个映射是这样的:

$\phi(P)=(x^q,y^q)$

很容易就能检查它不是一个同源,所以我鼓励你自己试一试,确保你理解了这个定义!

自同态

定义:如果 $E_1=E_2$ ,那么 $\phi$ 被称为一个 “自同态( endomorphism)”。

定义:一个自同态 $\phi$ 如果是双射的,那么它是一个 “同构( isomorphism)”。请记住,$\phi$ 要么是常数(单位元),要么是满射的,所以我们只需要检查 $\phi$ 是不是单射的。

这些自同态非常酷,因为一条椭圆曲线 $E$ 的自同态的集合,与一个零映射(将一切都映射为零)一起,就可以在点层面的加法和 “乘法”—— 通过组合同态们,即 $(f \times g)=f(g(x))$ —— 的操作下,形成一个 “环( ring)”。直觉上,变成一个环意味着加法和乘法都有用,而且彼此可以互动。更准确地说,成为一个环意味着:

  • 它是由加法生成的一个群
  • 在它之上的乘法满足结合律,并且乘法有一个单位元(群内任何其它元素与之相乘将得出同一元素)
  • 乘法对加法满足分配律

我们将这个环写作 $\mathrm{End}(E)$ 。

j-不变量

出于我们的目的,我们设 $p \equiv 3 \pmod{4}$ 是一个质数,并考虑这个有限域 $\mathbb{F}_{p^2}$ 。

注意:为了获得对这个域的直觉,我们可以证明 $\mathbb{F}{p^2}$ 等于将 $i$ 附加到 $\mathbb{F}{p}$,其中 $i^2 + 1 = 0$($i$为虚数),写作 $\mathbb{F}{p}(i)$。这意思是,我们可以看 $\mathbb{F}{p^2}$ 中的元素看成这样的形式 $u + iv$,其中 $u, v \in \mathbb{F}_p$ 。除非专门声明,我们现在假设所有椭圆曲线都位于这个有限域。

现在,我们不是要分别地考察单条的椭圆曲线,而是, 当且仅当 $E_1$ 和 $E_2$ 是同构的,我们就把他们当成 “同一条” 椭圆曲线。更准确地说,我们考虑的是椭圆曲线的等价类(equivalence class),其中, 当且仅当 $E_1$ 和 $E_2$ 是同构的,它们就是等价的。为此,我们需要某种不变量,$j$ 当且仅当 $E_1$ 和 $E_2$ 是同构的,该不变量在两者上就是一样的,从而我们可以标记每一个等价类。所以,我们引入 $j$-不变量

将椭圆曲线 $E$ 写成魏尔斯特拉斯形式( Weierstrass Form),即:

$y^2 = x^3 + a x^2 + b x + c$ 其中 $a,b,c \in \mathbb{F}_{p^2}$

于是我们有

$j(E) = 1728 \frac{4a^3}{4a^3 + 27b^2}$

然后,在 $\mathbb{F}_{p^2}$ 上, 当且仅当 两条椭圆曲线有相同的 $j$ 不变量,那它们就是同构的。这正是我们要寻找的属性。

同源的属性

可分离的 vs. 不可分离的

同源密码学的论文中常常出现一个词:“可分离的( separable)”。一般来说,一个同源要么是 可分离的,要么是 不可分离的 。它们的定义不是很重要,但为了数学推导顺利进行,我们希望同源是可分离的。

关于可分离的同源,最重要的事情就是:它们是有限子群之间的一一对应关系。 什么意思呢 ?基本上,一条椭圆曲线 $E_1$ 上的点的每一个子群 $G$ ,都可以产生一个唯一的同源 $\phi:E_1 \longrightarrow E_2$,该同源的 “核(kernel)” 为 $G$ (回顾一下,$\phi$ 的核是一个 $E$ 上的点的集合,它会被映射成单位元 $O_1$),反之亦然。如果是这种情况,余域(输出曲线)有时会被写成 $E_1/G$ 而不是 $E_2$ 。

这在维尔斯特拉斯公式中是很清楚的:给定一条椭圆曲线 $E_1: y^2 = x^3 + a x^2 + b x + c$,这些公式会形成一条椭圆曲线 $E_2 = E_1/G$ 以及显式映射 $\phi$ 。在未来的博客中我会更详细解释这些公式。

定义:一个非零的可分离同源的 度(degree) 是其核中的元素的数量。等价地(虽然对我们的目的不太重要),它也是这个同源作为一个有理的映射的度(需要你想要一个精确的定义,请看 Silverman 的 《椭圆曲线代数学》的第 21 页)。

我们可以将同构视作特殊的同源,其核仅仅有一个元素 $O$ ,也就是,一个度为 $1$ 的同源。

度与同源的结合(composition)有重要的关系:

$\deg(\phi \circ \psi) = \deg(\phi) \times \deg(\psi)$

译者注:如果有两个同源 $\phi:E_1 \to E_2$ 和 $\psi:E_2 \to E_3$ ,那么两者的结合会产生第三个同源:$\phi \circ \psi: E_1 \to E_3$ 。

对手同源

我们知道同构映射会有一个逆映射,两者相结合会得到一个恒等映射(identity map)。但同源呢?它有类似的东西吗?

一般来说,同源没有逆,基督城,每一个同源 $\phi$ 都有唯一的一个 对手 同源,我们标记为 $\hat{\phi}$ 。两者的结合不会产生恒等映射,而是:如果

$\phi:E_1 \longrightarrow E_2$

是一个度为 $d$ 的同源,那么 $\hat{\phi}$ 也是一个度为 $d$ 的同源,两者的结合会产生:

$\phi \circ \hat{\phi} = [d]$,

其中 $[d]:E_1 \longrightarrow E_2$ 是乘以 $d$ 的映射。

挠点

考虑乘以 $d$ 的映射。那么 $E_1$ 上的所有满足 $[d]P = O_1$ 的点 $P$ ,所构成的群可以写成 $E_1[d]$ ,叫做 “$d$-挠点( d-torsion points)”。本质上,$d$ 挠点只是 $d$ 阶元素,只不过在大多数论文中,它们都被称为 $d$ 挠点,所以我觉得我应该介绍一下这个术语。

一个值得记住的有用事实是,如果 $d$ 与 $q$ 互质(回忆一下,$q$ 是我们正在研究的有限域的大小),那么:

$E_1[d] = d^2$

并且:

$E_1[d] \cong (\mathbb{Z}/d\mathbb{Z}) \times (\mathbb{Z}/d\mathbb{Z})$

进阶阅读

[1] Supersingular Isogeny Key Exchange for Beginners, by Craig Costello

[2] Rational Points on Elliptic Curves, by Joseph H. Silverman and John Tate

[3] Arithmetic of Elliptic Curves, by Joseph H. Silverman

相关文章

0 条评论