Курс будет покрывать следующие темы:
- Предварительные сведения из теории чисел (полная и приведенная системы вычетов, теорема Вильсона, малая теорема Ферма, функция и теорема Эйлера, китайская теорема об остатках, алгоритм Гарнера, квадратичные вычеты, символя Лежандра и Якоби, показатель числа по модулю, первообразный корень).
- Простейшие криптосистемы и их взлом (Сцитала, шифр Цезаря, квадрат Виженера, шифр Вернама, Энигма)
- Зачем все это нужно (схема Диффи-Хеллмана, шифры Шамира и Эль-Гамаля, RSA, функция Рабина).
- Проверка чисел на простоту (тест на основе МТФ, тесты Соловея-Штрассена, Рабина-Миллера и Миллера, числа Кармайкла).
- Доказательство простоты и построение больших простых чисел (n-1 и n+1 методы, метод Маурера, алгоритм Агравала-Кайала-Саксены)
- Дискретное логарифмирование (шаг младенца-шаг великана, алгоритм Полига-Хеллмана, алгоритм исчисления порядка).
- Электронные протоколы для популярных задач (разделение секрета, ставки, жребий, раздача карт, аутентификация, электронная подпись и т.д.).
- Факторизация целых чисел (метод Ферма, метод Шермана-Лемана, ро-метод Полларда, алгоритм Полларда-Штрассена, метод Диксона).
- Выбор параметров в RSA