来自 数据 2021-06-10 14:02 的文章

防ddos_服务器高防多少钱_方法

防ddos_服务器高防多少钱_方法

这是三篇以代码为中心的关于基于配对的密码学的博客文章中的第二篇。第一篇文章[1]讨论了模运算、有限域、嵌入度,并给出了一个12度素数扩张场塔的实现。本系列文章最后将详细回顾BLS12-381中常见的配对操作,如BLS签名[2]。已经提议在以太坊预编译合约中支持这些作业[3],而且对预编译合约中相关配对组态的支援已经开始运作[4,5]。现在,这第二篇文章介绍了所需的椭圆曲线,描述了许多组/曲线操作的实现,展示了如何执行必要的输入验证,最后介绍了性扭曲。这些博客文章通过强调实际工作代码来补充现有的理论资源。所有内容都将在Haskell的200行[6]内演示,安卓ddos防御工具,并附有大量的注释和空白。源代码位于https://github.com/nccgroup/pairing-bls12381以便于实验。我们在./Crypto/Pairing_bls12381.hs[7]中提供与源代码匹配的行号,所有操作都发生在这里。请注意,Filecoin项目[8]也有一些用Rust编写的很好的例子,它们提供了一个互补的视角。点、群、生成元和否定我们将在椭圆曲线上定义一个点,它由x和y坐标对或特殊的PointAtInfinity元素组成,如下所示。请注意,此类型声明使用任意类型变量a来延迟定义基础坐标的确切类型,但会将它们标记为ax和ay,以便我们以后单独引用它们。type变量强制每个坐标类型彼此一致,ddos防御系统拓扑位置,并且必须告诉编译器在第215行自动导出一个简单的等价关系Eq以及一个简单的"print format"Show函数。虽然投影点类型(例如,每个点包含三个坐标)可以更快,但由于其简单性和对更直观的几何推理的支持,我们只针对仿射点。

防ddos_服务器高防多少钱_方法

在上一篇博客文章中,我们定义并开发了各种有限域的代码。这一次我们还将与小组合作。组的定义是由一个集合和一个满足几个属性的二进制运算组成:对集合的两个元素进行操作会导致准备好了操作是关联的。唯一的标识元素存在。一个每个元素都存在逆。在我们的例子中,群集合由椭圆方程E1:y2=x3+4和E2:y2=x3+4(u+1)的有效解组成。第一个方程适用于包含Fq1类型点的g1组,而第二个方程适用于包含Fq2类型点的g2组。组具有相同的顺序,Fq1和Fq2字段在第一篇博客文章中实现。稍后,我们将看到PointAtInfinity作为两个组的标识元素。每个组的生成器常量如下所示,类型信息为紫色。每个类型前面都有一个类型声明。

防ddos_服务器高防多少钱_方法

对于上面的代码,每个生成器常量被包装在一个Maybe结构中,该结构可以不包含任何内容或仅包含一个值,其中value必须是相关字段中的一个点。这是针对导出的常量和函数完成的。上面显示的一些固定值被修剪以避免使用小字体;完整的值可以在GitHub的源代码中找到。当上述标准生成器被重复添加到自身时,它们将枚举其组集合中的每个元素,并用PointAtInfinity"完成"。我们的第一个群函数恰好是最简单的:点求反。如前所述,我们在下面的第294行以其类型签名作为函数的开头。括号中的文本要求类型变量a必须满足Field和Eq接口,就像我们前面实现的所有字段一样。然后,签名指示函数获取类型a的点并返回同一类型的点。这种方法的一个有趣的方面是,我们指定了一个函数,它可以从我们先前实现的四个字段中的任何一个获取由坐标组成的点。