Федеральное государственное автономное образовательное учреждение высшего профессионального образования

advertisement
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет компьютерных наук
Департамент программной инженерии
Рабочая программа дисциплины
Научно-исследовательский семинар «Методы и алгоритмы защиты информации»
для образовательной программы «Программная инженерия»
направления подготовки 09.03.04 «Программная инженерия»
уровень - бакалавр
Разработчик программы
доцент, к.ф.-м.н. Набебин А.А. anabebin@hse.ru
Одобрена на заседании департамента программной инженерии «___»____________ 2015 г.
Руководитель департамента Авдошин С.М. ________________
Рекомендована Академическим советом образовательной программы
«___»____________ 2015 г., № протокола_________________
Утверждена «___»____________ 2015 г.
Академический руководитель образовательной программы
Шилов В.В. _________________
Москва, 2015
Настоящая программа не может быть использована другими подразделениями университета
и другими вузами без разрешения подразделения-разработчика программы.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
1
Область применения и нормативные ссылки
Настоящая программа научно-исследовательского семинара «Методы и алгоритмы
защиты информации» устанавливает минимальные требования к знаниям и умениям студента и
определяет содержание и виды учебных занятий и отчетности.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных
ассистентов и студентов образовательной программы «Программная инженерия» направления
подготовки 09.03.04 «Программная инженерия», изучающих дисциплину «Методы и алгоритмы
защиты информации».
Программа разработана в соответствии с:
 Образовательным стандартом Национального исследовательского университета
«Высшая школа экономики» по направлению 09.03.04 «Программная инженерия»;
 Образовательной программой «Программная инженерия» направления подготовки
09.03.04 «Программная инженерия»;
 Рабочим учебным планом по направлению 09.03.04 «Программная инженерия»
подготовки бакалавра, утвержденным в 2015г.
2
Цели освоения дисциплины
Цели освоения дисциплины «Методы и алгоритмы защиты информации»:





3
формирование у студентов профессиональных компетенций, связанных с общей
методологией научного исследования;
формирование у студентов профессиональных компетенций, связанных с частными
аспектами анализа, исследования и разработки криптографических ресурсноэффективных комбинированных протоколов (алгоритмов);
приобретение практических навыков самостоятельного научного исследования в области
создания эффективных криптосистем для решения задач защиты информации;
развитие умений, основанных на полученных теоретических знаниях, позволяющих на
творческом и репродуктивном уровне применять и создавать эффективные
криптографические алгоритмы для решения задач защиты информации;
получение
студентам
навыков
самостоятельной
исследовательской
работы,
предполагающей изучение специфических методов анализа криптоалгоритмов,
инструментов и средств, необходимых для решения актуальной, в аспекте программной
инженерии, задачи выбора рациональных алгоритмов, в зависимости от особенностей
применения разрабатываемых защищающих средств.
Компетенции обучающегося, формируемые в результате освоения
дисциплины
В результате освоения дисциплины студент должен:
 Знать:
— необходимые сведения из модулярной арифметики (теории сравнений) целых
чисел;
2
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
— основные понятия абстрактной алгебры, теоремы и алгоритмы в конечных
группах, (полиномиальных) кольцах и полях;
— основные алгоритмы модулярной арифметики целых чисел и полиномов
(НОД, НОК, модулярная степень, тесты на простоту натуральных чисел,
неприводимость и примитивность полиномов в конечных полиномиальных
полях);
— основные шифровальные систем и электронные цифровые подписи (ЭЦП) с
открытым ключом (RSA, Эль-Гамаля, DSA), основанные на фактах
модулярной алгебры целых чисел и конечных полиномиальных полей;
— подходы к разработке шифросистем и ЭЦП с открытым ключом основанных
на группах точек эллиптических кривых, на группах кос, в мнимых
квадратичных полях, в частично упорядоченных множествах;
 Уметь:
