Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет Математики Программа дисциплины Математическая криптография и коды с исправлением ошибок для направления 010100.62 «Математика» подготовки бакалавра для направления 010100.68 «Математика» подготовки магистра Автор программы: Верещагин Н.К., д.ф.-м.н., nikolay.vereshchagin@gmail.com Рекомендована секцией УМС по математике «___»____________ 2013 г. Председатель С.М. Хорошкин ____________________ Утверждена УС факультета математики «___»_____________2013 г. Ученый секретарь Ю.М. Бурман _____________________ Москва, 2013 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Область применения и нормативные ссылки Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 010100.62 «Математика» подготовки бакалавра, направления 010100.68 «Математика» подготовки магистра Программа разработана в соответствии с: ГОС ВПО; Образовательной программой 010100.62 «Математика» подготовки бакалавра. 010100.68 «Математика» подготовки магистра Рабочим учебным планом университета по направлению 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра, специализации Математика, утвержденным в 2012 г Цели освоения дисциплины Целями освоения дисциплины “Математическая криптография и коды с исправлением ошибок” являются: Познакомить с основными примитивами, используемыми в криптографии: односторонними функциями, хэш-функциями, генераторами псевдослучайных чисел и псевдослучайными функциями; Познакомить с основными криптографическими протоколами, основанными на этих примитивах: шифрования, привязки к биту, электронной монеты, идентификации, цифровой подписи; Научить формулировать требования к криптографическим протоколам в математически четком виде; Научить доказывать надежность криптографических протоколов с той степенью формальности и подробности, как это принято в математике. Познакомить с имеющимися результатами указанного вида и открытыми проблемами в этой области. Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: Запомнить определения основных примитивов, используемых в криптографии; Научиться давать точные математические определения новым протоколам; Освоить основные методы сведения одних криптографических протоколов к другим или к примитивам. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра В результате освоения дисциплины студент осваивает следующие компетенции: Компетенция Код по ФГОС/ НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Правильно воспроизводит чужие результаты умение формулировать результат умение строго доказать утверждение ПК-3 ПК-4 умение грамотно пользоваться языком предметной области ПК-7 понимание корректности постановок задач ПК-10 выделение главных смысловых аспектов в доказательствах Формы и методы обучения, способствующие формированию и развитию компетенции Компетенция формируется в любом сегменте учебного процесса Правильно формулирует собственные результаты Воспроизводит доказательства стандартных результатов, услышанных на лекциях Формируется в процессе сдачи решений задач. Изучение базового курса Оценивает строгость и корректность любых текстов по криптографии и криптоанализу За счет повышения общефизической и математической культуры в процессе обучения Продумывание и повторение услышанного на семинарах и лекциях. Беседы с преподавателями во время консультаций. Знает название криптографических примитивов и протоколов, знает названия известных односторонних функций. Владеет профессиональной лексикой в области криптографии и криптоанализа Понимает постановки задач в Продумывание базовых криптографии понятий курса ПК-16 Адекватно оценивает корректность использования тех или иных криптографических гипотез Может сначала изложить план доказательства теоремы, а затем изложить любую его часть в деталях. Понимает методы и конструкции, использованные в доказательстве. Вырабатывается в процессе решения задач, самостоятельного чтения. Продумывание ключевых моментов лекций. Вырабатывается путем рассказа преподавателю доказательств и ответов на его вопросы. Место дисциплины в структуре образовательной программы Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Настоящая дисциплина относится к циклу математических и естественно научных дисциплин и блоку дисциплин, обеспечивающих подготовку бакалавра и магистра направления подготовки «Математика» Изучение данной дисциплины базируется на следующих дисциплинах: базовые курсы алгебры и математического анализа (1 и 2 годы бакалавриата); сложность вычислений (1 и 2 годы бакалавриата). Желательно, но не необходимо также знакомство с некоторыми основными понятиями и результатами из курсов Введение в дискретную математику (Бакалавриат, I-II модули первого курса); Введение в теорию вероятностей (Бакалавриат, I-II модули третьего курса). Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: свободное владение основными понятиями линейной алгебры свободное владение основными понятиями теории вероятностей Тематический план учебной дисциплины № Всего часов Название раздела Аудиторные часы Практиче Лекци Семин ские и ары занятия Самостоятельная работа 1 Односторонние функции 16 8 8 2 Генераторы псевдослучайных чисел и псевдослучайные функции 22 10 12 3 Хэш-функции 8 4 4 4 Криптографические протоколы Итого: 44 18 26 90 40 50 Формы контроля знаний студентов Тип контроля Текущий (неделя) В конце курса Форма контроля 7 контрольны х работ Экзамен Параметры ** 1 2 3 4 4 3 Письменные задания, выдаваемые студентам на дом. Срок сдачи каждого задания – 14 дней. Срок проверки заданий – в течение недели со дня сдачи. V Беседа с преподавателем (всего 1,5-2 часа) Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Критерии оценки знаний, навыков Текущий контроль: за все контрольные работы выставляются одна общая оценка по 10-ти балльной шкале, равная доле правильно решенных задач, умноженной на 10. Основная форма текущего контроля – решение задач из домашних заданий (всего порядка 20 задач). Задачи подбираются так, чтобы их решение потребовало от студента свободного владения основными понятиями и умения пользоваться техническими (вычислительными) приемами, которые изучаются в соответствующем разделе курса. Обсуждение подходов к решению этих задач происходит во время консультаций. Экзамен оценивается по 10-ти балльной шкале и состоит из десяти теоретических вопросов. На каждый вопрос даётся пять-десять минут на подготовку. Студент в очной беседе с преподавателем отвечает на вопросы. Оценка, выставляемая за экзамен, равна количеству правильно отвеченных вопросов. Время, отводимое на экзамен 1½ часа. Порядок формирования оценок по дисциплине Оценка за курс является средним арифметическим оценки текущего контроля и оценки за экзамен. Содержание дисциплины Раздел 1. Односторонние функции Содержание темы Определение сильно и слабо односторонних функций. Равномерный и неравномерный противники. Примеры. Полиномиально моделируемые и доступные последовательности случайных величин. Частичные односторонние функции. Односторонние перестановки. Функция Рабина, функция RSA, дискретная экспонента. Односторонние перестановки с секретом. Улучшенные односторонние перестановки с секретом. Лекции Семинары Самостоятельная работа 4 Литература 4 [1,2] 2 [1,2] 2 [1,2] 2 2 Раздел 2. Генераторы псевдослучайных чисел и псевдослучайные функции. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Содержание темы Понятие вычислительной неотличимости последовательностей распределений вероятностей. Определение генераторов ПСЧ. Понятие трудного бита для данной функции. Построение генератора ПСЧ на основе односторонней перестановки и трудного бита для нее. Лекции Семинары Самостоятельная работа 2 2 Построение семейства псевдослучайных функций на основе генератора ПСЧ 2 [1,2] 2 [1,2] 4 [1,2] 2 [1,2] Раздел 3. Хэш-функции Содержание темы Семейства функций с трудно обнаружимыми зацеплениями (СТОЗ), построение такого семейства на основе функции Рабина. Семейства функций с трудно обнаружимыми коллизиями (СТОК). Построение СТОК исходя из СТОЗ. 2 2 Декодирование списком кода Адамара. Построение трудного бита для данной односторонней перестановки. Завершение построения генератора ПСЧ на основе односторонней перестановки. Литература Лекции Семинары Самостоятельная работа 1 1 Литература 1 [1,2] 1 [1,2] Раздел 4. Криптографические протоколы Содержание темы Схемы шифрования с закрытым ключом. Построение таких схем на основе генератора ПСЧ и семейств псевдослучайных функций. Лекции Семинары Самостоятельная работа Литература 2 4 [1,3] Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Схемы шифрования с открытым ключом (СШОК). Конструкция СШОК на основе необратимой перестановки с секретом. Протоколы привязки. 1 3 Протоколы электронной монеты 1 Протоколы идентификации с открытым и закрытым ключом. Построение протокола идентификации на основе необратимости функции Рабина. 3 Протоколы цифровой подписи. 4 4 [1,3] 4 [1,3] 2 [1,3] 4 [1,3] 6 [1,3] Образовательные технологии На лекции обсуждаются ключевые понятия и технические выкладки разбираемой темы, даются необходимые определения, разбираются поучительные примеры. Студентам на дом даются задачи для самостоятельного разбора, содержащие как упражнения для усвоения пройденного материала, так и нестандартные задачи, позволяющие проверить уровень общего понимания предмета и требующие изучения дополнительного материала. Некоторые задачи предваряют (продолжают) тематику лекций. Студент сдает задачи в виде письменных домашних работ. Оценочные средства для текущего контроля и аттестации студента Тематика заданий текущего контроля Примерный список задач: 1. Доказать, что существуют сильно необратимые семейства функций. 2. Доказать, что семейство функций f_n(x)= x^2 mod 2^n, определенных на n-битовых числах, не является слабо необратимым. 3. Доказать, что если мощность множества значений функции f_n ограничена сверху некоторым полиномом от n, то семейство f_n не является сильно необратимым. 4. Пусть даны две биективные полиномиально вычислимые функции f_n,g_n:{0,1}^n --> {0,1}^n. Докажите, что если хотя бы одна из них сильно [слабо] необратима, то и их композиция сильно [слабо] необратима. (Это верно как для равномерного, так и для неравномерного противника.) 5. Предположив существованиие сильно односторонних функций h_n:{0,1}^n --> {0,1}^n, докажите, что существуют сильно односторонние функции f_n,g_n:{0,1}^n --> {0,1}^n, композиция которых не является даже слабо необратимой. (Это верно как для равномерного, так и для неравномерного противника.) Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра 6. Пусть дана сильно [слабо] необратимая функция f_n:{0,1}^n --> {0,1}^n. Докажите, что тогда функция xy --> f_n(x)y, определенная на словах длины 2n, сильно [слабо] необратима. (Это верно как для равномерного, так и для неравномерного противника.) 7. Пусть случайные величины \alpha_n и \beta_n вычислительно неотличимы. Докажите, что в результате отрезания от них начала полиномиальной длины получатся вычислительно неотличимые случайные величины. 8. Докажите, что композиция генераторов ПСЧ типа k(n) → l(n) и l(n) → m(n) является генератором ПСЧ типа k(n) → m(n). 9. Докажите, что если имеется трудный бит для полиномиально вычислимой перестановки g_n:D_n → D_n, то перестановка сильно необратима. 10. Докажите, что если для некоторого полинома q(n) существует генератор ПСЧ типа q(n) → \infty, то существует и генератор ПСЧ типа n → infty. 11. Нужно зарегистрировать паспортные данные всех желающих голосовать так, чтобы каждый мог проголосовать только один раз. При этом требуется, чтобы база данных избирательной комиссии этих данных не разглашала. Точнее, надо построить вероятностный полиномиальный алгоритм $K$ и детерминированного полиномиальный алгоритм $B$ с такими свойствами. Алгоритм $K$ получает на вход параметр безопасности $n$ в унарной записи и генерирует ключ $k$ (хранящийся в избирательной комиссии). Алгоритм $B$ получает на вход параметр безопасности, ключ $k$ и паспортные данные (строку) $x$ и генерирует элемент базы данных (другую строку) $y$. Требование безопасности заключается в следующем: для любого полиномиального количества различных строк $x_1,\dots,x_m$ полиномиальной длины (от параметра безопасности) строка $B(n,k,x_1)\dots B(n,k,x_m)$ имеет распределение, неотличимое от некоторого полиномиально моделируемого распределения. Требование возможности проголосовать: для любого полиномиального количества различных строк $x_1,\dots,x_m$ полиномиальной длины (от параметра безопасности) пренебрежимо мала вероятность совпадения каких-то из двух значений $B(n,k,x_1)\dots B(n,k,x_m)$. Постройте такие алгоритмы. 12. Пусть дана схема шифрования $K,E,D$ с открытым ключом. Преобразуем ее в схему шифрования с закрытым ключом, соединив отрытый и закрытый ключи $e,d$ в один закрытый ключ $\tilde d=\pair{e,d}$ и модифицировав алгоритмы $K,E,D$ соответствующим образом. Докажите, что мы получим в самом деле схему шифрования с закрытым ключом. 13. Докажите, что можно из любой схемы шифрования с открытым ключом одного бита можно изготовить схему шифрования с открытым ключом произвольного количества битов с помощью шифрования каждого бита по отдельности с помощью одного и того же открытого ключа. Объясните, почему для схем шифрования с закрытым ключом, то же самое неверно. 14. Докажите, что без ограничения общности можно считать, что в неинтерактивных протоколах привязки к биту ключ всегда равен $\sigma r$ (где $\sigma$ --- исходный бит, а $r$ случайные биты алгоритма $S$. 15. Пусть дана односторонняя перестановка $g_n$ и трудный бит $h_n$ для нее. Рассмотрим следующий протокол привязки к биту. Посылающий выбирает случайное $x$ из $D_n$ и проверяет, верно ли, что $h_n(x)$ совпадает с битом, к которому надо привязаться. Если это так, то в качестве привязки выдается $g_n(x)$, а в качестве ключа случайные биты, использованные при генерации $x$. Если это не так, то все Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра повторяется сначала. Так делается $n$ раз, и если все попытки неудачны, то выдается $g_n(x)$ для последнего $x$. Алгоритм раскрытия сундучка проверяет, что значение функции $g_n$ на ключе равно привязке и в этом случае выдает $h_n(x)$ (а иначе $\bot$). Докажите, что этот протокол удовлетворяет требуемым свойствам. 16. Пусть $g_n:{0,1}^n \to {0,1}^n$ сильно односторонняя функция. Рассмотрим алгоритм, который, игнорируя свой вход, выбирает случайные строки $x,y$ длины $n$, сообщает пару $\pair{y,y\odot x}$ и останавливается. (а) Докажите, что этот алгоритм имеет нулевое разглашение при известном $g(x)$. (б) Докажите, что алгоритм $B$, который $2n$ раз запускает алгоритм $A$ с одним и тем же $x$ и независимыми $y$-ами не имеет нулевого разглашения при известном $g(x)$. 17. Постройте аналогичные протоколы идентификации с открытым ключом в предположении необратимости функции RSA и дискретной экспоненты. 18. Докажите, что существует СТОЗ, если функция RSA необратима или экспонента в поле вычетов по простому модулю необратима. Вопросы для оценки качества освоения дисциплины Примерный перечень вопросов к экзамену. 1. Привести пример односторонней функции 2. Привести пример односторонней перестановки 3. Дать определение протокола привязки и изложить его конструкцию. 4. Дать определение генератора ПСЧ 5. Изложить конструкцию генератора ПСЧ 6. Изложить конструкцию семейства псевдослучайных функций 7. Изложить конструкцию семейства функций с трудно обнаружимыми коллизиями 8. Изложить конструкцию протокола цифровой подписи с закрытым ключом 9. Изложить конструкцию протокола цифровой подписи с открытым ключом 10. Изложить конструкцию протокола идентификации с закрытым ключом 11. Изложить конструкцию протокола идентификации с открытым ключом Учебно-методическое и информационное обеспечение дисциплины Базовый учебник 1. Н.К. Верещагин. Лекции по криптографии. http://lpcs.math.msu.su/~ver/teaching/HSEcrypto/lectures.pdf Основная литература 2. O. Goldreich. Foundations of cryptography. Basic tools. Cambridge Univ. Press. 2001. 3. O. Goldreich. Foundations of cryptography. Basic applications. Cambridge Univ. Press. 2004. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Математическая криптография и коды с исправлением ошибок» для направления 010100.62 «Математика» подготовки бакалавра 010100.68 «Математика» подготовки магистра Дополнительная литература 4. Введение в криптографию. Под общей редакцией В.В.Ященко. 3-е изд. доп. --- М.: МЦНМО: "ЧеРо", 2000. 5. М.И. Анохин, Н.П.Варновский, В.М.Сидельников, В.В. Ященко. Криптография в банковском деле. М.: МИФИ, 1997. Справочники, словари, энциклопедии При освоении курса могут быть полезны материалы по темам, размещенные в онлайн энциклопедии http://www.wikipedia.org, Программные средства При решении некоторых задач нужно умение пользоваться программой «Математика». Дистанционная поддержка дисциплины Специальные дистанционные ресурсы не предусмотрены. Однако должна быть обеспечена возможность дистанционных консультаций по электронной почте и-или через skype. Материально-техническое обеспечение дисциплины Для проведения семинаров не используется специальное оборудование, кроме, возможно, компьютерного проектора и системы видеозаписи учебных занятий. +