В Атака Винера, названный в честь криптолога Майкла Винера, представляет собой тип криптографическая атака против ЮАР. Атака использует непрерывная дробь метод предоставления закрытого ключа 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) можно заключить, что
Если , тогда сходится , таким образом появляется среди конвергентов . Следовательно, алгоритм действительно в конечном итоге найдет .
Рекомендации
дальнейшее чтение