В этом параграфе мы покажем, что ни RSA, ни Эль-Гамаль, алгоритмы шифрования с открытым ключом, не удовлетворяют строгим требованиям семантической стойкости в отношении адаптивной атаки с выбором шифротекста. Это удивительно, поскольку мы утверждали, что RSA — наиболее используемый и важный алгоритм шифрования. Однако мы не показывали, как именно RSA применяется в реальных задачах криптографии. К этому моменту мы лишь дали простое математическое описание алгоритма. Но теперь мы уже знаем гораздо больше о криптографии. Поэтому, оставив математику позади, сосредоточим внимание на инженерном воплощении алгоритмов шифрования.
Лемма 15.5. RSA не обладает полиномиальной стойкостью. Доказательство. Предположим, атакующий знает, что пользователь зашифровал только одно из двух сообщений,
или
.
Напомним, что проблема выбора Диффи-Хеллмана (известная как ПВДХ) состоит в определении истинности равенства
х · у = z (mod#
)
по данным элементам
и
из циклической группы![]()
Мы уже видели, что RSA не является семантически стойкой даже в отношении пассивной атаки. Хорошо бы теперь привести пример семантически стойкой системы, основанной на чем-то близком к задаче факторизации целых чисел. Первая такая схема принадлежит Гольдвассеру и Микали, хотя ее и не используют в практических приложениях. Стойкость этой схемы основывается на сложности проблемы квадратичных вычетов. Действительно, очень трудно определить, является ли данное число а квадратичным вычетом по модулю составного N, если не знать разложения последнего на простые множители.
В качестве секретного ключа выбираются два простых числа р и q и вычисляется открытый модуль N = р · q. Кроме того, открытый ключ содержит целое число
![]()
Чтобы найти Y, сначала определяются элементы
и
, удовлетворяющие соотношениям
В системе Гольдвассера-Микали шифруется один бит информации за один раз. Для шифрования бита b поступают следующим образом:
- берут произвольный элемент х
(Z/NZ)*
- и вычисляют С =
(mod N).