loading...
伽罗华域
Published in:2021-09-22 | category: 密码学 有限域

GF(2 ^ 3)

今天看到《密码编码学与网络安全》一书中的有限域,特别不理解在GF(2 ^ 3)上的乘法运算,索性就上网查查资料,自己摸索一下其中的奥秘。

GF(2 ^ 3)上的加法运算没得说,就是异或运算。但乘法就有些稀奇古怪了,它是怎么算的?先把表放在下面:

伽罗华域上的多项式乘法,其结果需要mod P(x)

在经过一番搜索后,发现它需要构造出一个本原多项式。什么是本原多项式?

本原多项式满足以下条件:

GF(2 ^ 8)的本原多项式是:x^8 + x^4 + x^3 + x + 1。

GF(2 ^ 3)的本原多项式是:x^3 + x + 1。

拿表中的一组数据举例:101 010 <=> (x^2 + 1) x = x^3 + x,这样它除以本原多项式后余1,正好等于表格中数据。

再举个例子:111010 <=> (x^2 + x + 1) (x) = x^3 + x^2 + x,除以本原多项式后为x^2 + 1 <=> 101 = 5,也正好等于表中的数据。

模运算:

一般地,在GF(2^n)上对于n次多项式p(x),有x^n mod p(x) = [p(x) - x^n]。——————-①

考虑GF(2^8)上的多项式:

将它乘以x可得:

如果b7 = 0,那么结果就是一个次数小于8的多项式,已经是约化后的形式,不需要进一步计算。如果b7 = 1,那么可以通过式①进行模m(x)的约化:

这表明乘以x(即00000010)的运算可以通过左移一位后再根据条件按位异或00011011(其代表x^4 + x^3 + x + 1)来实现。总结如下:


参考:

《密码编码学与网络安全—原理与实践》(第六版)

https://baike.baidu.com/item/%E6%9C%AC%E5%8E%9F%E5%A4%9A%E9%A1%B9%E5%BC%8F/3246261?fr=aladdin

https://blog.csdn.net/shelldon/article/details/54729687

https://blog.csdn.net/qq_44840079/article/details/104963985?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link

Prev:
RSA之费马分解
Next:
CTFSHOW-unusualrsa
catalog
catalog