Вам нужна дипломная работа?
Интересует Программирование?
Оставьте заявку
на Дипломную работу
Получите бесплатную
консультацию по
написанию
Сделайте заказ и
скачайте
результат на сайте
1
2
3

Разработка системы оценки качества генераторов ПСП в криптографии

  • 115 страниц
  • 21 источник
  • Добавлена 06.01.2010
2 100 руб. 7 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
ВВЕДЕНИЕ
Глава 1. Общая модель безопасного обмена информацией
1. Основы криптологии
1.1Основы криптологии
1.2 Оценка надежности криптоалгоритмов
1.3 Классификация методов шифрования информации
1.4 Абсолютно стойкий шифр
1.5 Датчики псевдослучайных чисел
1.6 Нелинейные поточные шифры
1.7. Выводы
2. Оценка качества ПСП
2.1 Понятие случайной последовательности
2.2 Статистические критерии
2.3 Эмпирические критерии
2.4 Применение критериев к двоичной последовательности
2.5 Выводы
3. Обзор существующих методик тестирования ПСП
3.1 Тесты Д. Кнута
3.2 DIEHARD
3.3 Статистические тесты NIST
3.4 Выводы
3.5 Постановка задачи
Глава 2. Проектирование системы?
1. Основная идея решения
2. Выбор платформы
3. Архитектура. Структура классов
4. Проектирование интерфейса
Глава 3. Реализация и внедрение
1. Специфика реализации
2. Тестирование
3. Внедрение
Глава 4. Экономическое обоснование
1. Определение себестоимости и расчет цены разработки
2. Определение экономического эффекта от внедрения
Глава 5. Безопасность жизнедеятельности
Заключение
Список используемых источников информации

Фрагмент для ознакомления

Основные элементы рабочего места инженера: стол и кресло. При разработке электронного справочника используется следующее оборудование: монитор, системный блок, клавиатура, принтер, колонки, мышь.
При работе в положении сидя рекомендуются следующие параметры рабочего пространства:
- высота рабочей поверхности стола над полом 700-750 мм;
- ширина не менее 700 мм;
- глубина не менее 800 мм. (модульными размерами рабочей поверхности стола для ПЭВМ, на основании которых должны рассчитываться конструктивные размеры, следует считать: ширину 800, 1200, 1400 мм, глубину 800 и 1000 мм при нерегулируемой высоте, равной 725 мм.).
Под рабочей поверхностью должно быть предусмотрено пространство для ног:
- высота не менее 600 мм;
- ширина не менее 500 мм;
- глубина на уровне колен должна быть не менее 450 мм и на уровне вытянутых ног – не менее 650 мм.
Таким образом, при проектировании письменного стола учитываются следующие факторы: высота стола должна быть выбрана с учетом возможности сидеть свободно, в удобной позе, при необходимости опираясь на подлокотники; нижняя часть стола должна быть сконструирована так, чтобы программист мог удобно сидеть, не поджимая ноги; поверхность стола должна обладать свойствами, исключающими появление бликов в поле зрения программиста; конструкция стола должна предусматривать наличие выдвижных ящиков (не менее 3).
Еще одним важным элементом рабочего места программиста является кресло. Оно выполняется в соответствии с ГОСТ 21.889-76. При проектировании кресла исходят из того, что при любом рабочем положении программиста его поза должна быть физиологически правильно обоснованной, т.е. положение частей тела должно быть оптимальным.
Рабочий стул (кресло) должен быть подъемно-поворотным и регулируемым по высоте и углам наклона сиденья и спинки, а также – по расстоянию спинки до переднего края сиденья.
Для удовлетворения требований физиологии, вытекающих из анализа положения тела человека в положении сидя, конструкция рабочего сидения должна удовлетворять следующим основным требованиям:
- допускать возможность изменения положения тела, т.е. обеспечивать свободное перемещение корпуса и конечностей тела друг относительно друга;
- допускать регулирование высоты в зависимости от роста работающего человека (в пределах от 400 до 550 мм);
- иметь слегка вогнутую поверхность;
- иметь небольшой наклон назад.
Наиболее удобным считается сидение, имеющее выемку, соответствующую форме бедер, и наклон назад. Спинка кресла должна быть изогнутой формы с длиной 30 см, шириной 11 см и радиусом изгиба 30-35 см.
Расположение оборудования на рабочем столе должно быть следующим:
- клавиатуру следует располагать на поверхности стола на расстоянии 100-300 мм от края, обращенного к пользователю. Более конкретное расположение определяется по длине предплечья: для мужчин 252 мм, для женщин 225 мм;
- монитор необходимо разместить таким образом, чтобы на него было удобно смотреть. Расстояние до монитора, определяемое по росту в положении сидя, составит для мужчин 743 мм, для женщин- 667 мм. Нужно повернуть монитор так, чтобы смотреть на экран под прямым углом, а не сбоку. Лучше чтобы инженер смотрел на экран немного сверху вниз, так чтобы экран был слегка наклонен – нижний его край должен быть ближе к краю стола. Кроме этого, необходимо правильно задать регулировки изображения. Сначала надо отрегулировать яркость и контрастность монитора, не следует делать изображение слишком ярким, это может привести к быстрой усталости глаз;
- колонки размещаются слева и справа от монитора;
- мышь размещается справа от клавиатуры;
- принтер следует разместить справа от монитора, но при этом следует учитывать, чтобы они располагался в зоне максимальной досягаемости.
Рабочее место необходимо оборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 градусов. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.
Исходя из вышесказанного, выберем следующие параметры стола программиста:
- высота стола 700 мм;
- длина стола 1300 мм;
- ширина стола 750 мм;
Пространство для ног составит:
- высота 680 мм,
- ширина 600 мм,
-глубина на уровне колен 500 мм, на уровне вытянутых ног 670 мм.
Схема параметров рабочего стола представлена на рис. 1.


1300



750
700
1300


Рис. 6.1 Схема параметров рабочего стола.

Выбранное кресло будет подъемно-поворотным и регулируемым по высоте и углам наклона сиденья, спинки и расстоянию спинки до переднего края сиденья. Спинка кресла изогнутой формы и имеет следующие параметры: длина 32 см, ширина 11 см, радиус изгиба составит 34 см. Выбрано следующее расположение оборудования:
- клавиатура находится в 250 мм от края рабочего стола, обращенного к пользователю;
- монитор располагается в 740 мм от края рабочего стола таким образом, чтобы взгляд падал на него под прямым углом.
Примерное расположение оборудования и выбранные размеры рабочей поверхности представлены на рисунке 2.

1300 мм

Рис. 6.2. Схема расположения оборудования на рабочем столе.

