Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП - отеты на билеты.docx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
74.69 Кб
Скачать

9. Криптосистема Эль-Гамаля. Атаки. Условия стойкости.

Вопрос: Криптосистема Эль-Гамаля. Атаки на криптосистему. Условия стойкости.

Источник: Яковлев, Коржик. Гл. 4 «Асимметричные криптосистемы», §4.4.

Генерация ключей:

Выбрать большое простое p, примитивный корень g по mod p. Закрытый ключ: случайное x (1<x<p-1). Открытый ключ: y = g^x mod p. Опубликовать (p, g, y).

Шифрование сообщения M:

Выбрать случайное k (1<k<p-1). C₁ = g^k mod p, C₂ = M·y^k mod p. Шифртекст: (C₁, C₂).

Дешифрование:

M = C₂ · (C₁^x)⁻¹ mod p = C₂ · C₁^(p-1-x) mod p.

Атаки:

1. Атака на основе задачи дискретного логарифма (DLP): если найти x из y=g^x mod p — система взломана. Безопасность основана на вычислительной сложности DLP.

2. Атака при повторном использовании k: если одно k использовано дважды, то C₁ одинаков и можно найти M.

3. Атака на основе мультипликативного гомоморфизма: если можно подать выбранный шифртекст — можно получить информацию о ключе.

Условия стойкости:

— p должно быть достаточно большим (≥2048 бит сейчас), (p-1)/2 тоже простое.

— k должно быть случайным и использоваться только один раз.

— g должен быть примитивным корнем (иметь порядок p-1).

10. Криптосистема rsa. Атаки при малом открытом ключе и малом числе сообщений.

Вопрос: КС РША. Атаки: малая открытая экспонента e, анализ при малом числе сообщений, отсутствие шифрования.

Источник: Яковлев, Коржик. Гл. 4, §4.2.

RSA кратко:

n=p·q, e·d≡1(mod φ(n)). Шифрование: C=M^e mod n. Дешифрование: M=C^d mod n.

Атака при малом e (broadcast attack, e=3):

Если одно сообщение M зашифровано с e=3 у 3 разных пользователей с модулями n₁,n₂,n₃: C_i=M^3 mod n_i. По КТО находим M^3 mod (n₁·n₂·n₃), затем берём кубический корень. M мало — не происходит редукции по модулям! Решение: добавить случайный padding.

Анализ при малом числе сообщений:

Если сообщение M<n^(1/e), то C=M^e без приведения по модулю, и M = C^(1/e) — обычный корень. Уязвимость при e=3 и коротких M.

Отсутствие шифрования (M=0 или M=1):

0^e=0, 1^e=1 — шифртекст равен открытому тексту. Необходима проверка и padding.

11. Rsa. Атака Винера. Мультипликативное свойство.

Вопрос: КС РША. Атака при малой секретной экспоненте d; атака, использующая мультипликативное свойство.

Источник: Яковлев, Коржик. Гл. 4, §4.2.

Атака Винера (малое d):

Если d < n^(1/4)/3, то d можно найти из разложения e/n в цепную дробь. Теорема Винера: непрерывная дробь e/n содержит d/k среди подходящих дробей.

Алгоритм:

1) Разложить e/n в цепную дробь [a₀; a₁, a₂, …]

2) Перебрать подходящие дроби p/q

3) Проверить: если (e·q - 1) делится на некоторое φ, и уравнение x²-(n-φ+1)x+n=0 имеет целые корни — найдены p,q, а q=d.

Мультипликативное свойство RSA:

RSA мультипликативен: E(M₁)·E(M₂) = (M₁^e·M₂^e) = (M₁·M₂)^e = E(M₁·M₂) mod n.

Атака: злоумышленник получает C=M^e. Выбирает r, вычисляет C'=C·r^e mod n, запрашивает расшифровку C'. Получает M'=M·r mod n. Находит M=M'·r⁻¹ mod n.

Защита: рандомизация (OAEP padding).

12. Rsa. Общий модуль. Циклическая атака.

Вопрос: КС РША. Атака при общем модуле для нескольких пользователей; циклическая атака.

Источник: Яковлев, Коржик. Гл. 4, §4.2.

Атака при общем модуле:

Если пользователи A и B используют один n, но разные e_A и e_B, при этом gcd(e_A, e_B)=1. Противник перехватывает C_A=M^(e_A) и C_B=M^(e_B).

По расширенному алгоритму Евклида: r·e_A + s·e_B = 1.

M = C_A^r · C_B^s mod n (один из r,s отрицателен — берётся обратный элемент).

Вывод: нельзя использовать один модуль n для разных пользователей!

Циклическая атака:

Противник шифрует C несколько раз: C₁=C^e, C₂=C₁^e, … Если за k шагов C_k=C, то C_{k-1}=M.

Работает когда порядок e в (Z/λ(n))* мал. Чтобы защититься, e должен иметь большой порядок по mod λ(n).