what method of transposition does AES 256 encryption use
What method of transposition does AES use?


Transposition is a simple movement of data to an alternative location. There are two relevant steps in AES when it comes to transposition: addRoundKey and shiftRows.

addRoundKey

The addRoundKey step incorporates a bitwise rotate left. This is a transposition of bits within a single word.

shiftRows

The shiftRows step is a transposition of bytes in the state. Each of the four rows of the state are shifted by an amount from $0$ to $3$ places. This step is designed to work in tandem with the mixColumns operation to ensure that changes in the state diffuse evenly and completely through the rest of the state.

Conclusion

The addRoundKey function incorporates a bitwise transposition, and the shiftRows step of the main function is a byte-wise transposition.

Note


  I'm interested in learning how to use AES-256 encryption in C/C++


All that being said, if you want to learn how the algorithm works, then implementing it is a good strategy and you should do so. But there is a lot more than functional correctness to consider in a secure crypto library - your code can produce correct input/outputs while still being vulnerable to all kinds of subtle and impressive attacks. After you are done implementing you might see if you can find/use any of these attacks to break your program.

If you intend to use AES to protect users data in the real world, you should strongly consider using a pre-existing library such as libsodium*. 

* Note: I am not discouraging you from writing your own code, but using it is a different story. You wouldn't self-study karate for 2 weeks and then start up a mercenary protection service, for reasons that are obvious in the real world but not necessarily so obvious in the information world. Empowering yourself is great, but protecting people is against powerful adversaries who mean business needs to be taken seriously