ПРОГРАММНЫЙ ГЕНЕРАТОР ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ ДЛЯ ПРОГРАММНЫХ СРЕДСТВ ЗАЩИТЫ ИНФОРМАЦИИ
М.В. Григорьева Научный руководитель - к.т.н., доцент М.А. Вус
(Санкт-Петербургский институт информатики и информатизации РАН)
Данная работа посвящена разработке алгоритма генерации псевдослучайных чисел (далее ПСЧ) с применением скоростного программного алгоритма криптографического преобразования, созданию программной реализации алгоритма для применения в составе программных средств защиты информации и оценке качества выдаваемых последовательностей ПСЧ.
Введение
Важным элементом построения любой защищенной компьютерной системы, независимо от ее сложности и назначения, являются программные и программно-аппаратные средства генерации псевдослучайных чисел (ПСЧ). Генерация случайных (непредсказуемых) чисел - одна из главных трудностей при реализации любой системы безопасности, в частности криптографической системы. Случайные числа - числа, которые нельзя выработать, используя определенный алгоритм. Но можно создать последовательность чисел, которая будет приближать многие свойства случайных чисел -последовательность ПСЧ. Эти числа являются псевдослучайными, поскольку между ними есть детерминированная связь.
Ранее не раз решалась задача создания генераторов ПСЧ, но наибольшее распространение получили простые арифметические генераторы, характеризующиеся быстродействием, но обратимостью, малой длиной периода и в связи с этим невозможностью применения в системах ЗИ. Таким образом, актуальной задачей является развитие теории генераторов ПСЧ, в том числе создание новых алгоритмов генерации ПСЧ, отвечающих требованию применимости в системах ЗИ. В связи с этим цель работы - разработать и реализовать программно-ориентированный алгоритм генерации ПСЧ с применением скоростного программного алгоритма криптографического преобразования. Разработанный алгоритм генерации должен отвечать требованиям непредсказуемости, высокого быстродействия, эффективной и безопасной программной реализации, стойкости к атакам на основе известных, а также специально подобранных текстов, иметь хорошие статистические и периодические свойства.
1. Описание работы
Введем понятия последовательности ПСЧ, генератора ПСЧ и программных шифров.
Последовательность псевдослучайных чисел - последовательность, элементы которой генерируются с помощью каких-либо алгоритмов и подчиняются заданному распределению. Генератор псевдослучайных чисел - алгоритм, генерирующий последовательность псевдослучайных чисел. Этот же термин часто используется для описания генераторов псевдослучайных бит, а также различных поточных шифров. Программные шифры — это системы шифрования, которые используют операции над компьютерными единицами обработки данных и учитывают специфику обработки данных в вычислительных системах, что дает возможность при программных реализациях этих систем шифрования получать высокие скорости шифрования [1].
1.1. Алгоритм генерации
Для достижения поставленной цели были решены следующие задачи: выполнен обзор области применения генераторов ПСЧ и наиболее перспективных семейств алгоритмов генерации ПСЧ, изучены скоростные программные шифры.
Для генерации ПСЧ было решено использовать алгоритм на основе пароля (Е), а именно, скоростной программный алгоритм шифрования «СПЕКТР-Б» [2]. При разработке данного алгоритма шифрования предполагалось, что основной областью его использования будет обеспечение внутреннего шифрования в компьютерных системах и применение в составе СЗИ НСД, сохраняющих высокую производительность компьютерных систем [3]. Принятие таких решений позволяет выполнить требования, предъявляемые к алгоритму генерации.
Схема разработанного алгоритма генерации ПСЧ представлена на рис. 1.
к
¡=0,1
]=о,1
Рис. 1. Алгоритм генерации ПСЧ
Обозначения, используемые на схеме алгоритма генерации ПСЧ: , | - начальные множества значений, над которыми осуществляется преобразование;
- Е - алгоритм шифрования «СПЕКТР-Б»;
- к, к' - расширенные ключи шифрования, применяемые при шифровании в алгоритме «СПЕКТР-Б»;
- уь у| - выходные векторы преобразований;
- © - поразрядное сложение по модулю 2.
На вход алгоритму генерации подаются:
- числа (от 1П1 до 1П2 и от до |п4), заданные пользователем, по которым формируются выходные векторы преобразований (у1 и у|);
- начальное множество значений, над которым осуществляются преобразования;
- пароль пользователя, по которому формируется расширенный ключ шифрования или, в случае использования фиксированного расширенного ключа, который используется при вычислении параметров алгоритма «СПЕКТР-Б».
В зависимости от того, ввел ли пользователь граничные значения только для параметра 1 или для параметров 1 и ], выполняется соответственно один или два цикла
преобразований.
Если заданы граничные значения только для параметра 1:
- для каждого значения вектора у1 и каждого блока сообщения выполняется операция ХОЯ;
- полученный блок подается в качестве начального множества значений для алгоритма шифрования Е.
Если заданы граничные значения для параметров 1 и ]:
- для каждого значения вектора у1 и текущего значения у| выполняется операция ХОЯ;
полученный блок подается в качестве начального множества значений для алгоритма шифрования Е;
- для полученного блока и блока сообщения выполняется операция ХОЯ;
- полученный блок подается в качестве начального множества значений для алгоритма шифрования Е.
Эти действия выполняются в цикле до тех пор, пока значение параметра ] не станет равно заданному граничному значению.
1.2. Ограничения алгоритма
Если количество значений конечного вектора преобразований меньше количества блоков сообщения, то заново вычисляются у. Это может произойти, если оператор неверно задал диапазон значений параметров 1 и _]. В таком случае статистические свойства алгоритма снижаются.
Для эффективной работы алгоритма оператор должен установить значения параметров 1 и ] с учетом величины начального множества значений, над которым будут осуществляться преобразования.
1.3. Программная реализация
Реализовывать алгоритм генерации ПСЧ было решено модульно. Структуру программы генерации ПСЧ можно графически представить в виде модулей (рис. 2).
Графический интерфейс
Модуль предвычислений
Модуль преобразований
Модуль работы с файлами
Рис. 2. Модульная структура программы
Программа «Vector-f», интерфейс которой представлен на рис. 3, представляет собой приложение Windows, разработанное в среде «Microsoft Visual Studio 6.0» на языке программирования C++, построенное c использованием библиотеки MFC (Microsoft Foundation Classes - библиотека базовых классов «Microsoft»). Разработанная программа реализует следующие функции:
- генерация расширенного ключа шифрования;
- реализация алгоритма шифрования дискового пространства «СПЕКТР-F»;
- генерация псевдослучайных чисел;
- шифрование блоков данных по заданным пользователем параметрам;
- дешифрование блоков данных по заданным пользователем параметрам.
При выборе ключа расширенного типа программа произведет генерацию расширенного ключа по введенному пользователю паролю и специализированной подстановочной таблице. Данный ключ будет использоваться в криптографическом алгоритме. При выборе ключа фиксированного типа в алгоритме будет использоваться ключ, зафиксированный в коде программы, а введенный пользователем пароль будет использоваться для вычисления параметров криптографического алгоритма.
Рис. 3. Главное окно программы 2. Анализ статистических свойств генерируемых последовательностей
Исследование проводилось традиционно используемым методом тестирования. В настоящей работе для исследования последовательностей ПСЧ применяются две группы тестов.
- Графические тесты. При этом статистические свойства последовательностей отображаются в виде графических зависимостей, по виду которых делают выводы о свойствах исследуемой последовательности.
- Оценочные тесты. При этом статистические свойства последовательностей определяются числовыми характеристиками. На основе оценочных критериев делаются заключения о степени близости свойств анализируемой и истинно случайной последовательностей.
Тестирование разработанной автором программы «УеСог-Е» проводилось с помощью «ПКСТ-П» - модуля тестирования поточных шифров, разработанного в НФ ФГУП НИИ «Вектор» - СЦПС «Спектр». Модуль тестирования включает в себя следующие тесты: проверка частот появления битов 0 и 1, кумулятивный тест, спектральный тест, тест серий, посимвольная проверка, покерный тест, автокорреляционный тест, геометрический тест [4]. На случайность исследуется гаммирующая последовательность на выходе алгоритма при случайном ключе.
В отличие от графических тестов (в данной работе применялся только графический тест распределения на плоскости), где результаты интерпретируются пользователями, вследствие чего возможны субъективные различия в трактовке результатов, оценочные тесты характеризуются тем, что они выдают численную характеристику, которая позволяет однозначно сказать, пройден тест или нет. Последовательность успешно прошла оценочные тесты. Результат прохождения графического теста представлен на рис. 4.
Вывод: между элементами последовательности отсутствуют зависимости, точки на поле расположены хаотично.
По результатам описанных выше проведенных исследований с большой долей уверенности можно сделать вывод, что генерируемая последовательность ПСЧ отвечает требованию случайности.
Рис. 4. Результаты теста распределения на плоскости
2.1. Оценка скорости генерации
Оценка скорости генерации последовательности ПСЧ проводится для оценки применимости данной программы в современных системах ЗИ, требующих быстродействия. В данной работе оценка проводилась при использовании расширенного ключа шифрования и параметрах операции С1 от 2 до 256. Характеристики компьютера: процессор Pentuim 1400 MHz, 588 МГц; 248 Мб ОЗУ. Результаты оценки скорости генерации приведены в таблице.
Входной блок данных, Мбайт 68,1 155
Время, с. 15,1 38,2
Скорость, Мбайт/с 4,5 4,1
Таблица 1. Скорость генерации последовательности ПСЧ
Вывод: средняя скорость генерации - 4,3 Мбайт/с.
В данной работе эксперимент носил тестовый характер, так как при написании программы задача достижения максимального быстродействия не ставилась. Естественно полагать, что скорость генерации может быть существенно повышена за счет уменьшения буферизации данных при осуществлении преобразований типов данных.
Заключение
Генераторы ПСЧ - важные элементы построения любой защищенной компьютерной системы. Поэтому создание новых алгоритмов генерации ПСЧ, сочетающих в себе непредсказуемость, высокое быстродействие, эффективную и безопасную программную реализацию - актуальная и экономически эффективная задача.
Разработанный и реализованный алгоритм генерации является криптостойким и характеризуется хорошими статистическими и периодическими свойствами, поэтому может применяться в криптографических системах защиты информации.
В результате выполнения работы: - выполнен обзор скоростных программных шифров и статистических тестов для оценки качества псевдослучайных последовательностей;
- разработан оригинальный алгоритм генерации псевдослучайных чисел с применением скоростного программного алгоритма криптографического преобразования «СПЕКТР-Б»;
- создан пример программной реализации алгоритма для применения в составе программных средств защиты информации;
- проведена отладка программы;
- разработана подробная пользовательская документация;
- выполнен анализ свойств программной реализации: проведена оценка скорости генерации и качества выдаваемых псевдослучайных последовательностей с использованием методов статистического тестирования, реализованных в разработанном в НФ ФГУП НИИ «Вектор» - СЦПС «Спектр» программном комплексе.
Литература
1. Молдовян Н.А. Криптография: от примитивов к синтезу алгоритмов / Н.А. Молдо-вян, А.А. Молдовян, М.А. Еремеев. - СПб: БХВ-Петербург, 2004.
2. Бодров А.В., Молдовян Н.А., Молдовян П.А. Повышение производительности программных шифров с большим размером блока данных. - СПб: Специализированный центр программных систем «СПЕКТР», 2006.
3. Молдовян А.А., Молдовян Н.А., Гуц Н.Д., Изотов Б.В. Криптография: скоростные шифры. - СПб: БХВ-Петербург, 2002. - 496 с.: ил.
4. Башков И.О., Гортинская Л.В. Исследование статистических свойств блочного шифра ЕАОЬЕ-128. - СПб: НФ ФГУП НИИ «Вектор» - СЦПС «Спектр», 2006.