В чем разница между MCRYPT_RIJNDAEL_128
, MCRYPT_RIJNDAEL_256
, MCRYPT_BLOWFISH
и т.д. Какой из них лучше всего подходит для передачи данных в Интернете?
Каковы различия между этими алгоритмами шифрования?
Ответ 1
Rijandel - другое название для AES, нынешнего алгоритма "один хороший стандарт". Число 128 или 256 - это длина ключа.
Blowfish - это более старый 64-разрядный блочный шифр (AES - это 128-битный блочный шифр).
Вы не можете сказать, что любой из них "лучше" или "хуже", потому что ни один из них действительно не был сломан, но в целом AES должен быть превосходным, и большинство реализаций быстрее. Кроме того, самые современные процессоры поддерживают AES в оборудовании, что сделает его еще быстрее... поэтому нет оснований не использовать AES.
Что касается длины ключа, то 128 бит на самом деле достаточно для симметричного шифра. Если вы, конечно, не являетесь хранителем кодов ядерного оружия вашей страны, в этом случае вам понадобится использовать 256-битные ключи.
Обратите внимание, что если вы хотите использовать 256-битный ключ разумным образом, вам понадобится пароль длиной около 40 символов. Что еще раз показывает, что криптоалгоритм не является слабым звеном в цепочке безопасности, но человек имеет.
Редактирование: со второй мысль, 50-60 символов, вероятно, более разумное предположение для требуемой длины пароля на 256-битный ключ. Английский язык имеет значительно меньше 2 бит энтропии на символ. Предположим, вы используете несколько более случайную последовательность символов букв и цифр (все-таки нужно помнить об этом, хотя...), так что, возможно, у нас будет 4-5 бит энтропии на каждого персонажа (довольно оптимистично!). Для этого вам потребуется ввести от 51 до 64 символов, поэтому энтропия пароля будет примерно соответствовать ключевым словам.
Теперь встает вопрос: сколько из нас имеет пароль на 50 символов?: -)
Update:
По состоянию на конец 2011 года в Рийндале/АЭС (Богданов, Ховратович, Рехбергер) существует атака с ключевым восстановлением, которая не является одним из видов нападений "в основном теоретических" или "веселых уменьшенных раундов". Атака работает на полном круге AES и примерно в 4 раза быстрее, чем грубая сила. Формально, поэтому можно считать Rijndael "сломанным".
Практически, атака на сегодняшний день не имеет значения. Даже с самой короткой поддерживаемой длиной ключа атака в четыре раза быстрее, чем грубая сила требует 2 126 операций, что нецелесообразно даже при массивной аппаратной реализации. Однако это может измениться в будущем, если атака может быть улучшена.
Ответ 2
Оба Rijndael и Blowfish считаются безопасными.
MCRYPT_RIJNDAEL_128 против MCRYPT_RIJNDAEL_256:
Единственное различие - размер блока. Вы можете использовать либо 128-битные, 192-битные, либо 256-битные ключи.
Большие клавиши занимают больше времени до грубой силы.
256-битная версия для этого более безопасна.
Примечание. 128-битная версия по-прежнему занимает много времени для перебора.
В настоящее время Rijndael - это Advanced Encryption Standard:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
AES обычно быстрее, чем Blowfish, потому что:
- Сам алгоритм более эффективен для процессоров (бит против блоков байтов).
- Процессоры Manny поддерживают аппаратное ускорение для AES.
Выводы:
- Все три варианта достаточно надежны для передачи данных.
- Выбор зависит от того, насколько "секретны" данные.
- Rijndael шире используется и поэтому проще реализовать некоторые ситуации.
Ответ 3
Ответ на этот вопрос, в котором говорится, что в отношении MCRYPT_RIJNDAEL_128 и MCRYPT_RIJNDAEL_256 "Число 128 или 256 - длина ключа" - это неверно. Эти числа относятся к блокам, а не к длине ключа. Однако обе реализации (с использованием размера блока 128 или 256 бит) могут принимать ключи из 128 или 256 бит.
Ответ 4
Это зависит от типа ответа, который вы хотите: Различия в реализации - это просто проблема программирования, в то время как различия в дизайне обычно являются довольно подробными математическими доказательствами. Объяснение сложных дизайнерских различий между несколькими алгоритмами шифрования, возможно, выходит за рамки этого сайта. Кроме того, у каждого алгоритма есть слабые стороны, некоторые из них известны, а некоторые нет. Конкретные недостатки в существующих алгоритмах обычно приводят к их отставке, но могут быть способы обойти их (классический пример: DES имел подмножество ключей, в результате чего был легко взломанный код. Обходной путь состоял в том, чтобы не использовать эти ключи.).
Ответ 5
RSA является алгоритмом асимметричного шифрования и максимальной длиной ключа 2048 для предлагаемого 2030 года. AES - это симметричный алгоритм с максимальным размером ключа 256 бит для предлагаемого 2015 года. Алгоритм шифрования Змея также является симметричным алгоритмом с размером ключа 256 и предлагаемым 2015 годом.