Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1998.pdf
Скачиваний:
22
Добавлен:
07.01.2021
Размер:
2.51 Mб
Скачать

Министерство образования и науки РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Сибирская государственная автомобильно-дорожная академия (СибАДИ)»

Б.Н. Епифанцев, М.Я. Епифанцева, Т.А. Мызникова СЛУЧАЙНЫЕ ПРОЦЕССЫ

В ЗАДАЧАХ ОБРАБОТКИ И ЗАЩИТЫ ИНФОРМАЦИИ

Часть 3 Руководство для проведения исследований

Учебное пособие

Омск 2014

ВПЕРЕД

УДК 519.216, 681.2 ББК 22.171, 34.9

Е67

Рецензенты:

д-р физ.-мат. наук, проф. Л.М. Мартынов (Омский государственный педагогический университет); канд. техн. наук, доц. П.С. Ложников (Омский государственный технический университет)

Работа одобрена редакционно-издательским советом СибАДИ в качестве учебного пособия.

Работа выполнена в рамках реализации задания Министерства образования и науки РФ № 8.2018.2011 и при поддержке РФФИ, договор № НК 13-07-00246/14 от 12.03.2014 г.

Епифанцев, Б.Н.

Е67 Случайные процессы в задачах обработки и защиты информации. Часть 3. Руководство для проведения исследований :

учебное пособие [Электронный ресурс] / Б.Н. Епифанцев, М.Я. Епифанцева, Т.А. Мызникова. – Омск : СибАДИ, 2014. ‒ URL: http://bek.sibadi.org/cgi-bin/irbis64r_plus/cgiirbis_64_ft.exe. - Режим доступа: для авторизованных пользователей.

ISBN 978-5-93204-740-8

ISBN 978-5-93204-750-7

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

Имеет интерактивное оглавление в виде закладок, что обеспечивает навигацию по главам.

Предназначено для студентов вузов, обучающихся по направлениям «Информатика и вычислительная техника» и «Информационная безопасность».

Текстовое (символьное) издание (12,1 Мб).

Систем. требования: Intel, 3,4 GHz ; 150 Мб ; Windows XP/Vista/7 ; DVD-ROM ;

1 Гб свободного места на жестком диске ; программа для чтения pdf-файлов Adobe Acrobat Reader

Редактор И.Г. Кузнецова

Создание аппарата издания Е.В. Садина Издание первое, комплексного распространения Дата подписания к использованию 17.12.2014

Издательско-полиграфический центр СибАДИ. 644080, г. Омск, пр. Мира, 5 РИО ИПЦ СибАДИ. 644080, г. Омск, ул. 2-я Поселковая, 1

© ФГБОУ ВПО «СибАДИ», 2014

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ……………………………………………………….. 4

1.Лабораторная работа №1 Генератор псевдослучайных чисел ... 5

2.Лабораторная работа №2 Анализ качества ГСПЧ....................... 12

3.Лабораторная работа №3 Синтез генераторов случайных

величин с заданными законами распределения…........................ 25

4.Лабораторная работа №4 Моделирование случайных

процессов………………………………………………………….. 36

5.Лабораторная работа №5 Алгоритмы формирования

случайных полей…………………….............................................. 42

6.Лабораторная работа №6 Спектральное представление

процессов………………………………………………………….. 50

7.Лабораторная работа №7 Обнаружение сигнала в шуме………. 59

8.Лабораторная работа №8 Обнаружение моментов изменения

свойств случайных процессов………………………………….... 67

9.Лабораторная работа №9 Выявление каналов утечки

информации с использованием прибора ST-032……………...... 84

10.Лабораторная работа №10 Защита информации от утечек по

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

«Шторм-7»…………………………................................................ 106

Библиографический список…………………………………….... 117

ВВЕДЕНИЕ

Для освоения теории случайных процессов, изложенных в первой (2011 г.) и второй (2012 г.) частях учебного пособия, разработан цикл исследовательских работ. Цикл разбит на три связанных между собой части. Первая из них ориентирована на получение навыков по синтезу генераторов случайных чисел и процессов с заданным законом распределения. Работа № 4 позволяет ознакомиться с технологией генерации случайных процессов с заданной корреляционной функцией.

Вторая часть работ ориентирована на получение навыков по оценке эффективности преобразований случайных процессов. Число используемых преобразований ограничено: накопление сигналов, обнаружение сигналов на фоне помех (фильтрация), выделение моментов разладки случайных процессов.

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

