С Свойство SymmetricAlgorithm.IV Документация:
Размер свойства IV должен совпадать со свойством BlockSize .
И свойство BlockSize:
Получает или задает размер блока в битах криптографической операции.
Я не знаю, сколько битов в кодировке UTF-8 "C3CA193570B26E5C3CBB50FD805A01S2", но это почти наверняка не правильно (Вы знаете, сколько байтов занимает кодированный символ UTF-8? Вы также не знаете размер блока шифра Риендала, и вы не должны это знать.
Вы почти наверняка должны использовать PasswordDeriveBytes вместо:
PasswordDeriveBytes pdb =
new PasswordDeriveBytes("C3CA193570B26E5C3CBB50FD805A01S2", null);
IVByte = pdb.GetBytes(algorithm.BlockSize / 8); //divide by 8 for bits to bytes
Наконец, с точки зрения безопасности: хотя ключ является секретным, вектор инициализации (IV) - нет. IV обычно является общедоступным и отправляется вместе с зашифрованными данными. Другими словами, ваш IV не должен совпадать с Key .