Атака Копперсмита

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Атака Копперсмита описывает класс криптографических атак на открытый ключ криптосистемы RSA, основанный на методе Копперсмита. Особенность применения этого метода для атак RSA включает случаи, когда открытая экспонента мала или когда частично известен секретный ключ.

Открытый ключ криптосистемы RSA это пара натуральных чисел , где это произведение двух простых чисел и , а число  — открытая экспонента. Целое число (, где  — функция Эйлера от числа ) взаимно простое со значением . Обычно в качество берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма 17, 257 или 65537.

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

.

Пара публикуется в качестве открытого ключа RSA (англ. RSA public key), а пара играет роль закрытого ключа RSA (англ. RSA private key) и держится в секрете.

Теорема Копперсмита

[править | править код]

Формулировка[1]

[править | править код]

Пусть и нормированный многочлен степени . Пусть , . Тогда по паре атакующий эффективно найдет все целые числа , удовлетворяющие . Время выполнения определяется выполнением LLL-алгоритма на решетке размерности , где .[2]

Доказательство

[править | править код]

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

Мы используем в качестве основы для нашей решетки полиномы для и . Например, когда и мы получаем матрицу решетки, натянутую на строки:

,

где «—» обозначает ненулевые недиагональные элементы, значение которых не влияет на определитель. Размер этой решетки равен , а её определитель считается так:

Потребуем, чтобы . Отсюда следует

что можно упростить до

,

где и для всех . Если мы возьмем , то получим а, следовательно, и . В частности, если мы хотим решить для произвольного , достаточно взять , где . [3]

Атака Хастеда

[править | править код]

Формулировка

[править | править код]

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

Доказательство[4]

[править | править код]

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

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

Атака Копперсмита

[править | править код]

Формулировка

[править | править код]

Предположим открытый ключ RSA, где длины -бит. Возьмем множество . Пусть сообщение длины не более бит. Определим и , где и различные целые числа, причем и .Если противник получит и шифры от (но не получит или ), то он сможет эффективно восстановить сообщение .

Доказательство[2]

[править | править код]

Определим и . Мы знаем, что когда , эти полиномы имеют в качестве общего корня. Другими словами это корень «результирующей» . Степень чаще всего . Более того, . Следовательно, это малый корень по модулю , и противник может эффективно найти его, используя теорему Копперсмита. Как только известна, может быть использована атака Франклина-Рейтера, чтобы покрыть , следовательно, и .

Примечания

[править | править код]
  1. Don Coppersmith. Finding a Small Root of a Univariate Modular Equation. (недоступная ссылка)
  2. 1 2 Dan Boneh. Twenty Years of Attacks on the RSA Cryptosystem. Дата обращения: 1 декабря 2016. Архивировано 26 марта 2016 года.
  3. Glenn Durfee. CRYPTANALYSIS OF RSA USING ALGEBRAIC AND LATTICE METHODS (июнь 2002). Дата обращения: 1 декабря 2016. Архивировано 4 марта 2016 года.
  4. Ушаков Константин. Взлом системы RSA. Дата обращения: 6 декабря 2016. Архивировано 1 декабря 2016 года.