Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационная безопасность / Датчики ПСП чисел.doc
Скачиваний:
106
Добавлен:
20.03.2016
Размер:
248.32 Кб
Скачать

Другие формы вычетов. Датчик №4:

Ri+1 = FRAC(M*Ri), R0 = u / p (4.1)

где FRAC(A)=A-INT(A)- есть дробная часть числа А.

pиM-специально подобранные целые постоянные.

Значение u(u-целое число,u<p) однозначно определяет последовательность. Длина последовательности неповторяющихся чисел, очевидно, не превосходитp.

Смысл формулы состоит в следующем: Разложим R0в бесконечную М-ичную дробь, т.е. дробь по степенямM-k:

(4.2)

где akпринимает одно из возможных значений 0, 1, …M-1.

Теперь:

R1=FRAC(M*R0) = 0,а2а3

R2 = FRAC(M*R1) = FRAC(M*0,a2a3...)=0,a3a4…=FRAC(M2*R0)

…………………………………………………………(4.3)

Ri = FRAC(Mi * R0) = 0,ai + 1 ai + 2

Т.е. операция полученияRiсостоит в перенесении запятой вR0наiпозиций вправо и отбрасывании целой части.

Для того, чтобы дробь (4.2) была бесконечной необходимо, чтобы выражение R0=u/pявляло собой несократимую дробь.

Например, возьмём p=2m,m-целое число. Тогда для того, чтобыuиpбыли взаимно простыми достаточно выбратьuтаким, чтобы в разложении его на простые сомножители среди них не встречался бы множитель 2. Можно выбиратьuиpвзаимно простыми и другими способами.

Примечание:Многие специалисты [2] исследовали и проверяли псевдослучайную последовательность двоичных чиселVi:

Vi :=FRAC(M * Vi)

V0 := 2 – m (4.4)

m-число двоичных разрядов мантиссы ячейки ЭВМ.

Они брали множитель Mвида:

M= 52 q + 1,q-целое число.

Согласно формуле (4.3) имеем:

Vi = FRAC(5i*(2 q+1) ,(4.5)

Опишем получение последовательности величин Viаналогично алгоритму (4.1), (4.2).

Запишем дробь V0=2 m в системе счисления с основанием 5:

(4.6)

где akпринимает одно из значений: 0, 1, 2, 3, 4.

Соотношение (4.5) означает, что запятая в (4.6) переносится на (2q+1)*iпозиций вправо и целая часть полученного числа отбрасывается. Отсюда ясно, что при малых 2q+1 величиныVi,Vi+1будут заметно зависимыми. Поэтому рекомендуется братьqмаксимальным из тех, для которых выполняется условие:

(4.7)

Методами теории чисел можно показать, что для указанных параметров M,V0длина последовательности будет:

Величина 52q+1в двоичном виде оканчивается на 01. Поэтому всеViесть двоичные дроби, последние два разряда которых равны 01.

Вследствии равенства L=2m-2остальныеm-2 разряда пробегают все возможные значения (комбинации).

Поэтому в качестве V0можно брать любуюm-разрядную двоичную дробь такого типа.

Этот метод вычетов реализован программой в машинных кодах на ЭВМ М-220 и БЭСМ-6.

Величины М и mвзяты равными соответственно:

M=515и 517иm=36 и 40.

Для БЭСМ-6 длина L2*1011.

Задание:Исследовать как влияют величиныM,uиpформулы (4.1) на стохастические качества и на длиныLиlпоследовательности псевдослучайных чисел этого датчика.

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

Датчик №5

В [5], [6] предлагается в формуле(4.1) выбирать MиR0следующими способами:

Способ 1:M=8t3,t- целое число.

R0- любое нечётное число, меньшее 1,т.е. дробь вида 0,xxxxxxн, н - нечётная цифра.

В [6] рекомендуется брать M=37. Однако, такой датчик заметно меняет свои статистические характеристики при измененииR0.

Способ 2:M=16q+11,q-целое число.

R0 - любое нечётное число меньшее 1. Например, приM=91,R0=0.11111111 получаетсяL10000.

Задание:Исследовать такими способами выбираемых констант их влияние на стохастические качества датчика и длиныlиLпоследовательности псевдослучайных чисел. Посмотреть также, как влияет выбор чётногоR0. Установить влияет лиR0на параметры датчика и, если влияет, то оценить область приемлемого значенияR0. Представить результаты тестирования датчика с подобранными оптимальными параметрами.