# 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 ?

It essentially is the value $$02 \times V$$ in the field $$GF(2^8)$$, and so MulxPOW(V, I, c) is essentially $$02^i \times V$$ in the field $$GF(2^8)$$, 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(2^8)$$ field, and a number of those mappings are plausible (unless $$GF(p)$$, 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.