Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology-lectures_a4_10pt_2.docx
Скачиваний:
6
Добавлен:
22.12.2018
Размер:
678.28 Кб
Скачать

Глава 6

Датчики случайных чисел

Классификация ДСЧ:

· физические ДСЧ

· алгоритмические ДСЧ (часто называемые по способу реализации)

6.1. Общий подход к статистическому тестированию

Статистическая гипотеза H0 дает представление о распределении одной или более случайных величин. Тест стати-

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

принимает либо отвергает гипотезу H0.

Тест показывает меру отношения практических данных к гипотезе. Уровень значимости α это вероятность того,

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

случайного числа.

Если уровень значимости α теста H0 слишком высок, тогда тест может отвергнуть последовательность, которую

выработал генератор случайного числа.

На практике можно применять 0.01 ≤ α ≤ 0.30. Статистические критерии оценки выбирают таким образом, чтобы

они приближенно следовали нормальному распределению N (0, 1) или критерию χ2 для дискретных значений (для

непрерывных значений применяется критерий Колмогорова-Смирнова).

6.2. Статистика

Определение. Статистикой назовем функцию, построенную на элементах последовательности. Статистики

нужно выбирать таким образом, чтобы их вычисление можно было легко реализовать на ЭВМ.

Предположим, что статистика X случайной последовательности следует распределению χ2 с v степенями свободы,

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

значимости, выбирается порог xα такой, что (X > xα) = α. Если значение статистики Xs выходной последовательности

удовлетворяет условию Xs > α, тогда последовательность не проходит тест.

Например, если v = 5 и α = 0.025, тогда α = 12.8325 (значение выбирается из таблицы значений для распределения

χ2) и можно ожидать, что случайная последовательность не пройдет тест только 2.5% раз.

6.3. Наиболее распространенные тесты ДСЧ

· частотный тест (монобитный тест)

· серийный тест (тест двух бит)

· покер-тест

· тест пробегов

· тест автокорреляции

Частотный тест (монобитный тест)

Цель этого теста

определить, что количество нулей и единиц в последовательности примерно одинаково, как

ожидается в случайной последовательности. Пусть n0 и n1 обозначают число нулей и единиц. Тогда статистика будет

выражаться формулой:

X =

(n0 − n1)2

n

(6.1)

Данная формула приблизительно следует распределению χ2 с одной степенью свободы, если длина последователь-

ности n ≥ 107.

Серийный тест (тест двух бит)

Цель этого теста проверить, будет ли число подпоследовательностей 00, 01, 10, 11 приблизительно одинаковым,

как в случайной последовательности. Пусть n0 и n1 обозначают число нулей и единиц, а n00, n01, n10, n11

подпоследовательностей 00, 01, 10, 11. Заметим, что n00 + n01 + n10 + n11 = (n − 1), так как последовательности могут

перекрываться. Используемая статистика

число

6. Датчики случайных чисел

X =

4

n − 1

2

(n00 + n01 + n10 + n11) − (n2 + n2) + 1

n 0

(6.2)

приблизительно следует распределению χ2 с двумя степенями свободы, если n ≥ 21.

Тест пробегов

Цель этого теста проверить, будет ли число пробегов (блоков из нулей или единиц) различной длины в после-

довательности s таким же как и в случайной последовательности. Ожидаемое число пропусков (блок из нулей) или

заполнений (блок из единиц) длины i в случайной последовательности длины n равно ei = (n − i + 3)/2i+2. Пусть k

равняется максимальному целому i для которого ei ≥ 5. Пусть Bi и Gi будут число заполнений и пропусков длины i

в s для каждого i, 1 ≤ i ≤ k. Используемая статистика

X =

k

i=1

(Bi − ei)2

ei

+

k

i=1

(Gi − ei)2

ei

(6.3)

приблизительно следует распределению χ2 с 2k − 2 степенями свободы.

Тест автокорреляции

Цель этого теста

проверить, есть ли корреляция между последовательностью s и вариантом ее сдвига. Путь d

будет фиксированным целым числом, 1 ≤ d ≤ [n/2]. Сдвинем циклически последовательность s на d позиций. Число

бит в последовательности s не равных битам в d-сдвинутой последовательности равно

n−d−1

A(d) =

i=1

где ⊕ означает операцию XOR. Используемая статистика

si ⊕ si+d

(6.4)

Покер-тест

X =

2(A(d) − n−d )

n − d

(6.5)

Цель покер-теста

проверить, будет ли число всевозможных подпоследовательностей длины m приблизительно

одинаковым, как в случайной последовательности. Фактически, покер тест это обобщение двух предыдущих тестов.

В общем случае покер-тест рассматривает n групп по m элементов и ведет подсчет появления разного вида ком-

бинаций длины m. Затем числа всех получившихся комбинаций обрабатываются по критерию χ2. Характеристика,

подчиняющаяся критерию χ2, выглядит следующим образом:

V =

k

s=1

(Ys − nps)2

nps

(6.6)

где

число всех возможных категорий комбинаций

число комбинаций, попавших в категорию s

вероятность появления такой комбинации в последовательности

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

Возводя в квадрат (Ys − nps)2 = Ys2 − 2npsYs + n2p2 и учитывая тот факт, что

Y1 + Y2 + . . . + Yk = n

p1 + p2 + . . . + pk = 1

преобразуем формулу к виду

V =

1

n

1≤s≤k

Ys2

ps

− n

(6.7)