— оценивать компьютерные криптографические протоколы (алгоритмы) с
использованием комплексных критериев качества, в том числе оценивать
ресурсную эффективность алгоритмов;
— пользоваться базовыми умениями и навыками ведения самостоятельных
исследований
(алгоритмов);
на
примере
анализа
криптографических
протоколов
— пользоваться теорией защиты информации для решения прикладных задач
информатики;
— выступать с научными докладами, оформлять содержательные презентации и
корректно вести научные дискуссии.
 Иметь навыки (приобрести опыт):
— оценки трудоемкости криптографических протоколов;
— экспериментального исследования программных реализаций
криптографических алгоритмов;
— в поиске подходов к разработке эффективных комбинированных
криптографических алгоритмов на основе их сравнительного анализа и
умение применять их при разработке алгоритмов решения практических
задач защиты информации.
3
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
3.1. В результате освоения программы бакалавриата у выпускника должны быть сформированы
универсальные и профессиональные компетенции.
3.1.1. Выпускник, освоивший программу бакалавриата должен обладать следующими
универсальными компетенциями (УК):
9
Код компетенции по порядку
Код компетенции по ЕКК
Формулировка компетенции
УК-1
СК- Б 1
УК-2
СК-Б3
УК-3
СК-Б4
УК-4
СК-Б5
УК-5
СК-Б6
УК-6
СК-Б7
УК-7
УК-8
СК-Б8
СК-Б9
УК-9
СК-Б10
Способен учиться,
приобретать новые знания,
умения, в том числе в области,
отличной от
профессиональной
Способен выявлять научную
сущность проблем в
профессиональной области.
Способен решать проблемы в
профессиональной
деятельности на основе
анализа и синтеза
Способен оценивать
потребность в ресурсах и
планировать их использование
при решении задач в
профессиональной
деятельности
Способен работать с
информацией: находить,
оценивать и использовать
информацию из различных
источников, необходимую для
решения научных и
профессиональных задач (в
том числе на основе
системного подхода)
Способен вести
исследовательскую
деятельность, включая анализ
проблем, постановку целей и
задач, выделение объекта и
предмета исследования, выбор
способа и методов
исследования, а также оценку
его качества
Способен работать в команде
Способен грамотно строить
коммуникацию, исходя из
целей и ситуации общения
Способен критически
оценивать и переосмыслять
накопленный опыт
4
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
УК-10
(собственный и чужой),
рефлексировать
профессиональную и
социальную деятельность
Способен осуществлять
производственную или
прикладную деятельность в
международной среде
СК-Б11
3.1.2. Выпускник, освоивший программу бакалавриата должен обладать следующими
профессиональными компетенциями:
Код компетенции по порядку
Код компетенции по ЕКК
А) инструментальные компетенции
в научно-исследовательской деятельности
ПК-1
ИК-1
ПК-2
ИК-2
ПК-3
ИК-3
ПК-4
ИК-4
ПК-5
ИК-5
Формулировка компетенции
Способен применять
основные концепции,
принципы, теории и факты,
связанные с информатикой
при решении научноисследовательских задач;
Способен к формализации в
своей предметной области с
учетом ограничений
используемых методов
исследования
Способен использовать
методы и инструментальные
средства исследования
объектов профессиональной
деятельности
Способен обосновать
принимаемые проектные
решения, осуществлять
постановку и выполнение
экспериментов по проверке
их корректности и
эффективности
Способен готовить
презентации, оформлять
научно-технические отчеты
по результатам выполненной
работы, публиковать
результаты исследований в
виде статей и докладов на
научно-технических
конференциях
в аналитической деятельности
ПК-6
ИК-6
Способен формализовать
5
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
ПК-7
ИК-7
ПК-8
ИК-8
в проектной деятельности
ПК-9
ИК-9
ПК-10
ИК-10
ПК-11
ИК-11
ПК-12
ИК-12
ПК-13
ИК-13
ПК-14
ИК-14
предметную область
программного проекта и
разработать спецификации
для компонентов
программного продукта
Способен выполнить
начальную оценку степени
трудности, рисков, затрат и
сформировать рабочий
график
Способен готовить
коммерческие предложения с
вариантами решения
Способен создавать
программное обеспечение для
ЭВМ и систем различной
архитектуры
Способен проектировать,
конструировать и тестировать
программные продукты
Способен читать, понимать и
выделять главную идею
прочитанного исходного
кода, документации
Способен моделировать,
анализировать и использовать
формальные методы
конструирования
программного обеспечения
Способен оценивать
временную и емкостную
сложность программного
обеспечения
Способен создавать
программные интерфейсы
в технологической деятельности
ПК-15
ИК-15
ПК-16
Способен использовать
операционные системы,
сетевые технологии, средства
разработки программного
интерфейса, применять языки
и методы формальных
спецификаций, системы
управления базами данных
Способен использовать
различные технологии
разработки программного
обеспечения
ИК-16
в производственной деятельности
ПК-17
ИК-17
Способен применять
6
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
ПК-18
ИК-18
ПК-19
ИК-19
основные методы и
инструменты разработки
программного обеспечения
Способен оценивать
концепции и атрибуты
качества программного
обеспечения (надежности,
безопасности, удобства
использования), в том числе,
роли людей, процессов,
методов, инструментов и
технологий обеспечения
качества
Способен понимать
стандарты и модели
жизненного цикла
в педагогической деятельности
ПК-20
ИК-20
ПК-21
Способен проводить
практические занятия с
пользователями программных
систем
Способен оформлять
методические материалы и
пособия по применению
программных систем
ИК-21
в организационно-управленческой деятельности
ПК-22
ИК-22
ПК-23
ИК-23
ПК-24
ИК-24
ПК-25
ИК-25
в сервисно-эксплуатационной деятельности
7
Способен применять
классические концепции и
модели менеджмента в
управлении проектами
Способен применять методы
управления процессами
разработки требований,
оценки рисков, приобретения,
проектирования,
конструирования,
тестирования, эволюции и
сопровождения
Способен применять основы
групповой динамики,
психологии и
профессионального
поведения, при работе в
команде разработчиков
программного обеспечения
Способен использовать
методы контроля проекта и
версий при создании
программного обеспечения
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
ПК-26
ИК-26
Способен применять
основные концепции и
модели эволюции и
сопровождения
программного обеспечения
ПК-27
ИК-27
Способен к эволюционной
деятельности, как с
технической точки зрения,
так и с точки зрения бизнеса
(работа с унаследованными
системами, возвратное
проектирование,
реинженеринг, миграция и
рефакторинг)
Б) общепрофессиональные социально-личностные компетенции
ПК-28
СЛК-Б1
Способен придерживаться
правовых и этических норм в
профессиональной
деятельности
ПК-29
СЛК-Б2
Способен осознавать и
учитывать социокультурные
различия в
профессиональной
деятельности
ПК-30
СЛК-Б3
Способен к осознанному
целеполаганию,
профессиональному и
личностному развитию
ПК-31
СЛК-Б4
Способен к социальному
взаимодействию, к
сотрудничеству и
разрешению конфликтов.
ПК-32
СЛК-Б5
Способен поддерживать
общий уровень физической
активности и здоровья для
ведения активной
социальной и
профессиональной
деятельности
ПК-33
СЛК-Б6
Способен понимать и
анализировать
мировоззренческие,
социально и личностно
значимые проблемы и
процессы, происходящие в
обществе.
ПК-34
СЛК-Б7
Способен социальноответственно принимать
решения в нестандартных
ситуациях профессиональной
деятельности.
8
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
ПК-35
СЛК-Б8
ПК-36
СЛК-Б9
4
Способен гибко
адаптироваться к различным
профессиональным
ситуациям, проявлять
творческий подход,
инициативу и настойчивость
в достижении целей
профессиональной
деятельности и личных
Способен ориентироваться в
системе общечеловеческих
ценностей и ценностей
мировой и российской
культуры, понимает значение
гуманистических ценностей
и ценностей мировой и
российской культуры,
понимает значение
гуманистических ценностей
для сохранения и развития
современной цивилизации.
Место дисциплины в структуре образовательной программы
В соответствии с рабочим учебным планом по направлению «Программная инженерия»
научно-исследовательский семинар «Методы и алгоритмы защиты информации» проводится со
студентами первого курса бакалавриата в 2-ом – 4-ом модулях.
Изучение данной дисциплины базируется на знаниях, полученных студентами при
освоении учебных дисциплин «Дискретная математика», «Программирование».
Дисциплина является основой для последующего изучения дисциплин: «Спецификация
программных систем», научно-исследовательского семинара «Верификация программных
систем».
9
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
Тематический план учебной дисциплины
5
№
1
2
3
4
5
6
6
Название темы
Модулярная арифметика
(теория сравнений) целых
чисел. Теоремы и алгоритмы
в конечных группах,
(полиномиальных) кольцах и
полях.
Основные алгоритмы
модулярной арифметики
целых чисел и полиномов
(НОД, НОК, модулярная
степень, тесты на простоту
натуральных чисел,
неприводимость и
примитивность полиномов в
конечных полиномиальных
полях).
Квадратичные вычеты.
Символы Лежандра и Якоби.
Примитивные корни и
индексы. Дискретный
логарифм.
Криптосистемы с открытым
ключом: RSA, ЭльГамаля,
DSA.
Группы точек эллиптических
кривых, теории кос, решеток
частично упорядоченных
множеств в криптосистемах
с открытым ключом
Блоковые и потоковые
шифры.
Зкзамен
Итого:
Всего часов
по
дисциплине
Аудиторные часы
Лекции
Практические
занятия
Самостоятельная
работа
16
8
8
20
10
10
16
8
8
18
8
10
22
10
12
20
10
10
2
114
2
56
58
Формы контроля знаний студентов
Тип контроля
Форма контроля
модули
2
3
*
*
1
Текущий
(неделя)
Итоговый
Домашнее задание
Экзамен
Параметры
4
*
*
10
Абстрактная алгебра,
криптопротоколы
60 мин.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
6.1. Порядок формирования оценок по дисциплине
Оценки по всем формам контроля выставляются по 10-ти балльной шкале.
Оценки текущего и итогового контроля складываются из следующих элементов.
Текущий контроль
Оценка Тк в 10-бальной системе ставится за качество подготовки и работы на семинарских
занятиях (доклады, презентации, оппонирование, критические выступления, выполнение
домашних заданий); при непосещении занятий ставится оценка «0».
Индивидуальное домашнее задание
Задание сдается в виде еженедельных отчетов в письменной и в электронной форме. Каждая
задача индивидуального задания оценивается в 10-ти бальной системе. Позже сданное
домашнее задание оценивается ниже, чем задание во время сданное. Все задачи домашнего
задания должны быть сданы полностью. Оценка Д выполненного домашнего задания есть
среднее арифметическое всех оценок за каждую задачу.
Итоговый контроль
Экзамен в конце четвертого модуля проходит в форме собеседования, при пропуске экзамена
ставится оценка «0».
накопленная оценка Н за дисциплину по 10-балльной шкале формируется как взвешенная сумма:
Н = 0.2Тк + 0.8 Дз,
результирующая оценка за дисциплину К по 10-балльной шкале формируется как взвешенная
сумма:
K = 0.8 Н + 0.2 З, где Тк, Дз, З есть 10-балльные оценки за текущий контроль, домашнее
задание и за экзамен. Перевод в пятибалльную оценку осуществляется в соответствии со
следующей таблицей.
6.2 Таблица соответствия оценок по десятибалльной и пятибалльной системам
По десятибалльной шкале
1 – неудовлетворительно
2 – очень плохо
3 – плохо
4 – удовлетворительно
5 – весьма удовлетворительно
6 – хорошо
7 – очень хорошо
8 – почти отлично
9 – отлично
10 – блестяще
7
По пятибалльной шкале
неудовлетворительно – 2
удовлетворительно – 3
хорошо – 4
отлично – 5
Содержание дисциплины
Тема 1. Модулярная арифметика (теория сравнений) целых чисел. Теоремы и алгоритмы в
конечных группах, (полиномиальных) кольцах и полях.
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. c. [45-52].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
11
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку НИУ ВШЭ)
Дополнительная литература
1. Капитонова Ю.В., Кривой С.Л., Летичевский А.А., Луцкий Г.М. Лекции по дискретной
математике. / СПб.: БХВ-Петербург, 2004.
2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1:
Синтаксический анализ / М.: Мир, 1978.
3. Набебин А.А., Кораблин Ю.П. Математическая логика и теория алгоритмов. М.:
Научный мир, 2008. 343с. (Доступна в библиотеке НИУ ВШЭ).
4. Набебин А.А. Дискретная математика. М.: Научный мир, 2010. 512с. (Доступна в
библиотеке НИУ ВШЭ).
5. Набебин А.А. Сборник заданий по дискретной математике. М.: Научный мир, 2009.
280с. (Доступна в библиотеке НИУ ВШЭ).
Тема 2. Основные алгоритмы модулярной арифметики целых чисел и полиномов (НОД, НОК,
модулярная степень, тесты на простоту натуральных чисел, неприводимость и примитивность
полиномов в конечных полиномиальных полях).
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. c. [53-183].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку ГУ ВШЭ)
Дополнительная литература
1. Дехтярь М.И. Лекции по дискретной математике. / М.: Интернет-Университет
Информационных Технологий; БИНОМ. Лаборатория знаний, 2007.
2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1:
Синтаксический анализ / М.: Мир, 1978.
3. Набебин А.А., Кораблин Ю.П. Математическая логика и теория алгоритмов. М.:
Научный мир, 2008. 343с. (Доступна в библиотеке НИУ ВШЭ).
4. Набебин А.А. Дискретная математика. М.: Научный мир, 2010. 512с. (Доступна в
библиотеке НИУ ВШЭ).
5. Набебин А.А. Сборник заданий по дискретной математике. М.: Научный мир, 2009.
280с. (Доступна в библиотеке НИУ ВШЭ).
Тема 3. Квадратичные вычеты. Символы Лежандра и Якоби. Примитивные корни и индексы.
Дискретный логарифм.
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. c. [185-317].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку ГУ ВШЭ)
Дополнительная литература
1. Капитонова Ю.В., Кривой С.Л., Летичевский А.А., Луцкий Г.М. Лекции по дискретной
математике. / СПб.: БХВ-Петербург, 2004.
2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1:
Синтаксический анализ / М.: Мир, 1978.
12
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
3. Набебин А.А., Кораблин Ю.П. Математическая логика и теория алгоритмов. М.:
Научный мир, 2008. 343с. (Доступна в библиотеке НИУ ВШЭ).
4. Набебин А.А. Дискретная математика. М.: Научный мир, 2010. 512с. (Доступна в
библиотеке НИУ ВШЭ).
5. Набебин А.А. Сборник заданий по дискретной математике. М.: Научный мир, 2009.
280с. (Доступна в библиотеке НИУ ВШЭ).
Тема 4. Криптосистемы RSA, ЭльГамаля, DSA..
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. c. [319-421].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку ГУ ВШЭ)
Дополнительная литература
1. Капитонова Ю.В., Кривой С.Л., Летичевский А.А., Луцкий Г.М. Лекции по дискретной
математике. / СПб.: БХВ-Петербург, 2004.
2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1:
Синтаксический анализ / М.: Мир, 1978.
3. Набебин А.А., Кораблин Ю.П. Математическая логика и теория алгоритмов. М.:
Научный мир, 2008. 343с. (Доступна в библиотеке НИУ ВШЭ).
4. Набебин А.А. Дискретная математика. М.: Научный мир, 2010. 512с. (Доступна в
библиотеке НИУ ВШЭ).
5. Набебин А.А. Сборник заданий по дискретной математике. М.: Научный мир, 2009.
280с. (Доступна в библиотеке НИУ ВШЭ).
Тема 5. Группы точек эллиптических кривых, теории кос, решеток частично упорядоченных
множеств
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. c.[319-420].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку ГУ ВШЭ)
Дополнительная литература
1. Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. / М.: Мир, 1983.
с.[129-141].
2. Булос Дж., Джеффри Р. Вычислимость и логика. М., Мир, 1994. с. 12-35.
3. Набебин А.А., Кораблин Ю.П. Математическая логика и теория алгоритмов. М.:
Научный мир, 2008. 343с. (Доступна в библиотеке НИУ ВШЭ).
Тема 6. Блоковые и потоковые шифры. Зачет.
Основная литература
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008. с. [319-420].
2. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996.
13
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
3. Singh A. Elements of Computation Theory. Springer-Verlag, 2009. – 422 p. (доступна через
электронную библиотеку ГУ ВШЭ)
Дополнительная литература
1. Кузюрин Н.Н., Фомин С.В. Эффективные алгоритмы и сложность вычислений. – M.:
МФТИ, 2007. http://discopal.ispras.ru/ru.book-advanced-algorithms.htm
2. Разборов А.А. О сложности вычислений — Математическое просвещение — сер. 3, вып.
3, 1991 г. http://www.mccme.ru/free-books/matpros/i4127141.pdf.zip
8
Образовательные технологии
Работа на практических занятиях предполагает разработку алгоритмов, их
экспериментальное исследование и сравнение результатов с теоретическими оценками
алгоритмов. Домашнее индивидуальное задание предполагает самостоятельный анализ
ресурсной эффективности двух-трех выбранных алгоритмов решения определённой задачи и
сравнительный анализ этих алгоритмов с целью формулировки рекомендаций по их
применению в зависимости от особенностей проблемной области применения.
9
Оценочные средства для текущего контроля и аттестации студента
9.1 Тематика заданий текущего контроля
Домашнее задание
1. Даны целые числа a = 100+N ( N есть номер фамилии студента в аудиторном журнале) и
b=11. Найти целые, q1, q2, r1, r2, 0  r1, r2 < b, для которых a = bq1 + r1, –a = bq2 + r2.
2. Записать данные числа в восьмеричной, шестеричной, десятичной системах счисления.
3. Записать десятичные числа n=100+N, m=200+N в семеричной и двоичной системах
счисления. N есть номер фамилии студента в аудиторном журнале.
4. Перемножить числа из задачи 3 в системе счисления по основанию семь.
5. В двоичной системе счисления разделить число из задачи 2 на число 1011012.
6. Найти число цифр в десятичном числе n по основаниям 2, 3, 5, 7, 8, 12, 16. В качестве
числа написать свою фамилию и взять из записи начальный отрезок длины 5. Если длина
записи меньше пяти, то дописать букву «ю» необходимое число раз. Пусть получили
слово s (длины 5). Все 32 буквы русского алфавита пронумеруем по порядку от 1 до 32.
Пробел есть 0. Тогда слово s можно рассматривать как число в системе счисления по
основанию 33. Число n получается переводом s32 в десятичное число.
7. Разложить данное число n на простые множители и найти число делителей f(n) числа n.
8. Найти наибольший общий делитель d и наименьшее общее кратное чисел a и b. Число a
взять из задачи 6, число b=780. Найти те u и v, для которых d = ua + vb.
9. Найти непрерывные и подходящие дроби для числа a/b, a  b.
10. Написать полную, наименьшую по модулю, приведенную системы вычетов по данному
модулю n. Для полной и приведенной системы вычетов написать таблицы сложения,
умножения. Написать каноническое разложение числа n вычислить для него функцию
Эйлера (n). Для полной системы вычетов написать по умножению таблицу обратных
элементов, таблицу степеней до показателя (n) и указать порядок каждого элемента.
Для n указать генератор (по умножению), если он существует.
11. Найти степень 5613+N (mod 1135), где N есть номер, под которым стоит фамилия студента
в аудиторном журнале.
12. Решить (подбором) сравнения.
13. Решить (подбором) систему из двух сравнений с одним неизвестным.
14
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
14. Решить (подбором) систему из двух сравнений с двумя неизвестными.
15. Решить (методом Гаусса) систему из трех сравнений.
16. Решить систему из трех сравнений типа x  b (mod m).
17. Решить систему из трех сравнений типа ax  b (mod m).
18. Определить с помощью символа Лежандра, имеет ли решение данное сравнение.
19. Определить с помощью символа Якоби, имеет ли решение данное сравнение.
20. Полиномы f(x), g(x)  5[x].
21. Найти их наибольший делитель d(x) = нод(f(x), g(x)) и те полиномы u(x),v(x)  5[x], для
которых d(x) = f(x)u(x) + g(x)v(x). Полином f(x)  p[x] степени m над простым
полемp, p=5, m =2, задан как определяемое вариантом натуральное число a.
Например, для a = 10810 = 4135 полином f(x) = 4·x2 + 1·x + 3 = 4x2 + x + 3.
a) по заданному числу a найти полином f(x)  p[x].
b)построить таблицу значений для f(x) и проверить, будет ли полином f(x) над полем p
неприводим.
c) написать все элементы поля GF(pm) =p[x]/(f(x)) из q = pm из pm остатков от деления
полиномов изp[x] на модуль f(x).
d) для поля GF(pm) =p[x]/(f(x)) из q = pm остатков от деления полиномов изp[x] на
f(x) построить таблицы для сложения и умножения элементов a1x + a0, a1 = 3, a0  5, на все
элементы поля GF(pm).
e) для каждого элемента a1x + a0, a1 = 3, a0  5, указать обратный (по умножению)
элемент.
22. Найти степень (по умножению) элемента поля GF(pm) и указать, является ли заданный
элемент генератором для GF(pm). Элемент поля a1x + a0 задан как вектор a1a0.
23. Зашифровать и расшифровать сообщение с помощью криптосистемы RSA.
24. Подписать сообщение с помощью ЭЦП RSA.
25. Зашифровать и расшифровать сообщение с помощью числовой криптосистемы ЭльГамаля.
26. Подписать сообщение с помощью числовой ЭЦП Эль-Гамаля.
27. Зашифровать и расшифровать сообщение с помощью полиномиальной криптосистемы
Эль-Гамаля.
28. Подписать сообщение с помощью полиномиальной ЭЦП Эль-Гамаля.
29. Подписать сообщение с помощью ЭЦП DSA.
9.2 Вопросы для оценки качества освоения дисциплины
ПРИМЕРНАЯ ПРОГРАММА ЭКЗАМЕНА
1. Делимость и ее свойства. Представление числа по делителю, частному, остатку.
Представление числа в системе счисления по основанию h.
2. Простые числа. Бесконечность множества простых чисел. Решето Эратосфена для
простых чисел.
3. Теорема о факторизации и ее свойства.
4. Наибольший общий делитель (НОД) и его свойства. Вычисление НОД с помощью
теоремы о факторизации. Алгоритм Евклида вычисления НОД. Расширенный алгоритм
Евклида.
5. Наименьшее общее кратное (НОК) и его свойства. Вычисление НОК с помощью
теоремы о факторизации. Связь между НОД и НОК.
6. Непрерывные и подходящие дроби и их вычисление.
15
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
7. Целая и дробная часть вещественного числа. Мультипликативная функция. Сумма
мультипликативной функции от числа по всем делителям этого числа.
8. Функция Мебиуса. Преобразование Мебиуса.
9. Функция Эйлера и ее вычисление.
10. Сравнение целых чисел. Три определения сравнений и их эквивалентность.
Свойства сравнений.
11. Полная система вычетов. Наименьшая неотрицательная, абсолютно наименьшая,
приведенная система вычетов. Классы вычетов. Операции над классами.
12. Теоремы Эйлера и Ферма.
13. Сравнения с одним неизвестным произвольной степени. Решение сравнения.
Система сравнений произвольных степеней и ее решение.
14. Сравнения и их системы с несколькими переменными и их решение.
15. Сравнения первой степени и их решение.
16. Система сравнений первой степени. Теорема Гаусса о ее решении.
17. Сравнения любой степени по простому модулю и их решение. Теорема Вильсона.
18. Сравнения любой степени по составному модулю и их решение.
19. Вычеты (корни) степени n. Квадратичные вычеты (квадратные корни) и их
свойства. Квадратичные вычеты по простому модулю.
20. Символ Лежандра и его свойства.
21. Символ Якоби и его свойства.
22. Квадратичные вычеты (квадратные корни) по составному модулю.
23. Числа и их экспоненты (показатели) по данному модулю. Связь между сравнением
степеней и их экспонент.
24. Примитивные (первообразные) корни и их свойства. Теорема о существовании
примитивных корней.
25. Универсальные алгебры. Гомоморфизм и изоморфизм алгебр. Теорема о
гомоморфизме.
26. Полугруппы, подполугруппы, циклические полугруппы.
27. Кольца и поля. Характеристика поля. Конечные поля.
10 Учебно-методическое и информационное обеспечение дисциплины
10.1
Базовый учебник — отсутствует
10.2
Основная литература:
• Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press.
1996. (Доступна в интернете)
• Набебин А.А. Дискретная математика. М.: Научный мир, 2010. 512с. (Доступна в
библиотеке НИУ ВШЭ).
• Набебин А.А. Сборник заданий по дискретной математике. М.: Научный мир, 2009. 280с.
(Доступна в библиотеке НИУ ВШЭ).
10.3
Дополнительная литература и источники
• Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии.
М.: Гелиос АРВ, 2002.
• Бабаш А.В. Криптографические и теоретико-автоматные аспекты современной защиты
информации. М.: Издат. центр ЕАОИ, том 1, 2008; том 2, 2008; том 3, 2010.
• Болотов А.А., Гашков С.Б., Фролов А.Б. Часовских А.А. Элементарное введение в
эллиптическую криптографию. Алгебраические и алгоритмические основы. М.: КомКнига,
2006.
16
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Построение и анализ алгоритмов. Часть 1» для направления 231000.62
«Программная инженерия» подготовки бакалавра
• Болотов А.А., Гашков С.Б., Фролов А.Б. Элементарное введение в эллиптическую
криптографию. Протоколы криптографии на эллиптических кривых. М.: КомКнига, 2006.
• Виноградов И.М. Основы теории чисел. СПБ.: Лань, 2004.
• Лидл Р., Нидеррайтер Г. Конечные поля. М.: Мир, 1988.
• Новиков Ф.А. Дискретная математика для программистов – СПб.: Питер 2008. – 304 с.
• Разборов А.А. О сложности вычислений — Математическое просвещение — сер. 3, вып.
3, 1991 г. http://www.mccme.ru/free-books/matpros/i4127141.pdf.zip.
• Смарт Н. Криптография. М.: Техносфера, 2005.
• Шнейер Б. Прикладная криптография. М.: Триумф, 2002.
11 Материально-техническое обеспечение дисциплины
Проектор для лекций и семинаров, компьютерные классы.
17
Download