伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(1)------第一次扩张

小说:重庆开县胡薇作者:安公杜石更新时间:2019-03-19字数:20068

“师父!”应申三人走进来对着纪太虚言道:“不知道师父召唤徒儿等回来,有什么事情要徒儿去办?”

美团销售工资

“哼!你们既然知道佛爷就是这里的佛祖,就当速速皈依我佛!”多吉说道。
其他人也觉得有趣,纷纷参与起来。少则几万,多则几千万,筹码已经堆了一大堆,不过这些钱对于这些富豪来说,也只是九牛一毛而已。

可是,鼻子依旧是痒痒,他忍不住打了个喷嚏,一下子坐了起来,然后便是看到自己面前坐着一个人,将他吓了一跳。

伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(1)------第一次扩张


伽罗瓦域是抽象代数下的域论分支中的内容,这部分想必很多人都比较熟悉,此处不再赘述。

最近,国密算法中的SM2和SM9已经成为国际标准,其中SM9算法在椭圆曲线离散对数难题的基础上,添加了若干个双线性配对难题来保证安全性。

配对的过程中,除去群G1中的元素与SM2算法一样在素域下之外,群G2中的元素为GFq2域,群GT中的元素为GFq12域。

SM9算法大部分运算都在阔域中进行,而塔式扩张的意义在于将阔域中的元素用基域中的元素进行表示和计算。这里先按照塔式扩张的顺序(1→2→4→12)探讨一下阔域中的元素计算。

1.  (1)

塔式扩张中的(1),就是指基域。在SM9算法中,是素域Fq,其中q是256位BN曲线的基域特征值。

Fq域下的元素运算,与我们日常的加减乘除运算并无差异,略去不谈。

2.   (2)

塔式扩张中的(2),即域Fq2。这是从素域向二次域的第一次扩张,扩张公式如下:

Fq2[μ] = Fq[μ] /( μ2 - α), 其中,α = -2

即:该次扩张的即约多项式为 x2 - α, α = -2

下面以具体的例子来说明该次扩张。

SM9规范第5部分中,群 G2 的生成元 P2 = (xP2, yP2):
坐标 xP2:( 85AEF3D0 78640C98 597B6027 B441A01F  F1DD2C19 0F5E93C4 54806C11  D8806141 ,  37227552 92130B08 D2AAB97F D34EC120 EE265948 D19C17AB F9B7213B AF82D65B  )

坐标 yP2:( 17509B09 2E845C12 66BA0D26 2CBEE6ED 0736A96F A347C8BD 856DC76B 84EBEB96 ,   A7CF28D5 19BE3DA6 5F317015 3D278FF2  47EFBA98 A71A0811 6215BBA5 C999A7C7 ) 

此处,点P2的x轴和y轴均为域Fq2下的元素,且高维在前,低维在后。

按照这种表示顺序,此处定义两个域Fq2下的元素:

X = (a, b)

Y = (c, d)

即:

X = a * μ1 + b * μ0 = a * μ + b

Y = c * μ1 + d * μ0 = c * μ + d


 

加法和减法计算就是对应维度的数值在素域q下的加和减:

X + Y = (a, b) + (c, d) = (a + c, b + d)

X - Y = (a, b) - (c, d) = (a - c, b - d)

 


 

乘法

X * Y = (a, b) * (c, d)

    = (a * μ + b) * (c * μ + d)

    = (a * c * μ2 + (a * d + b * c)μ + b * d) mod ( μ2 - α) 

    = -2 *a * c + (a * d + b * c)μ + b * d

    = (a * d + b * c)μ + (b * d - 2 * a * c)

即:

X * Y = (a, b) * (c, d) = (a * d + b * c , b * d - 2 * a * c)

其中,最终结果中的 * 运算均为素域q下的乘法运算。


 

求逆

计算 X-1 = (a, b)-1

假设结果为(x, y)

则有,(a, b) * (x, y) = (0, 1)

(0, 1)为域Fq2下的单位元,相当于素域q下的 1。

将上式展开

(a, b) * (x, y) = (a * y + b * x)μ + (b * y - 2 * a * x)

      = (a * y + b * x  ,   b * y - 2 * a * x)  = (0, 1)

相当于求解二元一次方程。

a * y + b * x      = 0

b * y - 2 * a * x = 1

求解x和y的过程省去不说,可以得到求逆操作的结果为

X-1 = (a , b)-1 = ((-a) / (b2 + 2 * a2) ,  b / (b2 + 2 * a2))

其中相关元素与计算均在素域q下进行。


 

带即约多项式值的乘法

该乘法直接放在这里会有些突兀,后续篇幅会继续介绍第二次扩张和第三次扩张,到时会对此处设置该乘法一目了然,该乘法为:

X * Y * μ = (a * μ + b) * (c * μ + d) * μ

      = (a * c * μ3 + (a * d + b * c)μ2 + b * d * μ) mod ( μ2 - α) 

      = (a * c * μ * (-2) + (a * d + b * c) * (-2) + b * d * μ)

      = (b * d - 2 * a * c) * μ - 2 * (a * d + b * c)

即: 

X * Y * μ = (b * d - 2 * a * c  ,  - 2 * (a * d + b * c))

 

以上便是塔式扩张的第一次扩张后的元素计算公式。

 

如上可知,扩张的实际作用是将阔域元素使用基域下的元素表示并按照基域下的运算规则进行运算。

SM9算法的群G2中的点加与倍点计算,虽然与SM2的素域下运算公式一致,但实际处理时,所有元素均按照上面的公式在域Fq2下进行。

 

后面再花两个篇幅探讨第二次扩张2→4和第三次扩张4→12,并推导4次阔域和12次阔域下的元素计算公式。

 

当前文章:http://zxqss.com/ask/question_18881.html

发布时间:2019-03-19 02:11:02

唯享客加到购物车付款有佣金吗 B站UP主广告价格 南宁百姓网二手车二成首付 唯品会新人专区在哪 畅赚广告投资5800 赚生活App 免费网赚项目论坛 三国志2017还能赚钱吗

一点点上班几小时 手机刷Ubuntu原理 腾讯理财通零钱可以么 2016年3737动漫 全自动免费挂机赚钱 阿里妈妈推广赚钱 利用分身接码赚钱项目 高佣联盟佣金率为多少 黔亿城网积分怎么用 梦幻西游 新区赚钱 美团众包怎么关自动接单 花钱解封微信号 能赚钱的应用软件 淘宝代刷信誉兼职被骗 微信网络推广教程 学生党赚钱平台 应聘淘宝客服兼职 在家带娃最适合自学啥 怎么做微信淘宝客赚钱

编辑:北顺

我要说两句: (0人参与)

发布