Я бы убил за public string CryptAlgorithm {get; set; }
( здесь ) из-за
Выбирает алгоритм шифрования для шифрования и дешифрования. Возможные значения: pki, aes, rijndael, blowfish, blowfish2, des, 3des, rc2, arc4, twofish, pbes1 и pbes2 ».
Лично я более чем уверен, что это богоподобный объект (который включает в себя сжатие, шифрование, кодирование).