Каковы различия между этими алгоритмами шифрования? - PullRequest
10 голосов
/ 10 марта 2011

В чем разница между MCRYPT_RIJNDAEL_128, MCRYPT_RIJNDAEL_256, MCRYPT_BLOWFISH и т. Д. Какой из них лучше всего подходит для передачи данных в Интернете?

Ответы [ 5 ]

19 голосов
/ 10 марта 2011

Rijandel - это другое название AES, текущего алгоритма «одного хорошего стандарта». Число 128 или 256 - это длина ключа.

Blowfish - несколько более старый 64-битный блочный шифр (AES - 128-битный блочный шифр).

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

Что касается длины ключа, 128 бит на самом деле вполне достаточно для симметричного шифра. Если, конечно, вы не храните коды ядерного оружия своей страны, в этом случае вы захотите использовать вместо этого 256-битные ключи.

Обратите внимание: если вы хотите разумно использовать 256-битный ключ, вам потребуется пароль длиной около 40 символов. Что еще раз показывает, что криптоалгоритм - не слабое звено в цепочке безопасности, а человек.

Редактировать: если подумать, 50-60 символов, вероятно, является более разумным предположением для необходимой длины пароля для 256-битного ключа. В английском языке значительно меньше 2 бит энтропии на символ. Давайте предположим, что вы используете несколько более случайную последовательность символов из букв и цифр (хотя все равно нужно помнить об этом ...), поэтому, возможно, у нас будет 4-5 битов энтропии на символ (довольно оптимистично!). Для этого потребуется ввести от 51 до 64 символов, поэтому энтропия пароля примерно соответствует ключу.

Теперь вопрос: у скольких из нас есть пароль из 50 символов? : -)

Обновление:
По состоянию на конец 2011 года на Rijndael / AES (Богданов, Ховратович, Рехбергер) была проведена атака с целью восстановления ключа, которая не относится к типу атак «в основном теоретического» или «смешного сокращенного раунда». Атака работает на полном раунде AES и примерно в 4 раза быстрее, чем грубая сила. Формально можно поэтому считать Риджнаэль "сломленным".
Практически атака на сегодняшний день не имеет значения. Даже при самой короткой поддерживаемой длине ключа атака в четыре раза быстрее, чем перебор, требует 2 126 операций, что нецелесообразно даже при масштабной аппаратной реализации. Однако это может измениться в будущем, если атака может быть улучшена.

3 голосов
/ 10 марта 2011

Rijndael и Blowfish считаются безопасными.

MCRYPT_RIJNDAEL_128 против MCRYPT_RIJNDAEL_256:
Единственное отличие - это размер блока.Вы можете использовать с 128-битными, 192-битными или 256-битными ключами.
Большие ключи требуют больше времени для перебора.
256-битная версия для этого более безопасна.
Примечание: 128-битнаяверсия все еще занимает много времени время перебора.

В настоящее время Rijndael является расширенным стандартом шифрования:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

AES обычно быстрее, чем Blowfishпотому что:
- Сам алгоритм более эффективен для процессоров (битовые или байтовые блоки).
- Процессоры Мэнни поддерживают аппаратное ускорение для AES.

Выводы:
- Все три варианта безопасныдостаточно для передачи данных.
- Выбор зависит от того, насколько «секретны» данные.
- Rijndael используется шире и, следовательно, его легче реализовать в некоторых ситуациях.

2 голосов
/ 17 января 2013

Ответ (ы) на этот вопрос о том, что для MCRYPT_RIJNDAEL_128 и MCRYPT_RIJNDAEL_256 «128 или 256 - длина ключа» - это неправильно.Эти цифры относятся к blockize , а не к длине ключа.Однако обе реализации (использующие размер блока 128 или 256 бит) могут принимать ключи размером 128 или 256 бит.

1 голос
/ 10 марта 2011

Это зависит от того, какой ответ вы хотите: Различия в реализации - это просто проблема программирования, в то время как различия в дизайне обычно являются довольно подробными математическими доказательствами.Объяснение сложных конструктивных различий между несколькими алгоритмами шифрования, возможно, выходит за рамки этого сайта.Кроме того, у каждого алгоритма есть недостатки, некоторые известные, некоторые нет.Конкретные недостатки существующих алгоритмов обычно приводят к их выбытию, но могут быть способы обойти их (классический пример: DES имел подмножество ключей, что приводило к легко взламываемому коду. Обходной путь - не использовать эти ключи.)*

0 голосов
/ 03 июля 2012

RSA - это алгоритм асимметричного шифрования, и максимальная длина ключа 2048 для предлагаемого 2030 года AES - это симметричный алгоритм с максимальным размером ключа 256 бит для предлагаемого 2015 года. Алгоритм шифрования Serpent - также симметричный алгоритм с размером ключа 256 и предлагаемым 2015 годом.

...