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

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

Основы RSA

Открытый ключ в системе RSA представляет собой кортеж целых чисел , где N — произведение двух простых чисел p и q . Секретный ключ задается целым числом d, удовлетворяющим ; эквивалентно, секретный ключ может быть задан и если для повышения скорости расшифровки используется китайская теорема об остатках , см. CRT-RSA . Шифрование сообщения M создает зашифрованный текст , который может быть расшифрован с помощью вычисления . ( N , e ) {\displaystyle (N,e)} e d 1 ( mod ( p 1 ) ( q 1 ) ) {\displaystyle ed\equiv 1{\pmod {(p-1)(q-1)}}} d p d ( mod p 1 ) {\displaystyle d_{p}\equiv d{\pmod {p-1}}} d q d ( mod q 1 ) {\displaystyle d_{q}\equiv d{\pmod {q-1}}} C M e ( mod N ) {\displaystyle C\equiv M^{e}{\pmod {N}}} d {\displaystyle d} C d M ( mod N ) {\displaystyle C^{d}\equiv M{\pmod {N}}}

Атака с низким публичным показателем

Чтобы сократить время шифрования или проверки подписи, полезно использовать небольшую публичную экспоненту ( ). [1] На практике распространенным выбором для являются 3, 17 и 65537 . Эти значения для e являются простыми числами Ферма , иногда называемыми и соответственно . Они выбраны потому, что они ускоряют операцию модульного возведения в степень . Кроме того, выбрав такие , проще проверить , и при генерации и тестировании простых чисел на шаге 1 генерации ключа . Значения или , которые не проходят этот тест, можно отклонить тут же. (Еще лучше: если e является простым числом и больше 2, то тест может заменить более дорогой тест .) e {\displaystyle e} e {\displaystyle e} ( 2 16 + 1 ) {\displaystyle (2^{16}+1)} F 0 , F 2 {\displaystyle F_{0},F_{2}} F 4 {\displaystyle F_{4}} ( F x = 2 2 x + 1 ) {\displaystyle (F_{x}=2^{2^{x}}+1)} e {\displaystyle e} gcd ( e , p 1 ) = 1 {\displaystyle \gcd(e,p-1)=1} gcd ( e , q 1 ) = 1 {\displaystyle \gcd(e,q-1)=1} p {\displaystyle p} q {\displaystyle q} p mod e 1 {\displaystyle p{\bmod {e}}\neq 1} gcd ( p 1 , e ) = 1 {\displaystyle \gcd(p-1,e)=1}

Если публичная экспонента мала, а открытый текст очень короток, то функцию RSA можно легко инвертировать, что делает возможными определенные атаки. Схемы заполнения гарантируют, что сообщения имеют полную длину, но дополнительно рекомендуется выбирать публичную экспоненту . При использовании этого значения проверка подписи требует 17 умножений, в отличие от примерно 25 при использовании случайной величины аналогичного размера. В отличие от низкой частной экспоненты (см. атаку Винера ), атаки, которые применяются при использовании небольшой экспоненты , далеки от полного взлома , который позволил бы восстановить секретный ключ d . Самые мощные атаки на RSA с низкой публичной экспонентой основаны на следующей теореме, которая принадлежит Дону Копперсмиту . m {\displaystyle m} e = 2 16 + 1 {\displaystyle e=2^{16}+1} e {\displaystyle e} e {\displaystyle e}

Трансляция атаки Хастада

Для облегчения понимания представлена ​​простейшая форма атаки Хостада. [2] В общем случае используется метод Копперсмита.

Предположим, что один отправитель отправляет одно и то же сообщение в зашифрованном виде нескольким людям , каждый из которых использует одну и ту же малую публичную экспоненту , скажем , и разные модули . Простой аргумент показывает, что как только шифртексты известны, сообщение больше не является безопасным: Предположим, что Ева перехватывает , и , где . Мы можем предположить для всех (в противном случае можно вычислить множитель одного из чисел , вычислив .) По китайской теореме об остатках она может вычислить такое, что . Тогда ; однако, поскольку для всех , мы имеем . Таким образом , справедливо для целых чисел, и Ева может вычислить кубический корень из , чтобы получить . M {\displaystyle M} P 1 ; P 2 ; ; P k {\displaystyle P_{1};P_{2};\dots ;P_{k}} e {\displaystyle e} e = 3 {\displaystyle e=3} N i , e {\displaystyle \left\langle N_{i},e\right\rangle } k 3 {\displaystyle k\geq 3} M {\displaystyle M} C 1 , C 2 {\displaystyle C_{1},C_{2}} C 3 {\displaystyle C_{3}} C i M 3 ( mod N i ) {\displaystyle C_{i}\equiv M^{3}{\pmod {N_{i}}}} gcd ( N i , N j ) = 1 {\displaystyle \gcd(N_{i},N_{j})=1} i , j {\displaystyle i,j} N i {\displaystyle N_{i}} gcd ( N i , N j ) {\displaystyle \gcd(N_{i},N_{j})} C Z N 1 N 2 N 3 {\displaystyle C\in \mathbb {Z} _{N_{1}N_{2}N_{3}}^{*}} C C i ( mod N i ) {\displaystyle C\equiv C_{i}{\pmod {N_{i}}}} C M 3 ( mod N 1 N 2 N 3 ) {\displaystyle C\equiv M^{3}{\pmod {N_{1}N_{2}N_{3}}}} M < N i {\displaystyle M<N_{i}} i {\displaystyle i} M 3 < N 1 N 2 N 3 {\displaystyle M^{3}<N_{1}N_{2}N_{3}} C = M 3 {\displaystyle C=M^{3}} C {\displaystyle C} M {\displaystyle M}

