Специалитет
2024/2025
Программирование алгоритмов защиты информации
Статус:
Курс обязательный (Компьютерная безопасность)
Кто читает:
Кафедра компьютерной безопасности
Когда читается:
5-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Нестеренко Алексей Юрьевич
Специальность:
10.05.01. Компьютерная безопасность
Язык:
русский
Кредиты:
4
Контактные часы:
52
Программа дисциплины
Аннотация
Данная дисциплина проводится на 5 курсе обучения и является обязательной. Для освоения учебной дисциплины студенты должны владеть базовыми знаниями и компетенциями школьной программы, основными понятиями алгебры, теории чисел, знанием и навыками применения языков программирования С и С++, базовыми знаниями об операционных системах, базовыми знаниями о сетевых технологиях, базовым знанием технического английского языка, навыками поиска информации в сети Интернет, базовыми навыками разработки технической документации. Результаты освоения дисциплины используются в дальнейшем при изучении таких дисциплин, как криптографические методы защиты информации, криптографические протоколы, методы алгебраической геометрии в криптографии, научный семинар, а также при написании итоговой выпускной квалификационной (дипломной) работы.
Цель освоения дисциплины
- Формирование у студентов навыков, необходимых для обоснования и выбора рационального решения по уровню обеспечения информационной безопасности с учетом заданных требований
- Формирование у студентов навыков, необходимых для сопровождения разработки технического и программного обеспечения систем и средств информационной безопасности
- Формирование у студентов навыков, необходимых для выполнения экспериментально-исследовательских работ при проведении сертификации средств защиты и анализ результатов
- Формирование у студентов навыков, необходимых для приемки и освоения программно-аппаратных средств защиты информации
- Формирование у студентов навыков, необходимых для составления инструкций по эксплуатации программно-аппаратных средств защиты информации
Планируемые результаты обучения
- Владеть навыками доказательства корректности разработанного программного обеспечения
- Владеть навыками разработки программного обеспечения в области защиты информации в соответствии с заданными требованиям
- Владеть навыками разработки программного обеспечения в области защиты информации в соответствии с заданными требованиями
- Владеть навыками создания документации и системы тестирования разработанного программного обеспечения
- Знать алгоритмы выработки и проверки электронной подписи
- Знать алгоритмы вычисления имитовставки
- Знать алгоритмы умножения матриц
- Знать алгоритмы эффективного нахождения состояний линейных регистров сдвига
- Знать алгоритмы, реализующие операции сложения и удвоения в группе точек эллиптической кривой, алгоритмы вычисления кратной точки эллиптической кривой
- Знать алгоритмы, реализующие основные операции с большими целыми числами и вычетами по модулю целого числа - операции сложения, вычитания, умножения, деления с остатком, взятия обратного элемента
- Знать способы реализации алгоритмов блочного шифрования, определяемых национальными и зарубежными стандартами
- Знать способы реализации криптографических функций хеширования, определяемых национальными и зарубежными стандартами
- Уметь проводить верификацию разработанного программного обеспечения и оценку соответствия заданным требованиям по безопасности
- Уметь разбирать исходные коды программ, реализующих известные криптографические алгоритмы
- Уметь разрабатывать документацию на программное обеспечение в соответствии с существующими требованиями
- Уметь создавать программные реализации заданных криптографических алгоритмов
Содержание учебной дисциплины
- Основные языки и средства разработки программного обеспечения в области защиты информации
- Существующие нормативные документы в области средств защиты информации
- Система лицензирования средств защиты информации в Российской Федерации
- Алгоритмы сложения, вычитания, умножения и деления с остатком для больших целых чисел
- Примеры программных реализаций из распространенных библиотек с открытым исходным кодом
- Преобразование Монтгомери для оптимизации вычислений в конечных полях простой характеристики
- Алгоритм Баррета для приведения по модулю простого числа
- Группа точек эллиптической кривой: операции сложения и удвоения точек на эллиптической кривой, операция вычисления кратной точки и ее оптимизация
- Представления эллиптических кривых в формах Вейерштрасса, Монтгомери, Якоби, Гессе и Эдвардса; основные различия и области применения
- Операции в конечных полях малой характеристики; оптимизация вычислений для полей характеристики два; примеры программных реализаций из библиотек с открытым исходным кодом
- Матрицы; операции умножения матриц и умножения матрицы на вектор; алгоритмы вычисления ранга матрицы и обращения матрицы; MDS-матрицы и способы их генерации
- Линейные регистры сдвига; построение регистров максимального периода; алгоритмическая связь линейных регистров сдвига с умножением матрицы на вектор; примеры эффективных программных реализаций
- Перестановки на конечных множествах; построение перестановок с заданными свойствами; эффективная реализация перестановок для конечных полей характеристики два
- Методы разработки и отладки программного обеспечения
- Методы совместной разработки программного обеспечения
- Методы документирования программного обеспечения
- Методы доказательства корректности разработанного программного обеспечения; написание системы тестов
- Практические занятия по реализации поставленных задач
- Практические занятия по отладке и тестированию поставленных задач
- Алгоритмы поточного шифрования информации; примеры поточных шифров - алгоритмы rc4, а5 и grain128
- Алгоритм блочного шифрования гост 28147-89 (магма); ключевая система алгоритма гост 28147-89, слабые ключи алгоритма
- Алгоритм блочного шифрования гост р 34.12-2005 (кузнечик); описание различных принципов реализации алгоритма
- Алгоритм блочного шифрования aes; использование аппаратных инструкций архитектуры intel для реализации алгоритма aes
- Алгоритмические методы защиты ключевой информации, используемой в алгоритмах блочного шифрования
- Режимы использования блочных шифров (простая замена, простая замена с зацеплением, режимы гаммирования)
- Связь блочных шифров с поточными шифрами
- Алгоритмы выработки имитовставки
- Режим выработки имитовставки для блочных шифров согласно гост р 34.13-2015)
- Режим работы блочных шифров с возможностью аутентификации сообщений (одновременной выработкой имитовставки)
- Режим работы блочных шифров с регулярным изменением ключевой информации (режим acpkm)
- Функции хеширования; алгоритм гост р 34.11-94 (с использованием гост 28147-89)
- Функция хеширования гост р 34.11-2012 (стрибог)
- Функция хеширования keccak (стандарт fips 180-3)
- Алгоритмы выработки имитовставки на основе бесключевых функций хеширования; алгоритм hmac
- Алгоритмы выработки и проверки электронной подписи; стандарт гост р 34.10-2012
- Асимметричные алгоритмы шифрования; гибридные схемы шифрования
- Инфраструктура открытых ключей; стандарты asn.1 и x.509; особенности применения инфраструктуры открытых ключей в российской федерации
- Практические занятия по реализации криптографических преобразований
- Сдача окончательной (годовой) программной реализации
Элементы контроля
- Промежуточная программная реализация
- Экзамен
- Промежуточная программная реализация
- Экзамен
Промежуточная аттестация
- 2024/2025 1st moduleСтудент получает оценку от 0 до 10 баллов
- 2024/2025 2nd moduleСтудент получает оценку от 0 до 10 баллов
Список литературы
Рекомендуемая основная литература
- Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
- Казарин, О. В. Программно-аппаратные средства защиты информации. Защита программного обеспечения : учебник и практикум для вузов / О. В. Казарин, А. С. Забабурин. — Москва : Издательство Юрайт, 2019. — 312 с. — (Специалист). — ISBN 978-5-9916-9043-0. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/437163 (дата обращения: 28.08.2023).
Рекомендуемая дополнительная литература
- Linux. Системное программирование, Лав, Р., 2014
- Аленичев, Д. ALT Linux изнутри / Д. Аленичев, А. Боковой, А. Бояршинов. — Москва : ДМК Пресс, 2009. — 416 с. — ISBN 5-9706-0029-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1197 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.