как начать заново проходить курс, если уже пройдено несколько лекций со сданными тестами? |
Алгоритмы с открытыми ключами
8.2 Атаки на алгоритм RSA
Для расшифрования необходимо по известным ,
и шифртексту
найти такое
, что
.
Попытаемся решить сравнение при конкретных , затем использовать гомоморфность отображения
.
Один из возможных способов следующий: пусть имеется набор пар:
![\{(x_1,y_1),(x_2,y_2),\ldots (x_k,y_k)\}](/sites/default/files/tex_cache/4f31ccd91081575ac8897fc01bb598ce.png)
с условием, что ,
. Если каким-либо образом удалось представить
в виде
с целыми
, то
будет решением сравнения
.
Пример 8.3 В наличии имеется открытый ключ ,
и набор пар соответствующих друг другу исходных и зашифрованных сообщений:
,
,
. Требуется расшифровать шифртекст
.
Представим в виде
. Отсюда легко вычислить исходное сообщение:
.
Заметим, что этот подход не менее труден, чем поиск алгоритма решения сравнения .
Взлом RSA при неудачном выборе параметров криптосистемы
Само по себе использование RSA не обеспечивает безопасности. Дело еще в деталях реализации. Приведем ряд примеров. Для простоты вычислений будем работать с небольшими числами. Цель - показать особенности, не зависящие от размера.
Пример 8.4 Пусть пользователь выбрал ,
,
. Так как
, а числа
и
имеют наименьшее общее кратное 88, то любое обратное к 179 по модулю 88, например 59, будет действовать как
.
Пример 8.5 Число является произведением простого числа Мерсенна
и простого числа Ферма
. Это очень плохой выбор.
Пример 8.6 Число является очень плохим выбором для
из-за того, что два его простых делителя слишком близки к друг другу.
Пусть , тогда имеем:
![N=t^2 - s^2, \qquad t=\frac{p+q}{2},\ s=\frac{p-q}{2}.](/sites/default/files/tex_cache/befec7adaa61c8ed833b6316bac7ce10.png)
Так как мало, то
- целое число, лишь немного большее
, причем
является полным квадратом. Проверяем подряд целые числа
. В нашем примере это
,
,
, причем
. Тогда
. Таким образом, мы с третьей попытки нашли
и
. Количество попыток, необходимых для факторизации
, можно при известных
и
вычислить по следующей формуле:
![k=\sqrt{p\cdot q + \left(\frac{p-q}{2}\right)^2}-\left[\sqrt{p\cdot q}\right],](/sites/default/files/tex_cache/e4d9ee344fad87086f7d6202faa266f1.png)
где - операция округления
до ближайшего целого числа.