《密码技术与物联网安全:mbedtls开发实战》 —3.5.5 GF(2m)乘法
【摘要】 本节书摘来自华章计算机《密码技术与物联网安全:mbedtls开发实战》 一书中第3章,第3.5.5节,作者是徐 凯 崔红鹏 。
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)
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)