Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Иванов Криптографические методы засчиты информации в компютерных 2012

.pdf
Скачиваний:
32
Добавлен:
12.11.2022
Размер:
3.19 Mб
Скачать

Тестовая статистика использует вычисление значение P-value, которое констатирует силу доказательства против нулевой гипотезы, иначе говоря, P-value есть вероятность того, что совершенный генератор случайных чисел произвел бы последовательность менее случайную, чем исследуемая, для типа неслучайности, проверяемого тестом. Если P-value для теста равно 1, то последовательность абсолютно случайна. P-value, равное 0, указывает, что последовательность абсолютно неслучайна. Для теста следует выбрать уровень значимости . Если значение P-value больше или равно , то принимается нулевая гипотеза, т.е. последовательность кажется случайной. Если значение P-value меньше , то нулевая гипотеза отклоняется, т.е. последователь-

ность кажется неслучайной. Параметр

обозначает вероятность

ошибки 1-го рода. Как правило,

выбирается в интервале

[0,001; 0,01].

 

Значение , равное 0,01, говорит о том, что из 100 случайных последовательностей не прошла бы тест лишь одна. При P-value τ 0,01 последовательность рассматривается как случайная с доверительностью 99 %, иначе говоря, с вероятностью 0,99 последовательность случайна. При P-value < 0,01 последовательность рассматривается как неслучайная с доверительностью 99 %, иначе говоря, с вероятностью 0,99 последовательность неслучайна.

Значение , равное 0,001, говорит о том, что из 1000 случайных последовательностей не прошла бы тест лишь одна. При P-value τ τ 0,001 последовательность рассматривается как случайная с доверительностью 99,9 %. При P-value < 0,001 последовательность рассматривается как неслучайная с доверительностью 99,9 %.

По отношению к исследуемым последовательностям можно сделать следующие предположения.

Равномерность. В любой точке при генерации последовательности случайных или псевдослучайных битов 0 и 1 равновероятны и вероятности их появления равны 1/2. Ожидаемое число нулей (или единиц) равно n/2, где n – длина последовательности.

Масшабируемость. Любой тест, применимый к последовательности, может также применяться к произвольной под-

291

последовательности. Если последовательность случайна, то любая ее подпоследовательность также должна быть случайной. Следовательно, любая подпоследовательность должна пройти все тесты на случайность.

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

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

Оценка результатов тестирования. Процесс исследования статистических свойств генератора ПСЧ состоит из следующих шагов:

генерация последовательностей для тестирования; исполнение набора статистических тестов; анализ прохождения статистических тестов; принятие решения о свойствах генератора.

 

 

Таблица 10.2

 

Процедура оценки

 

 

 

 

Номер

Пошаговый процесс

Комментарии

шага

 

 

1

Постановка гипотезы

Предполагаем,

что последовательность

 

 

является случайной

2

Вычисление тестовой статистики

Проводим тестирование

последовательности

на битовом уровне

 

3

Вычисление P-value

P-value [0; 1]

 

 

Задаем α, где

4

Сравнение P-value с α

α [0,001; 0,01].

Если P-value ≥ α – тесты

 

 

 

 

пройдены

292

Генерация последовательностей для тестирования. Для за-

данного генератора формируется m последовательностей длины n.

Η1 Η11 Η21 ...Ηn1 ,

Η2 Η12 Η22 ...Ηn2 ,

Η m Η1m Η2m ...Ηnm .

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

Исполнение набора статистических тестов. Каждая из m

последовательностей проверяется каждым из t тестов набора. Результат работы каждого теста вычисление тестовой статистики s(obs). Таким образом, после проверки всех последовательностей получается mt тестовых статистик, как показано в табл. 10.3.

 

 

 

 

 

Таблица 10.3

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

 

 

 

 

 

Последовательность

Тест 1

Тест 2

Тест t

Η

(1)

s 1 obs

s 1 obs

s 1 obs

 

1

2

 

t

Η

(2)

s 2 obs

s 2 obs

s 2 obs

 

1

2

 

t

Η

(m)

s m obs

s m obs

s m obs

 

1

2

 

t

Анализ прохождения статистических тестов. Анализ про-

хождения статистических тестов начинается с анализа тестовой статистки. Существует три варианта оценки тестовой статистики.

1.Пороговые значения. Если тестовая статистика больше (меньше) порогового значения, последовательность считается неслучайной.

2.Фиксированные интервалы. Если тестовая статистика выходит за пределы заданного интервала, последовательность считается неслучайной.

3.Вероятностные значения. Для тестовой статистики вычисляется P-value. Под P-value понимается вероятность того, что совершенный генератор случайных чисел произвел бы последовательность менее случайную, чем ис-

следуемая, для типа неслучайности, проверяемого тес-

293

том. Для теста выбирается уровень значимости . Если значение P-value больше, либо равно , то последовательность считается случайной.

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

