Возможности технологии CUDA для распараллеливания вычислений в криптографических методах
Лебеденко Е.В., Академия ФСО России
Lebedenko_eugene@mail.ru Бондарева Н.В., Академия ФСО России Natalibond.ru@gmail. com
Аннотация
В докладе представлен один из возможных подходов решения актуальной проблемы в области информационной безопасности -повышения производительность вычислительных систем, используемых для формирования модели нарушителя, получающего права доступа к ресурсам автоматизированной системы на основе подбора аутентификационных признаков. В качестве технологической основы для этого рассматривается метод распараллеливания вычислений, базирующийся на архитектурных возможностях современных графических процессоров.
1 Введение
Одной из важнейших задач, возникающих при разработке
автоматизированных систем в защищенном исполнении (АС ЗИ) является задача разработки политики безопасности АС ЗИ, которая может быть реализована как с использованием организационных, так и технических мероприятий и технологий ЗИ. При этом одним из важных аспектов разрабатываемой политики безопасности является выбор метода (методов) аутентификации, применяемых в компонентах АС ЗИ.
2 Модель нарушителя и методы ее реализации
Методы аутентификации подразделяются на два вида: аутентификация сторон и аутентификация источника данных. В свою очередь, целевой направленностью аутентификации сторон является предоставление доступа, установление доверительных отношений и электронная подпись.
Для указанных видов аутентификации важной задачей является выбор секрета -аутентификатора, определяющего тип
аутентификации. В работе рассматривается технология формирования аутентификатора на основе пароля.
В современных информационных системах с целью защиты
аутентификаторов, представленных
паролями используется класс
математических задач, для решения которых не известны или сложны в реализации алгоритмы с полиномиальной сложностью. К таким задачам в первую очередь относятся хеширование,
факторизация целых чисел и дискретное логарифмирование в определенной алгебраической структуре, например, конечном поле.
Модель нарушителя для получения права доступа к ресурсам АС ЗИ основана на завладении паролем пользователя, имеющего право входа (login) в АС ЗИ. В случае успешного получения пароля злоумышленник гарантированно получает права пользователя, учетная запись которого была скомпрометирована.
К наиболее известным современным методам реализации подобной модели нарушителя относятся:
- полный перебор (или метод «грубой силы», англ. brute force) - перебор всех возможных сочетаний допустимых в пароле символов;
- подбор по словарю - основан на предположении, что в пароле используются существующие слова какого-либо языка либо их сочетания;
- метод социальной инженерии - основан на предположении, что пользователь использовал в качестве пароля личные сведения, такие как его имя или фамилия, дата рождения и т. п.
С точки зрения программной реализации наиболее простым является метод полного перебора. При этом его основными недостатками являются высокие требования к производительности вычислительной
системы, на которой реализуется алгоритм полного перебора. В частности, для повышения эффективности выполнения метода полного перебора по показателю оперативности (время подбора пароля) используется его параллельное выполнение на отдельных вычислительных модулях. И этот показатель в целом имеет линейную зависимость от количества вычислительных модулей.
Обобщенная схема реализации метода полного перебора (на примере использования в качестве эталона хеша пароля) с использованием технологии распараллеливания представлена на рис. 1.
Рис. 1. Технология распараллеливания реализации метода полного перебора (на примере хеша пароля)
3 Технология CUDA
Путем решения задачи полного перебора является распараллеливание вычислений. Количество потоков, которые могут выполняться компьютером, совпадает с количеством ядер. Таким образом, распараллеливание может разрешить главные недостатки классической вычислительной системы - сложность масштабирования и аппаратную
зависимость программных реализаций. Для обработки большего количества потоков могут использоваться графические процессоры общего назначения (GPGPU -General-purpose graphics processing units). Графические процессоры лишены многих недостатков центрального процессора, являются отличной и очень быстрой
счетной машиной. На их базе появилась технология nVidia CUDA (Compute Unified Device Architecture), позволяющая перенести вычисление сложных алгоритмов на GPU без каких-либо дополнительных затрат1.
Техника GPGPU обладает несомненными преимуществами, но не лишена ряда недостатков. Первый из них - узкая сфера применения. GPU шагнули далеко вперед центрального процессора в плане наращивания вычислительной мощности и общего количества ядер (видеокарты несут на себе вычислительный блок, состоящий из более чем сотни ядер), однако такая высокая плотность достигается за счет максимального упрощения дизайна самого чипа2. Схема взаимодействия центрального и графического процессора представлена на рис. 2.
Основная
память
□ □ □□ □ □ □□ □ □ □□ □ □ □□
Рис. 2. Схема взаимодействия между CPU и GPU
Данные из основной памяти копируются в память видеокарты, и управление передается GPU. Он выполняет каждую поступающую команду параллельно в каждом ядре, а результат копируется из памяти видеокарты в основную память.
Концепция вычислительной архитектуры CUDA - одна команда на множество данных (Single Instruction Multiple Data, SIMD). Концепция SIMD подразумевает, что одна инструкция позволяет
1 www.nvidia.ru
2 www.xakep.ru
одновременно обработать множество данных.
У GPU на обработку данных отведено намного большее число транзисторов, чем на управление исполнением, поэтому его уместно использовать только для вычислений с большим параллелизмом и интенсивной арифметикой. Именно поэтому всю мощь технологии CUDA можно ощутить, когда выполняются одни и те же действия над огромными массивами данных.
До недавнего времени GPU могли программироваться только посредством специальных графических API. Отсюда вытекали такие недостатки, как длительное время для его изучения, а также накладные расходы, возникающие за счет использования промежуточного звена. На данный момент CUDA представляется для программиста в виде расширения на привычные языки программирования, а поэтому изучить его намного проще. Таким образом, цель данной работы - сравнение производительности параллельных
вычислений с применением технологии CUDA и без ее использования.
Список литературы
Ивутин А.Н., Страхов И.А. 2014. Оценка эффективности реализации алгоритма метода Монте-Карло на современных графических ускорителях. Известия тульского
государственного университета. Технические науки.
Казённов А.М. 2010. Основы технологии CUDA. Компьютерные исследования и моделирование.