《密码技术与物联网安全:mbedtls开发实战》 —3.5.5 GF(2m)乘法
3.5.5 GF(2m)乘法
扩展域的乘法操作也在域GF(2)中完成。
定义3-10 计算C(x)=A(x)·B(x)
C(x)=A(x)·B(x)=(am-1xm-1+…+a0)·(bm-1xm-1+…+b0)
C'(x)=c'2m-2x2m-2+…+c0
其中,
c'?0=a0b0 mod2
…
c'?2m-2=am-1bm-1 mod 2
计算过程若出现多项式次数大于7的情况,需要对计算结果进行约简。约简时将两个多项式相乘结果除以一个不可约多项式P(x),只保留得到的余数。AES算法中使用的不可约多项式为P(x)=x8+x4+x3+x+1。
定义3-11 扩展域乘法
假设A(x),B(x)∈GF(2m),且P(x)为一个不可约多项式,两个元素之积的计算方法为:
C(x)≡A(x)·B(x) mod P(x)
例3-10 扩展域GF(28)上的乘法示例
计算C(x)=A(x)·B(x),其中A(x)=x7+x5+x3+1,B(x)=x3+x2+1
所以C'(x)=x10+x9+x8+x6+x2+1。由于计算结果中多项式次数大于7,还需要对C'(x)运算结果进行约简。我们可以通过“竖式除法”的方式约简C'(x)。具体运算过程如下:
除了“竖式除法”外,还可以分别约简x8、x9和x10,再计算x10+x9+x8+x6+x2+1,约简C'(x)。
P(x)-x8=(x8+x4+x3+x+1)-x8
x8≡x4+x3+x+1 mod P(x)
x9=x8·x≡x5+x4+x2+x mod P(x)
x10=x9·x≡x6+x5+x3+x2 mod P(x)
所以:
x10+x9+x8+x6+x2+1
≡((x6+x5+x3+x2)+(x5+x4+x2+x)+(x4+x3+x+1))+x6+x2+1
≡x2 mod P(x)
- 点赞
- 收藏
- 关注作者
评论(0)