有限域GF(2^8)中的加法和乘法运算示例
首先将0x41和0x62转换为二进制形式:
0x41 = 0100 0001 0x62 = 0110 0010
加法:在有限域中,加法就是异或运算,即对应位相加不进位。
0100 0001
xor 0110 0010 0010 0011
因此,0x41加上0x62等于0x23(十六进制)或0010 0011(二进制)。
乘法:在有限域中,乘法需要用到GF(2^8)上的不可约多项式m(x)。具体计算方法为,将两个元素转换为二进制形式后,用多项式乘法求出结果,然后用m(x)对结果进行模运算,最终得到的余数就是两个元素的乘积。
首先,将0x41和0x62转换为二进制多项式:
0x41 = x^6 + x^0 0x62 = x^6 + x^5 + x^1
然后进行多项式乘法,得到:
x^12 + x^11 + x^7 + x^6 + x^1
+ x^13 + x^12 + x^8 + x^7 + x^2
----------------------------------
= x^13 + x^11 + x^8 + x^5 + x^2 + x^1
接下来,用m(x)对结果进行模运算。首先将m(x)转换为二进制形式:
m(x) = x^8 + x^4 + x^3 + x + 1 = 100011101
然后将结果和m(x)转换为二进制形式后,用模2除法进行模运算,得到余数:
1 00011101 (m(x))
--------------------------------
100 | 11001011001000
100011101
----------
101111
1000111
-------
10001
100011
------
11010
10001
-----
10110
10001
-----
1101
1000
----
1010
1000
----
10
因此,0x41乘以0x62等于0x6d(十六进制)或0110 1101(二进制)。
原文地址: https://www.cveoy.top/t/topic/mQap 著作权归作者所有。请勿转载和采集!