BLS Curves (BLS12

您所在的位置:网站首页 cab551和381区别 BLS Curves (BLS12

BLS Curves (BLS12

2024-07-15 21:05| 来源: 网络整理| 查看: 265

BLS12-381 中曲线 \(G_2\) 复杂一些,它是定义在域 \(\mathbb{F}_{p^2}\) 上满足 \(y^2 = x^3 + 4(u + 1)\) 的点,可记为 \(E_2(\mathbb{F}_{p^2})\) : \[E_2(\mathbb{F}_{p^2}) = \{(x, y): x,y \in \mathbb{F}_{p^2} \;\text{satisfy}\; y^2 = x^3 + 4(u + 1) \} \cup \{ \mathcal{O} \}\] 上面写到的域 \(\mathbb{F}_{p^2}\) 和 \(u\) 分别是什么呢?

域 \(\mathbb{F}_{p^2}\) 是域 \(\mathbb{F}_{p}\) 的二次扩张域,可以类比为复数域是对实数域的扩展,通过引入一个符号 \(u\) (它满足 \(u^2+1=0\) ,它类似于复数里的 \(i=\sqrt{-1}\) ),来让其继续满足原来 \(\mathbb{F}_{p}\) 域上的模 \(p\) 的加减乘除四则运算。

域 \(\mathbb{F}_{p^2}\) 中的元素可以使用 \(a_0 + a_1 u\) 来表示,或者表示为 \((a_0, a_1)\) 。

域 \(\mathbb{F}_{p^2}\) 上的加法运算定义如下: \[(a,b) + (c,d) = a + bu + c + du = (a+c) + (b+d)u = (a+c, b+d)\]

域 \(\mathbb{F}_{p^2}\) 上的乘法运算定义如下: \[(a,b) \times (c,d) = ac + (ad + bc)u + bdu^2 = (ac-bd) + (ad+bc)u = (ac-bd, ad+bc)\]

曲线 \(G_2\) 中点的个数为 \(\#E_2(\mathbb{F}_{p^2}) = h_2 \cdot n\) ,其中 \(h_2,n\) 分别为:

h_2 = 0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5 n = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001

曲线 \(G_2\) 的 Generator 为:

x = 0x024AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8 + 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E u y = 0x0CE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801 + 0x0606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE u

这些参数可以通过 Sage script 计算出来,可参考:https://github.com/relic-toolkit/relic/issues/55

一般地,对于 \(\mathbb{F}_{p}\) ,它的扩域 \(\mathbb{F}_{p^k}\) 中的元素可以使用 \(a_0 + a_1 u + \cdots + a_{k-1} u^{k-1}\) 来表示,或者表示为 \((a_0, a_1, \cdots, a_{k-1})\) 。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3