- •Инфа взята из книги, так что не факт, что это то, что надо (можете поискать ответы в лекциях).
- •1. Квадратичный вычет (невычет). Символ Лежандра.
- •2. Китайская теорема об остатках (кто).
- •3. Генерирование простых чисел. Тест Ферма.
- •4. Тест квадратного корня. Тест Миллера-Рабина.
- •5. Метод конструирования простых чисел (теорема Демитко).
- •9. Криптосистема Эль-Гамаля. Атаки. Условия стойкости.
- •10. Криптосистема rsa. Атаки при малом открытом ключе и малом числе сообщений.
- •11. Rsa. Атака Винера. Мультипликативное свойство.
- •12. Rsa. Общий модуль. Циклическая атака.
- •13. Rsa. Анализ времени выполнения. Атака внешним воздействием.
- •14. Криптосистема Рабина. Доказуемая стойкость.
- •15. Квантовые вычисления. Факторизация через нахождение периода.
- •16. Алгоритм Шора. Основные этапы факторизации.
- •17. Алгоритм Шора. Постквантовая обработка. Цепные дроби.
- •18. Алгоритм Шора для дискретного логарифма.
- •19. Криптосистема Мак-Элиса. Генерация ключей, шифрование, дешифрование.
- •21. Гомоморфное шифрование. Виды.
- •22. Гомоморфизм системы Эль-Гамаля.
- •23. Гомоморфная кс Пэйе. Генерация ключей, шифрование, дешифрование.
- •25. Протокол разделения секрета Шамира (n,m).
- •26. Проверяемое разделение секрета. Схема Фельдмана.
- •27. Доказательство с нулевым разглашением (zkp).
- •28. Zkp для закрытого ключа Эль-Гамаля.
- •29. Протокол: поручительство информации (обязательство/commitment).
- •30. Протоколы скрытного поиска точек интереса (pir/psi).
- •31. Электронное голосование. Mix-сети.
- •32. Электронное голосование. Слепая подпись.
- •33. Электронное голосование. Гомоморфное шифрование.
- •34. Распределение симметричных ключей. Жизненный цикл.
- •35. Ключевые структуры. Базовый набор.
- •36. Распределение ключей с использованием црк.
- •37. Распределение ключей без црк. Диффи-Хеллман.
- •38. Распределение открытых ключей. Аутентификация.
- •39. Инфраструктура открытых ключей (pki).
- •40. Сертификат открытого ключа X.509. Жизненный цикл.
- •41. Протокол ike в ipSec.
- •42. Требования к безопасности в протоколе sigma.
- •43. Криптографическая защита в tls 1.3. Протокол квитирования.
- •44. Формирование ключей в tls 1.3. Perfect Forward Secrecy.
- •45. Задача: Система электронного голосования на основе Пэйе.
- •5 Избирателей голосуют:
- •55. Задача: Тест Ферма. Проверить простоту числа a.
- •57. Задача: Решить систему уравнений по кто.
- •59. Задача: Схема разделения секрета Шамира (4,m). Восстановление по долям 1 и 4.
- •61. Задача: Эллиптическая кривая e(a,b) над gf(17). Операции с точками.
- •62. Задача: Демонстрация протокола скрытного поиска точки интереса (лр 8).
Инфа взята из книги, так что не факт, что это то, что надо (можете поискать ответы в лекциях).
1. Квадратичный вычет (невычет). Символ Лежандра.
Вопрос: Понятие квадратичного вычета (невычета). Символ Лежандра, порядок нахождения символа Лежандра.
Источник: Яковлев, Коржик. Гл. 2 «Теоретико-числовые основы криптографии», §2.4.
Квадратичный вычет по модулю простого p: число a (1 ≤ a ≤ p-1) называется квадратичным вычетом по модулю p, если существует x такое, что x² ≡ a (mod p). Иначе a — квадратичный невычет.
Среди чисел {1, 2, …, p-1} ровно (p-1)/2 квадратичных вычетов и (p-1)/2 невычетов.
Символ Лежандра (a/p):
(a/p) = 0, если p | a
(a/p) = 1, если a — квадратичный вычет по mod p
(a/p) = -1, если a — квадратичный невычет по mod p
Порядок нахождения (критерий Эйлера):
(a/p) ≡ a^((p-1)/2) (mod p)
Пример: p=7, a=2. Вычисляем: 2^((7-1)/2) = 2^3 = 8 ≡ 1 (mod 7). Значит (2/7)=1 — квадратичный вычет. Проверка: 3² = 9 ≡ 2 (mod 7). Верно.
Пример: p=7, a=3. 3^3 = 27 ≡ 6 ≡ -1 (mod 7). Значит (3/7)=-1 — квадратичный невычет.
Также используется закон квадратичной взаимности Гаусса и символ Якоби для составных модулей.
2. Китайская теорема об остатках (кто).
Вопрос: Китайская теорема об остатках. Решение системы уравнений на её основе.
Источник: Яковлев, Коржик. Гл. 2 «Теоретико-числовые основы криптографии», §2.3.
КТО: пусть m₁, m₂, …, mₖ — попарно взаимно простые числа. Тогда система:
x ≡ a₁ (mod m₁), x ≡ a₂ (mod m₂), …, x ≡ aₖ (mod mₖ)
имеет единственное решение по модулю M = m₁·m₂·…·mₖ.
Алгоритм решения:
1) Вычислить M = m₁·m₂·…·mₖ
2) Для каждого i: Mᵢ = M / mᵢ
3) Найти yᵢ = Mᵢ⁻¹ (mod mᵢ) — обратный элемент
4) x ≡ Σ(aᵢ · Mᵢ · yᵢ) (mod M)
Пример: x≡2(mod3), x≡3(mod5), x≡2(mod7)
M = 3·5·7 = 105
M₁=35, M₂=21, M₃=15
y₁: 35·y₁≡1(mod3) → 2·y₁≡1(mod3) → y₁=2
y₂: 21·y₂≡1(mod5) → 1·y₂≡1(mod5) → y₂=1
y₃: 15·y₃≡1(mod7) → 1·y₃≡1(mod7) → y₃=1
x = 2·35·2 + 3·21·1 + 2·15·1 = 140 + 63 + 30 = 233 ≡ 233 mod 105 = 23
Проверка: 23≡2(mod3)✓, 23≡3(mod5)✓, 23≡2(mod7)✓
3. Генерирование простых чисел. Тест Ферма.
Вопрос: Теорема о доле простых чисел. Числа Кармайкла. Тест Ферма: преимущества и недостатки.
Источник: Яковлев, Коржик. Гл. 3 «Генерирование ключевых параметров», §3.1–3.2.
Теорема (теорема о распределении простых чисел): число простых чисел π(n) ≤ n удовлетворяет: π(n) ≈ n/ln(n). Доля простых среди чисел до n примерно равна 1/ln(n).
Например, среди 1024-битных чисел ~1 из 710 является простым, что делает перебор с вероятностным тестом практически эффективным.
Числа Кармайкла:
Составные числа n, для которых a^(n-1) ≡ 1 (mod n) для всех a, взаимно простых с n. Самые малые: 561, 1105, 1729. Тест Ферма принимает их за простые (ложноположительный результат).
Тест Ферма:
Выбрать случайное a (1 < a < n). Вычислить r = a^(n-1) mod n. Если r ≠ 1 — число составное. Если r = 1 — вероятно простое.
Преимущества: быстро, легко реализовать.
Недостатки: не выявляет числа Кармайкла. Вероятность ошибки ≥ 1/2 за один раунд. Для надёжности нужно много итераций.
4. Тест квадратного корня. Тест Миллера-Рабина.
Вопрос: Тест испытания квадратным корнем. Тест Миллера-Рабина, его преимущества и недостатки.
Источник: Яковлев, Коржик. Гл. 3 «Генерирование ключевых параметров», §3.2–3.3.
Нетривиальный квадратный корень из 1:
Если n — простое, то единственные решения x²≡1(mod n): x=1 и x=n-1. Если существует x≠±1 такой, что x²≡1(mod n), то n — составное.
Тест Миллера-Рабина:
Представим n-1 = 2^s · d, где d — нечётное.
1) Выбрать случайное a: 2 ≤ a ≤ n-2
2) Вычислить x = a^d mod n
3) Если x=1 или x=n-1 — вероятно простое (пройти к следующему раунду)
4) Для r = 1..s-1: x = x² mod n. Если x=n-1 — вероятно простое
5) Если не нашли n-1 — число составное
Вероятность ошибки за один раунд ≤ 1/4. За t раундов — ≤ (1/4)^t.
Преимущества: нет ложноположительных для чисел Кармайкла; вероятность ошибки строго ограничена (≤4^(-t)).
Недостатки: вероятностный (не детерминированный); для абсолютной уверенности нужно много раундов.
На практике: 40 раундов дают вероятность ошибки ≈ 4^(-40) ≈ 10^(-24).
