5
Êîìïüþòåðíîå îáåñïå÷åíèå è âû÷èñëèòåëüíàÿ òåõíèêà 119 УДК 004.056 Н. А. Колесова ÎÖÅÍÊÀ ÊÀ×ÅÑÒÂÀ ÃÅÍÅÐÀÒÎÐΠÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÅÉ ÑËÓ×ÀÉÍÛÕ ×ÈÑÅË Введение В настоящее время множество полезных применений находят числа, которые выбираются случайным образом, так называемые последовательности случайных чисел (ПСЧ). Они могут применяться при моделировании различных явлений для повышения адекватности моделей. Для решения сложных задач численного анализа была разработана специальная методика, также ис- пользующая случайные числа. Последовательности случайных чисел используются в компьютер- ной графике, а также являются хорошим источником данных для тестирования эффективности компьютерных алгоритмов [1]. Особую роль ПСЧ играют в криптографии. Например, они могут применяться в качестве ключевых последовательностей. Корректная реализация асимметричных криптоалгоритмов требует добавления к каждой порции открытого текста нескольких случайных байт. Случайные числа используются также при блочном шифровании и хэшировании. Следует отметить, что получение подобных чисел сложно, т. к. любые алгоритмы и тех- нологии строятся таким образом, чтобы результат их работы был предсказуем. Тем не менее в настоящее время уже разработано достаточно большое количество различных генераторов ПСЧ. В общем случае все они должны удовлетворять следующим основным требованиям: - эффективность; - невозможность повторной генерации выработанной ПСЧ; - мультиплатформенность; - простота программной реализации. Однако практика показывает, что реализовать генератор ПСЧ, удовлетворяющий всем вышеперечисленным критериям, достаточно сложно. В настоящее время широкое распространение получили программные генераторы, выра- батывающие псевдослучайные последовательности чисел, т. е. такие последовательности, кото- рые генерируются с помощью детерминированных рекуррентных формул. Псевдослучайными эти последовательности называют потому, что фактически они, даже пройдя все тесты на неза- висимость и равномерность распределения, остаются полностью детерминированными [2]. Подобные генераторы ПСЧ должны удовлетворять нескольким дополнительным требованиям: - числа в генерируемой последовательности должны быть равномерно распределены и независимы, т. е. должны быть некоррелированы; - период последовательности должен иметь возможно большую длину. Уровень требований, предъявляемых к ПСЧ, а следовательно, и к их генераторам, во мно- гом зависит от класса решаемых с их помощью задач. Так, криптография предъявляет предель- но «жесткие» требования к используемым ПСЧ, от которых зависит криптостойкость шифров и надежность защиты, что, в свою очередь, приводит к необходимости разрабатывать эффек- тивные алгоритмы определения качества таких последовательностей и их генераторов. Постановка и решение задачи Влияние результатов различных проверок битовой последовательности на общий уровень ее качества может быть представлено в виде ориентированного трехуровневого графа G, имею- щего одну корневую вершину и не содержащего петель и горизонтальных ребер в пределах од- ного уровня иерархии [3]: G = <{F i };{D ij }>, где {F i } – множество вершин графа; {D ij } – множество дуг, соединяющих i-ю и j-ю вершины; K 0 корневая вершина, отвечающая интегральному критерию. При этом дуги расположены так, что началу дуги соответствует вершина нижнего уровня иерархии (ранга), а концу дуги вершина ранга, на единицу меньшего.

ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

  • Upload
    -

  • View
    219

  • Download
    7

Embed Size (px)

Citation preview

Page 1: ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

Êîìïüþòåðíîå îáåñïå÷åíèå è âû÷èñëèòåëüíàÿ òåõíèêà

119

УДК 004.056

Н. А. Колесова

ÎÖÅÍÊÀ ÊÀ×ÅÑÒÂÀ ÃÅÍÅÐÀÒÎÐΠÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÅÉ ÑËÓ×ÀÉÍÛÕ ×ÈÑÅË

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

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

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

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

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

вышеперечисленным критериям, достаточно сложно. В настоящее время широкое распространение получили программные генераторы, выра-

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

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

− период последовательности должен иметь возможно большую длину. Уровень требований, предъявляемых к ПСЧ, а следовательно, и к их генераторам, во мно-

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

