Тематический план

  • Методические материалы


    • В лекции А.В. Черемушкина рассматриваются основные понятия, связанные с криптографическими протоколами, определяются их основные свойства и уязвимости. Приводятся примеры атак на протоколы. Изложение сопровождается примерами, иллюстрирующими слабости некоторых известных протоколов. Приводится описание некоторых современных систем автоматизированного анализа протоколов.

    • Учебное пособие по современным криптографическим протоколам, в основе которых лежит использование линейных кодов (или которые могут быть построены на основе линейных кодов). Пособие поможет освоить материалы первого и второго разделов курса.

    • Учебное пособие по протоколам многосторонних защищенных вычислений. Материалы этого учебного пособия помогут освоить третий раздел курса

    • Репозиторий протоколов безопасности, содержит как описание самих протоколов, так и известные атаки на них.

    • Папка содержит: 

      1) Jupiter Notebooks для языка Python. Для самостоятельного приобретения навыков применения блочных шифров. Проверка свойства гомоморфности для симметричных и асимметричных шифров.

      2) Примерное содержание практических занятий.

      3)  Пример реализации алгоритма кодирования изображений для визуальной криптографии (автор - Robert Donovan, LessonStudio, 2014)

  • Вопросы для контрольных опросов

    Раздел 1. Протоколы обмена ключами (5 баллов)

    1.     Понятие протокола. Назначение протоколов. Участники. Протоколы с посредником. Протоколы с арбитром.

    2.     Классификация протоколов.

    3.     Криптографические примитивы, используемые в протоколах.

    4.     Обмен ключами средствами симметричной криптографии.

    5.     Обмен ключами средствами криптографии с открытым ключом.

    6.     Свойства безопасности протоколов.

    7.     Основные атаки на протоколы.

    8.     Алгоритм Диффи-Хэлмана.

    9.     Трехпроходный протокол Шамира.

    10.  Реализация протокола EKE с помощью RSA.

    11.  Реализация протокола EKE с помощью Эль-Гамаля.

    12.  Реализация протокола EKE  с помощью Диффи-Хэллмана.

    13.  Использование цифровых подписей при обмене ключами.

    14.  Одновременная передача ключей и сообщений.

    15.  Широковещательная рассылка ключей и сообщений.

    16.  Генерация ключа в зашумленной среде.

    17.  Кодовое зашумление. Алгоритмы кодирования и декодирования.

    18.  Протоколы предварительной передачи ключевого материала.

     

    Раздел 2. Протоколы идентификации/аутентификации (5 баллов)

    1.     Отличия слабой и сильной аутентификации.

    2.     Аутентификация с помощью однонаправленных функций.

    3.     Атака по словарю и привязка.

    4.     Аутентификация средствами криптографии с открытым ключом.

    5.     Протоколы SKID.

    6.     Подтверждение подлинности сообщений.

    7.     Протокол Wide-Mouth Frog.

    8.     Протокол Yahalom.

    9.     Протокол Нидхема-Шредера.

    10.  Протокол Отвея-Рииса.

    11.  Протокол Kerberos.

    12.  Протокол Ньюмана-Стабблбайна.

    13.  Протокол DASS.

    14.  Протокол Деннинга-Сакко.

    15.  Протокол Ву-Лама.

    16.  Схемы идентификации Фейге-Фиата-Шамира.

    17.  Упрощенная схема идентификации Фейге-Фиата-Шамира.

    18.  Схема идентификации Охта-Окамото.

    19.  Схема Гиллу-Кискате.

    20.  Схема Шнорра.

    21.  Схема вручения обязательства. Свойства связности и скрытности

    22.  Схема вручения нечеткого обязательства Джуелса-Воттенберга. Биометрическая аутентификация.

     

    Раздел 3. Протоколы многосторонних вычислений (5 баллов)

    1.     Пороговые, совершенные, идеальные схемы разделения секрета

    2.     Разделение секрета без помощи Трента.

    3.     Разделение секрета без раскрытия долей.

    4.     Проверяемые схемы разделения секрета.

    5.     Визуальная криптография.

    6.     Схемы разделения секрета на основе помехоустойчивых кодов (минимальные коды).

    7.     Тайное голосование.

    8.     Протокол установления соответствия.

    9.     Схема протокола вычисления арифметических выражений

    10.  Схема забывчивой передачи.

    11.  Протоколы вычисления на основе помехоустойчивых кодов.

     

    2. Критерии оценки

     

    Студент случайно выбирает 2 вопроса по теме, в рамках которой проводится устный контрольный опрос. Правильный ответ оценивается в 2 балла. Правильный ответ на дополнительный вопрос по теме выбранных вопросов оценивается в один балл.


  • Методические материалы для подготовки к опросам

  • Темы докладов для индивидуальных заданий

    Раздел 1. Протоколы обмена ключами (5 баллов)

    1.     Атаки на протоколы обмена ключами.

    2.     Парадокс дней рождений.

    3.     Конструкции криптографических хэш-функций.

    4.     Атаки на хэш-функции.

    5.     Схема NMAC/HMAC.

    6.     Обоснование стойкости HMAC.

    7.     Схема получения ключа HKDF (extract-and-expand).

    8.     Выработка ключей в протоколах блокчейн.

                                                                           i.      

    Раздел 2. Протоколы идентификации/аутентификации (5 баллов)

    1.     Атаки на протоколы аутентификации.

    2.     Атаки на протокол Нидхема-Шредера.

    3.     Атаки на протокол Отвея-Рииса.

    4.     Аутентификация участников и данных в протоколах блокчейн.

    5.     Протокол SSL.

     

    Раздел 3. Протоколы многосторонних вычислений (5 баллов)

    1.     Протоколы поиска данных в зашифрованных данных, SSE (Searchable Symmetric Encryption).

    2.     Поиск в зашифрованных данных по ключевым словам, PEKS (Public Key Encryption with Keyword Search).

     

    2. Критерии оценки

    Доклад оценивается по пятибалльной шкале:

    5 баллов – студент приводит примеры, отвечает на вопросы по теме

    4 балла – студент отвечает на вопросы по теме, но затрудняется привести пример

    3 балла – студент затрудняется привести примеры, не уверенно отвечает на вопросы

    2 балла – студент затрудняется привести примеры, не может ответить на дополнительные вопросы

    1 балл – студент не разобрался в теме вопроса, студент затрудняется привести примеры, не уверенно отвечает на вопросы

    0 – отсутствие доклада.


  • Ресурсы по темам докладов

  • Лабораторные работы

    Лабораторная работа №1 (раздел 1, 10 баллов)

    Реализация протокола IKE. Набор симметричных и асимметричных криптографических примитивов и хэш-функций определяется индивидуально для каждого студента.

    Перечень хэш-функций: Blake2b, Blake2s, DSTU7564, GOST3411, GOST3411_2012, GOST3411_2012_256, GOST3411_2012_512, Keccak, MD2, MD4, MD5, RipeMD128, RipeMD160, RipeMD256, RipeMD320, Sha1, Sha224, Sha256, Sha384, SHA3, Sha512, Sha512t, Shake, Skein, SM3, Tiger, Whirlpool.

    Перечень симметричных криптографических алгоритмов: AES, Blowfish, 3DES, GOST28147, IDEA, ISAAK, RC4, RC6, Salsa20, DSTU7624, ChaCha

    Перечень асимметричных криптографических алгоритмов: RSA, Эль-Гамаль, Мак-Элис.

     

    Лабораторная работа №2 (раздел 2, 10 баллов)

    Реализация протокола Штерна. Матрица H размера (не менее 100 строк и 200 столбцов) каждым студентом выбирается самостоятельно (случайно), односторонняя функция выбирается из числа хэш-функций из первой лабораторной работы, секрет должен формироваться на основе Фамилии, Имени и Отчества студента по следующему правилу: s=h(Фамилия||Имя||Отчество), где h – криптографическая хэш-функция из первой лабораторной работы.

     

    Лабораторная работа №3 (раздел 3, 10 баллов)

    Реализация протокола многостороннего вычисления арифметических выражений для четырех участников. Арифметическое выражение для каждого студента задается индивидуально. Примеры арифметических выражений:

            i.     x1+x3-x2*x4

          ii.     x1*x2-x4

        iii.     x1*x2+x3*x4

  • Методические указания к лабораторным работам

    Для реализации криптографических примитивов из первой и второй лабораторных работ рекомендуется использовать свободно-распространяемый пакет криптографических алгоритмов BouncyCastle (https://www.bouncycastle.org/csharp/index.html) для языка программирования C#.

    При реализации протокола многостороннего вычисления арифметических выражений в третьей лабораторной работе рекомендуется использовать свободно-распространяемую библиотеку арифметического процессора NTL (https://www.shoup.net/ntl/download.html).

     

    Критерии оценки

    Каждая выполненная лабораторная работа оценивается по десятибалльной шкале.



    • Лекция по протоколу многосторонних вычислений арифметических выражений и пошаговый пример выполнения протокола

    • Свободно распространяемая библиотека для работы с большими числами, матрицами/векторами над конечными полями и кольцами

    • Свободно распространяемая библиотека криптографических алгоритмов, написанная на языке программирования C#