Загрузка данных


Задание 1. Шифрование по алгоритму RSA

Дано: p = 3, q = 11, e = 7, M = 5.

1. Модуль n = p * q = 3 * 11 = 33.
2. Функция Эйлера φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20.
3. Проверка взаимной простоты e и φ(n): НОД(7, 20) = 1, значит e подходит.
4. Секретная экспонента d находится из условия d * 7 ≡ 1 mod 20. Подбором: 71=7, 72=14, 7*3=21 ≡ 1 mod 20. Значит d = 3.
5. Шифрование: C = M^e mod n = 5^7 mod 33.
   5^2 = 25
   5^4 = 25^2 = 625 mod 33. 3318 = 594, остаток 625 - 594 = 31.
5^7 = 5^4 * 5^2 * 5^1 = 31 * 25 * 5.
31 * 25 = 775. 775 mod 33: 3323 = 759, остаток 16.
   16 * 5 = 80. 80 mod 33: 33*2 = 66, остаток 14.
   C = 14.
6. Расшифрование: M = C^d mod n = 14^3 mod 33.
   14^2 = 196. 196 mod 33: 335 = 165, остаток 31.
14^3 = 31 * 14 = 434. 434 mod 33: 3313 = 429, остаток 5.
   M = 5. Совпадает с исходным.

Ответ: n = 33, φ(n) = 20, d = 3, C = 14, после расшифрования M = 5.

Задание 2. Цифровая подпись по алгоритму RSA

Дано: p = 13, q = 7, e = 5, M = 15.

1. Модуль n = 13 * 7 = 91.
2. Функция Эйлера φ(n) = (13 - 1) * (7 - 1) = 12 * 6 = 72.
3. Проверка: НОД(5, 72) = 1, значит e подходит.
4. Нахождение d из условия d * 5 ≡ 1 mod 72.
   Алгоритм Евклида:
   72 = 5 * 14 + 2
   5 = 2 * 2 + 1
   2 = 1 * 2 + 0
   НОД(72, 5) = 1.
   Разматываем:
   1 = 5 - 2 * 2
   2 = 72 - 5 * 14
   1 = 5 - (72 - 5 * 14) * 2 = 5 - 72 * 2 + 5 * 28 = 5 * 29 - 72 * 2
   Значит 5 * 29 ≡ 1 mod 72, d = 29.
5. Создание подписи: S = M^d mod n = 15^29 mod 91.
   15^2 = 225. 225 mod 91: 912 = 182, остаток 43.
15^4 = 43^2 = 1849. 1849 mod 91: 9120 = 1820, остаток 29.
   15^8 = 29^2 = 841. 841 mod 91: 919 = 819, остаток 22.
15^16 = 22^2 = 484. 484 mod 91: 915 = 455, остаток 29.
   29 = 16 + 8 + 4 + 1.
   15^29 = 15^16 * 15^8 * 15^4 * 15^1 = 29 * 22 * 29 * 15.
   29 * 22 = 638. 638 mod 91: 917 = 637, остаток 1.
1 * 29 = 29.
29 * 15 = 435. 435 mod 91: 914 = 364, остаток 71.
   S = 71.
6. Проверка подписи: M' = S^e mod n = 71^5 mod 91.
   71 ≡ -20 mod 91.
   (-20)^2 = 400. 400 mod 91: 914 = 364, остаток 36.
(-20)^4 = 36^2 = 1296. 1296 mod 91: 9114 = 1274, остаток 22.
   (-20)^5 = 22 * (-20) = -440. -440 mod 91: 91*5 = 455, -440 + 455 = 15.
   M' = 15. Совпадает с исходным M = 15.

Вывод: подпись корректна.

Ответ: n = 91, φ(n) = 72, d = 29, S = 71, M' = 15, подпись верна.

Задание 3. Цифровая подпись по алгоритму Эль-Гамаля

Дано: p = 11, g = 2, x = 8, k = 9, M = 5.

1. Открытый ключ y = g^x mod p = 2^8 mod 11.
   2^4 = 16 mod 11 = 5.
   2^8 = 5^2 = 25 mod 11 = 3.
   y = 3.
