密码学

您所在的位置:网站首页 二进制模二乘法 密码学

密码学

2024-07-14 10:37| 来源: 网络整理| 查看: 265

一、前言

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

二、多项式模乘 例题:

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^001010111f(x)*x^110101110f(x)*x^201000111f(x)*x^310001110f(x)*x^400000111f(x)*x^500001110f(x)*x^600011100f(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

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3