Выпускник должен обладать следующими профессиональными

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Саратовский государственный университет имени Н.Г. Чернышевского
Факультет компьютерных наук и информационных технологий
УТВЕРЖДАЮ
___________________________
"__" __________________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 года,
протокол № ___
Зав. кафедрой
теоретических основ
компьютерной безопасности и криптографии
профессор
Декан факультета
компьютерных наук
и информационных технологий
доцент
В.Н.Салий
А.Г.Федорова
Download