автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Построение многопоточного криптоядра в операционных системах с вытесняющей многозадачностью

кандидата технических наук
Раевский, Алексей Викторович
город
Москва
год
2010
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Построение многопоточного криптоядра в операционных системах с вытесняющей многозадачностью»

Автореферат диссертации по теме "Построение многопоточного криптоядра в операционных системах с вытесняющей многозадачностью"

004613044

На правах рукописи

РАЕВСКИЙ АЛЕКСЕЙ ВИКТОРОВИЧ

ПОСТРОЕНИЕ МНОГОПОТОЧНОГО КРИПТОЯДРЛ В ОПЕРАЦИОННЫХ СИСТЕМАХ С ВЫТЕСНЯЮЩЕЙ МНОГОЗАДАЧНОСТЬЮ

Специальность 05.13.11 — математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

1 9 НОН 2010

Научный руководитель: д. т. н., проф. Афанасьев В. Н. Москва — 2010

004613044

Работа выполнена в Московском государственном институте электроники и математики.

Научный руководитель:

Доктор технических наук, профессор

Афанасьев Валерий Николаевич

Официальные оппоненты:

Доктор технических наук, профессор

Шеремет Игорь Анатольевич

Доктор технических наук, профессор

Саксонов Евгений Александрович

Ведущая организация:

Институт Проблем Управления им. В. А. Трапезникова Российской Академии Наук

Защита состоится 30 ноября 2010 г. в 14.00 часов на заседании диссертационного совета Д 212.133.01 в Московском государственном институте электроники и математики по адресу: 109028, Москва, Б. Трехсвятительский пер., д. 3/12, ауд. ЪЪО .

С диссертацией можно ознакомиться в библиотеке МИЭМ.

Автореферат разослан «_»_

2010 г.

Ученый секретарь диссертационного совета

к.т.н., доцент Бузников С. Е.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

АКТУАЛЬНОСТЬ ИССЛЕДОВАНИЯ

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

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

Примером системы, к которой предъявляются повышенные требования по производительности и которая выполняется на многопроцессорной платформе, является система защиты информации при ее хранении (СЗИХ). СЗИХ в настоящее время широко распространены в связи с тем, что современные коммерческие, финансовые и государственные организации для своей работы накапливают и обрабатывают существенные объемы необходимой для своей деятельности информации.

Ситуация осложняется тем, что информация, как правило, централизованно хранится в центрах обработки данных, и сервера, занятые обработкой данных, подвергаются повышенной нагрузке в системах электронной коммерции, системах управления предприятием и многих других приложениях.

Еще более серьезной проблемой является использование СЗИХ для защиты резервных копий на магнитную ленту. Как правило, на временной промежуток, в течение которого должно завершиться резервное копирование, накладываются ограничения, поскольку во время резервного копирования не должны выполняться какие-либо другие действия с данными. Это означает, что применение СЗИХ в некоторых случаях может быть или невозможно, или требовать существенной модернизации оборудования.

Основным методом защиты данных в СЗИХ является шифрование. Шифрование в программных СЗИХ реализует криптоядро - отдельный модуль, как правило, низкоуровневый драйвер. Шифрование является ресурсоемкой операцией с точки зрения вычислительных ресурсов, а требования к корпоративным информационным системам разрабатываются чаще всего без учета внедрения в них СЗИХ. В связи с этим, вопросы построения оптимального по быстродействию криптоядра для СЗИХ приобретают

первостепенное значение для повышения эффективности систем защиты информации при ее хранении.

ЦЕЛЬ И ЗАДАЧИ ИССЛЕДОВАНИЯ

Целью диссертационной работы было исследование, проектирование, разработка и обоснование подходов к построению оптимизированного по быстродействию многопоточного криптоядра для систем защиты информации при ее хранении.

Для достижения поставленной цели были сформулированы и успешно решены следующие задачи:

1. Анализ современных систем защиты информации при ее хранении, их функций и архитектуры, а также методов повышения их производительности.

2. Исследование различных способов повышения производительности криптоядра СЗИХ, предложение и обоснование рекомендаций по их реализации.

3. Решение задачи определения оптимального количества параллельных рабочих потоков в ядре операционной системы с вытесняющей многозадачностью и разработка оригинального алгоритма для определения оптимального количества параллельных рабочих потоков для различных дисциплин обслуживания распараллеливаемых задач.

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

5. Исследование предложенного алгоритма определения оптимального количества параллельных потоков и подтверждение его эффективности методами имитационного моделирования.

ОБЪЕКТ И ПРЕДМЕТ ИССЛЕДОВАНИЯ

Объектом исследования является многопроцессорная вычислительная система с симметричной мультипроцессорной архитектурой (SMP), в которой могут одновременно присутствовать задачи различных приоритетов и разных дисциплин обслуживания. Предметом исследования является построение в такой среде оптимального по быстродействию криптоядра для систем защиты информации при ее хранении.

МЕТОДЫ ИССЛЕДОВАНИЯ

Результаты диссертационной работы получены на основе комплексного использования теории параллельных вычислений, теории высокопроизводительных вычислений, теории построения операционных систем, теории массового обслуживания и методов имитационного

моделирования. Имитационная модель, разработанная в процессе работы, строилась с применением объектно-ориентированного подхода.

НАУЧНАЯ НОВИЗНА

Научная новизна данной работы заключается в том, что в результате проведенных исследований:

• разработан общий подход и теоретические обоснования для построения оптимального по быстродействию крилтоядра в операционных системах с вытесняющей многозадачностью;

• исследованы основные способы оптимизации крилтоядра с точки зрения повышения его быстродействия и приведены и обоснованы рекомендации по их реализации;

• поставлена и решена задача определения оптимального количества параллельных рабочих потоков при распараллеливании задачи при условии наличия других задач, на которые тратятся вычислительные ресурсы;

• разработан оригинальный алгоритм определения количества параллельных рабочих потоков с учетом загруженности вычислительной системы другими задачами;

• построена имитационная модель и с ее помощью проведено исследование процессов распараллеливания задач в многопроцессорной вычислительной системе с учетом наличия в ней задач разных приоритетов и разных дисциплин обслуживания.

ПРАКТИЧЕСКАЯ ЦЕННОСТЬ

Практическая ценность результатов работы заключается в новых возможностях по оптимизации быстродействия СЗБХ и повышения их эффективности. Это расширяет возможности по их использованию и уменьшает затраты на аппаратные средства.

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

ОСНОВНЫЕ ПОЛОЖЕНИЯ, ВЫНОСИМЫЕ НА ЗАЩИТУ

• Результаты анализа современных СЗИХ, их архитектуры и методов оптимизации.

• Способы оптимизации крилтоядра и методологические рекомендации по их реализации.

• Результаты решения задачи определения оптимального количества параллельных потоков для задач с различными дисциплинами обслуживания и алгоритм, реализующий это решение.

• Имитационная модель многопроцессорной вычислительной системы и результаты моделирования, полученные с ее использованием.

РЕАЛИЗАЦИЯ РЕЗУЛЬТАТОВ РАБОТЫ

Описанное в настоящей работе многопоточное криптоядро реализовано в программной системе защиты информации при ее хранении Zserver Suite. Данная система выпускается компанией SECURIT, имеет множество российских и международных наград и успешно внедрена в нескольких тысячах российских и зарубежных компаниях, банках и государственных организациях.

Кроме этого, результаты работы использовались при чтении курса лекций «Методы и средства защиты информации» на кафедре «Кибернетика» МИЭМ.

АПРОБАЦИЯ РЕЗУЛЬТАТОВ И ПУБЛИКАЦИИ

Основные положения и результаты диссертации докладывались и обсуждались на ежегодных конференциях студентов, аспирантов и молодых специалистов МГИЭМ. По теме диссертации опубликовано 7 печатных работ и получено 2 свидетельства об официальной регистрации программы для ЭВМ.