Постановка и решение задачи Влияние результатов различных проверок битовой последовательности на общий уровень

ее качества может быть представлено в виде ориентированного трехуровневого графа G, имею-щего одну корневую вершину и не содержащего петель и горизонтальных ребер в пределах од-ного уровня иерархии [3]:

G = <{Fi};{ Dij}>,

где {Fi} – множество вершин графа; {Dij} – множество дуг, соединяющих i-ю и j-ю вершины; K0 – корневая вершина, отвечающая интегральному критерию. При этом дуги расположены так, что началу дуги соответствует вершина нижнего уровня иерархии (ранга), а концу дуги – вершина ранга, на единицу меньшего.

Page 2: ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

ISSN 2072-9502. Âåñòíèê ÀÃÒÓ. Ñåð.: Óïðàâëåíèå, âû÷èñëèòåëüíàÿ òåõíèêà è èíôîðìàòèêà. 2011. № 1

120

На втором (нижнем) уровне расположены тесты Ti, используемые для проверки различ-ных характеристик числовой последовательности. На уровень выше находятся обозначенные через Ki основные характеристики случайности: равномерность, стохастичность и независи-мость. И наконец, корневой вершине нулевого уровня соответствует комплексный критерий K0 оценки качества проверяемой последовательности.

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

K0

S3 S1

K2 K3 K1

S2

S S S S S S 22nT

31T

33nT 2

1T 11nT 1

1T

33nT

31T

22nT 1

1nT 21T 1

1T

p ≈

Рис. 1. Обобщенная схема комплексной оценки качества ПСЧ

Веса могут быть присвоены каждому тесту непосредственно в виде некоторого рацио-

нального числа от 0 до 1 либо могут быть получены экспертным путем. Значения весов тестов, рассчитанные как показано в [3], приведены в табл. 1.

Таблица 1

Значения весов тестов

Группа проверок на равномерность

Тест 1iT 1

1T 12T 1

3T 14T 1

5T

Вес TiS 0,28 0,31 0,1 0,31 0,31

Группа проверок на независимость

Тест 2iT 2

1T 22T 2

3T 24T 2

5T

Вес TiS 0,21 0,2 0,18 0,2 0,21

Группа проверок на стохастичность

Тест 3iT 3

1T 32T 3

3T 34T 3

5T

Вес TiS 0,28 0,28 0,16 0,28 0,16

Для комплексной оценки качества ПСЧ производится агрегирование данных, собранных

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

Таким образом, пройдя последовательно снизу вверх по всем уровням иерархии G, можно путем комплексного агрегирования данных выработать суждение о качественном уровне пока-зателя на каждой ступени иерархии (вплоть до K0).

Данная методика была положена в основу программного продукта [4], блок-схема работы которого представлена на рис. 2.

Page 3: ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

Êîìïüþòåðíîå îáåñïå÷åíèå è âû÷èñëèòåëüíàÿ òåõíèêà

121

Нет

Нет

Нет

Нет

Да

Да

Да

Да

Да

Выполнить проверку на равномерность

Проверка на равномерность

Результат проверки

на равномерность

Результаты проверки

на независимость

Результаты проверки

на стохастичность

Проверка на независимость

Проверка на стохастичность

Выполнить проверку на независимость

Нет

Выполнить проверку на стохастичность

Подсчёт интегрального критерия

Рис. 2. Блок-схема работы программного продукта

С помощью [4] был проведен сравнительный анализ качества числовых последовательно-

стей, полученных с помощью широко распространенных генераторов ПСЧ, используемых в языках программирования C++ и C#, и последовательностей, полученных на выходе алгорит-ма шифрования DES [5].

Page 4: ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

ISSN 2072-9502. Âåñòíèê ÀÃÒÓ. Ñåð.: Óïðàâëåíèå, âû÷èñëèòåëüíàÿ òåõíèêà è èíôîðìàòèêà. 2011. № 1

122

