Interested Article - Атака Винера

Атака Винера , названная в честь криптолога Майкла Дж. Винера, является типом криптографической атаки против алгоритма RSA . Атака использует метод непрерывной дроби , чтобы взломать систему при малом значении закрытой экспоненты .

Кратко о RSA

Прежде чем начать описание того, как работает атака Винера, стоит ввести некоторые понятия, которые используются в RSA . Более подробную информацию см. в основной статье о RSA .

Для шифрования сообщений по схеме RSA используется открытый ключ - пара чисел , для расшифрования - закрытый ключ . Числа называются открытой и закрытой экспонентой соответственно, число - модулем. Mодуль , где и - два простых числа . Связь между закрытой, открытой экспонентой и модулем задаётся, как , где функция Эйлера .

Если по открытому ключу за короткое время можно восстановить , то ключ уязвим: получив информацию о закрытом ключе , у злоумышленников появляется возможность расшифровать сообщение.

История алгоритма

Криптосистема RSA был изобретена Рональдом Ривестом , Ади Шамир и Леонардом Адлеманом и впервые опубликован в 1977 году . С момента публикации статьи криптосистема RSA была исследована на уязвимости многими исследователями. Большая часть таких атак используют потенциально опасные реализации алгоритма и пользуются явными условиями на какой-либо недочёт в алгоритме: общий модуль, малый открытый ключ, малый закрытый ключ . Так алгоритм атаки крипотографической атаки на алгоритм RSA с малым закрытым ключом был предложен криптологом Майклом Дж. Винером в статье, впервые опубликованной в 1990 году. Теорема Винера утверждает о том, что если выполняется условие малости ключа, то закрытый ключ может быть найден за линейное время .

Малый закрытый ключ

В криптосистеме RSA Боб может использовать меньшее значение , а не большое случайное число, чтобы улучшить производительность расшифровки RSA . Однако атака Винера показывает, что выбор небольшого значения для приведет к небезопасному шифрованию, в котором злоумышленник может восстановить всю секретную информацию, то есть взломать систему RSA . Этот взлом основан на теореме Винера, которая справедлива при малых значениях . Винер доказал, что злоумышленник может эффективно найти , когда .

Винер также представил некоторые контрмеры против его атаки. Два метода описаны ниже:

1. Выбор большого открытого ключа :

Заменить на , где для некоторого большого . Когда достаточно велик, то есть , то атака Винера неприменима независимо от того, насколько мал .

2. Используя китайскую теорему об остатках :

Выбрать так, чтобы и , и были малы, но сам нет, то быстрое дешифрование сообщения может быть выполнено следующим образом:
  1. Сначала вычисляется и
  2. Используя китайскую теорему об остатках , чтобы вычислить уникальное значение , которое удовлетворяет и . Результат удовлетворяет как и требовалось. Дело в том, что атака Винера здесь неприменима, потому что значение может быть большим.

Как работает атака Винера

Поскольку

,

то существует целое такое, что:

.

Стоит определить и подставить в предыдущее уравнение :

.

Если обозначить и , то подстановка в предыдущее уравнение даст:

.

Разделив обе части уравнения на , выходит что:

, где .

В итоге, немного меньше, чем , причём первая дробь состоит целиком из публичной информации . Тем не менее, метод проверки такого предположения всё ещё необходим. Принимая во внимание, что последнее уравнение может быть записано как:

.

Используя простые алгебраические операции и тождества , можно установить точность такого предположения.

Теорема Винера

Пусть , где . Пусть .

Имея , где , взломщик может восстановить .

Доказательство теоремы Винера

Доказательство построено на приближениях с использованием непрерывных дробей .

Поскольку , то существует при котором . Следовательно:

.

Значит, - это приближение . Несмотря на то что взломщик не знает , он может использовать чтобы его приблизить. Действительно, поскольку:

and , мы имеем: и

Используя вместо , получим:

Теперь, , значит . Поскольку , значит , и в итоге получается:

где

Так как и , следовательно:

Поскольку , то , и исходя из этого , значит:

Из (1) и (2), можно заключить, что:

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

