As you know, a byte means 8 bits (binary digits), e.g., 10110110
,
or in hexadecimal for short, B6
. In running the algorithm,
bytes are interpreted in two different ways at different times:
a^b
in C++
.
10110110
means
00000001
(why?).
00000010
(why?).
The chosen is a generator of the nonzero elements of the
field with the property that
.
Just as you can multiply any two complex numbers once you know that
in
, you can multiply any two expressions involving
powers of
once you know the equation for
.
Example: What is 00010000
times itself? This is ,
so times itself we have
, which can then be rewritten
in terms of lower powers using the equation, yielding
00011011
as the answer.