Таким образом, вычисляются значения P-value для тестовых статистик s(obs) как показано в табл. 10.4.

Таблица 10.4 Результаты вычисления значений P-value для тестовых статистик s(obs)

Последовательность

Тест 1

Тест 2

Тест t

Η(1)

P - value11

P - value21

P - valuet1

Η(2)

P - value12

P - value22

P - valuet 2

Η(m)

P - value1m

P - value2m

P - valuet m

Существует два варианта оценки прохождения набора из m последовательностей i-го теста, i 1, t .

1.Анализ числа появлений значений P-value. Множество значений P-value [0; 1] разбивается на k категорий с вероятностями, равными 1k в каждой категории, после чего подсчитывается Θi, i 1, k , – число последовательностей, значения P-value которых принадлежат i категории. Вычисляется статистика

 

k

§

m ·2

 

¦¨Qi

¸

 

F2 obs

i 1

©

k ¹

,

 

m

 

 

 

 

 

k

которая анализируется при помощи критерия Φ2 с числом степеней свободы, равным k – 1. Одним из преимуществ данного варианта является то, что он позволяет косвенным образом определить значение m. Поскольку эмпири-

294

ческое правило для критерия F2 гласит, что значение mk

должно быть больше либо равным 5, то m t 5k.

2.Анализ значений P-value. Подсчитывается доля последовательностей, прошедших данный тест (т.е. доля последовательностей, для которых P-value t D). Значение этой доли должно лежать в интервале

ª

D 3

D 1 D

;1

D 3

D 1 D º

«1

m

m

».

«

 

 

 

»

¬

 

 

 

 

 

¼

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

Результаты тестирования m последовательностей

Таблица 10.5

 

набором из t статистических тестов

 

 

 

 

 

 

 

Последовательность

Тест 1

Тест 2

Тест t

Η(1)

прошла /

прошла /

прошла /

 

не прошла

не прошла

 

не прошла

Η(2)

прошла /

прошла /

прошла /

 

не прошла

не прошла

 

не прошла

Η(m)

прошла /

прошла /

прошла /

 

не прошла

не прошла

 

не прошла

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

прошел /

прошел /

прошел /

генератора

не прошел

не прошел

не прошел

 

Непрохождение какого-либо теста свидетельствует о статистических слабостях в структуре генератора.

10.3. Повышение эффективности оценочных тестов

Механизм работы практически всех тестов из вышеупомянутых подборок основан на подсчете числа появлений определенных шаблонов и сравнения полученных значений с теоретическими. При этом для хранения данных о числе появлений шаблонов для последовательности длиной n, представляющей из себя наборы, состоящие из k m-разрядных чисел, требуется объем

295

 

2km

ª

 

§«n »

·º

 

памяти, равный

«log

2

¨«

 

»

1¸»

бит в случае непересекаю-

 

 

 

«

©¬k ¼

¹»

 

щихся шаблонов и 2km log2 n 1 в случае пересекающихся.

Учитывая, что значение n должно быть большим, существенно возрастает объем требуемой памяти. Например, для последовательности размером 1 Мбайт анализ наборов, состоящих из пяти полубайтов, потребует памяти размером 500 Кбайт в случае непересекающихся наборов и 1,25 Мбайт в случае пересекающихся. В идеальном случае, при длине последовательности, стремящемся к бесконечности, размер памяти также будет стремиться к бесконечности. Таким образом, возникает задача уменьшения объема памяти, требуемой для реализации теста.

В настоящее время большинство разработчиков оценочных тестов (в том числе и авторы наиболее популярного на сегодняшний день Руководства НИСТ США) решает данную проблему путем введения ограничений на размеры анализируемых шаблонов и длину исследуемой последовательности.

Уменьшение размеров шаблонов приводит к существенному ослаблению теста, так как, зная логику работы последнего, можно внести соответствующие изменения в алгоритм работы генератора ПСЧ или непосредственно в саму последовательность, благодаря чему свойства последней будут неотличимы от свойств истинно случайной последовательности для типа неслучайности, проверяемого заданным тестом. Данное утверждение косвенно подтверждается результатами исследований наиболее эффективных из существующих генераторов ПСЧ. Все они с легкостью проходят тесты «Проверка серий пар» и «Проверка серий троек» (размеры шаблонов – два и три бита соответственно) и полностью проваливают «Посимвольную проверку» (размер шаблона – восемь бит). И это только для шаблонов, состоящих из одного числа. Можно предположить, что увеличение количества чисел в шаблоне сделает статистику прохождения еще более удручающей.

296

Уменьшение длины исследуемой последовательности также снижает качество тестирования. Для примера, разработчики набора статистических тестов НИСТ США рекомендуют использовать для анализа последовательности длиной всего лишь 220 бит, или 128 Кбайт, что для существующих объемов передаваемой информации, исчисляемой мегабайтами, гигабайтами и даже терабайтами, является просто недопустимым.

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

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