Авторы признательны рецензентам: д-ру техн. наук, проф. Ю.А. Бурьяну и д-ру физ.-мат. наук, проф. Л.М. Мартынову за тщательный анализ рукописи и сделанные замечания, устранение которых способствовало улучшению первоначальной редакции пособия. Выражаем благодарность д-ру техн. наук, проф. В.Н. Задорожн ому за ценные советы при обсуждении структуры пособия.

Лабораторная работа № 1

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

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

Краткие сведения из теории построения генераторов

Стандартным случайным числом называют величину z, равномерно распределенную на интервале (0,1). Плотность f (z) распределения случайного числа z имеет вид

1,

если 0 z 1;

(1.1)

f (z) =

впротивном случае.

0

 

Генератор стандартных случайных чисел должен выдавать по запросу случайное число z. Повторяя запросы, можно получить последовательность z1, z2,…, zn случайных чисел. Эти числа должны быть статистически независимы. При моделировании вместо случайных последовательностей используют псевдослучайные последовательности r1, r2,…, rn, формируемые по детерминированным алгоритмам. При решении широкого класса задач они могут считаться как случайные.

Для генерации чисел r1, r2,…, rn применяются различные программы, называемые генераторами стандартных псевдослучайных чисел (ГСПЧ). Среди разнообразных алгоритмов вычисления r1, r2,…, rn широкое распространение получил так называемый мультипликативный конгруэнтный алгоритм. Он основан на применении операции A mod B вычисления неотрицательного остатка от деления A на B. Этот алгоритм при известных значениях трех положительных целочисленных параметров m, a, x0 предписывает последовательно вычислять целые псевдослучайные числа xi, i=1, 2, … по рекуррентной формуле

xi = (axi 1) mod m

(1.2)

и через них – стандартные псевдослучайные числа ri по формуле

ri = xi / m.

(1.3)

Получаемая с помощью ГСПЧ последовательность r1, r2,…, rn должна быть как можно более близка по своим статистическим свойствам к математической последовательности z1, z2,…, zn стандартных случайных чисел. Отсюда следует, что для идеального ГСПЧ должны выполняться следующие два требования:

– числа ri должны иметь равномерное распределение на отрезке

(0,1);

– числа ri должны быть статистически независимы.

Близость мультипликативного конгруэнтного ГСПЧ к идеальному определяется тем, насколько удачно в формуле (1.2) подобраны параметры m, a, x0 (модуль, множитель и начальное значение).

Очевидно, что параметры m, a, x0 следует выбирать таким образом, чтобы в последовательности (1.1) целых псевдослучайных чисел xi ни при каком i не появилось число xi=0, так как в этом случае все п о- следующие члены также будут нулевыми и последовательность не будет псевдослучайной. Чтобы избежать нулевых xi, достаточно выбрать параметр m четным, а множитель a и начальное значение x0 – нечетными. В этом случае все xi будут нечетными и тем самым исключается возможность появления нулевого члена.

Принадлежность чисел r1, r2,…, rn отрезку (0,1) автоматически обеспечивается формулами (1.2) и (1.3). Действительно, каждое xi есть неотрицательный остаток от деления некоторого числа на m. Следова-

тельно, 0 xi m . Разделив это неравенство на m, получим

0 xi / m 1, или с учетом (1.3) 0 ri 1.

Нетрудно доказать, что последовательности r1, r2,…, rn и x1, x2,…, xn заведомо будут периодическими. Это вытекает из того, что число возможных остатков от деления на m конечно и, таким образом, конечно число возможных значений x. Длина периода должна быть достаточно велика, чтобы при практическом использовании r1, r2,…, rn они не повторялись. Поэтому рекомендуется для построения ГСПЧ брать достаточно большое значение модуля m.

Еще одно заведомое отличие последовательности r1, r2,…, rn от идеальной заключается в том, что эти числа могут принимать в интервале (0,1) лишь дискретный ряд значений, отстоящих друг от друга не менее чем на 1/m. Этот недостаток также становится практически несущественным, если выбирается достаточно большое число m.

Равномерность распределения чисел ri обычно достигается за счет выбора параметров m, a, x0, не имеющих общих делителей. В этом случае множество остатков xi, вычисляемых по формуле (1.1), имеет тенденцию равномерно заполнять промежуток между 0 и m.

Для обеспечения независимости следует выбирать достаточно большое значение множителя a, например a > 1000, чтобы в формуле (1.2) по возможности на каждом шаге произведение axi многократно превышало модуль m. Соблюдение приведенных простых рекомендаций повышает вероятность того, что выбираемые значения параметров ГСПЧ обеспечат достаточно высокое его качество. Для более достоверной оценки пригодности синтезированного ГСПЧ необходимо выполнить анализ статистических свойств генерируемой на выходе ГСПЧ псевдослучайной последовательности r1, r2,…, rn.

