крипта_5
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №5
Квадратичные вычеты. Криптосистема Рабина
(тема отчета)
Направление/специальность подготовки
(код и наименование направления/специальности)
Выполнил студент 3 курса:
__________
(Ф.И.О., № группы) (подпись)
Преподаватель:
д.т.н., проф. Яковлев В.А.
(Ф.И.О., № группы) (подпись)
Цель работы
Закрепить знания, полученные на лекциях по темам «Квадратичные вычеты» и “Криптосистема Рабина”.
Ход работы
Задание 1
Решите уравнение
Для варианта – 5
-
N вар
Число а
р = 23
р = 29
5
13
13
1) x = √13 mod 23
Решение уравнения x = √13 mod 23
p = 23, 23 = 4*5 + 3
1) x = √13 mod 23
23 - простое, 23 = 3 mod 4
x = a^((p+1)/4) mod p
x = 13^6 mod 23 = 6
2) x = -6 mod 23 = 17
Проверка:
1) 6^2 mod 23 = 36 mod 23 = 13 mod 23
2) 17^2 mod 23 = 289 mod 23 = 13 mod 23
(6, 17)
2) x = √13 mod 29
Решение уравнения x = √13 mod 29
p = 29, 29 = 4*7 + 1
1) x = √13 mod 29
29 - простое, 29 = 1 mod 4
Применяем алгоритм Чиполлы
Шаг 1: Находим t такое, что t² - a - квадратичный невычет
t = 24, t² - a = 24² - 13 = 12
Символ Лежандра ((12/29) = (12^(p-1/2) mod 29) = 12^14 mod 29) = 28 = -1 → невычет
пусть (t^2-a) mod p = w
Шаг 2: Работаем в расширении поля F_29(√12)
Вычисляем (t + √w)^((p+1)/2) = (t + √w)^15
Возводим в степень 15:
(24 + 1√12)² = 576 + 48√12 + 144 = 8 + 19√12
(8 + 19√12)² = 64 + 304√12 + 51984 = 17 + 14√12
(17 + 14√12)² = 289 + 476√12 + 28224 = 2 + 12√12
(2 + 12√12)² = 4 + 48√12 + 20736 = 21 + 19√12
Результат: 19 + 0√12
Шаг 3: Получаем корни:
x₁ = 19
x₂ = 10
Проверка:
19² mod 29 = 361 mod 29 = 13 (должно быть 13)
10² mod 29 = 100 mod 29 = 13
Итог:
Для p = 23, a = 13:
x = 6 и x = 17 (mod 23)
Проверка: 6² = 36 mod 23 ≡ 13 mod 23
17² = 289 mod 23 ≡ 13 mod 23
Для p = 29, a = 13:
x = 19 и x = 10 (mod 29)
Проверка: 19² = 361 mod 29 ≡ 13 mod 29
10² = 100 mod 29 ≡ 13 mod 29
Найдите все решения уравнение
Для варианта - 5
n=3*7, для вариантов 1-6, a=16
Найдите все решения уравнение
Для варианта - 5
n=3*7, для вариантов 1-6, a=16
Найдем корни уравнения
Решение уравнения x = √1 mod 3
p = 3, 3 = 4*0 + 3
1) x = √1 mod 3
3 - простое, 3 = 3 mod 4
x = a^((p+1)/4) mod p
x = 1^1 mod 3 = 1
2) x = -1 mod 3 = 2
Проверка:
1) 1^2 mod 3 = 1 mod 3 = 1 mod 3
2) 2^2 mod 3 = 4 mod 3 = 1 mod 3
(1, 2)
Для a=16, p=7
Решение уравнения x = √2 mod 7
p = 7, 7 = 4*1 + 3
1) x = √2 mod 7
7 - простое, 7 = 3 mod 4
x = a^((p+1)/4) mod p
x = 2^2 mod 7 = 4
2) x = -4 mod 7 = 3
Проверка:
1) 4^2 mod 7 = 16 mod 7 = 2 mod 7
2) 3^2 mod 7 = 9 mod 7 = 2 mod 7
(4, 3)
Китайская теорема об остатках
1-ый случай: (1 mod 3) и (4 mod 7)
M = 3 * 7 = 21
Находим Mi и yi:
M1 = M/m1 = 21/3 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 3 → 1 * y1 ≡ 1 mod 3 → y1 = 1
M2 = M/m2 = 21/7 = 3
M2 * y2 ≡ 1 mod m2 → 3 * y2 ≡ 1 mod 7 → 3 * y2 ≡ 1 mod 7 → y2 = 5
Вычисляем x0 = (7 * 1 * 1 + 3 * 5 * 4) mod 21 = 67 mod 21 = 4
Ответ: x = 4
2-й случай: (1 mod 3) и (3 mod 7)
M = 3 * 7 = 21
Находим Mi и yi:
M1 = M/m1 = 21/3 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 3 → 1 * y1 ≡ 1 mod 3 → y1 = 1
M2 = M/m2 = 21/7 = 3
M2 * y2 ≡ 1 mod m2 → 3 * y2 ≡ 1 mod 7 → 3 * y2 ≡ 1 mod 7 → y2 = 5
Вычисляем x0 = (7 * 1 * 1 + 3 * 5 * 3) mod 21 = 52 mod 21 = 10
Ответ: x = 10
3-й случай: (2 mod 3) и (4 mod 7)
M = 3 * 7 = 21
Находим Mi и yi:
M1 = M/m1 = 21/3 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 3 → 1 * y1 ≡ 1 mod 3 → y1 = 1
M2 = M/m2 = 21/7 = 3
M2 * y2 ≡ 1 mod m2 → 3 * y2 ≡ 1 mod 7 → 3 * y2 ≡ 1 mod 7 → y2 = 5
Вычисляем x0 = (7 * 1 * 2 + 3 * 5 * 4) mod 21 = 74 mod 21 = 11
Ответ: x = 11
4-й случай: (2 mod 3) и (3 mod 7)
M = 3 * 7 = 21
Находим Mi и yi:
M1 = M/m1 = 21/3 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 3 → 1 * y1 ≡ 1 mod 3 → y1 = 1
M2 = M/m2 = 21/7 = 3
M2 * y2 ≡ 1 mod m2 → 3 * y2 ≡ 1 mod 7 → 3 * y2 ≡ 1 mod 7 → y2 = 5
Вычисляем x0 = (7 * 1 * 2 + 3 * 5 * 3) mod 21 = 59 mod 21 = 17
Ответ: x = 17
Итог: x = (4, 10, 11, 17) mod 21
Задание 2
2.1 Зашифровать сообщение в криптосистеме Рабина
Для варианта – 5
№ |
p |
q |
5 |
43 |
7 |
Вариант N = 5
Сообщение M= 105205305
p =43, q=7
Зашифровка сообщения
1)Открытый ключ n = p*q = 43 * 7 = 301
2)Разбиваем сообщение М на блоки: 105, 205, 30, 3. Каждый блок сообщение Mi < n
3) Вычисляем криптограмму по формуле: Ci = Mi2 mod n
1: C1 = 105^2 mod 301 = 11025 mod 301 = 189
2: C2 = 205^2 mod 301 = 42025 mod 301 = 186
3: C3 = 30^2 mod 301 = 900 mod 301 = 298
4: C4 = 3^2 mod 301 = 9 mod 301 = 9
4) Получаем криптограмму: С = [189, 186, 298, 9]
Расшифровка второго блока сообщения C2 = 186:
Найдем квадратные корни уравнения:
При p = 43:
Решение уравнения x = √14 mod 43
p = 43, 43 = 4*10 + 3
1) x = √14 mod 43
43 - простое, 43 = 3 mod 4
x = a^((p+1)/4) mod p
x = 14^11 mod 43 = 10
2) x = -10 mod 43 = 33
Проверка:
1) 10^2 mod 43 = 100 mod 43 = 14 mod 43
2) 33^2 mod 43 = 1089 mod 43 = 14 mod 43
(10, 33)
При p = 7
Решение уравнения x = √4 mod 7
p = 7, 7 = 4*1 + 3
1) x = √4 mod 7
7 - простое, 7 = 3 mod 4
x = a^((p+1)/4) mod p
x = 4^2 mod 7 = 2
2) x = -2 mod 7 = 5
Проверка:
1) 2^2 mod 7 = 4 mod 7 = 4 mod 7
2) 5^2 mod 7 = 25 mod 7 = 4 mod 7
(2, 5)
Итог: r = 10, 33 mod 43 s = 2, 5 mod 7
Применим китайскую теорему об остатках:
Для всех случаев: М = 43*7 = 301
1-ый случай: 10 mod 43 и 2 mod 7
Находим Mi и yi:
M1 = M/m1 = 301/43 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 43 → 7 * y1 ≡ 1 mod 43 → y1 = 37
M2 = M/m2 = 301/7 = 43
M2 * y2 ≡ 1 mod m2 → 43 * y2 ≡ 1 mod 7 → 1 * y2 ≡ 1 mod 7 → y2 = 1
Вычисляем x0 = (7 * 37 * 10 + 43 * 1 * 2) mod 301 = 2676 mod 301 = 268
Ответ: x = 268
2-ой случай: 10 mod 43 и 5 mod 7
Находим Mi и yi:
M1 = M/m1 = 301/43 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 43 → 7 * y1 ≡ 1 mod 43 → y1 = 37
M2 = M/m2 = 301/7 = 43
M2 * y2 ≡ 1 mod m2 → 43 * y2 ≡ 1 mod 7 → 1 * y2 ≡ 1 mod 7 → y2 = 1
Вычисляем x0 = (7 * 37 * 10 + 43 * 1 * 5) mod 301 = 2805 mod 301 = 96
Ответ: x = 96
3-й случай: 33 mod 43 и 2 mod 7
Находим Mi и yi:
M1 = M/m1 = 301/43 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 43 → 7 * y1 ≡ 1 mod 43 → y1 = 37
M2 = M/m2 = 301/7 = 43
M2 * y2 ≡ 1 mod m2 → 43 * y2 ≡ 1 mod 7 → 1 * y2 ≡ 1 mod 7 → y2 = 1
Вычисляем x0 = (7 * 37 * 33 + 43 * 1 * 2) mod 301 = 8633 mod 301 = 205
Ответ: x = 205
4-ый случай: 33 mod 43 и 5 mod 7
Находим Mi и yi:
M1 = M/m1 = 301/43 = 7
M1 * y1 ≡ 1 mod m1 → 7 * y1 ≡ 1 mod 43 → 7 * y1 ≡ 1 mod 43 → y1 = 37
M2 = M/m2 = 301/7 = 43
M2 * y2 ≡ 1 mod m2 → 43 * y2 ≡ 1 mod 7 → 1 * y2 ≡ 1 mod 7 → y2 = 1
Вычисляем x0 = (7 * 37 * 33 + 43 * 1 * 5) mod 301 = 8762 mod 301 = 33
Ответ: x = 33
Итак, среди возможных исходов: 268, 96, 205, 33
Среди них присутствует исходный блок M2 = 205
2.2 Расшифровать криптограмму, в криптосистеме Рабина
Для вариант – 5
№ |
М |
С |
5 |
30 |
95 |
Криптограмма С = 95
Исходное сообщение М = 30
p = 23, q =7
Аналогично расшифровки сообщения из п. 2.1 вычислим:
r2 = 95 mod 23 s2 = 95 mod 7
Для r:
Решение уравнения x = √3 mod 23
p = 23, 23 = 4*5 + 3
1) x = √3 mod 23
23 - простое, 23 = 3 mod 4
x = a^((p+1)/4) mod p
x = 3^6 mod 23 = 16
2) x = -16 mod 23 = 7
Проверка:
1) 16^2 mod 23 = 256 mod 23 = 3 mod 23
2) 7^2 mod 23 = 49 mod 23 = 3 mod 23
(16, 7)
Для s:
Решение уравнения x = √4 mod 7
p = 7, 7 = 4*1 + 3
1) x = √4 mod 7
7 - простое, 7 = 3 mod 4
x = a^((p+1)/4) mod p
x = 4^2 mod 7 = 2
2) x = -2 mod 7 = 5
Проверка:
1) 2^2 mod 7 = 4 mod 7 = 4 mod 7
2) 5^2 mod 7 = 25 mod 7 = 4 mod 7
(2, 5)
Итог: x=16, 7 mod 23 x=2, 5 mod 7
Применив китайскую теорему об остатках имеем:
1-й: 16 mod 23 2 mod 7 => x=16
2-й: 16 mod 23 5 mod 7 => x = 131
3-й: 7 mod 23 2 mod 7 => x = 30
4-й: 7 mod 23 5 mod 7 => x = 145
Итак, имеем блоки: 16, 131, 30, 145
Среди данных сообщений имеется исходное M=30
Вывод
После проделанной работы закрепил знания, полученные на лекциях по темам «Квадратичные вычеты» и “Криптосистема Рабина”
