Взлом криптоалгоритмов: мифы и реалии
 
08.04.2003
Антон Тульчинский


 
cтр. 1
стр. 2 >>

В последнее время мы часто слышим о реальном применении криптографии в компьютерных системах и не только (даже стандарт сотовой связи GSM предусматривает защиту разговора абонентов при помощи методов симметричной криптографии). Криптография здорово продвинулась за последнее столетие. Придумано много алгоритмов: RSA, DES, алгоритмы на основе схемы Эль Гамаля, эллиптических кривых… Но!

Если есть замок, но нет ключа, дверь можно взломать. Шифр также можно попробовать взломать. Кроме перебора всех возможных вариантов существуют другие способы. Взлом есть взлом. Вернее, взлом всегда «есть» (присутствует). От него не уйти. Да и уходить не надо — зачастую он является отправной точкой прогресса в науке и технике. Взлом полезно анализировать хотя бы для того, чтобы понять, насколько сильна защита. Кроме того, знание истории атак и дыр, а также понимание причин, по которым они имели место, является одним из необходимых условий разработки защищенных систем.

Последнее десятилетие характеризуется резким увеличением числа открытых работ по всем вопросам криптологии, а криптоанализ становится одной из наиболее активно развивающихся областей исследований. Многие криптосистемы, стойкость которых не вызывала особых сомнений, оказались успешно раскрытыми. При этом разработан большой арсенал математических методов, представляющих прямой интерес для криптоаналитика.

Взлом криптографических алгоритмов: анализ

В принципе, любой алгоритм, основанный на ключе, может быть вскрыт «в лоб» — перебором всех ключей. Понятно, что требуемая вычислительная мощность в этом случае возрастает экспоненциально при увеличении длины ключа. Можно ли решить задачу такого рода на домашнем ПК? Утверждается, что если длина ключа — 32 бита, то можно (потребуется около 109 шагов), а если немного больше — потребуются распределенные вычисления.

На сегодняшний день работники крупной компании с большими вычислительными мощностями и/или пользователи глобальной сети совместными усилиями могут методом перебора вскрыть ключ максимальной длиной 64–80 бит. По оценкам, взлом шифра со 128-битным ключом займет не менее 1020 лет. Впрочем, оценки такого рода весьма поверхностны. Так, вскрытие 64-битного ключа (симметричного алгоритма RC5-64) потребовало сравнительно меньших временных затрат, чем предполагалось. Распределенное на несколько сотен тысяч машин сложное математическое задание позволило «взломать» ключ за пять лет против предполагавшихся ста лет.

А как обстоят с этим дела у нас? Вспомним удачный отечественный ГОСТ 28147-89 — это симметричная блочная криптосистема, немного напоминающая известный алгоритм DES (только по сходной структуре итераций, шаг шифрования у него совсем другой). Ключ у него «всего» 256 бит. Учтите, что это 256 случайных бит. Так что для прямой атаки на ключ придется перебрать все 2256 ключей (это куда «круче», чем в случае RSA-1024), что физически не реализуемо: при минимальном энергопотреблении взламывающего вычислителя (оно определяется исходя из квантовой теории) оказывается, что для обеспечения энергией такого вычислителя необходимо рвануть сверхновую.

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

Здесь уместно отметить один неудачный отечественный опыт, в результате которого был придуман более простой алгоритм вскрытия шифра, чем ожидалось. В 1994 году был принят первый отечественный стандарт в области электронной цифровой подписи (ЭЦП) — ГОСТ Р34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма». Он определяет процедуры работы с ЭЦП на основе схемы Эль Гамаля. Невозможность подделки подписи основана на сложности решения задачи дискретного логарифмирования в поле из р элементов. Однако математика не стоит на месте, и недавно был изобретен так называемый метод решета числового поля. С его помощью можно «взломать» ЭЦП, сформированную по схеме Эль Гамаля, по крайней мере в случае 512-битного модуля р.

Думаю, теперь вы понимаете, почему некоторые разработчики предпочитают использовать, казалось бы, уходящие в прошлое методы симметричного шифрования. Они боятся, что сделают ставку на некоторый надежный, по их мнению, асимметричный алгоритм, а математики через некоторое время придумают новый метод и вскроют его (алгоритм). С этой точки зрения симметричные алгоритмы, вероятно, более прогнозируемы (но отнюдь не более надежны). Надо ли говорить, что классические методы шифрования и изучены гораздо больше, а их надежность обоснована неизмеримо лучше, чем надежность методов «современной криптографии».

