Атака Винерса - Википедия - Wieners attack

В Атака Винера, названный в честь криптолога Майкла Винера, представляет собой тип криптографическая атака против ЮАР. Атака использует непрерывная дробь метод предоставления закрытого ключа d когда d маленький.

Справочная информация о RSA

Выдуманные персонажи Алиса и Боб люди, которые хотят безопасно общаться. В частности, Алиса хочет отправить Бобу сообщение, которое может прочитать только Боб. Сначала Боб выбирает два простые числа п и q. Затем он вычисляет RSA модуль N = pq. Этот модуль RSA публикуется вместе с шифрование показатель степени е. N и е сформировать пару открытых ключей (e, N). Сделав эту информацию общедоступной, каждый может зашифровать сообщения Бобу. В расшифровка показатель степени d удовлетворяет , куда обозначает Функция Кармайкла хотя иногда , то Фи-функция Эйлера, используется (примечание: это порядок мультипликативная группа , которая не обязательно является циклической группой). Показатель шифрования е и также должно быть относительно простой так что есть модульный обратный. В факторизация из N и закрытый ключ d держатся в секрете, так что только Боб может расшифровать сообщение. Обозначим пару закрытых ключей как (d, N). Шифрование сообщения M дан кем-то и расшифровка зашифрованного текста дан кем-то (с помощью Маленькая теорема Ферма ).

С использованием Евклидов алгоритм, можно эффективно восстановить секретный ключ d если кто знает факторизация из Н. Имея секретный ключ d, можно эффективно разложить на множители модуль N.[1]

Маленький закрытый ключ

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

В статье Винера также представлены некоторые контрмеры против его атаки, которые позволяют быстро расшифровать. Ниже описаны два метода.

Выбор большого открытого ключа: Заменять к , куда для некоторых больших из . Когда достаточно большой, т.е. , то атака Винера не может быть применена независимо от того, насколько мала является.

С использованием Китайская теорема об остатках: Предположим, кто-то выбирает d так что оба и маленькие, но сам нет, то пост расшифровка из можно сделать так:

1. Первое вычисление и .
2. Используйте Китайская теорема об остатках для вычисления уникального значения что удовлетворяет и . Результат удовлетворяет по мере необходимости. Дело в том, что атака Винера здесь неприменима, потому что ценность может быть большим.[3]

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

Обратите внимание, что

куда

С

,

существует целое число K такой, что

Определение и , и замена в приведенное выше дает:

.

Деленное на :

, куда .

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

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

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

Позволять с

. Позволять .
Данный с , злоумышленник может эффективно восстановить .[2]

Пример

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

Согласно непрерывные дроби расширение , все сходящиеся находятся:

Мы можем убедиться, что первый сходящийся не производит факторизацию . Однако сходящийся дает

Теперь, если мы решим уравнение

тогда мы находим корни которые . Таким образом, мы нашли факторизацию

.

Обратите внимание, что для модуля , Теорема Винера будет работать, если

.

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

Доказательство основано на приближении с использованием цепных дробей.[2][4]
С , существует такой, что . Следовательно

.

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

Затем умножая на ,

Следовательно, является приближением . Хотя злоумышленник не знает , он может использовать чтобы приблизить это. Действительно, поскольку

и , у нас есть:

С помощью на месте мы получаем:

Сейчас же, , так . С , так , то получаем:

С и Отсюда получаем:

(1)

С тогда , мы получаем:

, так что (2)

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

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

Рекомендации

дальнейшее чтение

  • Дуйелла, Андрей (2004). Непрерывные дроби и RSA с малой секретной экспонентой.
  • Реализация атаки Винера на Python.
  • Р. Стинсон, Дуглас (2002). Теория и практика криптографии (2е изд.). Пресс-служба CRC. С. 200–204. ISBN  1-58488-206-9.