В нашем случае выбранная подставка для ног будет иметь следующие параметры: ширина 310 мм, глубина 420 мм, регулировка по высоте до 100 мм и по углу наклона опорной поверхности до 15 градусов, бортик подставки – 10 мм.
Рациональная планировка рабочего места предусматривает четкий порядок и постоянство размещения предметов, средств труда и документации.
Важным моментом является также рациональное размещение на рабочем месте документации, канцелярских принадлежностей, что должно обеспечить работнику удобную рабочую позу, наиболее экономичные движения и минимальные траектории перемещения работающего и предмета труда на данном рабочем месте. Создание благоприятных условий труда и правильное эстетическое оформление рабочих мест на производстве имеет большое значение, как для облегчения труда, так и для повышения его привлекательности, положительно влияющей на производительность труда. Окраска помещений и мебели должна способствовать созданию благоприятных условий для зрительного восприятия, хорошего настроения. В служебных помещениях, в которых выполняется однообразная умственная работа, требующая значительного нервного напряжения и большого сосредоточения, окраска должна быть спокойных тонов. [18]
При разработке оптимальных условий труда программиста необходимо учитывать освещенность, шум и вентиляцию помещения.

Разработка безопасных оптимальных условий труда. Технические и организационные меры защиты

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

Требования к освещению помещения и рабочего места инженера-программиста
Рациональное освещение рабочего места является одним из важнейших факторов, влияющих на эффективность трудовой деятельности человека, предупреждающих травматизм и профессиональные заболевания. Правильно организованное освещение создает благоприятные условия труда, повышает работоспособность и производительность труда. Освещение на рабочем месте программиста должно быть таким, чтобы работник мог без напряжения зрения выполнять свою работу. Утомляемость органов зрения зависит от ряда причин: - недостаточность освещенности; - чрезмерная освещенность; - неправильное направление света.
Недостаточность освещения приводит к напряжению зрения, ослабляет внимание, приводит к наступлению преждевременной утомленности. Чрезмерно яркое освещение вызывает ослепление, раздражение и резь в глазах. Неправильное направление света на рабочем месте может создавать резкие тени, блики, дезориентировать работающего. Все эти причины могут привести к несчастному случаю или профзаболеваниям, поэтому столь важен правильный расчет освещенности.
Данные требования описаны в санитарных нормах и правилах (СанПиН) для работников вычислительных центров от 22-05-95.
Естественное освещение в помещении относительно рабочего места программиста должно располагаться таким образом, чтобы свет на рабочее место подавался с левой стороны, так как это гарантирует отсутствие затененности от руки при возможной работе с бумажной документацией. Схема оптимального и допустимого положения источников естественного света относительно рабочего места программиста представлена на рис. 3.


Рис. 6.3. Схема организации естественного освещения.

Искусственное освещение в помещениях эксплуатации ПЭВМ осуществляется системой общего равномерного освещения.
В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, разрешено применение системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов).
Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300-500 лк, также допускается установка светильников местного освещения для подсветки документов, но с таким условием, чтобы оно не создавало бликов на поверхности экрана и не увеличивало освещенность экрана более чем на 300 лк.
В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в административно-общественных помещениях допускается применение металлогалогенных ламп мощностью до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения.
Общее освещение следует выполнять в виде сплошных или прерывистых линий светильников, расположенных сбоку от рабочих мест, параллельно линии зрения пользователя при рядном расположении ПЭВМ. При периметральном расположении компьютеров линии светильников должны располагаться локализовано над рабочим столом, ближе к его переднему краю, обращенному к оператору. Для обеспечения нормируемых значений освещенности в помещениях использования ПЭВМ следует проводить чистку стекол оконных рам и светильников не реже двух раз в год и проводить своевременную замену перегоревших ламп.
Правильно выполненная система освещения имеет большое значение в снижении производственного травматизма, создает нормальные условия для работы органов зрения, повышает работоспособность организма. Это увеличивает производительность труда при работе средней категории тяжести труда на 5-6 %, при тяжелой зрительной работе на 15%, а при работе в пределах зрительного восприятия – на 40%.
Напряженная зрительная работа вследствие нерационального освещения может явиться причиной функциональных нарушений в зрительном анализаторе и привести к расстройству зрения, а в тяжелых случаях – и к полной потере.
Основная задача освещения в производственных помещениях состоит в обеспечении оптимальных условий для видения. Эта задача решается выбором наиболее рациональной системы освещения и источников света.
В производственных помещениях предусматривают три вида освещения: естественное, искусственное и смешанное (совмещенное).
В данном проекте для рабочего помещения выбрана система освещения смешанного типа. Данное освещение представляет сочетание естественного (через окно) и общего искусственного освещения. Общим называют освещение, светильники которого освещают всю площадь помещения (в отличие от местного, предназначенного для освещения определённого рабочего места). Местное освещение не рассчитывается, поскольку рекомендованное в данной работе размещение светильников общего освещения позволяет избежать отражённой блесткости от поверхности стола и экрана монитора.