СТРУКТУРА И ОБЪЕМ РАБОТЫ

Диссертационная работа состоит из введения, четырех глав и заключения. Работа изложена на 131 странице, содержит 13 рисунков и 4 таблицы. Список литературы содержит 93 наименования.

СОДЕРЖАНИЕ РАБОТЫ

Во введении дана краткая характеристика исследуемой проблемы, обоснована актуальность темы диссертационной работы, определены цель и задачи исследования, а также объект и предмет исследования, сформулированы научная новизна и практическая ценность полученных результатов.

В первой главе проведен анализ существующих методов оптимизации и программно-аппаратного окружения криптоядра.

В числе проанализированных методов повышения эффективности шифрования в крштгоядре рассмотрены оптимизация алгоритмов шифрования, использование аппаратных ускорителей и распараллеливание шифрования.

Кроме этого, в первой главе рассмотрены существующие работы по распараллеливанию алгоритмов шифрования, в том числе известные реализации распараллеливания алгоритмов шифрования.

Также проведен обзор архитектуры и принципов работы программных СЗИХ, осуществляющие защиту данных на уровне устройства (раздела). Такие СЗИХ реализуют основной функционал в драйвере-фильтре ввода-вывода защищаемого устройства и отдельном драйвере-кршггоядре, непосредственно

выполняющим функции шифрования. Типовая структура программной СЗИХ приведена на рис. 1.

Компоненты СЗИХ

1-1 Зашифрованные

' ■ данные I I Открытые данные

—Управление

Рис. 1. Типовая структура программной СЗИХ

Во второй главе исследуются основные вопросы построения многопоточного криптоядра в операционных системах с вытесняющей многозадачностью и приводятся рекомендации по их решению.

Показано, что наиболее очевидным шагом в увеличении быстродействия является оптимизация собственно алгоритма шифрования - в первую очередь, реализации алгоритмов шифрования таким образом, чтобы максимально использовать регистры процессора и кэш-память вместо основной оперативной памяти.

Следующей задачей, решенной при построении многопоточного криптоядра, было определение уровня распараллеливания алгоритмов шифрования. При этом возможно три варианта - уровень устройства, когда все запросы чтения/записи для одного устройства шифруются отдельным процессором; уровень запроса, когда отдельный запрос чтения/записи обрабатывается отдельным процессором, и уровень интразалроса, когда каждый запрос чтения/записи обрабатывается несколькими процессорами. В результате анализа достоинств и недостатков приведенных уровней обоснован выбор распараллеливания на уровне интразалроса.

Проведено исследование по выбору криптографического алгоритма. Данный вопрос может решаться по-разному в зависимости от предъявляемых требований, но, в любом случае, при выборе необходимо учитывать класс алгоритма, его криптографическую стойкость, тип алгоритма (блочный или поточный), быстродействие и законодательные требования.

Также в работе исследован и определен размер блока шифрования. В данном контексте под блоком шифрования понимается не блок шифрования для блочного алгоритма, а минимальный блок данных, который шифруется с одинаковым набором параметров (ключ шифрования, синхропосылка, и т. д.). С учетом особенностей файловых систем FAT, FAT32 и NTFS рекомендовано использовать размер блока шифрования 512 байт.

Далее во второй главе исследована и решена задача определения количества рабочих потоков, которые будут выполнять параллельное шифрование блока данных. При решении данной задачи учитывались следующие характеристики программно-аппаратного окружения:

• Рабочие потоки, выполняющие шифрование, в реальной вычислительной системе не единственные, и каждый поток может быть прерван и приостановлен для того, чтобы выполнить поток более высокого приоритета. Это означает, что наиболее очевидное решение - число рабочих потоков должно быть равно числу процессоров - может не обеспечить максимальное быстродействие.

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

• Распараллеленные потоки выполняются в симметричной мультипроцессорной (SMP) вычислительной системе под управлением, например, ОС семейства Windows NT.

• Распараллеленные потоки выполняются в режиме ядра операционной системы с уровнем прерываний (IRQL) PASSIVE_LEVEL или DISPATCHLEVEL. При работе на уровне прерываний PAS SI VE_LE VEL выполнение потоков планируется по циклическому алгоритму (round robin, RR), при работе на уровне DISPATCHJLEVEL и выше — по алгоритму «первым пришел -первым обслужен» (first come - first served, FCFS).

• Время процессоров для выполнения потоков выделяется квантами, и каждая задача и каждая ее часть требует для выполнения целое число кйантов. Длительность и время выполнения задач также составляет целое число квантов планирования.

В связи с тем, что для решения данной задачи сравнивается производительность различных вариантов распараллеливания, и абсолютная оценка производительности не важна, в нижеприведенных формулах не учитываются следующие факторы:

• время, затрачиваемое на подготовительные операции, связанные с распараллеливанием (создание необходимого количества потоков, настройка объектов синхронизации и т. д.);

• время, затрачиваемое на переключение контекстов потоков;

• задержки, связанные с конкуренцией за общие ресурсы (память, шины и т. д.).

Обозначим: Т - исследуемая задача, N - количество процессоров, п -число потоков, на которое мы разделяем задачу Т, Т- вычислительная емкость задачи Ч* (число квантов, требуемое для ее выполнения одним процессором), Е0 - количество задач с тем же Ш^]-, что и задача ¥, Е] - количество задач с ЖС^Ь более высоким, чем задача Ч' [6,7].

Задача определения числа параллельных потоков была сведена к следующим вариантам:

Вариант 1. Е0 = О, Е1 - 0.

В случае распараллеливания единственной задачи на уровне прерываний Ш8РАТСН_ЬЕУЕЬ время выполнения распараллеленной задачи будет составлять:

Г =

раг

— при п <N п

{к + \)Т

(2.1)

приШ<п<{к+Щ,

Из этого следует, что время выполнения задачи будет минимальным при п = Ы, то есть при ее разделении на число потоков, равное числу процессоров.

В случае распараллеливания единственной задачи с уровнем прерываний РА88ГУЕ_1Л5УЕЬ, если п<Ы, то, как и в предыдущем варианте, время выполнения задачи будет обратно пропорционально количеству параллельных частей. В случае если п > N, то с помощью простейших вычислений получаем, что время выполнения задачи зависит от количества процессоров и не зависит от п. Таким образом, значение для времени выполнения с учетом распараллеливания выражается следующим образом:

при п<Ы

Т =

при п > Ы, ТтойИ-О +1 при я > И, ГтосЬУ * 0

(2.2)

Как правило, время выполнения исследуемых задач много больше одного процессорного кванта. Это означает, что единицей в третьей части формулы

(2.2) можно пренебречь и минимальное время выполнения задачи будет достигаться при любых п>Ы. Здесь следует уточнить, что при увеличении и возрастают системные накладные расходы, как вычислительных ресурсов, поскольку большее время тратится на переключение потоков, так и памяти, поскольку с каждым потоком связывается определенная область памяти -контекст потока. Таким образом, из всех возможных значений п выбирается минимальное, из чего следует, что минимальным время выполнения распараллеленной задачи будет при « = N.

Вариант 2. Еп > О, Е} = 0.

В случае уровня прерываний Б18РАТСН_ЬЕУЕЬ, в момент поступления задачи в системе находится Ео задач такого же уровня прерываний. При этом потоки задачи начнут выполняться не сразу и не одновременно, а по мере освобождения процессоров от выполнения имеющихся задач. Для того чтобы все потоки начали выполняться, должно освободиться п процессоров. Если обозначить Т^ - время освобождения п процессоров, то формулу (2.1) для данного случая можно записать в виде:

(2.3)

п

