Насколько безопасен 64-битный RC2? - PullRequest
7 голосов
/ 08 сентября 2010

При шифровании можно считать два симметричных алгоритма равными с точки зрения безопасности, если их размеры ключей эквивалентны?(т.е. обеспечивает ли 64-битный алгоритм RC2 такую ​​же точную защиту, как и 64-битный алгоритм AES?)

Насколько безопасным (или небезопасным) было бы использование 64-битного алгоритма RC2?

Как долго можно ожидать, чтобы атака методом "грубой силы" взломала этот тип шифрования?

Какие данные можно было бы обезопасить с помощью этого алгоритма?(например, я предполагаю, что информация о кредитной карте не может быть зашифрована с помощью этого алгоритма, поскольку алгоритм недостаточно безопасен).

Ответы [ 2 ]

12 голосов
/ 08 сентября 2010

Как правило, эквивалентные размеры ключей не подразумевают эквивалентную защиту по ряду причин:

Во-первых, это просто тот случай, когда некоторые алгоритмы имеют известные атаки, а другие нет. Размер ключа - это только верхняя граница от усилия, которое потребуется, чтобы взломать шифр; в худшем случае вы всегда можете попробовать все возможные ключи и добиться успеха (в среднем) после проверки половины пространства ключей. Это не значит, что это лучшая атака. Вот пример: AES со 128-битными ключами использует 10 раундов. Если бы вы использовали AES со 128-битным ключом, но только с одним раундом, он был бы тривиально разрушаем, даже если ключ того же размера. Для многих алгоритмов существуют известные атаки, которые могут значительно нарушить алгоритм при поиске во всем пространстве ключей.

В случае блочных шифров есть и другие соображения. Это потому, что блочные шифры обрабатывают данные кусками битов. Существуют различные комбинаторные свойства, которые вступают в действие после того, как вы начали шифровать большие объемы данных. Например, используя обычный режим CBC, вы начинаете сталкиваться с проблемами после шифрования около 2 ^ (n / 2) блоков (эта проблема присуща CBC). Для 64-битного шифра, такого как RC2, это означает, что 2 ^ 32 64-битных блока или 32 ГиБ, что довольно много, легко представить (например, вы шифруете образ диска с ним). В то время как для 128-битного шифра, такого как AES, проблема начинает возникать только после примерно 2 ^ 64 128-битных блоков, или примерно 295 экзабайт. В подобном сценарии AES с 64-битным ключом будет на самом деле намного более безопасным, чем RC2 с 64-битным ключом.

Здесь мы переходим к эпистемологической части ответа: даже если нет известных атак, это не означает, что никакие атаки невозможны. RC2 довольно старый и редко используется; даже когда это был довольно современный шифр, его было гораздо меньше, чем, скажем, DES. Вполне вероятно, что за последние 5 лет никто не удосужился вернуться назад и посмотреть, как взломать RC2 с использованием новейших методов атаки, просто потому, что в относительно академической модели «опубликовать или погибнуть», в которой работают современные публичные криптографические исследования, существует меньше выгоды, которую нужно иметь; гораздо лучше, если вы ищете работу (или хотите повысить свою репутацию, чтобы получить больше консультационной работы), чтобы опубликовать даже очень незначительное улучшение в атаке на AES, чем если бы вы полностью уничтожили RC2, потому что никто больше его не использует.

И с 64-битным ключом вы сразу же ограничили себя этой верхней границей, и 2 ^ 64 усилия действительно довольно низки; возможно, в пределах досягаемости не только для спецслужб, но даже для корпораций разумного размера (или для скотоводов).

Наконец, я укажу, что RC2 был разработан, чтобы быть быстрым на процессорах эпохи 286/386. На современных машинах он существенно (примерно в 4-6 раз) медленнее, чем AES или аналогичные шифры, разработанные за последние 10 лет.

Я действительно не вижу никакой пользы от использования RC2 для чего-либо, единственное, что я могу себе представить, это будет иметь смысл для совместимости с какой-то древней (в компьютерное время) системой. Используйте AES (или одного из 4 других финалистов AES, если необходимо).

2 голосов
/ 08 сентября 2010

Вот мое личное объяснение выражения «атака на n из p раундов», которое вы можете найти на странице http://en.wikipedia.org/wiki/Block_cipher_security_summary.Но будьте осторожны: я действительно публикую это как ответ, чтобы люди могли сказать мне, если я ошибаюсь.Никто никогда не объяснял мне это, и я не специалист, это только единственное объяснение, которое имеет смысл, которое я мог бы себе представить.

Криптографы считают любой алгоритм, который требует операций с использованием только грубой силы, какуспешная атака.Когда говорят, что шифр имеет атаку на «n из p раундов», я предполагаю, что это означает, что если бы шифр был определен как n раундов базовой функции, на самом деле он определен как p раундов, то была бы атакадля этого.Возможно, алгоритм на самом деле продолжает работать больше чем n раундов, но точка отсечения, где он становится дороже, чем грубая сила, равна n.Другими словами, это очень тонкое различие для алгоритма, который не нарушен, и он говорит нам, насколько мы близки к абстрактному пониманию математической функции, которую он реализует.Это объясняет, казалось бы, произвольные числа, которые встречаются как значения «n», когда используется это выражение.

Повторюсь, шифр, который атакует n из p раундов, - это шифр, который не сломан.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...