КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методы криптоанализа ассиметричных криптосистем
4.1. Методы, основанные на алгоритмах разложения на множители
В этом пункте рассматриваются методы «взлома» основанные на решении задачи факторизации (IFP). Очевидно, что зная разложение (1.9) можно решить задачу RSA путем вычисления обратной функции. Если это разложение неизвестно, то требуется определить такой алгоритм, который позволил бы решить задачу RSA за полиномиальное время, т.е.
где Самые эффективные алгоритмы факторизации можно разделить на две группы [3,7,8]: 1. Алгоритмы, время выполнения которых зависит главным образом от размера 2. Алгоритмы, время выполнения которых зависит главным образом от размера множителя Кроме того, алгоритмы факторизации можно разделить на детерминированные и недетерминированные, условные и безусловные. Условными являются те алгоритмы, в которых на раскладываемое число Рассмотрим некоторые из перечисленных методов. Алгоритм факторизации Ферма. Для того, чтобы было сложнее факторизовать 1. Вводится 2. Если 3. 4. Алгоритм Ферма эффективен для небольших
Следовательно, для обеспечения стойкости RSA необходимо, чтобы разность
Пусть 1. Шаг инициализации. Случайно выбирается 2. Шаг возведения в степень. Вычисляется 3. Шаг вычисления НОД. Вычисляется 4. Шаг проверки условия Алгоритм эффективен только при малом Пример. Используем
Выполняется условие
4.2. Методы, основанные на алгоритмах вычисления дискретного логарифма
Рассматриваемые в этом пункте методы основаны на решении задачи дискретного логарифмирования (DPL). Если существует возможность решить задачу DPL за полиномиальное время, то тогда за полиномиальное время можно «взломать» и криптосистему, основанную на задаче DPL, например криптосистему Эль Гамаля:
Существуют три принципиально различных класса алгоритмов, которые используются для вычисления дискретного логарифма [3,6,8]. 1. Алгоритмы, которые работают с произвольными группами. Они не используют никаких специальных свойств групп. К этому классу относятся: алгоритм больших и малых шагов (алгоритм Шенкса), 2. Алгоритмы, работающие с конечными группами, порядок которых не имеет больших простых делителей; точнее сказать, с группами, порядок которых является гладким числом. К этому классу принадлежит хорошо известный алгоритм Сильвера-Полига-Хеллмана, основанный на теореме об остатках. 3. Алгоритмы, которые используют метод представления элементов группы в виде произведения элементов, принадлежащих множеству небольшой мощности. Типичным представителем этого класса являются алгоритмы исчисления порядка Адлемана и NFS алгоритм Говарда. Рассмотрим алгоритмы каждого класса. Метод малых и больших шагов. Этот метод впервые был описан Д. Шенксом в 1973 году. Метод является одним из первых, который показал, что решить задачу DPL можно быстрее, чем методом полного перебора. Метод Шенкса широко известен и под другим названием – «шаг младенца, шаг великана». Существо метода заключается в следующем. Выбирается два целых числа
Из равенства
определяются числа
Докажем, что (4.2) справедливо. Действительно,
В [6] приведено доказательство существования чисел Метод больших и малых шагов назван так по следующей причине. В (4.1) первый числовой ряд увеличивается медленнее второго, так как степень числа Пример. Требуется найти решение уравнения
Таким образом, из равенства Алгоритм исчисления порядка. Алгоритм исчисления порядка известен с начала двадцатого века, однако только в 1979 году Адлеман показал, что его можно использовать для решения задачи DPL. Для описания алгоритма введем некоторые понятия [6]. Определение 4.1. Число называется гладким, если оно не имеет больших простых делителей. Определение 4.2. Число называется Алгоритм исчисления порядка состоит в следующем. Формируется множество базовых множителей
состоящее из первых Задавая последовательно значения
Для каждого Логарифмируем (4.3)
для каждого Решая систему уравнений все вычисления проводят по Случайным образом выбирается число
Логарифмируя (4.5), получаем конечный результат
Пример. Требуется решить уравнение Пусть Проводим поиск
Значение Прологарифмировав полученные уравнения и, с учетом введенных обозначений, имеем систему уравнений:
Исключая линейно зависимое уравнение и решая систему получаем
Таким образом, в результате вычислений определены логарифмы чисел
В последнем равенстве переходим к логарифмам и получаем конечный результат
Алгоритм Сильвера-Полига-Хеллмана. В 1978 году Полиг и Хеллман предложили алгоритм для решения задачи DPL. Суть алгоритма состоит в следующем [8]. Число
где Затем составляется таблица
Аналогично алгоритму больших и малых шагов определяются отдельные дискретные логарифмы
Для нахождения
Для нахождения
то
Для нахождения Таким же образом итеративно вычисляются Пример. Требуется решить уравнение Разложим Вычисляем
Вычисляем
Вычисляем
Таким образом, получаем таблицу (см. табл. 4.1).
Таблица 4.1
Составлять таблицу имеет смысл, только если все Затем определяем дискретные логарифмы
Здесь Для нахождения
следовательно, Для нахождения
следовательно, Тогда Аналогичным образом вычисляются дискретные логарифмы В результате получаем систему уравнений
Решение системы уравнений находиться с помощью китайской теоремы об остатках. Системе удовлетворяет единственное решение В настоящее время самым быстрым и эффективным алгоритмом решения задачи DPL является алгоритм NFS (Number Field Sieve). Именно этот алгоритм диктует условия выбора длин модулей криптосистем, стойкость которых основана на задаче DPL. В табл. 4.2 приведены результаты сравнительного анализа трудоемкости решения задачи DPL.
Таблица 4.2. Трудоемкость решения задачи DPL.
Контрольные вопросы: 1. Назовите группы эффективных алгоритмов факторизации. 2. Опишите алгоритм Ферма. Какие требования он предъявляет к стойкости ассиметричных криптосистем? 3. Опишите 4. Назовите классы алгоритмов, которые используются для вычисления дискретного логарифма. 5. В чем суть метода больших и малых шагов? 6. Опишите алгоритм исчисления порядка. Дайте определение гладкости чисел. 7. Опишите алгоритм Сильвера-Полига-Хеллмана. Какие требования он предъявляет к стойкости ассиметричных криптосистем? 8. Проведите сравнительный анализ методов криптоанализа ассиметричных криптосистем.
Дата добавления: 2014-12-26; Просмотров: 2118; Нарушение авторских прав?; Мы поможем в написании вашей работы! |