https://crypto.stackexchange.com/questions/72538/what-does-mulx-operation-in-snow-3g-correspond-to
According to the spec, MULx operation is defined as -
MULx maps 16 bits to 8 bits. Let V and c be 8-bit input values. Then MULx is defined: If the leftmost (i.e. the most significant) bit of V equals 1, then MULx(V, c) = (V <<8 1) ⊕ c, else MULx(V, c) = V <<8 1. Example: MULx(0x69,0x1B) = 0xC2 MULx(0x96,0x1B) = 0x2C ⊕ 0x1B = 0x37.
What does it really do ?
Answer
1
It essentially is the value 02×V in the field GF(28), and so MulxPOW(V, I, c) is essentially 02i×V in the field GF(28), where c specifies the representation used.
What is a representation: there are a lot of ways to map between 8 bit values and the members of the abstract GF(28) field, and a number of those mappings are plausible (unless GF§, which has an obvious mapping between integers in the range [0,p−1] and members of that field - so obvious that we typically ignore it).
What Snow does is use several different mappings (representations) for the various SBoxes, by specifying different c values for the different sboxes.