Задание

1.Изучите мультипликативный конгруэнтный метод построения ГСПЧ и рекомендации по выбору его параметров. Выберите в соответствии с этими рекомендациями значения параметров ГСПЧ.

2.Напишите программу для вычисления и вывода n чисел, порожденных генератором. В программе должна быть реализована функция выбора длины псевдослучайной последовательности (выбор n). Также

впрограмму должно быть включено сравнение с функцией random(x) построением графика функции r(n), где r – псевдослучайное число; n – номер числа.

3.Оцените полученный результат визуально на графике r(n) в сравнении с графиком функции random(x). Результат должен быть схожим при одинаковом размере выборки.

Содержание отчета

1.Цель работы.

2.Формулы генерации псевдослучайных чисел (для выбранных

значений m, a, x0).

3. Изображения, отражающие сравнение вашей функции r(x) и random(x) на графиках.

4. Изображения, содержащие сгенерированную псевдослучайную последовательность в текстовом виде (не менее 20 чисел).

5. Полный листинг программы.

Порядок выполнения работы

Пример работы программы-генератора и сравнение со встроенной функцией С++ random() изображены на рис. 1.1.

Рис. 1.1. Конгруэнтный генератор и сравнение его работы с функцией random(x)/x

Для построения графиков необходимо использовать компонент TChart, поместив его на форму (рис. 1.2–1.3).

Рис. 1.2. Панель инструментов

Рис. 1.3. Рабочая область

Затем добавить сам график двойным кликом мыши на установленном объекте и в открывшемся окне нажать Add, выбрав тип графика Point, галочку 3D убрать.

Перейти на вкладку Series и установить следующие параметры для графика, представленные на рис. 1.4.

Рис. 1.4. Выбор параметров

Далее создать объекты Button, Memo, Edit, Label, чтобы привести результаты работы программы к виду рис. 1.1.

Каждое последующее случайное число рассчитывается на основе предыдущего случайного числа по следующей формуле:

ri+1= mod(k ri + b, M),

где M – модуль (0 < M); k – множитель (0 ≤ k < M); b – приращение (0 ≤ b < M); r0 – начальное значение (0 ≤ r0 < M) при i=0.

По этой формуле генерируются псевдослучайные целые числа. Для приведения их к виду с плавающей запятой от 0 до 1 (X) следует ri+1 разделить на M:

X= ri+1 /M.

Вязыке программирования C++ существует функция, позволяющая генерировать псевдослучайные последовательности чисел по равномерному закону распределения. Такой функцией является random(x), где x – максимальное возможное значение псевдослучайного числа, например, функция random(10) генерирует число, имеющее возможные значения в интервале [0,10]. Данная функция генерирует только целочисленные значения.

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

for (int i=0;i<10;i++) Series2->AddXY(i,(double)random(10000)/10000)

строит на графике псевдослучайную последовательность из 10 чисел, имеющих значения от 0 до 1. Деление на 10000 производится для того, чтобы привести целые числа, выводимые функцией random(x) к типу с плавающей запятой (по аналогии с делением на M).

Данная функция является аналогом той, которую создаем в данной лабораторной работе, поэтому ее удобно использовать для проверки корректности работы программы.

По нажатию кнопки программа должна начать генерацию любого количества чисел, указанного пользователем, для этого необходимо кликнуть 2 раза на объекте Button1 и вписать код в открывшуюся кон-

струкцию. Считывание числа N из компоненты Edit1 происходит следующим образом:

N=StrToFloat(Edit1–>Text); // преобразование строки в численное значение.

Остаток от деления находится в С++ следующим образом:

a=b%c; // a,b,c – переменные типа long.

Выводить числа последовательно в компоненту Memo необходимо следующим образом:

Memo1–>Lines–>Add (ri); // ri ваше псевдослучайное число.

Их отображение удобно делать сразу следующей строкой для сравнения с функцией random на втором графике:

Series1–>AddXY(i,ri);

Series2->AddXY(i,(double)random(10000)/10000).

Контрольные вопросы

1.Какие свойства имеет последовательность z1, z2,…, zn на выходе генератора стандартных чисел?

2.Какие требования предъявляются к ГСПЧ?

3.Как вычисляется последовательность r1, r2,…, rn псевдослучайных чисел по мультипликативному конгруэнтному алгоритму?

4.Почему из конечного числа остатков от деления на модуль m вытекает периодичность мультипликативной конгруэнтной последовательности r1, r2,…, rn?

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