- •Инфа взята из книги, так что не факт, что это то, что надо (можете поискать ответы в лекциях).
- •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).
59. Задача: Схема разделения секрета Шамира (4,m). Восстановление по долям 1 и 4.
Вопрос: Построить (4,m)-схему Шамира. Секрет k — цифра билета. Восстановить секрет по 1 и 4 долям. (Выбрано: k=7, m=2, n=4, q=11.)
Источник: Яковлев, Коржик. Гл. 5, §5.3.
k=7, m=2 (порог), n=4 участника, q=11.
Полином (m=2, степень 1): f(x)=7+4x mod11. (Коэффициент a₁=4 выбран произвольно.)
Тени:
s₁=f(1)=7+4=11≡0(mod11).
s₂=f(2)=7+8=15≡4(mod11).
s₃=f(3)=7+12=19≡8(mod11).
s₄=f(4)=7+16=23≡1(mod11).
Восстановление по долям 1 и 4: s₁=0, s₄=1.
Интерполяция Лагранжа:
f(0)=s₁·L₁(0) + s₄·L₄(0)
L₁(0)=(0-4)/(1-4)=(-4)/(-3)=4/3 mod11. 3⁻¹mod11=4. L₁(0)=4·4=16≡5(mod11).
L₄(0)=(0-1)/(4-1)=(-1)/3=(-1)·4=-4≡7(mod11).
f(0)=0·5+1·7=7 mod11=7.
Восстановленный секрет: k=7 ✓
60. Задача: Построить цепную дробь P/Q. P=-477, Q=22x.
Вопрос: Даны P=-477, Q=228 (228 взято как пример, последняя цифра задаётся преподавателем). Построить цепную дробь, найти подходящие дроби.
Источник: Яковлев, Коржик. Гл. 7, §7.3.
P/Q = 477/228 (работаем с |P|/Q для знака учтём отдельно; знак перед дробью -1).
Алгоритм Евклида (расширенный):
477 = 2·228 + 21. a₀ = 2
228 = 10·21 + 18. a₁ = 10
21 = 1·18 + 3. a₂ = 1
18 = 6·3 + 0. a₃ = 6
Цепная дробь: 477/228 = [2; 10, 1, 6]. P/Q=-[2;10,1,6].
Подходящие дроби p_i/q_i:
p₋₁=1, p₀=2; q₋₁=0, q₀=1.
p₁=a₁·p₀+p₋₁=10·2+1=21; q₁=a₁·q₀+q₋₁=10·1+0=10. → 21/10
p₂=a₂·p₁+p₀=1·21+2=23; q₂=1·10+1=11. → 23/11
p₃=a₃·p₂+p₁=6·23+21=138+21=159; q₃=6·11+10=66+10=76. → 159/76
Проверка: 159/76=2.0921... ≈ 477/228=2.0921... ✓
С учётом знака: P/Q = -477/228 = -(2 + 1/(10+1/(1+1/6))) = -[2;10,1,6].
Подходящие дроби: -0/1, -2/1, -21/10, -23/11, -159/76.
61. Задача: Эллиптическая кривая e(a,b) над gf(17). Операции с точками.
Вопрос: Заданы точки эллиптической кривой E(a,b) над GF(17). Найти инверсные, сложить, возвести в степень 5. (Параметры задаются преподавателем; для примера E(-1,1) над GF(17), точки P=(0,1), Q=(1,2).)
Источник: Яковлев, Коржик. Гл. 2, §2.5.
Эллиптическая кривая: y²=x³+ax+b mod17. Возьмём a=2, b=2 (кривая y²=x³+2x+2 mod17). Точки: P=(5,1), Q=(6,3) (выбраны как лежащие на кривой: 1²=25+10+2=37≡3≠1. Пересчитаем: нужны реальные точки. Стандартный пример: E: y²=x³-x+1 mod17. Проверим P=(0,1): 1=0-0+1=1 ✓.
Инверсная точка:
-P=(x,-y mod17)=(0,-1 mod17)=(0,16).
Сложение P+P (удвоение):
λ=(3x²+a)/(2y) mod17=(3·0+(-1))/(2·1)=(-1)/(2)=-1·9=-9≡8(mod17). (2⁻¹mod17=9).
x₃=λ²-2x=64-0=64mod17=64-3·17=64-51=13.
y₃=λ(x-x₃)-y=8(0-13)-1=-104-1=-105 mod17. -105+7·17=-105+119=14.
2P=(13,14).
4P=2(2P): аналогично с (13,14). λ=(3·169+(-1))/(2·14)=(507-1)/28=506/28 mod17.
506 mod17: 506=29·17+13. 506≡13. 28 mod17=11. 11⁻¹mod17: 11·14=154=9·17+1. 11⁻¹=14.
λ=13·14=182 mod17=182-10·17=182-170=12.
x₄=12²-26=144-26=118 mod17=118-6·17=118-102=16.
y₄=12(13-16)-14=12·(-3)-14=-36-14=-50 mod17=-50+3·17=-50+51=1.
4P=(16,1).
5P=4P+P: P=(0,1), 4P=(16,1).
λ=(1-1)/(16-0)=0/16=0.
x₅=0-16-0=-16 mod17=1.
y₅=0(16-1)-1=-1 mod17=16.
5P=(1,16).
Итог: P=(0,1); -P=(0,16); 2P=(13,14); 5P=(1,16).
62. Задача: Демонстрация протокола скрытного поиска точки интереса (лр 8).
Вопрос: Продемонстрировать работу протокола скрытного поиска точки интереса на основе базы данных ЛР 8.
Источник: Яковлев, Коржик. Гл. 5, §5.7. — Лабораторная работа 8.
(Конкретные данные ЛР 8 задаются преподавателем при подготовке к ответу. Ниже — общая структура демонстрации.)
Шаги протокола:
1. Клиент формирует запрос: вектор индикаторов i-й точки интереса, шифрует каждый элемент через Пэйе: (E(0), …, E(1), …, E(0)).
2. Сервер (имея базу {d₁, …, dₙ}) вычисляет гомоморфную сумму: R = Σⱼ dⱼ·E(qⱼ) = E(dᵢ).
3. Клиент дешифрует R → получает dᵢ (координаты/атрибуты точки).
4. Сервер не знает, какая точка запрошена. Клиент не знает остальных точек.
Пример из ЛР 8:
База: {(lat₁,lon₁), …, (latₙ,lonₙ)}. Клиент ищет точку i=2.
Запрос: (E(0), E(1), E(0), …, E(0)).
Сервер: R=lat₁·E(0)+lat₂·E(1)+…=E(0+lat₂+0+…)=E(lat₂).
Клиент дешифрует E(lat₂)=lat₂ — получил координату без раскрытия индекса.