В общей сложности было протестировано по 60 числовых последовательностей различной длины, сгенерированных с использованием функции random() языков C++ (среда разработки – Builder 2006) и C# (среда разработки – Visual Studio 2008), а также полученных при шифровании данных с помощью алгоритма DES. При этом все тесты считались равнозначными. Случайными (неслучайными) признавались последовательности, прошедшие с положительным (отрицатель-ным) результатом 75 % тестов на равномерность, 80 % тестов на независимость и 75 % тестов на стохастичность.

Результаты тестирования приведены в табл. 2.

Таблица 2

Соотношение случайных, неслучайных и неопределенных последовательностей

Соотношение, % Источник ПСЧ случайных

последовательностей неопределенных

последовательностей неслучайных

последовательностей C++ 81,7 16,6 1,7 C# 78,3 15 6,7

DES 96,7 3,3 0

Процентные соотношения полученных случайных, неслучайных и неопределенных по-

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

Таблица 3

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

Равномерность Независимость Стохастичность Источник ПСЧ

СЛ, % НО, % НС, % СЛ, % НО, % НС, % СЛ,% НО, % НС, % C++ 86,6 11,7 1,7 75 25 0 70 30 0 C# 81,7 11,6 6,7 71,7 28,3 0 73,3 26,7 0

DES 91,7 8,3 0 93,3 6,7 0 100 0 0

Примечание: СЛ – случайные, НО – неопределенные, НС – неслучайные последовательности. Генератор случайных чисел считается «хорошим», если большая часть вырабатываемых им

ПСЧ проходит не менее определенного количества тестов каждой группы с положительным ре-зультатом. Конкретное количество тестов, которые должны пройти ПСЧ, чтобы генератор был признан «хорошим», определяется из условий решаемой задачи и фактически зависит от «жестко-сти» требований к качеству ПСЧ. Так, в задачах криптографии могут применяться только те ге-нераторы, для которых все вырабатываемые последовательности признаются случайными.

Таким образом, основываясь на полученных данных, можно сделать вывод о том, что ка-чество генератора ПСЧ, встроенного в язык программирования C++ (Builder 2006), практически в 4 раза выше качества генератора ПСЧ, встроенного в язык программирования C# (Visual Stu-dio 2008), т. е. он вырабатывает в 4 раза меньше «плохих» последовательностей. Несмотря на то, что данные генераторы непригодны для задач криптографии, они вполне могут применяться в иных областях, например для тестирования компьютерных программ или в вычислительных процедурах типа Монте-Карло [6].

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

Заключение Таким образом, в работе предложена методика оценки качества генераторов последова-

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

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

Page 5: ОЦЕНКА КАЧЕСТВА ГЕНЕРАТОРОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ СЛУЧАЙНЫХ ЧИСЕЛ

Êîìïüþòåðíîå îáåñïå÷åíèå è âû÷èñëèòåëüíàÿ òåõíèêà

123

СПИСОК ЛИТЕРАТУРЫ

1. Кнут Д. Э. Искусство программирования. – Т. 2. – М.: Вильямс, 2000. – 832 с. 2. Псевдослучайные последовательности / http://www.hardline.ru/selfteachers/Info/Security/Protection_to_

information /6/Index5.htm. 3. Колесова Н. А., Ажмухамедов И. М. Методика оценки качества последовательности случайных чисел

// Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. – 2010. – № 2. – С. 141–148.

4. Свидетельство об официальной регистрации программы для ЭВМ № 2010614210. Программа для комплексной оценки качества последовательностей случайных чисел / Н. А. Колесова, И. М. Ажму-хамедов; зарег. в реестре программ для ЭВМ 30.06.2010.

5. Шнайер Б. Прикладная криптография: протоколы, алгоритмы и исходные тексты на языке С, часть 3. – М.: Триумф, 2002. – 816 с.

6. Метод Монте-Карло / http://www.statsoft.ru/home/portal/glossary/GlossaryTwo/M/MonteCarlo.htm.

Статья поступила в редакцию 9.12.2010

ESTIMATION OF QUALITY OF GENERATORS

OF RANDOM NUMBER SEQUENCE

N. A. Kolesova

The technique, according to which the analysis of quality of generators of random number sequence built in popular programming languages C++ and C#, has been offered. The results of the analysis can find application in development of decisions on acceptability of use of such generators in various applied problems.

Key words: generator, random number sequence, independence, stochas-

ticity, uniformity, programming languages.