密码学--多项式模乘(有限域GF(2^8)内计算)

一、前言

        这是期末考试必考榜单的第五项

二、多项式模乘

例题:

m(x) = x8+x4+x3+x+1

57*83 = ?(mod m(x))

解:

①化二进制

将57、83从16进制转化为2进制

f(x) = 57 = 01010111

g(x) = 83 = 10000011

由于有限域GF(2^8) 所以m(x) 可以写成

m(x) = x4+x3+x+1 = 00011011

②计算f(x)*xn

如何计算乘法呢?首先引入一个概念

x8 mod m(x) = [m(x) – x8] = m(x)

然后开始计算

        f(x)*x1 = 01010111 * 00000010 = 10101110

由于 f(x)*x1 = 10101110 中

并没有超过2^7的值 所以不需要单独计算x^8 mod m(x)

 

        f(x)*x2 = 10101110 * 00000010 = 101011100

计算完f(x) * x^2 后可以发现 有一个1顶到了 2*2^8的位置上

需要单独计算 f(x)*x2 在有限域GF(2^8)中的对应值

101011100 = 100000000 + 01011100

根据上面 引入的概念 可以推到:

m(x) + 01011100 = 00011011 + 01011100 = 01000111

所以f(x)*x2 = 01000111

按照这个算法可以列出f(x)与xn相乘的结果表

算式二进制值
f(x)*x^001010111
f(x)*x^110101110
f(x)*x^201000111
f(x)*x^310001110
f(x)*x^400000111
f(x)*x^500001110
f(x)*x^600011100
f(x)*x^700111000

③将g(x)分解

已知g(x) = 83 = 10000011

相当于g(x) = x^7 + x^1 + 1

f(x) * g(x) = f(x) * (x^7 + x^1 + 1)

                =f(x) * x^7 + f(x) * x^1 + f(x) * 1

对照上一步写的表格填一下

                00111000 + 10101110 + 01010111

然后就按 模二加 运算

最后的结果是 11000001

相当于 x^7 + x^6 + 1

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

震惊铁豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值