Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет компьютерных наук Департамент программной инженерии Рабочая программа дисциплины Научно-исследовательский семинар «Методы и алгоритмы защиты информации» для образовательной программы «Программная инженерия» направления подготовки 09.03.04 «Программная инженерия» уровень - бакалавр Разработчик программы доцент, к.ф.-м.н. Набебин А.А. [email protected] Одобрена на заседании департамента программной инженерии «___»____________ 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