From my reading I am not sure if AES is a single, standardized algorithm that can work with different length keys, or a family of similar algorithms? What I mean is if I fin
AES, the Advanced Encryption Standard, defines in FIPS PUB 197 three symmetric block-ciphers: AES-128, AES-192 and AES-256. All three algorithms are defined by specific parameter-choices for the Rijndael algorithm.
AES-128-encryption is a function (key, data) -> (encryption). Rijndael-encryption is a function (key, data, block-size, key-size) -> (encryption).
AesCryptoServiceProvider uses the underlying Windows CryptoAPI to perform the encryption.
AesManaged performs the encryption in pure managed code. RijndaelManaged supports the full range of parameter-choices (also in pure managed code).
Advantages to using AesCryptoServiceProvider include potential for higher speed and the fact that CryptoAPI is FIPS certified (on certain versions of Windows).
Advantages to AesManaged include portability (AesCryptoServiceProvider is not supported on all versions of Windows).
The only advantage to RijndaelManaged is that it is supported in early versions of the .NET framework - I haven't ever seen anyone use the non-AES parameter-choices.