Следовательно, алгоритм в итоге найдёт такое .

Описание алгоритма

Рассматривается открытый RSA ключ , по которому необходимо определить закрытую экспоненту . Если известно, что , то это возможно сделать по следующему алгоритму :

1. Разложить дробь в непрерывную дробь .
2. Для непрерывной дроби найти множество всех возможных подходящих дробей .
3. Исследовать подходящую дробь :
3.1. Определить возможное значение , вычислив .
3.2. Решив уравнение , получить пару корней .
4. Если для пары корней выполняется равенство , то закрытая экспонента найдена .
Если условие не выполняется или не удалось найти пару корней , то необходимо исследовать следующую подходящую дробь , вернувшись к шагу 3.

Пример работы алгоритма

Два данных примера наглядно демонстрируют нахождение закрытой экспоненты , если известен открытый ключ RSA .

Для открытого ключа RSA :

Таблица: нахождение закрытой экспоненты d
e / N = [0, 1, 7, 3, 31, 5, 2, 12, 1, 28, 13, 2, 1, 2, 3]
n k n / d n phi n p n q n p n q n
0 0/1 - - - -
1 1/1 1073780832 - - -
2 7/8 1227178094 - - -
3 22/25 1220205492 30763 39667 1220275921

Получается, что . В этом примере можно заметить, что условие малости выполняется .

Для открытого ключа RSA :

Таблица: нахождение закрытой экспоненты d
e / N = [0, 1, 1, 1, 2, 1, 340, 2, 1, 1, 3, 2, 3, 1, 21, 188]
n k n / d n f n p n q n p n q n
0 0/1 - - - -
1 1/1 1779399042 - - -
2 1/2 3558798085 - - -
3 2/3 2669098564 - - -
4 5/8 2847038468 - - -
5 7/11 2796198496 47129 59333 2796304957

Получается, что . В этом примере так же можно заметить, что условие малости выполняется .

Сложность алгоритма

Сложность алгоритма определяется количеством подходящих дробей для непрерывной дроби числа , что есть величина порядка . То есть число восстанавливается за линейное время от длины ключа .

Ссылки

  1. .
  2. , Introduction, p. 1.
  3. .
  4. .
  5. , Combatting the Continued Fraction Attack on RSA., p. 557.
  6. .
  7. .
  8. .
  9. , Об уязвимости системы RSA. Малый секретный ключ., pp. 283-284.
  10. .
  11. , Об уязвимости системы RSA. Малый секретный ключ., p. 284: «Количество же этих дробей есть величина порядка O(ln(n)), то есть число d восстанавливается за линейное время».

Литература

  • Rivest R., Shamir A., Adleman L. (англ.) // Communications of the ACM. — 1978. — P. 120–126 .
  • Wiener M. (англ.) // IEEE Transactions on Information Theory. — 1990. — P. 553–558 .
  • Coppersmith D., Franklin M., Patarin J., Reiter M. (англ.) // Proceedings of the 15th annual international conference on Theory and application of cryptographic techniques. — 1996. — P. 1-9 .
  • Boneh D. (англ.) // Notices of the American Mathematical Society (AMS). — 1999.
  • Dujella A. (англ.) // CoRR. — 2004. — P. 1-11 .
  • Khaled S. (англ.) // Journal of Computer Science. — 2006. — P. 665-671 .
  • Render E. // IEEE Proceedings. — 2007. (недоступная ссылка)
  • Sarkar S., Maitra S. Revisiting Wiener’s Attack - New Weak Keys in RSA (англ.) // Indian Statistical Institute. — 2008.
  • Justin J., Siddhart R., Sushant P., Shriket P. (англ.) // International Journal of Computer Applications. — 2010. — P. 15-20 .
  • Kedmi S. (англ.) . — 2016.
  • Stinson D. (англ.) . — 2e. — A CRC Press Company, 2002. — ISBN 1-58488-206-9 .
  • Герман О.Н, Нестеренко Ю.В. Теоретико-числовые методы в криптографии . — 1. — ACADEMA, 2012. — ISBN 978-5-7695-6786-5 .


Источник —

Same as Атака Винера