Таблица 1. Время, необходимое в настоящий момент самым мощным суперкомпьютерам для полного перебора ключей.

Раз уж я упомянул отечественные стандарты в области ЭЦП, отмечу еще, что, кроме печально известного ГОСТ Р34.10-94, существует (и юридически действует) ГОСТ Р34.11-01, в котором использован математический аппарат эллиптических кривых (усовершенствование схемы Эль Гамаля). Длина его ключа — 512 бит, но считается, что он значительно превосходит по стойкости RSA-1024, так как задача его перебора гораздо сложнее.
 
Важно заметить, что степень надежности криптографической системы определяется ее слабейшим звеном. Нельзя упускать из вида ни одного аспекта разработки системы — от выбора алгоритма до политики использования и распространения ключей.

Средства и способы взлома шифров
 
Наверное, никого не нужно убеждать в том, что взлом криптографических алгоритмов дело нетривиальное. Поэтому атаки могут быть результативны только в случае использования каких-то специальных средств или способов.

Суперкомпьютеры

Чтобы понять, насколько современные суперкомпьютеры мощны для решения задач криптоанализа, часто проводят такой эксперимент. Допустим, рассматриваемые алгоритмы шифрования идеальны, то есть оптимальным методом их взлома будет прямой перебор всех возможных ключей. Очевидно, в этом случае стойкость криптосистем будет определяться длиной ключа. Предположим, что генерация ключа компьютером происходит за один такт его работы, а операция дешифрования — мгновенно. Определив отношение количества ключей к быстродействию компьютера, мы получим нижнюю оценку сложности дешифрования сообщения для идеального алгоритма. Результаты этих расчетов приведены в табл. 1 (полный анализ вычислительных мощностей суперкомпьютеров: www.ssl.stu.neva.ru/psw/crypto/ Pudov21.html). Средним временем расшифровки сообщения следует считать половину приведенного в таблице времени (в скобках).

Из таблицы видно, что даже самые мощные суперкомпьютеры затратят на взлом 70-битного ключа больше десяти лет (при условии идеальности алгоритма и его реализации в смысле наличия «дыр»). И что же получается, 70-битный ключ на 100% защитит всех от взлома? Нет, конечно. Во-первых, производительность суперкомпьютеров неуклонно растет (тут еще можно строить какие-то прогнозы и предусмотреть защиту), а во-вторых, существуют другие способы и средства атак на криптосистемы (здесь с прогнозами сложнее).

Распределенные вычисления

В последнее время, в связи с развитием сетей (в частности, Интернета), стало возможно эффективно использовать метод «грубой силы» (перебора) путем распараллеливания операций. Реализуется такой подход, как правило, следующим образом. Где-то в Интернете устанавливается сервер, с которого любой желающий может загрузить программу, выполняющую расшифрование тестового сообщения путем перебора ключей. Программа обычно поставляется как в виде исходных текстов, так и скомпилированной для наиболее распространенных операционных систем. После запуска программа устанавливает соединение с сервером, получает от него набор ключей для перебора и после окончания работы возвращает результат.

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

Метод «распределенного взлома» зачастую используют некоммерческие организации для выяснения криптостойкости алгоритмов (см., например, www. distributed.net). Описанный способ, опирающийся исключительно на энтузиазм участников, уже дал потрясающие результаты. Давайте, к примеру, рассмотрим алгоритм RSA.

В настоящее время RSA активно реализуется как в виде самостоятельных криптографических продуктов, так и в качестве встроенных средств в популярных приложениях. Нам же он будет интересен с точки зрения возможности его вскрытия. Некто Шроппель (Rich Schroeppel) исследовал трудоемкость разложения на множители произведения простых чисел различной длины (на этом, собственно, и основан алгоритм RSA). И вот что получилось (см. табл. 2).

Если верить Шроппелю, ключ длиной 800 бит (при симметричной реализации надо полагать) практически не раскрываем на существующих вычислительных мощностях. И в ближайшем будущем вскрытие такого ключа не прогнозируется.

Что касается традиционного асимметричного алгоритма RSA, то в последние десять лет то и дело появляются слухи о его «вскрытии». Вспомним, что в 2001 году филиппинская газета «Manila Bulletin» сообщила: «Взломан алгоритм шифрования RSA. Филиппинский математик-энтузиаст Лео де Велез разработал новый метод декодирования алгоритма шифрования RSA, основанный всего лишь на трех простых формулах».

 
cтр. 1
стр. 2 >>

<<Инструкция по эксплуатации-2
Все материалы номера
"Политика кочующих пирамид" Два взгляда — две версии. (экономические размышления) >>