как начать заново проходить курс, если уже пройдено несколько лекций со сданными тестами? |
Алгоритмы с открытыми ключами
8.2 Атаки на алгоритм RSA
Для расшифрования необходимо по известным , и шифртексту найти такое , что .
Попытаемся решить сравнение при конкретных , затем использовать гомоморфность отображения .
Один из возможных способов следующий: пусть имеется набор пар:
с условием, что , . Если каким-либо образом удалось представить в виде с целыми , то будет решением сравнения .
Пример 8.3 В наличии имеется открытый ключ , и набор пар соответствующих друг другу исходных и зашифрованных сообщений: , , . Требуется расшифровать шифртекст .
Представим в виде . Отсюда легко вычислить исходное сообщение: .
Заметим, что этот подход не менее труден, чем поиск алгоритма решения сравнения .
Взлом RSA при неудачном выборе параметров криптосистемы
Само по себе использование RSA не обеспечивает безопасности. Дело еще в деталях реализации. Приведем ряд примеров. Для простоты вычислений будем работать с небольшими числами. Цель - показать особенности, не зависящие от размера.
Пример 8.4 Пусть пользователь выбрал , , . Так как , а числа и имеют наименьшее общее кратное 88, то любое обратное к 179 по модулю 88, например 59, будет действовать как .
Пример 8.5 Число является произведением простого числа Мерсенна и простого числа Ферма . Это очень плохой выбор.
Пример 8.6 Число является очень плохим выбором для из-за того, что два его простых делителя слишком близки к друг другу.
Пусть , тогда имеем:
Так как мало, то - целое число, лишь немного большее , причем является полным квадратом. Проверяем подряд целые числа . В нашем примере это , , , причем . Тогда . Таким образом, мы с третьей попытки нашли и . Количество попыток, необходимых для факторизации , можно при известных и вычислить по следующей формуле:
где - операция округления до ближайшего целого числа.