2. Обратный элемент k^(-1) по модулю (p - 1) = 10.
   НОД(9, 10) = 1.
   9 * 9 = 81 ≡ 1 mod 10, значит k^(-1) = 9.
3. Компоненты подписи.
   a = g^k mod p = 2^9 mod 11.
   2^9 = 2^8 * 2 = 3 * 2 = 6.
   a = 6.
   b = k^(-1) * (M - x * a) mod (p - 1) = 9 * (5 - 8 * 6) mod 10.
   8 * 6 = 48 mod 10 = 8.
   5 - 8 = -3 ≡ 7 mod 10.
   b = 9 * 7 = 63 mod 10 = 3.
   b = 3.
   Подпись: (a, b) = (6, 3).
4. Проверка подписи.
   Левая часть: (y^a * a^b) mod p = (3^6 * 6^3) mod 11.
   3^2 = 9, 3^4 = 81 mod 11 = 4, 3^6 = 4 * 9 = 36 mod 11 = 3.
   6^2 = 36 mod 11 = 3, 6^3 = 3 * 6 = 18 mod 11 = 7.
   3 * 7 = 21 mod 11 = 10.
   Правая часть: g^M mod p = 2^5 mod 11 = 32 mod 11 = 10.
   10 = 10, подпись верна.

Ответ: y = 3, k^(-1) = 9, a = 6, b = 3, проверка даёт 10 = 10, подпись корректна.

Мини-тест

1. б) (e, n)
2. в) Взаимно простым с р-1
3. б) Закрытого ключа отправителя
4. в) Разложения большого числа на простые множители
5. в) g^M mod p

Контрольные вопросы

1. Основная идея асимметричного шифрования в том, что для шифрования и расшифрования используются разные ключи: открытый ключ известен всем и служит для зашифрования, а закрытый ключ хранится в секрете у владельца и служит для расшифрования. Это снимает проблему передачи секретного ключа по незащищённому каналу.
2. В RSA это возможно потому, что пара чисел e и d подбирается так, что они являются взаимно обратными по модулю φ(n). Тогда для любого M, взаимно простого с n, выполняется (M^e)^d = M^(e*d) ≡ M mod n. Поэтому зашифрованное открытым ключом сообщение можно восстановить только с помощью парного закрытого ключа.
3. Хеш-образ сообщения это результат применения однонаправленной хеш-функции к сообщению, то есть число фиксированной длины. В цифровой подписи он используется потому, что подписывать само длинное сообщение медленно и неудобно, а хеш-образ короткий. Кроме того, хеш-функция обеспечивает целостность: любое изменение сообщения меняет хеш-образ, и подпись перестаёт быть верной.
4. Основные этапы генерации подписи по Эль-Гамалю:
   Выбираются большое простое p и генератор g.
   Выбирается закрытый ключ x и вычисляется открытый ключ y = g^x mod p.
   Для подписи сообщения M выбирается случайное k, взаимно простое с p-1.
   Вычисляется a = g^k mod p.
   Вычисляется b = k^(-1) * (M - x*a) mod (p-1).
   Подпись это пара (a, b).
5. Преимущества асимметричных криптосистем: не нужно передавать секретный ключ по защищённому каналу, можно обеспечить цифровую подпись и аутентификацию, число ключей растёт линейно с числом участников. Недостатки: значительно ниже скорость шифрования и расшифрования, большая длина ключей, более высокая вычислительная сложность по сравнению с симметричными алгоритмами.
6. Числа p и q должны быть большими, чтобы модуль n был достаточно велик и его нельзя было разложить на множители за разумное время. Они должны быть различными, потому что если p = q, то n = p^2 и факторизация сводится к извлечению квадратного корня, что резко снижает стойкость. Кроме того, при p = q функция Эйлера считается иначе.
7. Если в алгоритме Эль-Гамаля использовать одно и то же k для подписи двух разных сообщений, то у обеих подписей совпадёт компонента a. Из двух уравнений для b можно исключить x и найти k, а затем вычислить закрытый ключ x. Это полностью компрометирует систему.
8. Однонаправленная хеш-функция перед подписыванием используется для сжатия сообщения до фиксированной длины и для обеспечения целостности. Подписывается не само сообщение, а его хеш-образ, что ускоряет работу и делает невозможным подбор другого сообщения с тем же хеш-образом.