Выбор источников света
Действующие нормы проектирования производственного освещения СНиП II-4-79 устанавливают количественную и качественную характеристику освещения.
Искусственное освещение производственных помещений выполняется лампами накаливания и газоразрядными лампами. В качестве источников освещения выбраны газоразрядные лампы, так как они имеют высокую светоотдачу (до 100 лм/Вт), продолжительность горения достигает 15-18 тыс. часов, дают возможность получать световой поток в любой части спектра, имеют незначительный нагрев поверхности. Наиболее подходящими для помещения, где будут разрабатывать электронный справочник, являются люминесцентные лампы ЛБ (белого света) мощностью 65 Вт.
Нормирование искусственного освещения
В данном проекте вид выполняемых работ можно отнести к третьему разряду (III) зрительной работы, выбранный подразряд зрительной работы - в. Таким образом, величина объекта различения составит от 0,3 до 0,5 мм, при общем освещении заданная освещенность составит 300 лк.
Расчет освещенности рабочего места сводится к выбору системы освещения, определению необходимого числа светильников, их типа и размещения. Процесс работы программиста в таких условиях, когда естественное освещение недостаточно или отсутствует. Исходя из этого, рассчитаем параметры искусственного освещения.
Расчет искусственного освещения
Прежде чем начать расчет искусственного освещения необходимо дать более подробную характеристику производственного помещения. Длина помещения составит 5 метров, ширина 5 м. Высота потолка составит 3,2 м. Стены помещения окрашены в кремовый цвет, потолок белого цвета, пол покрыт линолеумом темного серо-голубого цвета. Цветовая гамма и соответственно коэффициент отражения используется в соответствии с ГОСТ 181-70 (указания по проектированию цветовой отделки интерьеров производственных зданий).
Расчет искусственного освещения проведем методом коэффициента использования. При расчете по этому методу световой поток лампы в каждом светильнике Fл находиться по формуле:
Fл= (E * k * S * z)/N*η,
где Е – заданная минимальная освещенность, лк; к- коэффициент запаса, учитывающий снижение освещенности в процессе эксплуатации за счет загрязнения ламп и светильников (для люминесцентных ламп берется коэффициент 1,5); S – освещаемая площадь, м2, z –отношение средней освещенности к минимальной (для люминесцентных ламп 1,1), N – число ламп, η – коэффициент использования светового потока в долях единицы (отношение светового потока, падающего на расчетную поверхность, к суммарному потоку всех дамп).
Площадь S освещаемого помещения при следующих параметрах Lд = 5 м, Lш = 5 м составит:
S = Lд * Lш = 5 м*5м = 25 м2.
Заданная минимальная освещенность составит 300 лк.
Для определения коэффициента использования светового потока определим индекс помещения по формуле:
i= S/(h*( Lд + Lш),
где h – высота светильника над рабочей поверхностью.
i= 25м2/( 3м*(5м+5м))=0.83
Учитывая вышеперечисленные характеристики помещения, определим коэффициент использования. Исходя из следующих показателей коэффициентов отражения: потолка ρ п = 70%; стен ρ с = 50%; пола ρ р = 30% коэффициент использования составит 52% или 0,52. Общий световой поток будет равен:
Fобщ= (E * k * S * z)/η= (300лк*1,5*25м2*1,1)/0,52=23798,077 лм.
Среднее значение светового потока люминесцентной лампы ЛБ мощностью 65 Вт составляет 4800 лм, таким образом, рассчитаем количество необходимых ламп:
N= Fобщ/Fл=23798,077 лм / 4800 лм = 5.
Определим электрическую мощность всей осветительной системы.
P общ = P1*N=65 Вт*5 = 325 Вт.

Качественные характеристики освещения
К нормируемым характеристикам промышленных осветительных установок относятся: показатель ослепленности, показатель дискомфорта, коэффициент пульсации светового потока, цилиндрическая освещенность.
Показатель ослепленности
Показатель ослепленности является критерием оценки слепящего действия, создаваемого осветительной установкой. Расчет показателя ослепленности (Р) производится исходя из справочных данных приведенных в справочной литературе, из которых следует, что выбранный ранее светильник по светотехническим параметрам относиться к четвертой группе (со значениями типа кривой силы света Д и защитным углом в поперечной плоскости 30°, а в продольной - 90°). Из справочной таблицы находим то, что Р равен 40 (выбирается по разряду зрительной работы III-в, номеру группы и мощности лампы 65 Вт). Таким образом, показатель находиться в пределах от 20 до 80 единиц, что соответствует требованиям норм для промышленных осветительных установок.[19]
Показатель дискомфорта
Для расчета показателя дискомфорта в осветительной установке, оснащенной светильниками, разработан табличный инженерный метод. Проверка осветительных установок (ОУ) на соответствие нормируемым значениям показателя дискомфорта производится в зависимости от светораспределения светильника и распределения светового потока светильника в верхней и нижней полусфере, а также его геометрических размеров. Определение соответствия ОУ нормам устанавливается следующим образом: уточняем группу и подгруппу светильника из табличных данных (в нашем случае это I группа, подгруппа – д), затем находим значение индекса помещения по дискомфорту im = 1,2 ( учитывая коэффициенты отражения стен ρ с = 50% и пола ρ р = 30%) при максимально допустимом значении показателя дискомфорта М=25. Затем сравниваем im = 1,2 и iп = 0,83 , и определяем соответствие требованиям ОУ по дискомфорту: так как iп<im, то ОУ соответствует требованиям, и светильник типа Л201Г265-33М обеспечивает нормируемое значение М в данной ОУ.
Цилиндрическая освещенность
Цилиндрическая освещенность (Ец) является характеристикой ощущения насыщенности помещения светом и определяется как средняя плотность светового потока на боковой поверхности цилиндра с вертикальной осью, радиус и высота которого стремятся к нулю. Цилиндрическая освещенность зависит от КСС светильников, их числа и размещения, геометрических размеров освещаемого помещения и отражающих свойств поверхностей потолка, стен и пола. Нормированное значение цилиндрической освещенности устанавливается СНиП П-4-79. Значение Ец определяется на расстоянии 1 м от торцевой стены на центральной продольной оси помещения на высоте 1,5 м от пола.
Минимальная цилиндрическая освещенность (Ец)100 от равномерно расположенных по потолку светильников рассчитывается в нашем случае следующим образом: с помощью вспомогательных графиков[14] и индекса помещения. Индекс помещения равен iп = 0,83, используем график зависимости минимальной цилиндрической освещенности от индекса помещения для светораспределения Iα= I0 cos α при удельном световом потоке равном 100 лм/м2 (так как светильник типа Л201Г265-33М относится к группе со светораспределением Iα= I0 cos α). Таким образом, выбираем кривую 1, так как значения hр= 3 м, и, учитывая коэффициенты отражения стен ρ с = 50% и пола ρ р = 30% . В результате, получим значение (Ец)10037 лк.
Для светильников, излучающих весь световой поток в нижнюю полусферу, удельный световой поток светильников определяется по формуле:
Фу = n*Фл*Фсв/1000*S,
где n - общее число ламп, установленных во всех светильниках; Фл - световой поток лампы, лм; Фсв - световой поток светильника для условной лампы с потоком 1000 лм; S - площадь потолка помещения, м.
Вычисляем фактический удельный световой поток, принимая при этом, что световой поток светильника в нижнюю полусферу равен 550 лм (КПД светильника умноженное на 1000), световой поток лампы ЛБ мощностью 65 Вт равен 4800 лм, площадь помещения 25 м2.
Фу = 5*4800*550/1000*25= 528 лм/м2
Определяем минимальную цилиндрическую освещенность по формуле:
Ец = (Ец)100 * Фу/100*Кз,
где К3 - коэффициент запаса равный 1,5.
Таким образом, минимальная цилиндрическая освещенность Ец будет равна
Ец = 37лк*528 лм/м2/100*1,5= 130,24 лк
Коэффициент пульсации
Коэффициент пульсации – это характеристика колебаний освещенности в результате изменения во времени светового потока люминесцентных ламп при питании их переменным током.
Коэффициент пульсации освещенности на рабочих местах рассчитывается по формуле:
Кп = ((Еmax-Еmin) /2*Еср)*100%,
где Фmax (Еmax), Фmin (Emin) и Фср (Еср) - показатели соответственно максимальной, минимальной и средней освещённости за период ее колебания, лк. Согласно справочным данным коэффициент пульсации светового потока источника для ЛБ двух ламп составит 10%.

Нормирование шума. Методы защиты от шума
Установлено, что шум ухудшает условия труда, оказывая вредное воздействие на организм человека. При длительном воздействии шума на человека происходят нежелательные явления: снижается острота зрения, слуха, повышается кровяное давление, понижается внимание. Сильный продолжительный шум может стать причиной функциональных изменений сердечно-сосудистой и нервной систем.
Согласно ГОСТ 12.1.003-88 ("Шум. Общие требования безопасности") характеристикой постоянного шума на рабочих местах являются среднеквадратичные уровни давлений в октавных полосах частот со среднегеометрическими стандартными частотами: 63, 125, 250, 500, 1000, 2000, 4000 и 8000 Гц. В этом ГОСТе указаны значения предельно допустимых уровней шума на рабочих местах предприятий. Для помещений конструкторских бюро, расчетчиков и программистов уровни шума не должны превышать соответственно: 71, 61, 54, 49, 45, 42, 40, 38 дБ. Эта совокупность восьми нормативных уровней звукового давления называется предельным спектром.
Строительно-акустические методы защиты от шума предусмотрены строительными нормами и правилами (СНиП-II-12-77). это:
- звукоизоляция ограждающих конструкции, уплотнение по периметру притворов окон и дверей;
- звукопоглощающие конструкции и экраны;
- глушители шума, звукопоглощающие облицовки.
На рабочем месте программиста источниками шума, как правило, являются технические средства: компьютер, принтер, вентиляционное оборудование, а также внешний шум. При должном техническом обеспечении и сертификации они издают довольно незначительный шум, поэтому в помещении достаточно использовать звукопоглощение. Для дополнительного уменьшения уровня шума, издаваемого техникой, возможно прибегнуть к установке бесшумных систем охлаждения компьютера, например, веерных радиаторов или водяных систем комплексного охлаждения системного блока. Уменьшение шума, проникающего в помещение извне, достигается уплотнением по периметру притворов окон и дверей. Под звукопоглощением понимают свойство акустически обработанных поверхностей уменьшать интенсивность отраженных ими волн за счет преобразования звуковой энергии в тепловую. Звукопоглощение является достаточно эффективным мероприятием по уменьшению шума. Наиболее выраженными звукопоглощающими свойствами обладают волокнисто-пористые материалы: фибролитовые плиты, стекловолокно, минеральная вата, полиуретановый поропласт, пористый поливинилхлорид и др. К звукопоглощающим материалам относятся лишь те, коэффициент звукопоглощения которых не ниже 0.2.
Звукопоглощающие облицовки из указанных материалов (например, маты из супертонкого стекловолокна с оболочкой из стеклоткани нужно разместить на потолке и верхних частях стен. Максимальное звукопоглощение будет достигнуто при облицовке не менее 60% общей площади ограждающих поверхностей помещения.

Вентиляция
Системы отопления и системы кондиционирования следует устанавливать так, чтобы ни теплый, ни холодный воздух не направлялся на людей. На производстве рекомендуется создавать динамический климат с определенными перепадами показателей. Температура воздуха у поверхности пола и на уровне головы не должна отличаться более, чем на 5 градусов. В производственных помещениях помимо естественной вентиляции предусматривают приточно-вытяжную вентиляцию. Основным параметром, определяющим характеристики вентиляционной системы, является кратность обмена, т.е. сколько раз в час сменится воздух в помещении. [20]

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


Заключение

В представленной работе разработан и реализован новый алгоритм для оценки качества псевдослучайной последовательности. Предлагаемый нами метод в отличие от всех предыдущих позволяет получить представление случайных величин в так называемом махаланобис-пространстве, где в случае их независимости это представление будет однородным и всюду плотным. Какая-либо закономерность в их появление будет в махаланобис-пространстве идентифицироваться как наличие точек сгущения.
Аппарат выявления точек сгущения, основанный на свойствах энтропии, позволяет более тонко идентифицировать случайных характер последовательности по сравнению со свойствами симметрии и нормальности характеристических функций последовательности.
Программа реализована в среде Visual C++. Тестирование программного продукта проводилось в течение нескольких дней совместно с заказчиком.
В процессе проведенного тестирования системы установлено:
- алгоритм программы правильный;
- все указанные функции реализованы;
- программа выдает правильные результаты.








Приложение А. Листинг программы

// RestanglesView.cpp : implementation of the CRestanglesView class
//

#include "stdafx.h"
#include "Restangles.h"
#include ".\SRC\Matlib.h"
#include "algo.h"
#include "dlg_.h"
#include "imago.h"
#include "visu.h"
#include "fstream.h"
#include "RestanglesDoc.h"
#include "RestanglesView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView

IMPLEMENT_DYNCREATE(CRestanglesView, CScrollView)

BEGIN_MESSAGE_MAP(CRestanglesView, CScrollView)
//{{AFX_MSG_MAP(CRestanglesView)
ON_WM_LBUTTONDOWN()
ON_COMMAND(ID_FILE_CREATE, OnFileCreate)
ON_COMMAND(ID_FILE_INPUT, OnFileInput)
ON_COMMAND(ID_INPUT_FROMFILE, OnInputFromfile)
ON_COMMAND(ID_ALGORITHM_RUN, OnAlgorithmRun)
ON_COMMAND(ID_PLOTS_SAMPLE, OnPlotsSample)
ON_COMMAND(ID_PLOTS_PLOTRANDOM, OnPlotsPlotrandom)
ON_COMMAND(ID_PLOTS_PLOTMAHALANOBIS, OnPlotsPlotmahalanobis)
ON_COMMAND(ID_INPUT_FROMFIELD, OnInputFromfield)
ON_WM_CREATE()
ON_COMMAND(ID_TOOLS_RENEW, OnToolsRenew)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)

ON_COMMAND(IDC_RICHEDIT_ULINE, OnULine)
ON_COMMAND(IDC_RICHEDITLEFT, OnLeft)
ON_COMMAND(IDC_RICHEDITCENTER, OnCenter)
ON_COMMAND(IDC_RICHEDITRIGHT, OnRight)


END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView construction/destruction

CRestanglesView::CRestanglesView()
{
routine=0;
func=NULL;
mahal=NULL;
inp_str="";
summary="";
m_otstr="";
opened=false;
back=NULL;
back_=NULL;
}

CRestanglesView::~CRestanglesView()
{
}

BOOL CRestanglesView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView drawing

void CRestanglesView::OnDraw(CDC* pDC)
{



CRestanglesDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
float R_,G_,B_;
int pointIndex = pDoc->m_pointIndex;
CClientDC cl (this);
if(routine==1)
{

cl.TextOut(20-GetScrollPosition().x,-GetScrollPosition().y,"Randomness test:");
cl.TextOut(20-GetScrollPosition().x,20-GetScrollPosition().y,inp_str);

}
if((routine==2))
{

R_=140;
G_=140;
B_=140;
CBrush* pr=new CBrush(RGB(R_,G_,B_));
CRect gt(0,0,3000,5000);
//pDC->FillRect(gt,pr);
delete pr;
CString s;
cl.TextOut(100-GetScrollPosition().x,100-GetScrollPosition().y,"ðàñïðåäåëåíèå ìàõàëàíîáèñ- ðàññòîÿíèé");
cl.TextOut(20-GetScrollPosition().x,40-GetScrollPosition().y,summary);cl.TextOut(300-GetScrollPosition().x,40-GetScrollPosition().y,m_otstr);

int i;
CPoint vert=CPoint(60-GetScrollPosition().x,400-GetScrollPosition().y);
int scale=30;
CPen R(PS_SOLID,1,RGB(255,0,0));
CPen G(PS_SOLID,1,RGB(0,255,0));
CPen B(PS_SOLID,1,RGB(0,0,255));

cl.SelectObject(&B);
cl.TextOut(vert.x,vert.y,"0");
cl.TextOut(vert.x+5,200-GetScrollPosition().y,"y");
cl.TextOut(vert.x+scale*(nnn+1)+10,vert.y,"x");


cl.MoveTo(vert.x+nnn ,vert.y);
cl.MoveTo(vert.x ,vert.y);cl.LineTo(vert.x ,200-GetScrollPosition().y);
cl.MoveTo(vert.x ,vert.y);cl.LineTo(vert.x+scale*(nnn+1)+10 ,vert.y);


cl.SelectObject(&R);
cl.MoveTo(vert.x ,vert.y-200);
for ( i=0;i<nnn;i++)
{
cl.LineTo(vert.x+scale*(i+1) ,vert.y-(int)mahal[i]);
}
}// if(routine==1)
//////////////////////////////////
if(routine==3)
{

R_=60;
G_=120;
B_=140;
CBrush* pr=new CBrush(RGB(R_,G_,B_));
CRect gt(-GetScrollPosition().x,-GetScrollPosition().y,3000,5000);
pDC->FillRect(gt,pr);

HDC hdc = pDC->GetSafeHdc();
SetBkColor(hdc, RGB(R_, G_, B_));
SetBkMode(
hdc, // handle of device context
OPAQUE // flag specifying background mode
);
pDC->SetBkColor(RGB(R_, G_, B_));
delete pr;
cl.TextOut(100-GetScrollPosition().x,100-GetScrollPosition().y,"ãðàôèê");
imago im;
im.ShowPicture(pDC, back_ , xsize,ysize, 20, 70, 1.3*xsize,1.3*ysize);



}//if(routine==3)
//for (int i=0; i<pointIndex; ++i)
//{int x = pDoc->m_points[i].x;
// int y = pDoc->m_points[i].y;
//pDC->Rectangle(x, y, x+20, y+20);}



}

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView printing
int CRestanglesView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;

//CreateProcessBar();
//CreateTrackBar();
//CreateUpDownCtrl();
//CreateListView();
//CreateTreeView();
CreateRichEdit();
//CreateIPAdress();
//CreateDatePicker();
//CreateMonth();

return 0;
}
void CRestanglesView::CreateRichEdit()
{
int y_beg=550;
int x_beg=500;

m_richEdit.Create(WS_VISIBLE|WS_CHILD|WS_BORDER|ES_AUTOVSCROLL|ES_MULTILINE, CRect(x_beg+180, y_beg+260, x_beg+393, y_beg+360), this, IDC_RICHEDIT);
m_boldButton.Create("ULine", WS_VISIBLE|WS_CHILD|WS_BORDER, CRect(x_beg+400, y_beg+260, x_beg+450, y_beg+280), this, IDC_RICHEDIT_ULINE);
m_leftButton.Create("Left", WS_VISIBLE|WS_CHILD|WS_BORDER, CRect(x_beg+400, y_beg+285, x_beg+450, y_beg+305), this, IDC_RICHEDITLEFT);
m_rightButton.Create("Right", WS_VISIBLE|WS_CHILD|WS_BORDER, CRect(x_beg+400, y_beg+335, x_beg+450, y_beg+355), this, IDC_RICHEDITRIGHT);
m_centerButton.Create("Center", WS_VISIBLE|WS_CHILD|WS_BORDER, CRect(x_beg+400, y_beg+310, x_beg+450, y_beg+330), this, IDC_RICHEDITCENTER);


}
BOOL CRestanglesView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}

