МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саратовский государственный университет имени Н.Г. Чернышевского Факультет компьютерных наук и информационных технологий УТВЕРЖДАЮ ___________________________ "__" __________________20__ г. Рабочая программа дисциплины Теоретико-числовые методы в криптографии Специальность 090301 Компьютерная безопасность Специализация Математические методы защиты информации Квалификация выпускника Специалист Форма обучения очная Саратов, 2012 1. Цели освоения дисциплины Целью освоения дисциплины является овладение эффективными методами и алгоритмами, повышающими стойкость криптографических средств, это: - методы решения систем линейных уравнений над конечными полями; - алгоритмы арифметических операций с большими целыми числами; - вычисления в кольцах вычетов; - алгоритмы полиномиальной арифметики; - алгоритмы проверки простоты целых чисел; - методы факторизации чисел; - алгоритмы дискретного логарифмирования; - методы разложения многочленов на множители над конечными полями; - вычисления, использующие эллиптические кривые. 2. Место дисциплины в структуре ООП Данная учебная дисциплина входит в раздел «Профессиональный цикл. Базовая часть» ФГОС-3. Курс охватывает основные математические задачи, положенные в основу безопасности криптосистем с открытым ключом: разложение чисел на множители, дискретное логарифмирование, задачу об укладке ранца, а также базовые вычислительные алгоритмы в кольце целых чисел и в кольце вычетов. Для изучения дисциплины необходимы компетенции, знания, умения и готовности, сформированные у обучающихся в результате освоения курсов «Теория информации», «Математическая логика и теория алгоритмов», «Криптографические методы защиты информации». Логически и содержательно-методически данная дисциплина взаимосвязана со следующими курсами: «Криптографические протоколы», «Модели безопасности компьютерных систем», «Введение в криптоанализ», «Методы алгебраической геометрии в криптографии», 3 Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины у студента должны сформироваться или закрепиться следующие компетенции (ПК): способностью выявлять естественнонаучную сущность проблем, возникающих в ходе профессиональной деятельности, и применять соответствующий физико-математический аппарат для их формализации, анализа и выработки решения (ПК-1); способностью применять математический аппарат, в том числе с использованием вычислительной техники, для решения профессиональных задач (ПК-2); способностью понимать сущность и значение информации в развитии современного общества, применять достижения современных информационных технологий для поиска и обработки больших объемов информации по профилю деятельности в глобальных компьютерных системах, сетях, в библиотечных фондах и в иных источниках информации (ПК-3) способностью работать с программными средствами прикладного, системного и специального назначения (ПК-8); способностью использовать языки и системы программирования, инструментальные средства для решения различных профессиональных, исследовательских и прикладных задач (ПК-9); способностью формулировать результат проведенных исследований в виде конкретных рекомендаций, выраженных в терминах предметной области изучавшегося явления (ПК-10); способностью готовить научно-технические отчеты, обзоры, публикации по результатам выполненных работ (ПК-17); В результате изучения дисциплины обучающийся должен Знать: методы и средства решения алгебраических и теоретико-числовых задач, возникающих при разработке и исследовании криптографических методов и средств защиты информации; Уметь: применять алгоритмы проверки чисел и многочленов на простоту, построения больших простых чисел, разложения чисел и многочленов на множители, дискретного логарифмирования в конечных полях; Владеть: простейшими подходами к анализу безопасности криптографических протоколов; навыками эффективного вычисления в кольцах вычетов и в кольцах многочленов. 4. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 5 зачетных единиц 180 часов № п/п 1. 2. Раздел дисциплины Целочисленная арифметика многократной точности Дискретное преобразование Фурье С Недел е я м семес е тра с т р Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) 9 1 Ле:2 9 2 Ле:2 : Ла::4 С:6 Ла::4 С:6 Формы текущего контроля успеваемост и (по неделям семестра) Формы проме жуточой атте стации (по семестрам) 3. 4. 5. 6. 7. 8. 9. 10. Решение систем линейных уравнений над конечными полями: Проверка чисел на простоту и построение больших простых чисел Факторизация целых чисел с экспоненциальной сложностью Факторизация целых чисел с субэкспоненциальной сложностью. Применение эллиптических кривых для проверки простоты и. факторизации. Алгоритмы дискретного логарифмирования в конечном поле. Протокол Диффи-Хэллмана Факторизация многочленов над конечными полями 9 3 Ле:2 Ла:2 С:4 9 4-6 Ле:6 Ла:6 С:8 9 7-8 Ле:4 Ла:4 С:6 9 9-10 Ле:4 Ла:4 С:6 9 11-12 Ле:4 Ла:2 С:6 9 13-14 Ле:4 Ла:2 С:10 9 15-16 Ле:4 Ла: 4 С:7 Элементы теории решеток. Ранцевые алгоритмы шифрования с открытым ключом Промежуточная аттестация 9 17-18 Ле:2 Ла::2 С:8 Контрольная работа №1 на 3 неделе Контрольная работа №2 на 16неделе Экзамен 9 Итого: Ле:34 Ла:34 С:67 45 Содержание учебной дисциплины 1. Целочисленная арифметика многократной точности Арифметические операции с целыми числами Некоторые алгоритмы модулярной арифметики 2. Дискретное преобразование Фурье Вычисление дискретного преобразования Фурье Дискретное преобразование Фурье и умножение многочленов Дискретное преобразование Фурье и деление многочленов Применение дискретного преобразования Фурье в алгоритме Полларда-Штрассена 3. Решение систем линейных уравнений над конечными полями Решение систем линейных уравнений в целых числах Гауссово и структурированное гауссово исключение Алгоритм Ланцоша Алгоритм Видемана 4. Проверка чисел на простоту и построение больших простых чисел 4.1. Методы проверка чисел на простоту 4.1.1. Решето Эратосфена 4.1.2. Критерий Вильсона 4.1.3. Тест на основе малой теоремы Ферма 4.1.4. Свойства чисел Кармайкла 4.1.5. Тест Соловея-Штрассена 4.1.6. Тест Рабина-Миллера 4.1.7. Полиномиальный тест распознавания простоты 4.2. Построение больших простых чисел 4.2.1. Критерий Люка 4.2.2. Теорема Поклингтона 4.2.3. Теорема Диемитко 4.2.4. Метод Маурера 4.2.5. Метод Михалеску 4.2.6. (п+1)-методы 4.2.7. Числа Мерсенна 5. Факторизация целых чисел с экспоненциальной сложностью 5.1. Метод Ферма 5.2. -1- метод Полларда 5.3. - метод Полларда 5.4. Алгоритм Полларда-Штрассена 5.5. Методы Шенкса 6. Факторизация целых чисел с субэкспоненциальной сложностью 6.1. Алгоритм Диксона 6.2. Алгоритм Брилхарта-Моррисона 6.3. Метод квадратичного решета 7. Применение эллиптических кривых для проверки простоты и факторизации (выносится на курсовуюаботу). 7.1. Эллиптические кривые и их свойства 7.2. Алгоритм Ленстры для факторизации целых чисел с помощью эллиптических кривых 7.3. Вычисление порядка группы точек эллиптической кривой над конечным полем 7.4. Тестирование чисел на простоту с помощью эллиптических кривых 8. Алгоритмы дискретного логарифмирования в конечном поле. Протокол Диффи – Хеллмана: [2], гл.7. 8.1. Алгоритм Гельфонда 8.2. Алгоритм Полига - Хеллмана 8.3. Алгоритм Хеллмана – Рейнери 8.4. - метод Полларда для дискретного логарифмирования 9. Факторизация многочленов над конечными полями: [4],4.6.2. Вероятностный алгоритм решения алгебраических уравнений в конечных полях Алгоритм Берлекэмпа Метод Кантора – Цассенхауза Вероятностный алгоритм проверки неприводимости многочленов над конечными полями 10. Элементы теории решеток. Ранцевые алгоритмы шифрования с открытым ключом: [2], гл.8. Решетки и базисы 10.2. Алгоритм Ленстры-Ленстры-Ловаша. 10.3. Задача об укладке ранца, Перечень алгоритмов, выносимых на лабораторные работы: 1. Целочисленная арифметика многократной точности 1. Арифметические операции с целыми числами 2. Некоторые алгоритмы модулярной арифметики 2. Дискретное преобразование Фурье 1. Дискретное преобразование Фурье и умножение многочленов 2. Дискретное преобразование Фурье и деление многочленов 3. Применение дискретного преобразования Фурье в алгоритме Полларда-Штрассена 3. Решение систем линейных уравнений над конечными полями 1. Гауссово и структурированное гауссово исключение 2. Алгоритм Ланцоша 3. Алгоритм Видемана 4. Проверка чисел на простоту и построение больших простых чисел Проверка чисел на простоту 1.Решето Эратосфена 2. Критерий Вильсона 3. Тест на основе малой теоремы Ферма 4. Тест Соловея-Штрассена 5. Тест Рабина-Миллера 6. Полиномиальный тест распознавания простоты Построение больших простых чисел 1. Критерий Люка 2. Теорема Поклингтона 3. Теорема Диемитко 4. Метод Маурера 5. Метод Михалеску 6. (п+1)-методы 5. Факторизация целых чисел с экспоненциальной сложностью 1. Метод Ферма 2. 3. 4. 5. -1- метод Полларда - метод Полларда Алгоритм Полларда-Штрассена Методы Шенкса 6. Факторизация целых чисел с субэкспоненциальной сложностью 6. Алгоритм Диксона 7. Алгоритм Брилхарта-Моррисона 8. Метод квадратичного решета 7. Применение эллиптических кривых для проверки простоты и факторизации (для курсовых работ) 1. Алгоритм Ленстры для факторизации целых чисел с помощью эллиптических кривых 2. Тестирование чисел на простоту с помощью эллиптических кривых 8. Алгоритмы дискретного логарифмирования в конечном поле. Протокол Диффи - Хеллмана. 1. Алгоритм Гельфонда 2. Алгоритм Полига - Хеллмана 3. Алгоритм Хеллмана – Рейнери 4. - метод Полларда для дискретного логарифмирования 9. Факторизация многочленов над конечными полями 1.Вероятностный алгоритм решения алгебраических уравнений в конечных полях 2.Алгоритм Берлекэмпа 3.Метод Кантора – Цассенхауза 4.Вероятностный алгоритм проверки неприводимости многочленов над конечными полями 10. Элементы теории решеток. Ранцевые алгоритмы шифрования с открытым ключом 1. Алгоритм Ленстры-Ленстры-Ловаша. 2. Задача об укладке ранца, План выполнения лабораторных работ: При выполнении лабораторных работ изучается теория согласно представленным ниже описаниям, строится алгоритм и реализуется тестовый пример. При выполнении работы «Проверка чисел на простоту» студенты должны написать программы, реализующие тесты Ферма, Соловэя — Штрассена и Миллера — Рабина убедиться в работоспособности алгоритмов (учитывая вероятностный характер тестирования), исследовать алгоритмы с точки зрения количества ошибок, допускаемых ими в зависимости от вида тестируемого числа и от количества прогонов теста, обработать полученные статистические данные, а также измерить и сравнить время работы программ [2], глава 5. Образцы выполнения лабораторных работ в [2],Приложение 1. В работу «Разложение чисел на множители» включены вероятностные методы разложения. Эти методы сравниваются по двум направлениям: специальные (Методы Полларда), эффективность которых существенно зависит от вида составного числа, и универсальные методы (Факторизации Ферма и факторных баз, Квадратичного решета, Цепных дробей)[2], глава 6. Образцы выполнения лабораторных работ приведены в [2],Приложение 1. Язык программирования - СИ++, а также рекомендуется язык Python, имеющий встроенную поддержку «длинной арифметики» и пакеты с реализацией низкоуровневых криптографических хэш-функций. 5. Образовательные технологии Рекомендуемые образовательные технологии: встречи с представителями ведущих отечественных фирм по производству криптографической продукции, выступления экспертов и специалистов перед студентами, ознакомительные беседы с представителями потенциальных работодателей. 6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины. 7. Учебно-методическое дисциплины и информационное обеспечение Перечень основной и дополнительной литературы а) основной: Вернер М. Основы кодирования. Учебник для ВУЗов. Перевод с нем. Д.К.Зигангирова./М.:Техносфера, 2006.-286 c. b) дополнительной: 1. Черемушкин А. В. Лекции по арифметическим алгоритмам в криптографии. ISBN 5-94057-060-7 Москва, МЦНМО, 2002. 2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979. 3. Ноден П., Китте К. Алгебраическая алгоритмика. - М.: Мир, 1999. в) программное обеспечение и Интернет-ресурсы: 4. Маховенко Е.Б. Теоретико-числовые методы в криптографии. М.:Гелиос APB, 2006. http://ibks.ftk.spbstu.ru/publications/book_details.php?bc_tovar_id=20 5. Стандартное программное обеспечение компьютерного класса, пакет “Mathematica” компьютерной алгебры, программный продукт «КриптоПро CSC», доступ к сети Интернет, пакет PGP. 8. Материально-техническое обеспечение дисциплины Лекционная аудитория с возможностью демонстрации электронных презентаций при уровне освещения, достаточном для работы с конспектом. Для выполнения лабораторных работ – компьютерный класс с установленной системой С++. Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и Примерной ООП ВПО по специальности 090301 «Компьютерная безопасность» и специализации «Математические методы защиты информации». Автор доцент А.Н.Гамова Программа одобрена на заседании кафедры теоретических основ компьютерной безопасности и криптографии от «___» __________2012 года, протокол № ___ Зав. кафедрой теоретических основ компьютерной безопасности и криптографии профессор Декан факультета компьютерных наук и информационных технологий доцент В.Н.Салий А.Г.Федорова