AES (Rijndael) uses a key schedule to expand a short key into a number of separate round keys. This is known as the Rijndael key schedule. The three AES variants have a different number of rounds. Each variant requires a separate 128-bit round key for each round plus one more. The key schedule produces the needed round keys from the initial key.
Rijndael's key schedule utilizes a number of operations, which will be described before describing the key schedule.
The rotate operation takes a 32-bit word like this (in hexadecimal):
and rotates it eight bits to the left such that the high eight bits "wrap around" and become the low eight bits of the result.
Rcon is what the Rijndael documentation calls the exponentiation of 2 to a user-specified value. Note that this operation is not performed with regular integers, but in Rijndael's finite field. In polynomial form, 2 is , and we compute
in or equivalently,