深入研究椭圆曲线(第四部分)

本文深入探讨了椭圆曲线上的函数与映射,包括群的同态、同构、扭曲及其在密码学中的应用。作者解释了如何通过这些概念构建更复杂的算法,以及它们在有限域上的数学特性和意义。文章结构清晰,逻辑严谨,为读者提供了深入的技术理解。

我们到目前为止已经讨论了很多内容,所以我相信一个简短的回顾会很有帮助。

如果这一系列在这里结束,那也是完全没问题的。凭借我们迄今所获得的知识,有可能设计出非常有用的算法。没有必要更深入地挖掘。

但是如果你已经读到这里,你可能想要 更多。而确实还有更多。

我们的旅程继续与 函数。这将解锁非常有趣和强大的可能性。继续前行吧!

函数

尽管你们中的大多数人可能都知道什么是函数,但我认为还是有必要给出一个定义。一个 函数映射 就像一个箱子,它接受一个 输入,并返回一个 输出。它以一种 确定性 的方式进行:每次将相同的输入传递给函数时,我们获得的输出都是 完全相同 —— 没有惊喜。

这就是描述函数的“直观”方式。

当然,还有更严格的定义,但我们现在不需要过多停留在细节上。

当我们想到一个函数时,我们通常会想象一些像 f(x) = x² 的东西。在这里, x 表示输入,而计算出的 是输出。而且往往我们会将这些值想象成 数字

但它们 不一定 是数字!

输入可以属于任何一个集合,称为函数的 定义域,而输出则属于另一个集合,称为其 值域(有时也称为 陪域)。

函数也称为映射,因为它们将定义域中的每个输入映射到值域中的一个值。

那么,我们为什么不尝试使用 作为这些集合呢?

群上的映射

正如我们已经知道的,群是由一个 集合 和一个 二元 运算结合而成的结构。使用这些知识,可以通过巧妙的方式定义涉及群的不同映射。

例如,一个非常简单的关系为:

这是一个将每个正整数映射到一个椭圆曲线群元素的函数。

当然,如果这个群是 有限的,那么某些整数将具有相同的函数值。正式来说,这意味着函数不是 单射:一个函数是单射的,如果定义域中的每个元素映射到值域中的一个 唯一 元素。我们稍后将回到这个话题。

对于单射函数,值域中的没有元素是两个不同输入的像(或函数值)。

让我们更进一步。没有什么能阻止我们拥有一个同时定义域和值域都是群的函数。

这并没有什么特别的。一个从某个群 G 到另一个群 H 的函数仅仅是将 G 中的每个元素映射到 H,这样的关系可能有很多。但如果我们想以某种方式 保留 这些运算之间的一些重要性质呢?

让我稍微更准确一点。如果群 G 有某种运算记作 •,而 H 有另一个运算记作 *,如果 GH 之间的映射能够维持这些运算之间某种关系,那岂不是很酷?

这些运算实际上不必不同。但在更一般的情况下,它们会是不同的。

这将我们引向群论中最重要的概念之一:同态。同态是一个 保留群结构 的函数。这意味着对于 G 中的任何两个元素 ab,我们有:

这可能看起来并不激动人心,但实际上它是一个非常强大的属性。当处理同态时,运算顺序 并不重要:我们可以先组合元素,然后应用函数,或先将函数应用到每个元素上再组合它们。

例如,我提供的第一个例子函数可以轻松调整为同态。只需将定义域限制为模 p 的正整数即可!而 p 甚至不需要为素数。

再次地,我们将在之后回到这个想法。现在,我们仅仅是在储存重要的定义。请与我耐心等待片刻!

同构

几段之前,我们讨论了单射函数。还有一个类似的函数属性我们需要理解,称为 满射性

一个 满射满射函数 是一个函数,其中值域中的每一个元素都是定义域中至少一个元素的 (或函数值)。以下是一个可视化表示:

值域中没有“剩余”的元素。

只有满射性本身并非那么引人注目(尽管在某种情况下它可能非常有用)。当我们 结合 单射性和满射性时,事情就变得非常有趣了。

简单地说:单射性 保证定义域中的每个元素映射到值域中的一个 唯一 元素,而 满射性 确保值域中没有 未使用 的元素。这导致了一种奇妙的情况:一一对应。通常称为 双射

此外,当一个 同态 恰好是一个 双射 时,它就获得了一个特殊的名称:同构。它是一一对应的同时又保留了群结构——可以说是一种“完美”的对应关系。

当两个群之间存在同构时(我们会说它们是 同构的),实际上发生的是它们是同一个群的不同表象。如果你知道一个群发生了什么,那你就自动知道...

剩余50%的内容订阅专栏后可查看

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Frank Mangone
Frank Mangone
Software developer based in Uruguay. Math and Cryptography enthusiast.