ведет к уменьшению объема памяти до 2km для пересекающихся и непересекающихся шаблонов, при этом цель теста не будет изменена, и он продолжит выявлять те же статистические отклонения, что и оригинальный тест. Таким образом, размер требуемой для реализации теста памяти перестает зависеть от длины исследуемой последовательности. Для примера, для реализации тестов НИСТ при рекомендуемой длине в 128 Кбайт объем требуемой памяти уменьшается в 20 раз.

Рассмотрим, как меняется механизм вычисления статистики теста. Для заданной последовательности длиной n, представляющей из себя наборы, состоящие из k m-разрядных чисел, подсчитываем число отсутствующих наборов. Дж. Марсалья показал, что число отсутствующих наборов аппроксимируется с нормальным распределением. Найдем среднее и отклонение.

297

Для расчета среднего необходимо рассмотреть разложение в ряд Тейлора производящей функции, соответствующей значениям k и m. Очевидно, это не очень удобно, поскольку для различных шаблонов придется заново определять производящую функцию для каждого типа набора и раскладывать ее в ряд Тейлора. Например, для k = 2 расчет осуществляется следующим образом:

вычисляется p1 – коэффициент при zn в разложении производящей функции

1

;

1 z p2 z2

вычисляется p2 – коэффициент при zn в разложении производящей функции

1 p z

1 1 p z p p2 z2

вычисляется среднее для числа отсутствующих слов

Π2km 2m p1 2m p2

Сувеличением k возрастает число производящих функций, а

также их сложность. Поэтому для расчета предлагается использовать подход Дж. Марсалья, который показал, что среднее можно вычислить (при условии, что n > 1000) по формуле:

 

n

 

2km .

μ 2km e

Действительно, для случая n = 221, k = 2, m = 10 имеем

μ = (22·10 – 210)·0,135335283236469 + + 210·0,135599351997986596411≈141909,60;

μ 2210 e

n

210 |141909,33.

Расчет отклонения осуществляется по следующей формуле:

 

2m 2m

2m

 

 

..., ni ,

ς

¦ ¦

... ¦ cov ni

, ni ,

 

i1 1 i2 1

ik 1

1

2

k

 

 

 

 

↑ 1, если буква, равная2i , присутствует в слове; где ni 0, если буква, равная2i , отсутствует в слове.

298

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

В табл. 10.6–10.8 показано, какие тесты из наиболее популярных подборок для оценки статистических свойств могут быть модифицированы. Как можно заметить, улучшить можно больше половины тестов подборки Д. Кнута [18] и системы DIEHARD, а также четвертую часть тестов Руководства НИСТ.

Таблица 10.6 Возможность модификации тестов подборки Д. Кнута

 

Название теста

Возможность

 

модификации

 

 

 

 

1

Проверка несцепленных серий

+

 

2

Проверка интервалов

 

3

Проверка комбинаций

+

 

4

Тест собирателей купонов

+

 

5

Проверка перестановок

+

 

6

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

 

7

Проверка корреляции

 

Итого

 

4 из 7

 

 

 

Таблица 10.7

 

 

Возможность модификации тестов DIEHARD

 

 

 

 

 

Название теста

Возможность

 

модификации

 

 

 

 

1

Промежутки между днями рождения

 

2

Проверка пересекающихся перестановок

+

 

35

Проверка рангов матриц

+

 

610

Буквенные («обезьяньи тесты»)

+

 

 

(5 тестов)

 

 

11

Подсчет числа единиц в потоке байт

+

 

12

Подсчет числа единиц в определенных

+

 

байтах

 

 

 

 

13

Тест НОД

 

14

Тест парковки

+

 

15

Тест минимальных расстояний

 

16

Тест пузырей

 

Итого

 

12 из 16

299

Таблица 10.8

 

Возможность модификации тестов Руководства НИСТ

 

 

 

Название теста

Возможность

модификации

 

 

1

Частотный тест

 

 

 

 

2

Проверка кумулятивных сумм

 

 

 

 

3

Проверка «дырок»

в подпоследовательностях

 

 

 

4

Проверка «дырок»

 

 

 

 

5

Проверка рангов матриц

+

 

 

 

 

6

Спектральный тест

 

 

 

 

7

Проверка непересекающихся шаблонов

+

 

 

 

 

8

Проверка пересекающихся шаблонов

+

 

 

 

 

9

Универсальный статистический тест Мау-

рера

 

 

 

10

Проверка случайных отклонений

 

 

 

 

11

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

отклонений

 

 

 

12

Проверка аппроксимированной энтропии

 

 

 

 

13

Проверка серий

+

 

 

 

 

14

Сжатие при помощи алгоритма

ЛемпелаЗива

 

 

 

15

Линейная сложность

 

 

 

 

Итого

 

4 из 16

Эффективность применения данного подхода обусловлена следующими факторами.

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

300

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]