《密码技术与物联网安全:mbedtls开发实战》 —3.5.5 GF(2m)乘法

举报
华章计算机 发表于 2019/12/16 20:47:09 2019/12/16
【摘要】 本节书摘来自华章计算机《密码技术与物联网安全: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

 image.png

所以C'(x)=x10+x9+x8+x6+x2+1。由于计算结果中多项式次数大于7,还需要对C'(x)运算结果进行约简。我们可以通过“竖式除法”的方式约简C'(x)。具体运算过程如下:

 image.png

除了“竖式除法”外,还可以分别约简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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。