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.