Исходя из анализа задачи в варианте 1 очевидно, что случай п> N рассматривать нет смысла. Определим зависимость среднего Т^ее от п. Пусть время обслуживания всех Ео потоков, находящихся в системе к моменту поступления задачи Т, имеет одинаковое распределение со средним М. Тогда среднее время освобождения п процессоров будет определяться следующим образом:

0, пщЕй<Ы -п

(к+\)М, т?яШ<Еа<(к + Щ,Е(1тойН<Н-п,кеП (2'4) (к + 2)М, прикЫ <Еа< (к + 1)ЛГ,£0тодЫ> # - е N

Для задач с уровнем прерываний РА881УЕ_ЬЕУЕЬ введено понятие квантового цикла - время, за которое каждый поток, ожидающий обслуживания, получит один квант процессорного времени. В этом случае для

Т

выполнения задачи Ч1 потребуется —квантовых циклов, а длительность одного

п

К + н

цикла составит —-—. Это означает, что общая длительность выполнения N

задачи ¥ будет определяться по следующей формуле:

(2'5)

Данная формула имеет смысл только при Е0+п>Ы, поскольку в противном случае останутся свободные процессоры и вычислительная 10

мощность будет использоваться неогпимально. Исходя из анализа полученной формулы был сделан вывод, что минимальное время выполнения распараллеленных потоков достигается при максимальном п, то есть, для наиболее быстрого выполнения задачи нужно разбить ее на максимально возможное число параллельных потоков.

Вариант3. Еп^О.Е,> 0.

В случае если в систему будут поступать потоки более высоких 11ЩЬ, выполнение потоков задачи ¥ будет прерываться и откладываться для обслуживания потоков более высоких Ш.С>Ь. Это означает; что для выполнения задачи ЧР в среднем будет доступно меньшее, чем Ы, число процессоров.

Среднее число доступных процессоров будет определяться следующим образом:

N' = N-5 (2.6)

Если задача имеет уровень прерываний И8РАТСН_ЬЕУЕЬ, для определения оптимального п подставим в формулу (2.1) вместо числа процессоров среднее число свободных процессоров. Очевидно, что в этом случае необходимо разделить задачу 'Р на число, равное округлению среднего числа свободных процессоров до ближайшего целого.

Аналогично определяется оптимальное количество рабочих потоков для задачи с уровнем прерывания РА88П/Е_ЬЕУЕЬ, за исключением того, что округлять среднее число процессоров надо в сторону большего целого.

Вариант 4. Еп > 0, > 0.

Данный вариант наиболее приближен к реальным процессам в вычислительной системе. В данном варианте, как и в предыдущем, количество доступных процессоров будет определяться по формуле (2.6).

Если задача 1Р имеет уровень прерываний ВКРАТСНЬЕУЕЬ, необходимо учесть затраты на обслуживание других задач с таким же ШЗЬ, как это сделано в Варианте 2. В этом случае время, затрачиваемое на выполнение задачи будет определяться следующим образом:

Т

¡к+1)т {2Л)

Т ■■

раг

В связи с тем, что формула (2.4) предусматривает целое значение N, для определения времени освобождения необходимого количества процессоров ее необходимо модифицировать с учетом того, что среднее число свободных процессоров является не натуральным, а вещественным:

О, приЯ0 SiV-E,-n М, при^-^-ж^о ¿N-E^

(*+2)АГ, при ¿(jV--£,)<£<, S(it+l)(A'-£1),|—1>- N~£J~n\k<,n

Фигурными скобками обозначается операция вычисления дробной части числа.

Если задача имеет уровень PASSIVEJLEVEL, то, аналошчно варианту 2, число доступных процессоров не влияет на скорость выполнения распараллеленной задачи. В этом случае задачу необходимо разделить на максимально возможное число потоков с учетом ограничений, накладываемых размером блока шифрования и накладных расходов, возникающих при создании и переключении параллельных потоков.

В третьей главе рассматриваются особенности реализации алгоритма многопоточного кршггоядра с учетом особенностей архитектуры СЗИХ. В качестве примера СЗИХ используется система Zserver Suite, серийно выпускаемая компанией SECURIT. СЗИХ Zserver Suite предназначена для шифрования данных, хранимых на жестких дисках, дисковых массивах и хранилищах, оптических дисках и магнитных лентах.

В числе основных компонентов, входящих в Zserver Suite, следует выделить:

• Драйверы-фильтры устройств хранения данных (жестких дисков, магнитных лент, CD/DVD), реализующие перехват функций чтения/записи данных.

• Драйвер-криптоядро, реализующий функции шифрования.

• Системный сервис, обеспечивающий взаимодействие пользователя с драйверами, в том числе по сети.

• Консоль управления, реализующая возможности пользовательского интерфейса.

При включении режима прозрачного шифрования любого устройства для него создается криптографичеадай контекст. В процессе создания контекста создается N рабочих потоков, где N - количество процессоров (или ядер процессоров), установленных в целевой вычислительной системе. При этом один поток является основным, выполняющим диспетчерские функции, а оставшиеся N-1 потоков реализуют только вызов функции шифрования для соответствующей части входного блока. В каждый контекст записывается ссылка на ключ шифрования и создается собственная очередь запросов зашифрования и расшифрования.

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

Диспетчерский поток извлекает запросы по одному из очереди и обрабатывает их, разбивая шифруемую область памяти на п частей, п < N. Далее диспетчерский поток передает п-1 частей рабочим потокам, запуская их на шифрование, и одну часть он шифрует сам. По окончании шифрования диспетчерский поток ожидает завершения шифрования в остальных потоках и передает сигнал вызвавшей функции о том, что шифрование окончено.

В случае если размер блока равен одному сектору, или при высокой загруженности, когда принимается решение не производить распараллеливание, запрос в очередь не помещается и обрабатывается обычным образом путем непосредственного вызова функции зашифрования или расшифрования.

При выполнении задачи на уровне PASSIVE_LEVEL количество параллельных частей не будет зависеть от параметров производительности вычислительной системы, поскольку для обеспечения максимальной производительности задачу всегда требуется делить на максимально возможное число частей.

Для обеспечения адаптивного распараллеливания шифрования на уровне DISPATCH_LEVEL предложено оценивать текущую загруженность и по результатам корректировать количество потоков с целью достижения максимальной эффективности.

В качестве параметра, определяющего, сколько времени процессоры заняты обработкой задач более высокого приоритета, используются сумма таких показателей, как процент процессорного времени, затраченного на обработку прерываний (interrupt requests) и времени на выполнение процедур отложенного вызова (deferred procedure calls). Обозначим его Р^ф-

Кроме этого, в процессе вычислений используется часть процессорного времени, которая операционная система проводит на уровне ОТБРАТСН ЬЕУЕЬ. Она определяется по формуле:

Здесь Р{Ле — часть времени бездействия процессора (idle time), Pmer — часть процессорного времени, затраченного на выполнение задач в непривилегированном режиме (user mode) в процентах.

Значения параметров, входящих в формулы (3.1) и (3.2) определяются с помощью программного интерфейса регистров производительности. Драйвер вычисляет средние значения этих параметров в единицу времени.

Р =Р + Р

dpc

(3.1)

(3.2)

Кроме этого, в вычислениях используются средаие значения в единицу времени общего числа потоков, имеющих высокие уровни ПК^Ь (выше, чем БКРАТСН_ЬЕУЕЬ) и числа потоков, имеющих уровень БКРАТСН^ЕУЕЬ. Данные значения получаются путем запроса к менеджеру объектов или менеджеру потоков ядра. Обозначим их соответственно (¿ыф и б/,™«

Из этого определяются значения для подстановки в формулы (2.7) и (2.8):

Для определения числа параллельных частей для различных значений п, не превышающих количество процессоров N. вычисляется Т^ по формуле (2.7). Значение п, для которого Траг минимально,. принимается в качестве количества параллельных частей.

Таким образом, обеспечивается учет загруженности вычислительной системы для определения количества рабочих потоков, выполняющих шифрование.

В четвертой главе выполнено исследование и верификация предложенных методов и алгоритмов с помощью имитационного моделирования в среде ОМЫеТ++.

Основными объектами изучения в модели являются потоки. Потоки могут быть различных уровней прерываний. В модели используются три уровня прерываний для потоков:

® Пассивный (ШКЕАО_РА881УЕ__ЬЕУЕЬ). Самый низкий уровень прерываний. Потоки этого уровня прерываний планируются по дисциплине ИЕ. Этот уровень соответствует уровню РА381УЕ_ЪЕУЕЬ в реальной ОС.

• Средний (1ТЖЕАВ_р1БРАТСН_ЬЕУЕЬ). Потоки этого уровня прерываний планируются по дисциплине БСГБ и соответствуют уровню прерываний ВКРАТСН^ЬЕУЕЬ в реальной ОС.

• Высокий (ТНКЕАО_НЮН_ЪЕ\ПЕЬ). Потоки этого уровня также планируются по дисциплине РСР8 и соответствуют потокам в ОС с Ш.<ЗЬ выше, чем ОКРАТСНЬЕУЕЬ.

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

(3.3)

(3.4)

(3.5)

В модуле контроллера прерываний была реализована генерация новых потоков с высоким ШЗЬ и передача этих потоков модулю центрального процессора, используя объекты-сообщения среды ОМЫеТ-Н-.

В модуле центрального процессора были реализованы следующие объекты:

• Отдельные очереди потоков для всех трех уровней прерываний, в которых размещаются потоки, ожидающие обработки.

• Контейнер центрального процессора (КЦП), в который помещаются потоки для их обработки центральным процессором. Максимальная вместимость КЦП определяется числом процессоров в моделируемой системе и задается как параметр выполнения модели.

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

В модуле центрального процессора были реализованы следующие функции:

• Прием сообщений от модуля контроллера прерываний (потоков высокого уровня прерываний) и помещение их в очередь потоков-прерываний.

• Генерация новых потоков (поступающих на обработку) среднего и пассивного уровней прерываний и помещение их в соответствующие очереди.

• Генерация новых исследуемых потоков, разбиение их на необходимое количество частей и помещение в соответствующую очередь.

• Загрузка потоков в КЦП и их обслуживание. В модели собственно никакого обслуживания не производится, для обслуживаемых потоков осуществляется увеличение времени обслуживания на время, которое они провели в КЦП.

• Удаление потоков, которые получили требуемое им время обслуживания.

• Выгрузка потоков из КЦП. Из КЦП выгружаются потоки среднего уровня прерываний при поступлении потоков высокого уровня прерываний и потоки пассивного уровня прерываний - при поступлении потоков высокого и среднего уровней прерываний, а также по окончании процессорного кванта.

Верификация разработанной модели проводилась для условий, для которых можно получить результаты моделирования аналитическими методами:

• Имеется только один вид задач, высокого или среднего уровня прерываний.

• Время поступления задач в систему определяется распределением Пуассона с параметром 1.

• Требуемое время обслуживания задач определяется экспоненциальным распределением со средним временем обслуживания р.

Ддя целей верификации модели вычислялись и сравнивались с полученными в результате моделирования для различных значений параметров поступающих задач Я и ¡1 и количества процессоров N значения среднего количества задач в системе Е/ за все время моделирования.

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

О 50000 100000 150000 200000 250000 300000

Ряс. 2. Верификация модели и определение горнзепта моделирования

Результаты верификации модели и определения горизонта моделирования приведены на графике (рис. 2). По оси абсцисс отложен горизонт моделирования в секундах модельного времени, по оси ординат -отклонение в процентах среднего значения Е1, полученного в результате моделирования от вычисленного значения для различных значений количества процессоров N. Из графика видно, что имитационная модель распараллеливания потоков реализована корректно, и значения среднего количества задач Ей полученные в результате моделирования, близки к значениям, полученным аналитическими методами. Также из графика видно, что достаточная для целей настоящей работы точность моделирования в пределах 0,5% достигается при значениях горизонта моделирования не менее 100000 секунд.

С целью оценки эффективности метода определения количества параллельных потоков в данной модели был реализован алгоритм определения количества параллельных потоков, описанный выше. Далее модель запускалась два раза с одними и теми же параметрами. Первый раз задача разбивалась на

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

Ниже на рис. 3 и рис. 4 представлены результаты моделирования распараллеливания задач с уровнем прерываний соответственно РА881УЕ_ЪЕУЕЬ и Ш8РАТСН_]иЕУЕЬ. По оси абсцисс отмечены значения загруженности, выраженные в виде среднего количества задач высшего приоритета Е;. По оси ординат - значения выигрыша в производительности при разделении задачи на количество потоков в соответствии с предложенным алгоритмом по сравнению с разделением задачи на количество потоков, равное количеству процессоров. Результаты приведены для различного количества процессоров. При моделировании принималось во внимание предположение о том, что средняя загрузка вычислительной системы не достигает предельной, то есть При исследовании распараллеливания загруженность изменялась

путем изменения параметров потока входящих задач с уровнем прерываний ШОН ЬЕУЕГ..

При разделении задачи с уровнем прерываний РАБ БГУЕ^ЬЕ\/ЕЬ на потоки в качестве минимального размера одного потока принималась длительность одного процессорного кванта.

35,00% 30,00% 25,00% 20,00% 15,00% 10,00% 5,00% 0,00%

0 1 2 3 4 5 6

Рис. 3. Распараллеливание задачи РА881УЕ_ЬЕУЕЬ

При исследовании распараллеливания задач с уровнем прерываний 018РАТСН_ЬЕУЕЬ задачи с уровнем РА881УЕ_ЕЕ\ГЕЬ отсутствовали, поскольку время на них выделяется после выполнения всех задач с более высоким уровнем прерываний, и, следовательно, на результаты выполнения задач с более высокими уровнями прерываний они не влияют.

-в—N=4

30,00%

25,00% -

20,00%

15,00% •

10,00% -

5,00% ■

0,00% -0

Рнс. 4. Распараллеливание задачд DISPATCH_LEVEL

Как видно из графиков, предложенная методика распараллеливания дает существенный выигрыш производительности, который может достигать 30% для потоков с уровнем прерывания PASSIVEJLEVEL и более 25% для потоков с уровнем прерываний DISPATCH_LEVEL.

ЗАКЛЮЧЕНИЕ

В данной работе проведено построение многопоточного криптоядра в операционных системах с вытесняющей многозадачностью на примере ОС семейства Windows NT.

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

В результате выполненной работы были разработаны рекомендации по всем вышеперечисленным аспектам, обоснован выбор интразапроса в качестве уровня распараллеливания шифрования и размера блока шифрования в 512 байт.

Для определения оптимального количества параллельных рабочих потоков был предложен оригинальный алгоритм, учитывающий текущую загруженность и определяемую уровнем прерывании потока дисциплину обслуживания. Приведено обоснование алгоритма и рассмотрены его особенности работы в различных условиях.

Для подтверждения эффективности алгоритма было проведено его исследование методами имитационного моделирования с помощью специально разработанной объектно-ориентированной модели, реализованной в среде OMNeT++. Результаты, полученные в результате имитационного моделирования, подтвердили эффективность алгоритма, позволяющего получить выигрыш в производительности до 30% по сравнению с распараллеливанием в соответствии с традиционной концепцией.

Указанные методы реализованы в системе защиты информации при ее хранении Zserver Suite 5.0, серийно выпускаемой компанией SecurIT, внедренной и успешно используемой в нескольких тысячах компаниях, банках и государственных организациях в России и за рубежом.

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Раевский, А. Обзор систем шифрования данных // PC Magazine/RE. 2003. №10.

2. Раевский, А. Современные технологии защиты данных при их хранении // BYTE/Россия. 2005. №5.

3. Раевский А. В. Проблемы реализации многопоточного криптоядра для систем безопасного храпения данных в среде с вытесняющей многозадачностью // Научпо-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М МИЭМ. 2007.

4. Раевский, А. Обзор технологий защиты данных при их хранении // Windows IT Pro/RE. 2007. №7.

5. Раевский А. В. Анализ циклического алгоритма диспетчеризации потоков в мультипроцессорных системах // Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М. МИЭМ. 2008.

6. Раевский А. В. Архитектура параллельного кршггоядра для систем защиты информации при ее хранении // Вестник Российского университета дружбы народов. Серия Инженерные исследования (информационные технологии и управление). 2008. №4.98-106.

7. Раевский А. В. Проблема распараллеливания задач в многопроцессорных системах с различными дисциплинами диспетчеризации // Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М. МИЭМ. 2009.

8. Свидетельство об официальной регистрации программы для ЭВМ ЭВМ №2001611474. Система защиты информации на рабочих станциях и серверах Secret Disk. Правообладатель: Раевский А. В. Авторы: Раевский А. В., Семененко Д. С. Зарегистрировано в Реестре программ для ЭВМ 05.11.2001.

9. Свидетельство об официальной регистрации программы для ЭВМ №2002611760. Система защиты информации на рабочих станциях и серверах SecurIT. Правообладатель: ЗАО «СекьюрИТ». Авторы: Раевский А. В., Иванов Д. В., Бевз А. В. и др. Зарегистрировано в Реестре программ для ЭВМ 14.10.2002.

Подписано в печать 27.10.2010. Формат 60x84/16. Бумага типографская № 2. Печать - ризография. Усл. печ. л. 1,2 Тираж 100 экз. Заказ 1084.

Московский государственный институт электроники и математики 109028, Москва, Б.Трехсвятительский пер., 3.

Центр оперативной полиграфии (495) 916-88-04, 916-89-25

Оглавление автор диссертации — кандидата технических наук Раевский, Алексей Викторович

введение.

глава 1. анализ существующих методов оптимизации и программно-аппаратного окружения криптоядра.

1.1. обзор'архитектуры и принципов работы современных сзих.

1.2. Методы повышения производительности шифрования.

1.2.1. Оптимизация-алгоритма шифрования.

1.2.2. Использование аппаратных ускорителей.

1.2.3. Распараллеливание шифрования.

1.3. Исследования по распараллеливанию шифрования.

1.3.1. Существующие реализации распараллеливания шифрования.

1.3.2. Режимы алгоритмов шифрования, ориентированные на распараллеливание.

1.4. Анализ программно-аппаратного окружения.

1.4.1. Классификация параллельных вычислительных систем.

1.4.2. Суперкомпьютеры и вычислительные кластеры.

1.4.3. Симметричная мультипроцессорная архитектура.

1.4.4. Когерентность кэш-памяти.

1.4.5. Многопоточная архитектура.

1.4.6. Особенности архитектуры ядра многозадачных ОС.

1.5. Технологии распараллеливания существующих программ.

1.6. Современные методы моделирования параллельных систем.

1.7. Выводы.

глава 2. определение основных параметров построения многопоточного криптоядра.

2.1. Оптимизация алгоритма шифрования.

2.2. Определение уровня распараллеливания шифрования.

2.3. Выбор криптографического алгоритма.

2.4. Выбор размера блока шифрования.

2.5. Особенности использования кэш-памяти.

2.6. Особенности создания, синхронизации и планирования потоков

2.7. Определение количества рабочих потоков.

2.8. Выводы.

глава 3. архитектура и реализация многопоточного криптоядра.

3.1. Основные функции СЗИХ.

3.2. Основные компоненты СЗИХ.

3.2.1. Драйвер-фильтр дисковых устройств.

3.2.2. Драйвер-фильтр устройств резервного копирования.

3.2.3. Драйвер-фильтр файловой системы.

3.2.4. Драйвер-криптоядро.

3.2.5. Системный сервис.

3.2.6. Модуль тревоги.

3.2.7. Консоль управления.

3.3. Механизм распараллеливания шифрования.

3.3.1. Алгоритм распараллеливания шифрования.

3.3.2. Определение количества параллельных потоков.

3.4. ВЫВОДЫ.

глава 4. исследование распараллеивания потоков в ядре ос методами имитационного моделирования.

4.1. Среда имитационного моделирования ©MNeT++.

4.2. Структура имитационной модели симметричной мультипроцессорной системы.'.

4.3. Архитектура имитационной модели.95'

4.3.1. Класс ic.Р5*

4.3.2. Класс сри.

4.3.3. Класс cThread.

4.4. Верификация модели и определение горизонта моделирования.

4.5. Моделирование распараллеливания потоков различных уровней прерываний.

4.5.1. Задача с уровнем прерываний PASSIVE LEVEL.

4.5.2. Задача с уровнем прерываний DISPA TCHLE VEL.

4.6. Выводы.

Введение 2010 год, диссертация по информатике, вычислительной технике и управлению, Раевский, Алексей Викторович

актуальность исследования

В» настоящее время в- качестве аппаратной платформы в государственных и коммерческих организациях широкое распространение получили многопроцессорные вычислительные системы-. Особенно это актуально для серверных платформ. Во многом такую популярность обусловило появление современных многоядерных процессоров, которые обеспечивают настоящую многопроцессорность даже при- наличии в вычислительной системе всего одного процессора.

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

Примером системы, к которой предъявляются повышенные требования по производительности и которая выполняется на многопроцессорной платформе, является система защиты информации при ее хранении (СЗИХ). СЗИХ в настоящее время- широко распространены в связи с тем, что современные коммерческие, финансовые и государственные организации для своей работы накапливают и обрабатывают существенные объемы необходимой для своей деятельности информации.

Ситуация осложняется тем, что информация, как правило, централизованно хранится в центрах обработки данных, и сервера, занятые обработкой данных, подвергаются повышенной нагрузке в. системах электронной коммерции, системах управления предприятием и многих других приложениях.

Еще более серьезной проблемой- является использование СЗИХ для защиты резервных копий на магнитную ленту. Как правило, на временной промежуток, в течение которого должно завершиться резервное копирование, накладываются- ограничения, поскольку во время резервного копирования не должны выполняться- какие-либо другие действия с данными. Это означает, что применение СЗИХ в некоторых случаях может быть или невозможно, или требовать существенной модернизации аппаратной платформы.

Между тем, необходимость применения^ СЗИХ может быть продиктована требованиями законодательства. Например, Федеральный Закон РФ №152 от 27.07.2006 «О персональных данных» обязывает органы государственной власти, органы местного самоуправления, муниципальные органы, юридические и физические лица обеспечивать конфиденциальность хранимых и обрабатываемых ими персональных данных. В качестве персональных данных настоящий закон определяет любую информацию, относящуюся к определенному физическому лицу (субъекту персональных данных), в том числе его фамилию, имя, отчество, год, месяц, дату и место рождения, адрес, семейное, социальное, имущественное положение, образование, профессию, доходы [29]. Как видно из этого определения, проблема защиты персональных данных касается практически любой организации, в том или ином виде работающей с физическими лицами. Это могут быть и государственные организации, такие как Федеральная налоговая служба или Пенсионный фонд, так и коммерческие структуры, например, операторы связи, хранящие информацию об абонентах, и даже магазины, которые хранят базу данных о покупателях, которым выданы I дисконтные карты. Актуальность проблемы подтверждают сообщения о многочисленных инцидентах, связанных с утечками разнообразных баз данных из российских государственных и коммерческих организаций -Центральный банк, Федеральная налоговая служба, МТС, Мегафон, Вымпелком (торговая марка Билайн) и т. д. [13]

Основным методом защиты данных в СЗИХ является шифрование. Шифрование в программных СЗИХ реализует криптоядро — отдельный модуль, как правило, низкоуровневый драйвер. Шифрование является ресурсоемкой операцией с точки зрения вычислительных ресурсов, а требования к корпоративным информационным системам' разрабатываются чаще всего без учета внедрения в них СЗИХ. В связи с этим, вопросы построения оптимального по быстродействию криптоядра для СЗИХ приобретают первостепенное значение для повышения эффективности систем защиты информации при ее хранении. цель и задачи исследования

Цель диссертационной работы заключается в исследовании, проектировании, разработке и обосновании подходов к построению оптимизированного по быстродействию многопоточного криптоядра для систем защиты информации при ее хранении.

Для достижения поставленной цели были сформулированы и успешно решены следующие задачи:

1. Анализ современных систем защиты информации при ее хранении, их функций и архитектуры, а также методов повышения их производительности.

2. Определение различных аспектов повышения производительности криптоядра СЗИХ, предложение и обоснование рекомендаций по их реализации.

3. Решение задачи определения оптимального количества параллельных рабочих потоков в ядре операционной системы с вытесняющей многозадачностью и разработка оригинального алгоритма для определения оптимального количества параллельных рабочих потоков для различных дисциплин обслуживания распараллеливаемых задач.

4. Разработка и верификация имитационной модели многопроцессорной системы с учетом наличия в системе задач с разным приоритетом и различными дисциплинами обслуживания.

5. Исследование предложенного > алгоритма " определения! оптимального' количества параллельных потоков и подтверждение его эффективности1 методами имитационного' моделирования. объект и предмет исследования

Объектом исследования является многопроцессорная вычислительная^ система^ с симметричной мультипроцессорной архитектурой: (SMP), в-которой могут одновременно -присутствовать.задачи различных приоритетов и разных дисциплин* обслуживания; Предметом' исследования является построение в такой среде оптимального по быстродействию криптоядра для систем защиты информации при ее хранении. методы исследования

Результаты диссертационной работы получены на основе комплексного' использования теории параллельных вычислений, теории высокопроизводительных вычислений, теории построения операционных систем; теории массового обслуживания и методов имитационного моделирования. Имитационная модель, разработанная в процессе работы, строилась с применением объектно-ориентированного подхода. научная новизна

Научная* новизна данной работы заключается-в том, что в, результате проведенных исследований:

• разработан общий подход и теоретические обоснования для построения' оптимального по быстродействию криптоядра- в-системах с вытесняющей многозадачностью;

• определены основные аспекты оптимизации криптоядра с точки зрения повышения быстродействия системы и приведены и обоснованы рекомендации по их реализации;.

• поставлена и решена задача определения оптимального количества параллельных рабочих потоков при. распараллеливании-: задачи; при? условии? наличия других задач4 в, системе; на которые тратятся вычислительные ресурсы;. •« разработан; оригинальный! алгоритм определения» количества' параллельных рабочих потоков с учетом загруженности системы другими задачами;

• построена имитационная; модель, и с ее: помощью проведено моделирование процессов распараллеливания« задач? в многопроцессорной системе с учетом наличия» в ней задач« разных приоритетов и разных дисциплин обслуживания. практическая ценность

Практическая ценность результатов* работы заключается в новых возможностях, по оптимизации быстродействия СЗИХ- и повышения их эффективности. Это расширяет возможности по их; использованию? и уменьшает затраты на аппаратные средства.

Кроме этого, разработанные методы и алгоритмы могут использоваться для оптимизации* распараллеливания других легкопараллелизуемых задач, таких как, например, процедуры сжатия информации, алгоритмы обработки звука; изображений и видео и т. д. основные положения, выносимые на защиту

• Результаты анализа современных СЗИХ, их архитектуры и методов; оптимизации.

• Аспекты оптимизации; криптоядра и методологические рекомендации по их реализации.

• Решение задачи определения оптимального количества параллельных потоков для задач с различными дисциплинами обслуживания и алгоритм; реализующий это решение.

• ' Имитационная . модель многопроцессорной системы, и результаты моделирования, полученные с ее использованием., реализация результатов работы

Описанное в настоящей работе многопоточное криптоядро реализовано в программной системе защиты информации при ее хранении Zserver Suite. Данная система выпускается компанией SECURIT, имеет множество российских и международных наград и успешно внедрена в нескольких тысячах российских и зарубежных компаниях, банках и государственных организациях.

Кроме этого, результаты работы использовались при чтении курса лекций «Методы и средства защиты информации» на кафедре «Кибернетика» МИЭМ. апробация результатов и публикации

Основные положения и результаты диссертации докладывались и обсуждались на ежегодных конференциях студентов, аспирантов и молодых специалистов МИЭМ. По теме диссертации опубликовано 7 печатных работ и получено 2 свидетельства об официальной регистрации программы для ЭВМ. структура и объем работы

Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы и приложений. Работа изложена на 131 странице, содержит 13 рисунков и 4 таблицы. Список литературы содержит 93 наименования.

Заключение диссертация на тему "Построение многопоточного криптоядра в операционных системах с вытесняющей многозадачностью"

Ф.6. ВЫВОДЫ!

В данной, главе проведено исследование процесса распараллеливания задач с различными дисциплинами обслуживания с помощью имитационного моделирования в среде ОММеТ-н-. В ходе выполнения исследования была разработана объектно-ориентированная, модель многопроцессорной системы, допускающая наличие задач с дисциплинами» обслуживания и. БСРЭ и, с различными распределениями времени прихода и длительности обслуживания. В процессе моделирования была проведена верификация модели* путем сравнения результатов, полученных в результате моделирования и аналитическим путем, определен горизонт-моделирования, необходимый для получения результатов необходимой, точности.

В имитационной модели был реализован алгоритм определения* оптимального количества параллельных потоков, на которое, необходимо разделить задачу в зависимости от загруженности системы, и уровня прерываний распараллеливаемой задачи.

Для оценки эффективности, алгоритма определения оптимального количества параллельных потоков сравнивалось время, проведенное в системе задачами; разделенными на количество параллельных потоков, равное числу процессоров и задачами, разделение на параллельные потоки которых производилось по реализованному алгоритму. При разделении на параллельные потоки по реализованному алгоритму достигнут выигрыш в производительности более 30% для задач с дисциплиной обслуживания ИЯ и более 25% для задач с дисциплиной обслуживания БСРЗ.

ЗАКЛЮЧЕНИЕ

Системы защиты информации при ее хранении являются на сегодняшний день обязательным компонентом любой комплексной системы информационной безопасности уровня предприятия. Процедуры шифрования, входящие в состав таких систем, часто являются узким местом информационных потоков с точки зрения производительности, поэтому одним из основных требований, предъявляемых к таким системам, является минимальное снижение производительности обработки информации после их внедрения, которое достигается за счет оптимизации процедур и использования распараллеливания.

В данной работе рассмотрены основные аспекты построения многопоточного криптоядра в операционных системах с вытесняющей многозадачностью на примере ОС семейства Windows NT.

В ходе работы были рассмотрены такие аспекты построения многопоточного криптоядра, как оптимизация алгоритма шифрования, уровень распараллеливания шифрования, выбор криптографического алгоритма и размера блока шифрования, особенности использования кэшпамяти и создания и синхронизации потоков, определение оптимального количества рабочих потоков для шифрования.

В результате выполненной работы были приведены рекомендации по всем вышеперечисленным аспектам, обоснован выбор интразапроса в качестве уровня распараллеливания шифрования и размера блока шифрования в 512 байт.

Для определения оптимального количества параллельных рабочих потоков был предложен оригинальный алгоритм, учитывающий текущую загруженности системы и определяемую уровнем прерываний потока дисциплину обслуживания. Приведено обоснование алгоритма и рассмотрены его особенности работы в различных условиях.

Для подтверждения эффективности алгоритма было проведено его исследование методами имитационного моделирования с помощью специально разработанной объектно-ориентированной модели, реализованной в среде OMNeT++. Результаты, полученные в результате имитационного моделирования, подтвердили эффективность алгоритма, позволяющего получить выигрыш в производительности до 30% по сравнению с распараллеливанием в соответствии с традиционной концепцией.

Указанные методы реализованы в системе защиты информации при ее хранении Zserver Suite 5.0, серийно выпускаемой компанией SecurIT, внедренной и успешно используемой в нескольких тысячах компаниях, банках и государственных организациях в России и за рубежом.

Библиография Раевский, Алексей Викторович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Воеводин, В. Параллельные вычисления / Воеводин В. В., Воеводин Вл. В. СПб. : БХВ—Петербург, 2004. - 608 с.

2. Гергель, В. П. Теория и практика параллельных вычислений: учебное пособие / В. П. Гергель. М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. — 423 е.: ил., табл. — ISBN 978-5-9556-0096-3.

3. Гнеденко, Б. В. Введение в теорию массового обслуживания / Б. В. Гнеденко, И. Н. Коваленко. — Изд. 3-е, испр. и доп. М. : КомКнига, 2005. - 400 с. - ISBN 5-484-00287-7.

4. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. -М.: Госстандарт СССР, 1989.

5. Дейтел, X. Операционные системы. Распределенные системы, сети, безопасность / X. М. Дейтел, П. Дж. Дейтел, Д. Р. Чофнес ; пер. с англ.

6. Корнеев, В. В. Современные микропроцессоры / В. В. Корнеев,. А. В. Киселев. 3-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2003. - 448 е.: ил. - ISBN 5-94157-385-5.

7. Красов, П. Крупнейшие скандалы с кражами баз данных / Петр Красов // Газета «Коммерсантъ». 2006. - 16 августа. - № 150(3481).

8. Малышкин, BL Параллельное программирование мультикомпыотеров : учебник / В. Э. Малышкин, В. Д. Корнеев: — Новосибирск / изд-во НГТУ, 2006. 296 с.

9. Они, У. Использование Microsoft Windows Driver Model / Уолтер Они. -2-е изд. СПб.: Питер, 2007. - 764 е.: ил. - (Для профессионалов): -ISBN 978-5-91180-057-4.

10. Раевский, А. Обзор систем шифрования данных / Алексей Раевский // Журнал PC Magazine/RE. 2003; №10. - М.: СК-пресс, 2003.

11. Раевский, А. Обзор технологий защиты; данных при их хранении / Алексей Раевский // Журнал Windows IT Pro/RE. 2007, №7: - Mt: «Открытые системы», 2007.

12. Раевский, А. Современные технологии защиты данных при их хранении / Алексей Раевский // Журнал BYTE/Россия. 2005, №5: - М.: СК-пресс, 2005.

13. Размер кластера по умолчанию для* файловых систем FAT и NTFS Электронный ресурс. / Центр- справки и поддержки Microsoft. — Код статьи: 140365. Режим доступа: http://support.microsoft.com/kb/140365. - Загл. с экрана.

14. Руссинович, М. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. Мастер-класс / Марк Руссинович, Дэвид Соломон : Пер. с англ. — 4-е изд. — М.: «Русская Редакция»; СПб.: Питер, 2006. 992 е.: ил.

15. Свидетельство об официальной» регистрации программы для ЭВМ. Система защиты информации на рабочих станциях и серверах Secret Disk / Раевский А. В., Семененко Д. С. Свидетельство-об официальной-регистрации программы для ЭВМ №2001611474. - 2001.

16. Солдатов, В. Программирование драйверов Windows / В. П. Солдатов. — М.: ООО «Бином-Пресс», 2004. 432 е.: ил. - ISBN 5-9581-0059-5.

17. Сорокина С. Программирование драйверов И' систем безопасности : учеб. пособие / Сорокина С. И., Тихонов А. Ю., Щербаков А. Ю. — СПб.: БХВ-Петербург, 2003. 256 е.: ил. - ISBN 5-94157-263-8.

18. Танненбаум, Э. Архитектура компьютера. 5-е изд. / Э. Танненбаум. — СПб.: Питер, 2007. 844 е.: ил. - ISBN 5-469-01274-3.

19. Федеральный закон Российской Федерации от 08 августа 2001 г. № 128-ФЗ О лицензировании отдельных видов деятельности : принят Гос. Думой 13 июля 2001 г.,,одобр. Советом Федерации 20 июля 2001 г. // "Российская газета. -№153-154. — 10 августа 2001 г.

20. Федеральный закон Российской Федерации от 27 июля 2006 г. № 152-ФЗ О персональных данных : принят Гос. Думой 8 июля 2006 г., одобр. Советом Федерации 14 июля 2006 г. // Российская газета. — №4131. — 29 июля 2006 г.

21. Ферпосон, Н. Практическая криптография / Ферпосон Нильс, Шнайер Брюс : пер. с англ. — М.: Издательский дом «Вильяме», 2005. — 424 с. : ил. Парал. тит. англ. - ISBN 5-8459-0733-0.

22. Фомичев, В. М. Дискретная математика и криптология : курс лекций / В.М. Фомичев; под общ. ред. д-ра физ.-мат. н. Н. Д. Подуфалова. — Mi : ДИАЛОГ-МИФИ, 2003. 400 с.

23. Хинчин А. Я. Работы по математической теории массового обслуживания / Хинчин А. Я. ; под ред. Б. В. Гнеденко. Изд. 2-е, стереотипное. - М. : Едиториал УРСС, 2004. - 240 с. - ISBN 5-35400651-1.

24. Хьюз, К. Параллельное и распределенное программирование с использованием С++/ Камерон Хьюз, Трейси Хьюз. : Пер. с англ. М. : Издательский дом «Вильяме», 2004. - 672 с.

25. Шелестов A. Zserver Suite: защищаем корпоративные хранилища данных / Алексей Шелестов // Журнал «Системный администратор». — 2006, №3. -М.: «Учительская газета», 2006.

26. Agarwal, A. APRIL: a processor architecture for multiprocessing / Anant Agarwal, Beng-Hong Lim, David Kranz, John Kubiatowicz // ACM SIGARCH Computer Architecture News. Volume 18. - Issue 3a. - June 1990.-P. 104-114.-ISSN 0163-5964.

27. Agarwal, A. Sparcle: an evolutionary processor- design for large-scale Multiprocessors / Anant Agarwal et al. // ШЕЕ Micro. Volume 13; — Issue 3. - June 1993. - P. 48-61. - ISSN 0272-1732.

28. Agarwal, A. The MIT Ale wife machine: architecture and performance / Anant AgarwaLet al.l // ACM SIGARCH Computer Architecture-News. -Volume 23. Issue 2. - May 1995. -P.'„2-13. - ISSN 0163-5964.

29. Allen, R. Automatic translation of FORTRAN programs to* vector, form,/ Randy Allen and Ken Kennedy // ACM Transactions on- Programming Languages and Systems (TOPLAS). Volume 9. - Issue 4'. - October 1987. -PI 491-542. - ISSN 0164-0925.

30. Bampis, E. Some models for scheduling parallel programs with communication delays / Evripidis Bampis, Frederic Guinand, Denis Trystram // Discrete Applied Mathematics. Vol. 72 (1-2). - January, 1997. - P. 5-24. - ISSN 0166-218X.

31. Baylor, S. An Evaluation of Cache Coherence Protocols for Multiprocessors / Sandra Johnson Baylor, Kevin P. Auliffe and Bharat D. Rathi // Shared Memory Multiprocessing / Norihisa Suzuki (Editor). The MIT Press, 1992, -P. 135-163.-ISBN 0-262-19322-1.

32. Blumofe, R. Scheduling multithreaded computations by work stealing / R.D. Blumofe and C.E. Leiserson // Proceedings 35th Annual Symposium on Foundations of Computer Science. IEEE Computer Society, 1994. - P. 356368. - ISBN 0-8186-6580-7.

33. Blumofe, R. Space-efficient scheduling of multithreaded computations / Robert D. Blumofe, Charles E. Leiserson // Proceedings of the twenty-fifthannual ACM, symposium* on Theory of computing. — New York : ACM, 1993. P. 362-371. - ISBN 0-89791-591 -7.

34. Distributed.net Electronic resource. : gathering point for topics relating to distributed computing. Режим доступа: http://www.distributed.net. — Загл. с экрана.

35. Eggers, S. Simultaneous Multithreading: A Platform for Next-Generation Processors / Susan J. Eggers et al. // IEEE Micro. Volume 17. - Issue 5. -September, 1997. - P. 12-19. - ISSN 0272-1732.

36. Farcy, A. Improving single-process performance with multithreaded, processors / Alexandre Farcy, Olivier Temam // Proceedings of the 10th international conference on Supercomputing. ACM, 1996. - P. 350-357.о1.BN 0-89791-803-7.

37. Federal Information Processing Standards Publication 197. Advanced Encryption Standard (AES) Electronic resource. 2001. - Режим доступа:http://www.csrc.nist.gov/publications/fips/fipsl97/fips-197.pdf. Загл. с экрана.

38. Flynn, М. J: Very high-speed computing systems / M. J." Flynn// Proceedings of the IEEE. 1966: - 54(12). - P.1901-1909.

39. Greenfield, J. S. Distributed Programming Paradigms with Cryptography Applications. Lecture Notes in Computer Science / Jonathan S. Greenfield. -Springer Berlin Heidelberg, 1994. ISBN 3-540-58496-4.

40. Hutchinson; N. C. The x-kernel: An Architecture for Implementing Network Protocols / N. C. Hutchinson and L. L. Peterson // IEEE Transactions on Software Engineering. IEEE Press. - Vol. 17. - January. - 1991. -P.64-76. - ISSN 0098-5589.

41. Installable File System Electronic resource. / Microsoft Developer Network: Windows Driver Kit. Режим доступа: http://msdn.microsoft.com/en-us/library/dd446412.aspx. — Загл. с экрана.

42. Intel1 Core 2 Duo Desktop Processor. Product Brief Electronic resource. — Режим' доступа: http://downloadiintel.com/products/ processor/core2duo/desktopprodbrief.pdf. — Загл. с экрана.

43. Kleinrock, L. Time-shared Systems: A Theoretical Treatment / Leonard Kleinrock // Journal of the ACM. ACM. - Volume 14, Issue 2. - April 1967. - P: 242-261. - ISSN 0004-5411.

44. Liskov, M. Tweakable Block Ciphers / Moses Liskov, RonaldL. Rivest and David Wagner // Lecture Notes in Computer Science. Springer Berlin Heidelberg. - 2002. - Vol. 2442. Advances in Cryptology — CRYPTO 2002. -P. 31-46. - ISSN 0302-9743.

45. Menezes, A. Handbook of Applied Cryptography / Alfred Menezes, Paul van Oorschot, Scott Vanstone. CRC Press, 1996. - 816 pp. - ISBN 0-84938523-7.

46. Morrison, Pi Charles Babbage and His Calculating Engines / Philip Morrison; Emily Morrison. New York. - Dover Publication Jnc. - 1961. - ISBN 9780486200125.

47. OMNeT++ Community Electronic resource. Режим доступа: http://www.omnetpp.org. - Загл. с экрана.

48. OpenMP. The OpenMP specification for parallel programming Electronic resource. Режим доступа: http://www.openmp.org. - Загл. с экрана.

49. Process and Thread Manager Routines Electronic resource. / MicrosoftDeveloper Network: Windows Driver Kit. — Режим доступа: http://msdn.microsoft.com/en-us/library/ms802955.aspx. — Загл. с экрана.

50. Schneier, В: Applied Cryptography Second Edition: protocols, algorithms and source code in С / Bruce Schneier. — John Wiley & Sons, Inc., 1996;

51. Scott, S. A Cache Coherence Mechanism for Scalable, Shared-Memory Multiprocessors / Steven Scott // Shared Memory Multiprocessing / Norihisa Suzuki (Editor). The MIT Press, 1992*. - P. 437-461. - ISBN 0-262-193221.

52. Shen, J. Modern Processor Design: Fundamentals of Superscalar Processors / John Paul Shen, Mikko H. Lipasti. McGraw-Hill, 2004. - 656p. - ISBN 007-057064-7.

53. Simoni, R. Dynamic Pointer Allocation for Scalable Cache Coherence Directories / Richard Simoni and Mark Horowitz // Shared Memory Multiprocessing / Norihisa Suzuki (Editor). The MIT Press, 1992. - P. 463482. - ISBN 0-262-19322-1.

54. Stenstrom, P. A survey of cache coherence schemes for multiprocessors / Per Stenstrom // Computer. Volume 23, Issue 6. - June, 1990. - P. 12-24. -ISSN 0018-9162.

55. Stenstrom, P. Trends in Shared Memory Multiprocessing / Per Stenstrom et al. // Computer. Volume 30; Issue 12. - December, 1997. - P. 44-50. ISSN 0018-9162.

56. Storage Devices Design Guide Electronic resource. / Microsoft Developer Network: Windows Driver Kit. — Режим* доступа: http://msdn.microsoft.com/en-us/library/ ms803217.aspx. -Загл. с экрана.

57. Synchronization Techniques Electronic resource. / Microsoft Developer Network: Windows Driver Kit. Режим доступа: http://msdn.microsoft.com/en-us/library/aa490202.aspx. — Загл. с экрана.

58. Tan, Z. Optimization and Benchmark of Cryptographic Algorithms on Network Processors / Tan Z., Lin C., Yin H., Li B. // IEEE Micro. Vol. 24, Issue 5. - September, 2004. - P.55-69. - ISSN 0272-1732.

59. TOP500 Supercomputer Sites Electronic resource. : computers ranked by their performance on the LINPACK Benchmark. Режим доступа: http://www.top500.org. - Загл. с экрана.

60. Tullsen, D. Simultaneous multithreading: Maximizing on-chip parallelism / D.M. Tullsen, S.J. Eggers, H.M. Levy. // International Symposium on Computer Architecture. New York, ACM, 1998. - ISBN 1-58113-058-9.

61. Vlassov, V. A Queuing Model of a Multi-threaded Architecture: A Case Study / Vladimir Vlassov and Alexander Kraynikov // Lecture Notes in

62. Computer Science. Springer Berlin Heidelberg. - 1999. - Vol. 1662. Parallel Computing Technologies. - P. 759. - ISSN 0302-9743.

63. Windows Driver Model Electronic resource. / Microsoft Developer Network: Windows Driver Kit. Режим доступа: http://msdn.microsoft.com/en-us/library/aa490248.aspx. — Загл. с экрана.

64. Wu, L. CryptoManiac: a fast flexible architecture for secure communication / Wu, L. Weaver, C. Austin, T. Proceedings of the 28th annual international symposium on Computer architecture. - ACM. - 2001. - P. 110-119. - ISBN 0-7695-1162-7.