AES mix column stage
What they are trying to say that an effective way to multiply $a$ and $b$ in $GF(2^8)$ is to first check if either $a$ or $b$ are zero (if either are zero, the result of the multiplication is zero), and if neither are zero, then:

$$a \otimes b = E( L(a) + L(b) \bmod 255 )$$

where $E$ and $L$ are lookups in the ETable, LTable given, and the addition is over the integers (and not addition in the $GF(2^8)$ field).

There are more mathematically elegant ways of expressing it; however this is just about the most efficient way to implement it on a standard CPU.

However, this has doesn't have that much to do with AES; yes, AES does computation within $GF(2^8)$, however it never requires us to multiply two variables.

What the MixCollumn step asks for is multiplication by the fixed values 1, 2 and 3.

Now, computing $1 \otimes x$ is easy; $1 \otimes x = x$

Computing $2 \otimes x$ is only slightly more involved; because AES uses a polynomial representation of $GF(2^8)$, this can be simplified by shifting left by one, and then xor'ing the fixed value $0x1b$ if the original msbit was one; in a C-type notation, $2 \otimes x$ would be the value:

((x&lt;&lt;1) &amp; 0xff) ^ (x &amp; 0x80 ? 0x1b : 0x00)


Once we can compute $2 \otimes x$, computing $3 \otimes x$ is easy; $3 \otimes x = (2 \otimes x) \oplus (1 \otimes x) = (2 \otimes x) \oplus x$