While working with AES 256 in CBC mode, I learned that it requires Key Expansion - forward (for encryption) and reverse (for decryption). Does AES CTR mode also requires such a step ? Or can the 256 bit key be used as is ?
When AES performs an encryption (or decryption) with a key, it internally converts the key into a series of subkeys (either 11, 13 or 15 subkeys, depending on whether you start with a 128 bit, 192 bit or 256 bit AES key). This process is known as key expansion and needs to be done, whether you encrypt and decrypt.
And, yes, this needs to be done for AES-CTR (or any other mode of operation of AES).
Now, when AES is implemented in software, we usually generate the subkeys once (and store them in memory); in hardware, it is not uncommon to generate the subkeys on the fly in parallel with processing the AES block (because the logic to do this on-the-fly generation is cheaper for hardware than storing the subkeys).