- •Содержание
- •Раздел 1 Применение комплексной системы защиты информации 7
- •Раздел 2 Применение программно-аппаратных средств защиты информации и систем условного доступа в системах радиосвязи и вещания 40
- •Пояснительная записка
- •Раздел 1 Применение комплексной системы защиты информации
- •Лабораторная работа № 1 Шифрование методом подстановки
- •Лабораторная работа № 2 Дешифрование методом подстановки
- •Лабораторная работа № 3 Шифрование методом перестановки
- •Лабораторная работа №4 Программная реализация схемы Файстеля
- •Лабораторная работа №5 Программная реализация шифра rsa
- •Лабораторная работа №6 Программная реализация шифра des
- •Лабораторная работа №7 Программная реализация md5
- •Раздел 2 Применение программно-аппаратных средств защиты информации и систем условного доступа в системах радиосвязи и вещания
- •Лабораторная работа № 1 Шифрование методом полиалфавитной подстановки
- •Лабораторная работа № 2 Дешифрование методом полиалфавитной подстановки
- •Лабораторная работа № 3 Шифрование методом гаммирования
- •Лабораторная работа № 4 Вычисление наибольшего делителя для двух чисел при помощи алгоритма Евклида
- •Лабораторная работа № 5 Программная реализация алгоритма шифрования гост
- •Лабораторная работа № 6 Программная реализация генератора простых чисел
- •Лабораторная работа № 7 Программная реализация алгоритма вычисления символа Лежандра
- •Лабораторная работа № 8 Программная реализация алгоритма вычисления символа Якоби
- •Лабораторная работа № 9 Программная реализация sha - 1
- •Критерии оценивания выполнения лабораторных работ по профессиональному модулю 03
- •Информационное обеспечение обучения
Лабораторная работа № 7 Программная реализация алгоритма вычисления символа Лежандра
Цель работы: используя алгоритм для вычисления символа Лежандра, составить программу вычисления символа Лежандра.
1 Краткие теоретические сведения
Пусть a – целое число и p, p> 2, – простое число. Символ Лежандра L(a,p) определяется равенством
0, если a ≡ 0 mod p,
L(a,p) = 1, если a – квадратичный вычет по модулю p,
-1, если a – квадратичный невычет по модулю p.
Иными словами, L(a, p) =1, если сравнение x2≡a mod p имеет решений, и L(a,p) = -1, если данное сравнение не имеет решений. В литературе символ Лежандра часто обозначается через следующим образом
Далее будем рассматривать случай, когда p не делит a, т.е. L(a,p) ≠0
Пример.
L(3, 11) = 1, так как сравнение
x2≡3 mod 11
имеет два решения
x1≡5 mod 11, x2≡-5 mod 11.
L(6, 7) = -1, так как сравнение
x2≡6 mod 7
не имеет решений.
Алгоритм вычисления символа Лежандра
1. Если число a отрицательно, то выделяем множитель L (-1, p);
2. Заменяем число a на остаток от деления числа a на p;
3. Раскладываем число a в произведение в простых сомножителей
a = a1α1a2α2...akαk;
если число на простые множители не разлагается, то переходим на шаг
4. Переходим к разложению
L(a, p) = L(a1, p)α1... L(ak, p)αk;
5. Отбрасываем множители с четным значением показателя αj, j ≤k ;
6. Вычисляем символ Лежандра L(aj, p)αj для aj= 2;
7. Если все символы Лежандра в выражении
L(a, p) = L(a1, p)α1... L(ak, p)αk
вычислены, то алгоритм вычисления L(a, p) завершаем. В противном случае для множителей L(aj, p)αj, у которых aj≠2, применяем закон взаимности
L(p, q) = -1[(p-1)/2][(q-1)/2]L(q, p).
Здесь полагается, что p= aj.
8. Переходим к шагу 1
Примечание. На каждом шаге процесс вычисления символа Лежандра может быть завершено. Это произойдет в том случае, если на каком-то шаге алгоритма, все числа αj, j≤k, окажутся равными 1, 2 или –1.
Пример. Вычислить L (68,113). Здесь a=68, p=113- простое число.
1. При a > 0 множитель L (-1, 113) отсутствует;
2. Так как 68 < 113, то остаток равен самому числу;
3. Раскладываем число а = 68 на простые множители 68 = 22×17;
4. Имеем
L(68, 113)= L(22×17, 113)= L(22, 113)L(17, 113)= [L(2, 113)]2L(17, 113);
5. Так как L(22, 113) = 1, то в разложении
L(68, 113)= [L(2, 113)]2L(17, 113)
отбрасываем множитель [L(2, 113)]2;
6. После выполнения шага 5 получаем
L(68, 113) = L(17, 113).
В полученном разложении отсутствует множитель L(2, 113);
7. Для множителя L(17, 113), применяя закон взаимности для a=17 и p=113, получаем
L(17, 113) = (-1)8×56L(113, 17) = L(113, 17).
8. В итоге имеем L(68, 113) = L(113, 17).
Далее переходим на шаг 1 и начинаем вычислять L(113, 17). Здесь a= 113 и p
=17 – простое число.
Вычисляем L(113,17)
1. При a> 0 множитель L(-1, 17) отсутствует;
2. Остаток от деления числа 113 на 17 равен 11, поэтому получаем
L (113, 17) = L(11, 17);
3. Число 11 – простое на множители не разлагается;
4. Так как 11 простое число, то переходим к шагу 7;
7. Для множителя L(11, 17), применяя закон взаимности для a=11 и p=17. Получаем L(11, 17) = (-1)5×8L (17, 11) = L(17, 11).
8. В итоге имеем L(113, 17) = L(17, 11).
Далее переходим на шаг 1 и начинаем вычислять
L(17, 11), здесь a= 17 и p=11 – простое число
Вычисляем L(17, 11).
1. При a> 0 множитель L(-1, 11) отсутствует;
2. Остаток от деления числа 17 на 11 равен 6;
3. Разлагаем число 6 на простые множители 6 = 2×3;
4. Имеем
L(6, 11) = L(2,11)L(3,11)
5. В разложении L(6, 11) множители с четным значением показателей отсутствуют, поэтому переходим к шагу 6;
6. Вычисляем значение L(2,11)
L(2,11) = [-1](α-1)/8= [-1]15= -1,
где
α= p2= 112= 121;
7. Для множителя L(3, 11), применяя закон взаимности для a=3 и p=11, получаем
L(3, 11) = (-1)1×5L(11, 3) = -L(11, 3).
8. В итоге имеем L(17, 11) = (-1)×[-L(11, 3)] = L(11,3).
Далее переходим на шаг 1 и начинаем вычислять L(11, 3), здесь a= 11, p= 3 –простое число.
Вычисляем L(11, 3).
1. При a> 0 множитель L(-1, 3) отсутствует;
2. Остаток от деления числа 11 на 3 равен 2, поэтому получаем
L(11, 3) = L(2, 3)
3. Число 2 – простое, на множители не разлагается;
4. Имеем
L(11, 3) = L(2,3)
5. В разложении L(11, 3) множители с четным значением показателей отсутствуют, поэтому переходим к шагу 6;
6. Вычисляем значение L(2,3)
L(2, 3) = [-1](α-1)/8= [-1]1= -1,
где α= p2= 32= 9;
Окончательно получаем, что L(68, 113) = -1.
Тем самым вычисление символа Лежандра L(68, 113) завершено. Значение символа Лежандра L(68, 113) = -1позволяет сделать вывод, что сравнение x2≡68 mod 113 не имеет решений.
2 Задание на лабораторную работу
Составить программу, производящую вычисление символа Лежандра. Язык программирования выбирается произвольно.
Осуществить вывод на экран или принтер полученных результатов.
Результаты работы оформить в виде отчета.
Содержание отчета: описание используемого метода, описание исходных данных, текст программы, результаты работы программы и выводы.
3 Содержание отчёта
Титульный лист;
Цель работы;
Краткие теоретические сведения;
Текст программы;
Результаты работы программы;
Выводы.
4 Контрольные вопросы
Перечислить основные виды атак на протоколы .
Назвать протоколы обмена секретами.
Назначение протокола аутентификации.
Назначение протокола аутентификации сообщений.
