2009-03-16 3 views
15

C# выглядит как 4 различных симметричных криптоалгоритма: RijndaelManaged, DESCryptoServiceProvider, RC2CryptoServiceProvider и TripleDESCryptoServiceProvider.Разница между симметричными алгоритмами криптографии

Я ищу дополнительную информацию между ними. В основном, каковы различия между каждым из них. MSDN не очень помогает, или я просто устал. ;) Я уверен, что между каждым из них есть про и минусы, как и все, где есть несколько способов сделать что-то.

Благодарим вас за просвещение.
Tony

ответ

23

Это Рейтинг (на 2015 год) на вершине появляется самый сильный алгоритм:

Используйте AES.

Более подробно:

  • DES старый "стандарт шифрования данных" с семидесятых годов. Его размер ключа слишком короткий для правильной защиты (56 эффективных бит, это может быть грубо-принудительным, как было продемонстрировано more than ten years ago). Кроме того, DES использует 64-битные блоки, что приводит к возникновению некоторых потенциальных проблем при шифровании нескольких гигабайт данных с одним и тем же ключом (гигабайт в наши дни не такой уж большой).
  • 3DES - это трюк для повторного использования реализаций DES, путем каскадирования трех экземпляров DES (с различными ключами). Считается, что 3DES защищен до, по крайней мере, «безопасности (что довольно много, и довольно далеко в области« не разрушаемого с сегодняшней технологией »). Но он медленный, особенно в программном обеспечении (DES был разработан для эффективной аппаратной реализации, но он засасывает программное обеспечение, а 3DES всасывает в три раза больше).

  • AES является преемником DES в качестве стандартного симметричного алгоритма шифрования для федеральных организаций США (и в качестве стандарта для почти всех остальных тоже). AES принимает ключи из 128, 192 или 256 бит (128 бит уже очень нерушимы), использует 128-битные блоки (поэтому нет проблем) и эффективен как для программного обеспечения, так и для аппаратного обеспечения. Он был выбран в рамках открытого конкурса с участием сотен криптографов в течение нескольких лет. В принципе, у вас не может быть лучшего.

Итак, если у вас есть сомнения, используйте AES.

Обратите внимание, что блочный шифр представляет собой поле, которое шифрует «блоки» (128-битные фрагменты данных с AES). При шифровании «сообщения», которое может быть длиннее 128 бит, сообщение должно быть разделено на блоки, а фактический способ разделения данных называется mode of operation или «цепочкой». Наивный режим (простой раскол) называется ECB и имеет проблемы. Правильное использование блочного шифра непросто, и это более важно, чем выбор между, например, AES или 3DES.

http://en.wikipedia.org/wiki/EFF_DES_cracker

http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation

1

Я бы придерживался RijndaelManaged или TripleDES, поскольку они более сильные, чем DES.

Главной слабостью DES является его shorter keylength, который может допускать возможные атаки грубой силы. Выполнение шифрования с использованием DES три раза - это возможное средство для усиления вашего конечного результата, а значит, и TripleDES. Я мало знаю о RC2, поэтому я не могу прокомментировать этот метод.

3

Действительно, как указано DES не очень сильный. Triple DES силен (у AFAIK нет никаких подходящих атак против него), но он несколько медленнее.

Rijndael - это то же, что и AES (Advanced Encryption Standard - одобрен NSA, очень сильный), но с большим выбором размера вашего ключа.

К сожалению, я также мало знаю о RC2. Если это не будет значительно быстрее, чем Rijndael, я не увижу много причин не ходить в Rijndael (и даже тогда я хотел бы посмотреть, насколько это было безопасно).

Следующие предположения ... RC2 - это предком нескольких поколений RC6, который был одним из финалистов для выбора шифрования, который будет называться AES. Rijndael был выбран над RC6, поэтому можно предположить, что Rijndael лучше на несколько градусов, чем RC2.

+0

Если вы сравниваете 3DES с Rijndael. Это не медленнее. Мы провели тестовое шифрование прибл. 8000 строк и 3DES составляли около 2 секунд, а не 18 секунд с Rijndael. – fuzz

+0

Вы уверены, что ваш 3DES не обрабатывается аппаратным ускорителем? – DaedalusFall

+0

Это было сделано в приложении WPF. – fuzz

1

Если у вас нет по-настоящему веской причины, не используйте RijndaelManaged. Rijndael - это то, что стало AES, общей заменой DES, поэтому определенно предпочтительнее DES и TripleDES, если вам не нужна совместимость с какой-то старой системой DES. В RC2 нет ничего особенного, но он старше AES, и нет никакой реальной причины использовать его.

1

Rijndael является лучшим.

DES не очень хорошо, довольно легко взломать с достаточной мощностью. Triple DES немного лучше, чем DES (его просто DES повторяется 3 раза).

Если вы заинтересованы, заглянуть в библиотеку Надувной замок криптографической для более C# криптографической благости: http://www.bouncycastle.org/

+0

3DES существенно более безопасен, чем DES-DES находится в рамках сегодняшней вычислительной мощности, 3DES остается за пределами безупречного исполнения. NIST считает, что он защищен от грубой силы до 2030 года. DES - 56 бит, 3DES - 112 бит. – Will

+0

или [168 бит] (http://en.wikipedia.org/wiki/3DES#Keying_options) –

0

Эти алгоритмы представляют собой различные точки на скорости против компромиссных кривой силы.

(слабый/быстрый) RC2 < < DES 3DES < AES/Rijndael (сильный/медленный)

Я не знаком с API, хотя, есть ли дополнительная разница между 'управляемой' и «CryptoServiceProvider 'классы?

+2

-1, AES значительно быстрее, чем DES/3DES. Это была цель конкурса AES для начала ... –

15

Короткий ответ: использование Rijndael.

Что различные варианты:

RC2 является слабым, сломанный шифра, построенный в конце 80-х годов на экспорт, потому что в то время американские компании были ограничены из-экспортера «сильного» шифрования. Он имеет длину ключа 40 бит, что делает грубым принуждение его к сегодняшнему оборудованию тривиально (это, в конце концов, 20 лет спустя).

Это имя обозначает Rivest Cipher No. 2, после того как его создатель Рон Ривест (всемирно известный криптограф, «R» в RSA).

DES был стандартом шифрования данных и был назван сильной криптографией. Однако с длиной ключа 56 бит, теперь это within range of brute-force decryption.

3DES выполняет DES три раза. Просто запуск DES дважды не делает его намного сильнее, на самом деле, но в третий раз. Это эффективная 116-разрядная версия (с 196-битным ключом).

3DES - очень хорошая, сильная энциклопедия по сегодняшнему стандарту.

Итак, RC2, DES и 3DES находятся в наборе шифров, чтобы обеспечить совместимость с бизнес-системами, использующими эти шифры.

Rijndael - это, однако, современный шифр выбора. Это официальная замена DES, называемая Advanced Encryption Standard (AES).

Он поставляется в диапазоне Ключи длиной, но это important к использовать 128-битный. Используйте только другие длины ключей (включая самый длинный, 256-разрядный) по соображениям совместимости.

+0

Почему мы должны использовать только 128 бит, если только по соображениям совместимости? – Tony

+2

«Важная» ссылка рассказывает об атаках на более длинные 256-битные. – Will

+0

показывая, что, хотя я вижу, я все еще слеп. :) Благодаря. – Tony

 Смежные вопросы

  • Нет связанных вопросов^_^