s

n

ps

Ys

k

2

2 2 2 2

1

24

6.4. Программные датчики случайных чисел

6.4. Программные датчики случайных чисел

Статистические свойства ПДСЧ

Как для аппаратных, так и для программных датчиков случайных чисел основными требованиями являются

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

висимость.

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

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

Yi, поэтому требование статистической независимости должно быть заменено на иное, имеющее алгоритмический

смысл.

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

элемента Yi по Yj при i = j и наоборот. При гарантированно высокой вычислительной сложности восстановления

элемента можно говорить о сложностной (в смысле сложности алгоритма), а следовательно, статистической незави-

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

Структура ПДСЧ

S(t)

Φ

Φ∗

S(t + 1)

Sp(1)

Φ

Sp(2)

Φ

Sp(m)

Ψ(Sp(1))

Y (1)

Ψ(Sp(2))

Y (2)

Ψ(Sp(m))

Y (m)

Рис. 6. Структура ПДСЧ

S(t)

Sp(t)

Y (t)

состояния ПДСЧ

состояние процесса ПДСЧ

выходные значения ПДСЧ

Φ(S(t)) = S(t + 1)

функция перехода

Требования к ПДСЧ

ψ(S(t)) = Y (t)

функцией выхода

Программный датчик, как всякий конечный автомат, определяется состоянием S(t), где t

цикл работы датчи-

ка, функцией перехода Φ(S(t)) = S(t + 1) и функцией выхода Ψ(S(t)) = Y (t). Для ПДСЧ могут быть поставлены

следующие проблемы:

· сложность восстановления Y (t) по S(t − 1)

атака из прошлого

· сложность восстановления S(t) по Y (t)

атака из настоящего

· сложность восстановления S(t) либо Y (t) по S(t + 1)

атака из будущего

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

щего.

Требование 2: период выходной последовательности Y (t) должен быть гарантирован.

Требование 3: величины S(t) должны храниться в защищенном от просмотра виде.

Статистические свойства выходной последовательности ПДСЧ определяются как выбором функций Φ и Ψ, так и

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

Требование 4: должен осуществляться контроль статистического качества выходной последовательности Y (t).

Пример выбора преобразований Φ(S)

В качестве Φ(S) предлагается выбрать функцию, осуществляющую скачок по реккуренте. Введем необходимые

определения. Пусть S(t)

состояние одноканальной линии задержки с линейным преобразованием B. B имеет при-

митивный сопровождающий многочлен вида X n ⊕X ⊕b над полем GF (2r ), где r = 16, 32. Обозначим через Q линейное

25

6. Датчики случайных чисел

преобразование, соответствующее возведению в квадрат в поле GF (2rn), заданном образующей B. Определим вектор

u над GF (2r ) размерности w, u = R(S) + Z, где R

операция редуцирования, состоящая в выделении w младших

разрядов S, пусть далее (u)2 – число, двоичное представление которого совпадает с u; аналогично определяется вектор

u∗ размерности w + 1. Определим Φ(S) = B ∧ ((u)2)S, Φ∗(S) = B ∧ ((u∗)2)S.

Преобразование Φ(S) обладает следующими свойствами:

· период преобразования Φ(S) гарантирован и не может быть менее величины 2(n − w)r

· в последовательности состояний S(t), порождаемых преобразованием Φ(S), S(t+1) = Φ(S(t)), векторы простран-

ства размерности n над GF (2r ) встречаются не более одного раза

· скачок по реккуренте с использованием функции Φ∗(S) перекрывает не менее 2r скачков функции Φ(S)

Пример выбора преобразования Ψ(S)

В качестве функции Ψ(S) целесообразно использовать преобразование, осуществляемое ГОСТ 28147-89 в режиме

гаммирования на ключе R (S) и синхропосылке, получаемых из S. Длина вырабатываемой гаммы выбирается исходя

из технических требований к скорости порождения случайных величин. С теоретической точки зрения эта величина

не должна превосходить длины единственности ключа ГОСТ 28147-89, 32 байт.

Сложность определения выходных последовательностей и состояний ПДСЧ

Сложность восстановления Y t.i по Sp(i − 1) (атака из прошлого)

При получении S(i) и Y t.i из Sp(i − 1) имеется неопределённость, связанная с получением величины u как суммы,

одно из слагаемых которой представляет собой случайную величину. Число вариантов величины Y t.i зависит от

неопределённости u, в лучшем случае она может составлять 2wr вариантов. Если будет определена двоичная энтропия

H2 источника случайной величины Z, то эта величина составит 2(2wr).

Сложность восстановления S(i) по Y t.i (атака из настоящего)

Будем предполагать, что по Y t.i ключ и синхропосылка схемы ГОСТ определяются однозначно. Трудоёмкость

сложность определения ключа по входной и выходной после-

довательностям криптосхемы. Неоднозначность определения S(i) равна 2(n−10)r . Таким образом, общая сложность

определения S(i) составит 2(n−8)r QГОСТ.

Сложность восстановления S(i), Y t.i по S(i + 1) (атака из будущего)

Y t.i однозначно определяется по S(i). В настоящее время не известно более эффективных методов определения

S(i) по S(i + 1), чем полный перебор элементов прообраза Φ−1(Sp(i + 1)), поэтому сложность атаки из будущего

составит 2wr QΦ, где QΦ

сложность реализации преобразования Φ.

26

их определения составляет 264QГОСТ, где QГОСТ

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