СПЕЦИАЛЬНЫЙ КУРС "ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ И КРИПТОГРАФИЯ"
Нестеренко Максим Юрьевич (nesteren@mail.osu.ru)
к.т.н., доцент
Оренбургский государственный университет, г. Оренбург
Аннотация В докладе проводится анализ стандартов специальностей, связанных с информационными технологиями и обоснована необходимость введения дисциплины на профессионально-ориентированном этапе обучения для углубления и закрепления знаний в области технологий параллельного и высокопроизводительного программирования. В качестве такой дисциплины предлагается дисциплина специализации "Параллельное программирование и криптография"
Особую остроту проблема защиты информации приобретает в связи с повсеместной компьютеризацией информационных процессов и объединением компьютерной техники в информационно-вычислительные сети с потенциальной возможностью доступа ко всем ресурсам для каждого пользователя. Это привело к необходимости использования криптографических средств защиты всеми пользователями, что замедляет и усложняет их работу. С другой стороны, нельзя снижать вычислительную сложность (т.е. длину ключа) криптографического алгоритма, т.к. это приведет к снижению стойкости защиты ко взлому. Отсюда следует необходимость увеличения производительности криптографических программных средств. Большой прорыв в этом направлении может быть достигнут за счет распараллеливания криптографических алгоритмов. Необходимость распараллеливания усиливает тот факт, что в ближайшем будущем фактически все персональные компьютеры будут иметь многоядерные процессоры.
Таким образом, необходимость использования параллельных вычислений в криптографии обусловлена следующими факторами:
- защита информации должна быть "невидима" для пользователя, т.е. осуществляться достаточно быстро;
- стойкость ко взлому криптографических методов защиты информации во многом определяется их вычислительной сложностью (или длиной ключа);
- значительное повышение производительности криптографических программных средств может быть достигнуто за счет распараллеливания криптографических алгоритмов, которые в большинстве случаев допускают эффективное распараллеливание в системах с общей памятью;
- развитие персональных ЭВМ с многопроцессорными и многоядерными архитектурами делает возможным применение параллельно выполняемых криптографических программных средств.
Проведенный анализ стандартов специальности 010503 Математическое обеспечение и администрирование информационных систем (квалификация: математик-программист) и сопряженных с нею специальностей показал, что содержанию обучения студентов параллельному программированию не уделяется достаточного внимания. Следует также отметить, что преподавание параллельного и архитектурно-зависимого программирования на сегодняшний день в малой степени ориентировано на решение задач в системах с общей памятью и недостаточно осваиваются инструменты разработки, оптимизации и отладки параллельных программ.
В связи с этим в ОГУ предпринята попытка обновления содержания IT-образования студентов специальности 010503 Математическое обеспечение и администрирование информационных систем математического факультета за счет организации непрерывной подготовки в области параллельного программирования и его приложений в рамках существующего стандарта специальности.
Данный процесс совершенствования IT-подготовки студентов разбит на два этапа:
- пропедевтический этап - приобретение студентами базовых знаний, умений и навыков в области параллельного программирования за счет обновления содержания дисциплин, читаемых на младших курсах (1 - 5 семестры);
- профессионально-ориентированный этап - использование обучающимися технологий параллельного программирования в прикладных задачах, т.е. обновление содержания дисциплин, изучаемых на старших курсах (6 - 8 семестры), и введение новых курсов по выбору студента (9 семестр).
Целью вводимого специального курса "Параллельное программирование и криптография" является углубление знаний о методах параллельного программирования и получение навыков параллельного программирования в системах с общей памятью при решении сложных прикладных задач на примере криптографических алгоритмов.
В качестве дополнительной цели выступает знакомство с некоторыми индустриальными пакетами, реализующими криптографические алгоритмы и являющимися инструментами для решения задач защиты информации.
Курс "Параллельное программирование и криптография" является курсом по выбору студента (9 семестр). Данный курс опирается на знания и умения, полученные студентом на дисциплинах дискретная математика (3 семестр), NP-полные задачи (6 семестр), параллельное программирование (7 семестр), Математические методы защиты информации (7 семестр), Защита информации от несанкционированного доступа (8 семестр).
Содержание курса
- Введение
- Криптографические примитивы и криптографические протоколы по защите информации;
- Вопросы стандартизации методов защиты информации;
- Стандарты Интернет;
- Особенности выполнения криптографический алгоритмов в системах с общей памятью. Задача безопасного распределения памяти между потоками.
- Параллельное программирование в системах с общей памятью (SMP-системы). Библиотеки и инструменты для разработки параллельных программ в системах с общей памятью
- Криптография с открытым ключом
- Основные принципы и схемы шифрования с открытым ключом;
- Схема RSA и ее применение. Схема распараллеливания RSA:
- Вероятностное шифрование;
- Схемы открытого шифрования Эль-Гамаля, МакЭлайса, Диффи-Хеллмана и пути их распараллеливания;
- Алгоритмы шифрования на основе эллиптических кривых;
- Функции хеширования. Стандарты функций хеширования. Оценка возможности их распараллеливания;
- Управление ключами. Генерация и хранение ключей. Протоколы распределения криптографических ключей.
- Криптография с секретным ключом
- Модель криптосистемы с секретным ключом;
- Блочные криптосистемы. Принципы построения. Принципы распараллеливания;
- Российский стандарт криптозащиты. ГОСТ 28147-89. Режимы работы;
- Американский стандарт криптозащиты DES. Режимы работы.
- Поточные шифры
- Синхронные и самосинхронизирующиеся поточные криптоалгоритмы. Принципы построения и распараллеливания;
- Режимы использования блочных шифров;
- Элементная база для построения блочных шифров. Генераторы псевдослучайных последовательностей. Линейные конгруэнтные генераторы и их параллельные реализации.
- Реализация криптографических алгоритмов с использованием высокопроизводительной библиотеки Intel MKL, оптимизированной под архитектуры Intel
- Схемы открытого шифрования RSA, Эль-Гамаля;
- Генераторы псевдослучайной последовательности из библиотеки MKL в поточных криптоалгоритмах.
- Криптомодуль библиотеки Intel IPP
- Цели создания, краткое описание;
- Криптографические функции, реализованные в библиотеки IPP.
- Основы финансовой криптографии (криптография в банковских системах)
- Системы электронных платежей, их классификация и структура;
- Понятие "электронные деньги";
- Криптографические протоколы в электронной коммерции.
|