Шифрование AES на 16 байт

#c# #encryption #aes

#c# #шифрование #aes

Вопрос:

Я пытаюсь зашифровать файл, используя реализацию, которую я нашел здесь:
http://msdn.microsoft.com/en-us/magazine/cc164055.aspx
Эта реализация шифрует только 16 байт, поэтому мой вопрос таков:
Могу ли я просто использовать это для всего моего файла 16 байт за раз? ослабит ли это шифрование?

Ответ №1:

Вместо этого используйте встроенные функции AES: AesCryptoServiceProvider.

Вот пример того, как использовать его для шифрования файла.

По возможности избегайте написания собственных криптографических процедур — версии библиотеки, вероятно, будут лучше оптимизированы и безопаснее, чем альтернативные.

Ответ №2:

AES — это блочный шифр с размером блока 128 бит; вот почему он шифрует 16 байт за раз.

Блочные шифры могут использоваться в различных режимах. Если вы шифруете каждую группу из 16 байт отдельно и независимо, вы используете шифр в режиме ECB, который является самым слабым режимом, потому что он не скрывает шаблоны в открытом тексте. Было бы лучше зашифровать ваш файл в режиме, который создает различный зашифрованный текст для нескольких вхождений одного и того же открытого текста, например, в режиме CBC, чтобы шаблоны в открытом тексте не преобразовывались в шаблоны в зашифрованном тексте.