Алгоритм. Является ли RijndaelManaged Class в С# эквивалентным AES-шифрованию? - программирование
Подтвердить что ты не робот

Алгоритм. Является ли RijndaelManaged Class в С# эквивалентным AES-шифрованию?

Я задаю этот вопрос, чтобы убедиться, что класс RijndaelManaged в С# эквивалентен шифрованию AES. Из того, что я читал, RijndaelManaged был алгоритмом выбора для реализации AES-кодирования. Может кто-нибудь подтвердить это, пожалуйста?

Безопасен ли RijndaelManaged алгоритм для веб-проекта? Спасибо:)

4b9b3361

Ответ 1

Алгоритм AES был выбран в конкурсе, проводимом NIST между 1997 и 2000 годами. Победителем был алгоритм под названием Rijndael.

NIST указал, что алгоритм AES должен иметь 128-битный размер блока. Поскольку Rijndael поддерживает размеры блоков 128, 160, 192, 224 и 256 бит, конечная спецификация AES отличается от исходной спецификации Rijndael в этом отношении. Другими словами, "AES" и "Rijndael" являются одним и тем же алгоритмом, за исключением того, что "AES" ограничено размером блока 128 бит.

Размер блока не имеет ничего общего с размером ключа. Этот алгоритм поддерживает 128, 192 и 256-битные ключи. Более длинные ключи не обязательно "сильнее", потому что AES имеет определенные теоретические недостатки. В любом случае, 128-битные ключи достаточно долго в обозримом будущем.

Как сказал EkoostikMartin, AES сегодня не поддается разрушению. Но криптография сложна, и даже профессионалы не понимают это правильно каждый раз. Использование исходных криптографических примитивов, не зная точно, что вы делаете, скорее всего, приведет к чему-то плохому. Другими словами, шифр очень редко является самым слабым звеном в "цепочке безопасности".

Ответ 2

Если вы хотите использовать AES, просто используйте класс AesManaged - http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged%28v=vs.100%29.aspx

Класс RijndaelManaged, на который вы ссылаетесь, точно не вписывается в спецификации AES, в основном, поскольку он дает параметры в отношении размеров блоков. AesManaged использует размер 128-битного блока, как указано.

Насколько "безопасно" для веб-проекта, хорошо его очень сильный метод шифрования (он никогда не был сломан, насколько я знаю), но, как и все, он должен использоваться правильно.

Ответ 3

Есть несколько отличий, в частности, возможность изменять размер блока, а также размер ключа. Насколько мне известно, AES использует фиксированный размер блока 128)
Если вы используете CFB в Rijndael, размер блока будет соответствовать размеру обратной связи, что означает, что вы не можете гарантировать размер блока 128.

Чтобы обеспечить эквивалентность, вам придется использовать размер блока 128 и либо избегать CFB, либо обеспечить, чтобы размер обратной связи также составлял 128.

Еще одно замечание: если вы используете статический IV с CFB, тогда ваш шифр будет детерминированным. Избегайте этого, поскольку префикс IV может быть легко идентифицирован и использован для дешифрования ваших данных.

(извините, что поднять старый поток, но эта информация здесь не была)