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

3. Тесты

Тест№1

Измерение длин l и l датчика псевдослучайной последовательности чисел.

Т.к. вычисления по формуле (1.1):

Ri+1=Q(Ri)

являются детерминированным процессом, то максимальная длина Lmaxпоследовательности неповторяющихся чисел определяется разрядностью ЭВМ. Если ЭВМ выводит результаты вычислений, например, 8-ми разрядной десятичной дробью, но производит вычисления в сетке 10-ти разрядной дроби, то длина Lmaxне может быть больше числа разных возможных значений при вычислении 10-ти разрядной дроби, т.е.Lmax1010. Фактическая длинаL<Lmaxопределяется характером функции генерации (1.1).

Псевдослучайная последовательность начинается с числа R0. Обозначим порядковый номер последнего из неповторяющихся чиселL-1. Тогда в последовательностиR0 ,R1 ,R2 ,…,RL-1 все генерируемые числа разные. Этот начальный участок последовательности длиныLназывают длиной апериодичности (11).

R0 -R1 R2……… Rk …… Ri1 …… RL = Rk…… Ri2 = Ri1 …… Ri

| | | | | | | | | |

0 1 2 ki1LL+lI

ll

После отрезка апериодичности снова следуют отрезки длины lпериодического повторения последовательности чисел. Эти периоды являют собой часть отрезка апериодичности отi=k доi=L-1.

Пусть RL =Rk, тогда периодыlсостоят из последовательностиRk,Rk+1,…,RL-1 , являющейся частью отрезка [0,(L-1)]. Таким образом, всегдаl<Lи тоже определяется свойствами преобразования (1.1).

Начиная с номера i=L проявляется периодичность:

Ri = Ri-l, для i  L

l= L-k

Для экспериментального определения длины периодичности l и длины апериодичностиL выбираем число i1априорно настолько большим, чтобы быть заранее уверенным, чтоi1>k.

Запускаем программу генерации последовательности {Ri} с начального значенияR0и счётчик номеровi.

При i=i1величинуRi1запоминаем.

С этого шага все последующие числа Ri1+1,Ri1+2… и т.д. сравниваем сRi1. Пусть приi=i2получено первое совпадениеRi2=Ri1. Тогда длина периодаl=i2-i1.

Длину апериода L находим путём сравнения двух членов последовательности {Ri} ,разнесённых вилкой на интервалl, для чего генерируем одновременно две последовательности {Ri} и {Ri^}, разнесённые на интервалl.

  • Шаг i<l, вычисляется только последовательность {Ri} с начального значенияR0.

  • Шаг i=L, продолжается вычисление {Ri} и начинается вычислениеRi^ = Rl-i,т.е. с начального значенияR0.

  • На каждом шаге il величиныRiиRi^сравниваются. Приi=L будет выполнятьсяRi =Ri^.

Детально реализация этой идеи за один проход программы осуществляется следующим образом:

  • Запускается счётчик шагов i.

  • Запускается программа вычисления {Ri}. На шагеi=0 выполняется операция:R: =R0. Далее на всех последующих шагах выполняется операция:R:=Q(R)

  • При i=lвключается программа вычисленияRi^, т.е. выполняются операции:R: =Q(R)

R^: = R0

  • Начиная с шага i=l+1 и далее работают обе программы:

R: = Q(R)

R^: = Q(R^)

  • Начиная с шага i=lпроизводится сравнениеRi^сRi

  • При шаге i=Lпроизойдёт совпадениеRi^ =Ri

  • Задача решена.

Например:

iR

  1. _ R0

  2. _ R1

  3. _ R2

  4. _ R3 k=3

  5. _ R4

  6. _ R5 (i=l=5), R5^=R0R5 l

  7. _ R6 R6^=R1R6

  8. _ R7 R7^=R2R7

  9. _ R8 =R3 R8^=R3=R8 L=8

  10. _ R9 =R4

  11. _ R10 =R5 l

  12. _ R11 =R6

  13. _ R12 =R7

  14. _ R13 = R8 =R3

l= L-k=8-3=5