.NET Cryptography Overview
The .NET encryption classes are divided into three layers:
 Asymmetric Algorithm: This class represents asymmetric encryption, which uses a public/private key pair. Data encrypted with one key can be decrypted only with the other key.

Symmetric Algorithm: This class represents symmetric encryption, which uses a shared secret value. Data encrypted with the key can be decrypted using only the same key.

Hash Algorithm: This class represents hash generation and verification. Hashes are also known as oneway encryption algorithms, because you can only encrypt but not decrypt data.
You can use hashes to ensure that data is not tampered with.
The second level of classes represent a specific encryption algorithm that are derived from the encryption base classes, but are also abstract classes.
The third level of classes is a set of encryption implementations. Each implementation class derives from an algorithm class.
Classes that wrap the CryptoAPI functions usually have CryptoServiceProvider in their name and managed classes typically have Managed in their name
Symmetric Encryption Algorithms
Abstract Algorithm  Default Implementation  Valid Key  Max Key 
DES  DESCryptoServiceProvider  64  64 
TripleDES  TripleDESCryptoServiceProvider  128, 192  192 
RC2  RC2CryptoServiceProvider  40128  128 
Rijndael  RijndaelManaged  128, 192, 256  256 
the key length for DES and TripleDES includes parity bits that donâ€™t contribute to the strength of the encryption
Asymmetric Encryption
Abstract Algorithm  Default Implementation  Valid Key  Max Key 
RSA  RSACryptoServiceProvider  38416384 (8bit increments)  1024 
DSA  DSACryptoServiceProvider  5121024 (64bit increments)  1024 