#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, чтобы шаблоны в открытом тексте не преобразовывались в шаблоны в зашифрованном тексте.