void CRestanglesView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}

void CRestanglesView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView diagnostics

#ifdef _DEBUG
void CRestanglesView::AssertValid() const
{
CView::AssertValid();
}

void CRestanglesView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}

CRestanglesDoc* CRestanglesView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRestanglesDoc)));
return (CRestanglesDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CRestanglesView message handlers

void CRestanglesView::OnLButtonDown(UINT nFlags, CPoint point)
{
CRestanglesDoc*pDoc = GetDocument();
if (pDoc->m_pointIndex==100)
return;
pDoc->m_points[pDoc->m_pointIndex] = point;
pDoc->m_pointIndex++;
pDoc->SetModifiedFlag();

Invalidate(false);

CView::OnLButtonDown(nFlags, point);

CView::OnLButtonDown(nFlags, point);
}
//////////////////////////////////////////////////////////////
void CRestanglesView::OnFileCreate()
{
/*
routine=1;

nnn=100;
int i;
if(func==NULL)
{
func=new float[nnn];
for ( i=0;i<nnn;i++) func[i]=i*i/100;
Invalidate(false);

}
*/

}
////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnFileInput(CDC* pDC)
{

if((routine==0)||(routine==3)){
dlg_ h=new dlg_();

if(h.DoModal()==IDOK)
{

inp_str=h.m_input;
ofstream out("temp.txt",ios::out);
out<<inp_str;out<<'\n';
out.close();





CClientDC cl (this);
int R_=130;
int G_=120;
int B_=140;
CBrush* pr=new CBrush(RGB(R_,G_,B_));
CRect gt(-GetScrollPosition().x,-GetScrollPosition().y,3000,5000);

cl.FillRect(gt,pr);
delete pr;



cl.TextOut(100,20," ");





ifstream in("temp.txt",ios::in);

counter=0;
int i;
n=20000;
if(func==NULL)
{

func=new float[n];
for ( i=0;i<nnn;i++) func[i]=i*i/100;


}




for ( i=0;i<n;i++)
{
in>>func[i];
if(func[i]>-10000000)counter++;

}
in.close();


opened=true;





routine=1;
Invalidate(true);
}//if(h.DoModal()==IDOK)
}// if((routine==0)||(routine==3)){

}
//////////////////////////////////////////////////////////////////
void CRestanglesView::OnInitialUpdate()
{

CScrollView::OnInitialUpdate( );
CSize sizeTotal;


sizeTotal.cx=4720;
sizeTotal.cy=2576;
SetScrollSizes(MM_TEXT, sizeTotal);
Invalidate(false);

}


////////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnInputFromfile(CDC* pDC)
{
if((routine==0)||(routine==3)){
char slash=92;
n=20000;
if(func==NULL)
{

func=new float[n];



}
int i;
CFileDialog filedialog(TRUE);
CString path;
CString s, dirr;
if(filedialog.DoModal()==IDOK)
{




path=filedialog.GetPathName();


ifstream in(path,ios::in);

counter=0;
for ( i=0;i<n;i++)
{
in>>func[i];
if(func[i]>-10000000)counter++;

}
inp_str="";
CString buf;
for ( i=0;i<counter;i++)
{

buf.Format("%d", (int)func[i]);
inp_str=inp_str+" "+buf;
}


CClientDC cl (this);
int R_=130;
int G_=120;
int B_=140;
CBrush* pr=new CBrush(RGB(R_,G_,B_));
CRect gt(-GetScrollPosition().x,-GetScrollPosition().y,3000,5000);

cl.FillRect(gt,pr);
delete pr;



cl.TextOut(100+GetScrollPosition().x,20+GetScrollPosition().y," ");


in.close();
opened=true;



routine=1;
Invalidate(true);

}//if(filedialog.DoModal()==IDOK)
}// if((routine==0)||(routine==3)){

}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnAlgorithmRun()
{


algo a;
int i,j;
int lrows=10;
if(routine==1){
ofstream out("output.txt",ios::out);
char* buf=new char[500];




out<<"Input a sequence, please.";out<<'\n';

for (i=0;i<counter;i++){

sprintf(buf,"%.3f",func[i]);
out<<buf;out<<' ';
}
out<<'\n';
out<<"Number of elements is ";out<<'\n';
sprintf(buf,"%.1i",counter);out<<buf;out<<'\n';out<<'\n';out<<'\n';


int lcol=int(counter/lrows);
int nn=lrows*lcol;
Mm AA=ones(lcol,lrows);
Mm Lin_=zeros(1,nn);
for (i=1;i<=nn;i++)Lin_.r(1,i)=*(func+(i-1));

Lin_=Lin_-(max(Lin_)+min(Lin_))/2;

out<<'\n';
out<<"Normalized vector =";out<<'\n';
for (i=1;i<=Lin_.size(1);i++){
for( j=1;j<=Lin_.size(2);j++) {
sprintf(buf,"%.3f",Lin_.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}

Lin_=a.cumulate(Lin_);


int ll=Lin_.size(1);
if(ll>0)
{


out<<'\n';
out<<"Cumulate: ";out<<'\n';
for (i=1;i<=Lin_.size(1);i++){
for( j=1;j<=Lin_.size(2);j++) {
sprintf(buf,"%.3f",Lin_.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}
out<<'\n';
for (i=1;i<=AA.size(1);i++)
for( j=1;j<=AA.size(2);j++)
AA.r(i,j)=Lin_.r(j+ lrows*(i-1));

out<<'\n';out<<"Tested vectors:";out<<'\n';

for (i=1;i<=AA.size(1);i++){
for( j=1;j<=AA.size(2);j++) {
sprintf(buf,"%.3f",AA.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}


Mm Mean_=sum(AA,1)/AA.size(1);

out<<"Mean:";out<<'\n';

for (i=1;i<=Mean_.size(1);i++){
for( j=1;j<=Mean_.size(2);j++) {
sprintf(buf,"%.3f",Mean_.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}

ZAA=AA-repmat(Mean_,AA.size(1),1);

out<<'\n';out<<"Zentered vectors:";out<<'\n';
bool zeros_=true;
for (i=1;i<=ZAA.size(1);i++){
for( j=1;j<=ZAA.size(2);j++) {
if(!(ZAA.r(i,j)==0))zeros_=false;

sprintf(buf,"%.3f",ZAA.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}

//bool zeros_=(equal(ZZER.vwcopyn(,ZAA));


Mm a_b=a.regr_coef(Lin_);




out<<'\n';out<<"Regression: ";out<<'\n';

for (i=1;i<=a_b.size(1);i++){
for( j=1;j<=a_b.size(2);j++) {
sprintf(buf,"%.3f",a_b.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}
float ft=fabs(a_b.r(1,1));




Mm GAMM=a.gamma(ZAA);
out<<'\n';out<<"Gamma:";out<<'\n';

for (i=1;i<=GAMM.size(1);i++){
for( j=1;j<=GAMM.size(2);j++) {
sprintf(buf,"%.3f",GAMM.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}
///////////////////////////////mahal//////////

Mm vv=ones(1,ZAA.size(2));
distr=ones(1,ZAA.size(1));
Mm M_;




for (i=1;i<=ZAA.size(1);i++){



for( j=1;j<=ZAA.size(2);j++) vv.r(1,j)=ZAA.r(i,j);


M_=vv*GAMM*transpose(vv);

distr.r(1,i)=M_.r(1,1);





}//for (i=1;i<=ZAA.size(1);i++){


out<<'\n';out<<"Mahalanobis: ";out<<'\n';

for (i=1;i<=distr.size(1);i++){
for( j=1;j<=distr.size(2);j++) {
sprintf(buf,"%.3f",distr.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}



nnn=distr.size(2);
Mm maxx=max(distr,2);
if(mahal==NULL)
{
mahal=new float[distr.size(2)];
}
else {delete[] mahal;mahal=new float[distr.size(2)];}

for ( i=0;i<distr.size(2)-1;i++) mahal[i]=300*(distr.r(1,i+1)/(maxx.r(1,1)+0.000000000001));






Mm disp_=cov(distr);
out<<'\n';out<<"Entropy:";out<<'\n';

for (i=1;i<=disp_.size(1);i++){
for( j=1;j<=disp_.size(2);j++) {
sprintf(buf,"%.3f",disp_.r(i,j));
out<<buf;out<<' ';}
out<<'\n';
}

m_otstr="Entropy: ";
sprintf(buf,"%.3f",disp_.r(1,1));
m_otstr=m_otstr+buf;





if(!zeros_)
{
if(ft<0.4)
{

if(disp_.r(1,1)>0.5)
summary="íå ñëó÷àéíà";
else summary="ñëó÷àéíà";










}//if(fabs(a_b.r(1,1)>0.1))

else summary="íå ñëó÷àéíà. åñòü ñäâèã.";

}//if(!zeros_)
else summary="íå ñëó÷àéíà. ïîñòîÿííà";
Invalidate(false);


delete [] buf;
routine=2;
}//if(ll>1)
else {
AfxMessageBox("It is a very small sequence.");
routine=0;
}


}//if(routine==1)
else
{
AfxMessageBox("Open an input file, please.");
routine=0;
}



}
//////////////////////////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnPlotsSample()
{

if(routine==2) routine=3;
if(routine==3)
{
dir_plot="./plot";
CreateDirectory(dir_plot ,NULL);
imago im;
int i;
back=im.imread1("base.bmp",xsize, ysize);
back_=im.imread("base.bmp",xsize, ysize);
im.drow_matrix(back,xsize, ysize,ZAA);
for ( i=0;i<xsize*ysize*3;i++)back_[i]=back[i];
im.SaveBMP_fl(back,xsize, ysize,dir_plot+"/plot_sample.bmp");

Invalidate(false);
}//if(riotine==3)
}
///////////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnPlotsPlotrandom()
{
dir_plot="./plot";
CreateDirectory(dir_plot ,NULL);
imago im;
int i;
back=im.imread1("base.bmp",xsize, ysize);
back_=im.imread("base.bmp",xsize, ysize);
Mm FF=10*randn(5,30)-5;
im.drow_matrix(back,xsize, ysize,FF);
for ( i=0;i<xsize*ysize*3;i++)back_[i]=back[i];
im.SaveBMP_fl(back,xsize, ysize,dir_plot+"/plot_random.bmp");
routine=3;
Invalidate(false);
}
///////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnPlotsPlotmahalanobis()
{
if(routine==2) routine=3;
if(routine==3)
{
dir_plot="./plot";
CreateDirectory(dir_plot ,NULL);
imago im;
int i;
back=im.imread1("base.bmp",xsize, ysize);
back_=im.imread("base.bmp",xsize, ysize);
im.drow_matrix(back,xsize, ysize,distr);
for ( i=0;i<xsize*ysize*3;i++)back_[i]=back[i];
im.SaveBMP_fl(back,xsize, ysize,dir_plot+"/plot_mahalanobis.bmp");

Invalidate(false);
}//if(riotine==2)
}
//////////////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnULine()
{

CHARFORMAT charFormat;
charFormat.cbSize = sizeof(CHARFORMAT);
charFormat.dwMask = CFM_UNDERLINE;
m_richEdit.GetSelectionCharFormat(charFormat);

if (charFormat.dwEffects & CFM_UNDERLINE)
charFormat.dwEffects = CFE_BOLD;
else
charFormat.dwEffects = CFE_UNDERLINE|CFE_BOLD;

m_richEdit.SetSelectionCharFormat(charFormat);
m_richEdit.SetFocus();


}

void CRestanglesView::OnLeft()
{
PARAFORMAT paraFormat;
paraFormat.cbSize = sizeof(PARAFORMAT);
paraFormat.dwMask = PFM_ALIGNMENT;
paraFormat.wAlignment = PFA_LEFT;
m_richEdit.SetParaFormat(paraFormat);
m_richEdit.SetFocus();
}


void CRestanglesView::OnCenter()
{
PARAFORMAT paraFormat;
paraFormat.cbSize = sizeof(PARAFORMAT);
paraFormat.dwMask = PFM_ALIGNMENT;
paraFormat.wAlignment = PFA_CENTER;
m_richEdit.SetParaFormat(paraFormat);
m_richEdit.SetFocus();
}


void CRestanglesView::OnRight()
{
PARAFORMAT paraFormat;
paraFormat.cbSize = sizeof(PARAFORMAT);
paraFormat.dwMask = PFM_ALIGNMENT;
paraFormat.wAlignment = PFA_RIGHT;
m_richEdit.SetParaFormat(paraFormat);
m_richEdit.SetFocus();
char* buf=new char[500];
m_richEdit.GetLine(0,buf);

AfxMessageBox(buf);
m_richEdit.GetLine(1,buf);

AfxMessageBox(buf);


delete[] buf;


}
///////////////////////////////////////////////////////////////////////////////////
void CRestanglesView::OnInputFromfield()
{
if((routine==0)||(routine==3)){
char slash=92;
n=20000;
if(func==NULL)
{

func=new float[n];



}
int i;
CFileDialog filedialog(TRUE);
CString path;
CString s, dirr;
if(filedialog.DoModal()==IDOK)
{




path=filedialog.GetPathName();


ifstream in(path,ios::in);

counter=0;
for ( i=0;i<n;i++)
{
in>>func[i];
if(func[i]>-10000000)counter++;

}
inp_str="";
CString buf;
for ( i=0;i<counter;i++)
{

buf.Format("%d", (int)func[i]);
inp_str=inp_str+" "+buf;
}


CClientDC cl (this);
int R_=130;
int G_=120;
int B_=140;
CBrush* pr=new CBrush(RGB(R_,G_,B_));
CRect gt(-GetScrollPosition().x,-GetScrollPosition().y,3000,5000);

cl.FillRect(gt,pr);
delete pr;



cl.TextOut(100+GetScrollPosition().x,20+GetScrollPosition().y," ");


in.close();
opened=true;



routine=1;
Invalidate(true);

}//if(filedialog.DoModal()==IDOK)
}// if((routine==0)||(routine==3)){
}
///////////////////////////////////////////////////////////////////////
void CRestanglesView::OnToolsRenew()
{
if(!(func==NULL)) delete[] func;
if(!(mahal==NULL)) delete[] mahal;
if(!(back==NULL)) delete[] back;
if(!(back_==NULL)) delete[] back_;


routine=0;
func=NULL;
mahal=NULL;
inp_str="";
summary="";
m_otstr="";
opened=false;
back=NULL;
back_=NULL;

Invalidate(true);
}



Приложение Б. Список формул и обозначений


- последовательность вещественных чисел, принимающих значения из интервала [-n, n], где n –вещественное число.
характеристическая последовательность есть, где
то есть элемент характеристической последовательности – «число успехов в испытании Бернулли».

- дизъюнктное объединение подмножеств, где card – это мощность множества, знак объединения с верхним индексом «пустое множество» означает, что множества, стоящие под знаком объединения – непересекающиеся.

ковариационная матрица и среднее, где Nb есть количество векторов Xi.

махаланобис-дистанция между вектором Х и множеством бакграунда, где в качестве бакграунда выступает все семейство векторов

энтропия распределения махаланобис-дистации, где р - распределение расстояний в махаланобис-метрике, n(i)- частота появления каждого значения.

Список используемых источников информации


1. Анин Б.Ю. Защита компьютерной информации. СПб.: БХВ – Санкт-Петербург, 2000. – 256 c.
2. Иванов М.Д. Криптографические методы защиты информации в компьютерных системах и сетях. М.: Кудиц-образ, 2001. - 368 с.
3. Аршинов М.Н., Садовский Л.Е. Коды и математика (рассказы о кодировании). М.: Наука Главн. ред. физ. мат. лит., 1983.
4. Анохин М.И., Варноский М.П., Сидельников В.М., Ященко В.В. Криптография в банковском деле. М.: МИФИ, 1987.
5. Зиммерман Ф.Р. PGP: концепция безопасности и уязвимые места. Пер с англ. \\ Компьютера. 1997. №48. С. 36-40, 42-51.
6. Доценко В.И., Фараджев Р.Г., Чхартишвилли Г.С. Свойства последовательностей максимальной длины с Р – уровнями \\ Автоматика и телемеханика. 1971. №8. С. 189-194.
7. Введение в криптографию. Под общей ред. В.В. Ященко. СПб: Питер, 2001. – 288 с.
8. Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика. Электроинформ, 1997. – 364 с.
9. Моисеенков И. Основы безопасности компьютерных систем \\ КомпьютерПресс. 1991, №10. С. 19-24, №11. С. 7-21.
10. Петров А.А. Компьютерная безопасность. Криптографические методы защиты. М.: ДМК, 2000. – 320 с.
11. Брассар Ж. Современная криптология. Пер. с англ. М.: Полимед, 1999. – 296 с.
12. Жельников В. Криптография от папируса до компьютера. М.: ABF, 1996. – 312 с.
13. Дориченко С.А., Ященко В.В. 25 этюдов о шифрах. М.: ТЭИС, 1994.
14. Кнут Д.,Э. Искусство программирования, том 2. Получисленные алгоритмы, 3-е изд.: Пер. с англ.: Уч. пос. М.: Издательский дом «Вильямс», 2001. – 832 с.
15. Конев И.Р., Беляев А.В. Информационная безопасность предприятия. – СПб.: БХВ-Петербург, 2003. – 752 с.
16. Нечаев В.И. Элементы криптографии (Основы теории защиты информации): Уч. пособие для ун-тов и пед. вузов\ Под ред. В.А. Садовничего – М.: Высш. шк., 1999. – 109 с.
17. Андерсон Д.А. Дискретная математика и комбинаторика: Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 960 с.
18. Яблонский С.В. Введение в дискретную математику: Учебн. Пособие для вузов / Под ред. В.А. Садовничего. – 3-е изд., стер. – М.: Высш. шк., 2002. – 384 с.
19. Дьяконов В.П. MATLAB 6.5 +Simulink 5.6. Основы применения. М.: СОЛОН-Пресс, 2005. – 800 с.
20. Literature Survey on Anomaly Detection in Hyperspectral Imaging, Eyal Madar, Research Report - June 2009, MAFAT Project No: 010063, TAMOUZ, 5768 HAIFA, Technion, JUNE, 2009
21. Sparse and Redundant Representations From Theory to Applications in Signal and Image processing, By Michael Elad, The Computer Science department, The Technion–Israel Institute of Technology, Haifa, 32000 Israel






Пользователь А

Шифрование
Ek(p)

Расшифрование
Dk(c)

Память

Противник
W

c

c

p

p

Ключ kd

Ключ kd

а)

Абонент
А

Шифрование
Ek(p)

Расшифрование
Dk(c)

Канал
связи

Противник
W

c

c

p

p

Ключ kd

Ключ kd

б)

Абонент
В

Методы
шифрования

Шифрование с открытым ключом

Шифрование с секретным ключом

Блочные шифры

Поточные шифры

Комбинированные шифры

Замена (подстановка)

Перестановка (транспозиция)

Композиционные

Синхронные

Самосинхронизирующиеся



Симметричные
криптосистемы

Гаммирование

Подстановки

Блочные шифры

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

(

сумматор

задержка

(

Яч 1

Яч 2

Яч 3

Яч 4

(

0000

0010

0011

1011

1010

1000

1001

1101

1100

1110

1111

0111

0110

0100

0101

0001

1

0

0

1

0

0

1

1

0

1

0

1

1

0

1

0

ЛРС

g

гамма

ЛРС-1

g

гамма

ЛРС-2

ЛРС-3

ЛРС-1

g

гамма

ЛРС-2

ЛРС-3

Яч-1

Яч-2

Яч-3

























































































































































































Нет

Да

Нет

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

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

Сравнить: больше энтропия, чем трешхолд?

Вычислить энтропию распределения

Вычислить распределение махаланобис-дистанций

Цикл:
для каждого вектора вычислить махаланобис-дистанцию до оставшихся векторов

Строим вектора длины 10

Да

Тестируемая последовательность неслучайная

Проверка: есть ли тенденция возрастания или убывания?

Построить кумулятивную функцию

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

750 мм


Колонки




Мышь



740 мм 250 мм


250 мм


монитор

клавиатура

Принтер

1. Анин Б.Ю. Защита компьютерной информации. СПб.: БХВ – Санкт-Петербург, 2000. – 256 c.
2. Иванов М.Д. Криптографические методы защиты информации в компьютерных системах и сетях. М.: Кудиц-образ, 2001. - 368 с.
3. Аршинов М.Н., Садовский Л.Е. Коды и математика (рассказы о ко-дировании). М.: Наука Главн. ред. физ. мат. лит., 1983.
4. Анохин М.И., Варноский М.П., Сидельников В.М., Ященко В.В. Криптография в банковском деле. М.: МИФИ, 1987.
5. Зиммерман Ф.Р. PGP: концепция безопасности и уязвимые места. Пер с англ. \\ Компьютера. 1997. №48. С. 36-40, 42-51.
6. Доценко В.И., Фараджев Р.Г., Чхартишвилли Г.С. Свойства после-довательностей максимальной длины с Р – уровнями \\ Автоматика и те-лемеханика. 1971. №8. С. 189-194.
7. Введение в криптографию. Под общей ред. В.В. Ященко. СПб: Питер, 2001. – 288 с.
8. Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика. Электроинформ, 1997. – 364 с.
9. Моисеенков И. Основы безопасности компьютерных систем \\ КомпьютерПресс. 1991, №10. С. 19-24, №11. С. 7-21.
10. Петров А.А. Компьютерная безопасность. Криптографические методы защиты. М.: ДМК, 2000. – 320 с.
11. Брассар Ж. Современная криптология. Пер. с англ. М.: Полимед, 1999. – 296 с.
12. Жельников В. Криптография от папируса до компьютера. М.: ABF, 1996. – 312 с.
13. Дориченко С.А., Ященко В.В. 25 этюдов о шифрах. М.: ТЭИС, 1994.
14. Кнут Д.,Э. Искусство программирования, том 2. Получисленные алгоритмы, 3-е изд.: Пер. с англ.: Уч. пос. М.: Издательский дом «Вильямс», 2001. – 832 с.
15. Конев И.Р., Беляев А.В. Информационная безопасность предпри-ятия. – СПб.: БХВ-Петербург, 2003. – 752 с.
16. Нечаев В.И. Элементы криптографии (Основы теории защиты информации): Уч. пособие для ун-тов и пед. вузов\ Под ред. В.А. Садовничего – М.: Высш. шк., 1999. – 109 с.
17. Андерсон Д.А. Дискретная математика и комбинаторика: Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 960 с.
18. Яблонский С.В. Введение в дискретную математику: Учебн. По-собие для вузов / Под ред. В.А. Садовничего. – 3-е изд., стер. – М.: Высш. шк., 2002. – 384 с.
19. Дьяконов В.П. MATLAB 6.5 +Simulink 5.6. Основы применения. М.: СОЛОН-Пресс, 2005. – 800 с.
20. Literature Survey on Anomaly Detection in Hyperspectral Imaging, Eyal Madar, Research Report - June 2009, MAFAT Project No: 010063, TA-MOUZ, 5768 HAIFA, Technion, JUNE, 2009
21. Sparse and Redundant Representations From Theory to Applications in Signal and Image processing, By Michael Elad, The Computer Science de-partment, The Technion–Israel Institute of Technology, Haifa, 32000 Israel

Биометрия в криптографии

Введение

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

.
Биометрия в криптографии

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

Среди преимуществ биометрических данных при использовании их в качестве источника ключевого материала можно выделить следующие:1) биометрические признаки уникальны; 2) биометрические признаки воспроизводимы и всегда готовы к использованию; 3) удобство и экономическая эффективность; 4) гибкость, совместимость различных знаков. Однако проблемными остаются вопросы: 1) ошибки первого и второго рода; 2) биометрические данные неточные воспроизводимы и не имеют равномерного распределения вероятностей; 3) биометрические данные не являются секретными; 4) биометрические данные могут меняться с течением времени и в зависимости от физического и эмоционального состояния их владельца [1].Ключи, полученные на основе биометрических признаков, имеют ряд особенностей, которые создают преимущества в разработке и применении средств криптографической защиты:

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

) Функция связана с ключевых свойств материала. Потому что ключевой материал слабо слышен, а для фазы схемы использования ключа нужно четко определенное значение, то необходимо определить, как и когда осуществлять переход от нечеткой форме в ясно. Возможны два варианта такого преобразования. Превратить его в один раз и всю ту часть жизненного цикла, которая представляет собой фазу, в явном виде наличие ключа, осуществляется в четко определенных ключевых ценностей. Это преобразование выполняется с помощью метода нечетких экстракторов [2]. На второй вариант, чтобы преобразовать весь жизненный цикл организуется для нечеткого ключа, а только при необходимости его применения для осуществления криптографических операций выполняется его преобразование. Эта функция осуществляется с помощью специальных криптосхем, которые позволяют получить правильный результат, когда маржа ключевых значений.

Узнать стоимость работы