Я разрабатываю программу, которая шифрует USB-накопители с использованием метода RijndaelManaged на C # с возможностью выбора между размером ключа 128/192/256 бит. Я предполагаю, что шифрование с 256-битным ключом должно занимать больше времени, однако даже с большим количеством файлов процесс занимает то же время, что и со 128-битным ключом. Вы думаете, что это ошибка программирования?
Я генерирую свой ключ и iv из пароля, используя эту функцию:
private List<byte[]> GenerateKeys(string password, int strength)
{
byte[] key;
byte[] iv;
List<byte[]> result = new List<byte[]>();
Rfc2898DeriveBytes rfcDb = new Rfc2898DeriveBytes(password, System.Text.Encoding.UTF8.GetBytes(password));
key = rfcDb.GetBytes(strength); // strength value can be 16, 24 or 32 depending
iv = rfcDb.GetBytes(strength); // on the user choice
result.Add(key);
result.Add(iv);
return result;
}
Затем я использую свой метод RijndaelManaged следующим образом:
RijndaelManaged rijndael = new RijndaelManaged();
rijndael.Mode = CipherMode.CBC;
rijndael.BlockSize = Strenght * 8;
rijndael.KeySize = Strenght * 8;
ICryptoTransform aesEncryptor = rijndael.CreateEncryptor(key, iv); // key and iv from the other method
Вы видите что-то не так?