Когда я выберу AesCryptoServiceProvider вместо AesManaged или RijndaelManaged? - PullRequest
11 голосов
/ 04 августа 2009

Я думаю, что отличительными факторами являются

  • AesCryptoServiceProvider соответствует FIPS
  • AesManaged является кроссплатформенным, требует .NET 3.0
  • RijndaelManaged работает в .NET 2.0, требует ограничения размера блока

это правильно?

1 Ответ

2 голосов
/ 04 августа 2009

Документация AesManaged гласит, что

"Алгоритм AES по сути является симметричным алгоритмом Rijndael с фиксированным размером блока и количеством итераций. Этот класс функционирует так же, как класс RijndaelManaged, но ограничивает блоки 128 битами, а не допускает режимы обратной связи."

Это предполагает использование режима ECB (электронная кодовая книга). Это может быть существенным недостатком зашифрованных данных, так как это означает, что идентичные блоки данных простого текста приведут к идентичным блокам вывода шифра.


Редактировать: (как исправление)
Документация по свойству Mode указывает, что по умолчанию в Infact по умолчанию используется CBC (что сбивает с толку IS-режим обратной связи), но его нельзя установить на CFB или OFB (Cipher Feedback / Output Feedback)

...