Теорема
Копперсмита
(метод Копперсмита) — теорема, позволяющая эффективно найти все нули
нормированных многочленов
по определённому модулю.
Теорема используется в основном для атак на
криптосистему
RSA
. Этот метод является эффективным, если экспонента кодирования имеет достаточно малое значение, либо когда известна часть
секретного ключа
. Теорема также связана с
LLL-алгоритмом
.
Описание
Введение
Теорема предлагает алгоритм эффективного нахождения корней
нормированного многочлена
по модулю
, которые меньше чем
. Если
будет малым, то алгоритм будет работать быстрее. Преимущество теоремы это возможность находить малые корни многочлена по составному модулю
. Если же модуль — простое число, то нет смысла использовать теорему
Копперсмита
. Намного эффективнее будет использовать другие способы нахождения корней многочлена.
Маленькая экспонента кодирования
Чтобы уменьшить время
шифрования
или проверки подписи, желательно использовать маленькое
(экспонента кодирования). Наименьшее возможное значение —
, однако рекомендуется использовать
(для защиты от некоторых атак). При использовании значения
на проверку подписи требуется 17 умножений (
, где
— порядок
мультипликативной группы
, возможно около 1000). Атаки ориентированные на использование маленького
не всегда действенны.
Самые мощные атаки на маленькую экспоненту кодирования основываются на теореме
Копперсмита
, которая имеет много приложений, одно из которых атака Хастеда (Hasted).
Атака Хастеда
Предположим один отправитель отправляет одно и то же сообщение
в зашифрованном виде определённому количеству людей
, каждый из которых использует одну и ту же маленькую экспоненту кодирования
, скажем
, и различные пары
, причем
. Отправитель зашифровывает сообщение, используя поочередно открытый ключ каждого пользователя, и отсылает его соответствующему адресату. Тогда, если противник прослушает канал передачи и соберет
переданных
шифротекстов
, то он сможет восстановить сообщение
.
Доказательство
Предположим противник перехватил
и
, где
. Мы предполагаем, что
взаимно просты
, иначе
наибольший общий делитель
отличный от единицы означал нахождение делителя одного из
. Применяя
китайскую теорему об остатках
к
и
получим
, такое что
, которое имеет значение
. Однако, зная что
, получаем
. Поэтому
, то есть противник может расшифровать сообщение
взяв корень кубический от
.
Для восстановления сообщения
с любым значением открытой экспоненты кодирования
, необходимо противнику перехватить
шифротекстов
.
Формулировка
Пусть
и
нормированный многочлен
степени
. Пусть
,
. Тогда по паре
атакующий эффективно найдет все
целые числа
, удовлетворяющие
. Время выполнения определяется выполнением
LLL-алгоритма
на решетке размерности
, где
.
Доказательство
Пусть
натуральное число
, которое мы определим позже. Определим
Мы используем в качестве основы для нашей решетки
полиномы
для
и
. Например, когда
и
мы получаем
матрицу
решетки, натянутую на строки:
,
где «—» обозначает ненулевые недиагональные элементы, значение которых не влияет на
определитель
. Размер этой решетки равен
, а её
определитель
считается так:
Потребуем, чтобы
. Отсюда следует
что можно упростить до
,
где
и
для всех
. Если мы возьмем
, то получим
а, следовательно, и
. В частности, если мы хотим решить
для произвольного
, достаточно взять
, где
.
См. также
Примечания
-
↑
Dan Boneh.
(неопр.)
. Дата обращения: 25 ноября 2016.
26 марта 2016 года.
-
Ушаков Константин.
(неопр.)
. Дата обращения: 25 ноября 2016.
1 декабря 2016 года.
-
Glenn Durfee.
(неопр.)
(июнь 2002). Дата обращения: 30 ноября 2016.
4 марта 2016 года.