Introduction to Symmetric and Asymmetric C# with Example

Encryption
You can improve the security for data transit or storing by implementing encrypting techniques. Basically there are
two approaches when using System.Security.Cryptography: symmetric and asymmetric.
Symmetric Encryption
This method uses a private key in order to perform the data transformation.
Pros:
Symmetric algorithms consume less resources and are faster than asymmetric ones.
The amount of data you can encrypt is unlimited.
Cons:
Encryption and decryption use the same key. Someone will be able to decrypt your data if the key is
compromised.
You could end up with many diﬀerent secret keys to manage if you choose to use a diﬀerent secret key for
diﬀerent data.
Under System.Security.Cryptography you have diﬀerent classes that perform symmetric encryption, they are
known as block ciphers:
AesManaged (AES algorithm).
AesCryptoServiceProvider (AES algorithm FIPS 140-2 complaint).
DESCryptoServiceProvider (DES algorithm).
RC2CryptoServiceProvider (Rivest Cipher 2 algorithm).
RijndaelManaged (AES algorithm). Note: RijndaelManaged is not FIPS-197 complaint.
TripleDES (TripleDES algorithm).
Asymmetric Encryption
This method uses a combination of public and private keys in order to perform the data transformation.
Pros:
It uses larger keys than symmetric algorithms, thus they are less susceptible to being cracked by using brute
force.
It is easier to guarantee who is able to encrypt and decrypt the data because it relies on two keys (public and
private).
Cons:
There is a limit on the amount of data that you can encrypt. The limit is diﬀerent for each algorithm and is
typically proportional with the key size of the algorithm. For example, an RSACryptoServiceProvider object
with a key length of 1,024 bits can only encrypt a message that is smaller than 128 bytes.
Asymmetric algorithms are very slow in comparison to symmetric algorithms.
Under System.Security.Cryptography you have access to diﬀerent classes that perform asymmetric encryption:
DSACryptoServiceProvider (Digital Signature Algorithm algorithm)
RSACryptoServiceProvider (RSA Algorithm algorithm)

## Comment Form