Для больших значений требуется больше шифртекстов, в частности, достаточно шифртекстов. e {\displaystyle e} e {\displaystyle e}

Обобщения

Хастад также показал, что применение линейного дополнения к до шифрования не защищает от этой атаки. Предположим, что злоумышленник узнает, что для и некоторой линейной функции , т. е. Боб применяет дополнение к сообщению до его шифрования , так что получатели получают немного разные сообщения. Например, если длина бит, Боб может зашифровать и отправить это -му получателю. M {\displaystyle M} C i = f i ( M ) e {\displaystyle C_{i}=f_{i}(M)^{e}} 1 i k {\displaystyle 1\leq i\leq k} f i {\displaystyle f_{i}} M {\displaystyle M} M {\displaystyle M} m {\displaystyle m} M i = i 2 m + M {\displaystyle M_{i}=i2^{m}+M} i {\displaystyle i}

Если задействована достаточно большая группа людей, злоумышленник может восстановить открытый текст из всего шифротекста с помощью аналогичных методов. В более общем смысле, Хостад доказал, что система одномерных уравнений по модулю относительно простых составных чисел, например, применение любого фиксированного многочлена , может быть решена, если предоставлено достаточно много уравнений . Эта атака предполагает, что в шифровании RSA следует использовать рандомизированное заполнение . M i {\displaystyle M_{i}} g i ( M ) 0 ( mod N i ) {\displaystyle g_{i}(M)\equiv 0{\pmod {N_{i}}}}

Франклин и Рейтер выявили атаку против RSA , когда зашифровано несколько связанных сообщений: Если два сообщения отличаются только известным фиксированным различием между двумя сообщениями и зашифрованы RSA по одному и тому же модулю RSA , то возможно восстановить их оба. Атака изначально была описана с публичной экспонентой , но она работает более широко (с увеличением стоимости по мере роста). N {\displaystyle N} e = 3 {\displaystyle e=3} e {\displaystyle e}

Пусть будет открытым ключом Алисы. Предположим, что есть два различных сообщения, удовлетворяющих некоторому публично известному полиному . Чтобы отправить и Алисе, Боб может наивно зашифровать сообщения и передать полученные шифртексты . Ева может легко восстановить , учитывая , используя следующую теорему: N ; e i {\displaystyle \left\langle N;e_{i}\right\rangle } M 1 ; M 2 Z N {\displaystyle M_{1};M_{2}\in \mathbb {Z} _{N}} M 1 f ( M 2 ) ( mod N ) {\displaystyle M_{1}\equiv f(M_{2}){\pmod {N}}} f Z N [ x ] {\displaystyle f\in \mathbb {Z} _{N}[x]} M 1 {\displaystyle M_{1}} M 2 {\displaystyle M_{2}} C 1 ; C 2 {\displaystyle C_{1};C_{2}} M 1 ; M 2 {\displaystyle M_{1};M_{2}} C 1 ; C 2 {\displaystyle C_{1};C_{2}}

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

Подобно атакам Хостада и Франклина-Рейтера, эта атака использует слабость RSA с публичной экспонентой . Копперсмит показал, что если рандомизированное заполнение, предложенное Хостадом, используется неправильно, то шифрование RSA не является безопасным. e = 3 {\displaystyle e=3}

Предположим, Боб отправляет сообщение Алисе, используя небольшое случайное дополнение перед его шифрованием . Злоумышленник, Ева, перехватывает шифротекст и не дает ему достичь адресата. Боб решает повторно отправить сообщение Алисе, поскольку Алиса не ответила на его сообщение. Он снова случайным образом дополняет его и передает полученный шифротекст. Теперь у Евы есть два шифротекста, соответствующих двум шифрованным сообщениям с использованием двух разных случайных дополнений. M {\displaystyle M} M {\displaystyle M} M {\displaystyle M}

Даже если Ева не знает, какой случайный блок данных используется, она все равно может восстановить сообщение, используя следующую теорему, если случайный блок данных слишком короткий. M {\displaystyle M}

Смотрите также

Ссылки

  1. ^ Бонех, Дэн (1999). «Двадцать лет атак на криптосистему RSA». Notices of the American Mathematical Society . 46 (2): 203–213.
  2. ^ Гленн Дёрфи, Криптоанализ RSA с использованием алгебраических и решеточных методов.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Coppersmith%27s_attack&oldid=1230469322"