Мехмат, семестр 4
Программирование
Самостоятельная работа состоит в решении задач по темам,
которые обсуждаются в лекциях.
По каждой теме нужно решить одну задачу из предлагаемого списка.
Номер задачи равен номеру студента в журнале по модулю n,
где n — число задач по данной теме.
Весенний семестр 2024-25
-
Компьютерные сети. Обзор, классификация. Понятие протокола.
Уровневая модель описания сетевых протоколов. Примеры протоколов
физического уровня (CSMA/CD, Ethernet, Token Ring, DQDB).
Стек интернетовских протоколов TCP/IP. Программирование с
использованием интерфейса BSDI-сокетов.
-
Параллельное
программирование: нити (потоки, легковесные процессы)
и их синхронизация.
Элементы теории чисел
Кодирование с открытым ключом
и элементы теории чисел
Содержание лекции:
Презентация: теория чисел в криптографии
Файл numberth.py:
реализация базовых алгоритмов теории чисел на Python
-
Вычисление наибольшего общего делителя двух целых чисел
-
Расширенный алгоритм Евклида — представление наибольшего
общего делителя d целых чисел m, n
в виде линейной комбинации этих чисел с целыми коэффициентами:
d = u·m + v·n
-
Вычисление обратного элемента в кольце вычетов по модулю m
-
Алгоритм быстрого воззведения в степень
в кольце вычетов по модулю m
Список задач
-
Реализовать вероятностный тест простоты Миллера-Рабина.
-
Реализовать алгоритм для Китайской теоремы об остатках.
-
Факторизовать целое число с помощью ρ-алгоритма Полларда.
-
Факторизовать целое число с помощью p-1-алгоритма Полларда.
-
Вычислить квадратный корень из x в поле
Zp (p — простое число),
т.е. найти r такое, что
r2 ≡ x (mod p).
-
Необязательная задача (ее можно выбрать вместо
любой из перечисленных выше задач):
факторизовать целое число с помощью алгоритма Ленстра на
эллиптических кривых.
|