Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOSv1_3.docx
Скачиваний:
56
Добавлен:
30.03.2015
Размер:
1.9 Mб
Скачать
  1. Электронная цифровая подпись. Гост р 34.10-2001

ГОСТ Р 34.10-2001 - российский стандарт, описывающий алгоритмы формирования и проверки электроннойцифровойподписи. Принят и введён в действие Постановлением Госстандарта России от 12 сентября2001 года вместо ГОСТР 34.10-94.

ЭЦП позволяет:

  • Аутентифицировать автора подписи

  • Контролировать целостность сообщения

  • Защищать сообщение от подделок

  • Доказать авторство лица, подписавшего сообщение

ГОСТ Р 34.10-2001 основан на эллиптическихкривых. Его стойкость основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТР 34.11-94.

После подписывания сообщения М к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе:

Сообщение М

+

Цифровая подпись

Текст

Дополнение

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

Параметры подписи

Закрытый ключ: (d,P), где d – число, а P – точка ЭК, являющаяся генератором подгруппы порядка q

Открытый ключ: (Q,P), где Q=dP

Формирование цифровой подписи:

  1. Вычисление хэш-функции от сообщения М: 

  2. Вычисление , и если , положить . Где z — целое число, соответствующее 

  3. Генерация случайного числа k такого, что 

  4. Вычисление точки эллиптической кривой , и по ней нахождение  где  — это координата  точки  Если , возвращаемся к предыдущему шагу.

  5. Нахождение . Если , возвращаемся к шагу 3.

  6. Формирование цифровой подписи , где  и  — векторы, соответствующие  и .

Проверка цифровой подписи:

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

  2. Вычисление хэш-функции от сообщения М: 

  3. Вычисление , и если , положить . Где  — целое число соответствующее 

  4. Вычисление 

  5. Вычисление  и 

  6. Вычисление точки эллиптической кривой . И определение , где  — координата  кривой 

  7. В случае равенства  подпись правильная, иначе — неправильная.

  1. Управление процессами в современных операционных системах: понятие и представление процессов и потоков, дисциплины планирования процессов, синхронизация и коммуникация процессов, решение проблемы тупиков.

Процесс – программа, исполняемая в процессоре. Откомпилированная программа : файл – образ

На уровне архитектуры процесс обладает:

  • Контекстом

  • Адресным пространством

ОС бывают : однозадачные и многозадачные

Однозадачные (FreeDOS)

Управляет тока 1 процессом

Многозадачные

Многозадачная ОС – это та ОС, которая может выполнять процессы, переключаясь с одного на другой, другое определение –многозадачные ОС могут выполнять процессы параллельно или квазипараллельно ЛИБО если в один момент времени может существовать несколько процессов, то в этом случае систему можно считать многозадачной(несколько определений).

Поток – программная сущность, выполняемая процессорами и связанная с процессами. Поток может иметь свой «программный контекст». С точки зрения ОС, поток – самостоятельная программная сущность

Однопоточные ОС не позволяют запускать потоки (классический UNIX)

Многопоточные ОС – позволяют (win,lin)

Поток может быть связан с процессом :

- сильно. Потоки выполняются в контексте процесса и не имеют своего адресного пространства, наследует окружение от породившего их процесса. (win)

- слабо. Поток при создании получает собственный контекст, свое окружение и адресное пространство (lin)

Нить – поток без контекста, не имеющий собственного адресного пространства. Ни одна современная ОС не использует нити, и управлять ими напрямую не может.Nowellnetware использовала нити.

Контекст процесса(потока) – это набор характеристик представляющий процесс(поток) на уровне архитектуры и в ОС

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

Представление процессов и потоков в Windows

  • Винда управляет потоками а не процессами.

  • Процесс запускается на вирт. Машине, для запуска на компе нужно создать блок окружения процесса.

  • При создании процесса создается первичный поток, который наследует параметры своих структур от процесса.

  • Все потоки порождаются от первичного потока

  • У каждого процесса свой список потоков , EPROCESS – корневой Эл-т такого списка . НАNDLE - порядковый идентификатор всей этой системы

Представление процессов и потоков в Linux

  • Нет как такового понятия потока, есть только понятие процесса.

  • Процессы могут порождать новые процессы, используя системные вызовы system(), fork(),

exec()

  • В Linux введено понятие потока, но на уровне ядра каждый поток рассматривается как отдельный процесс

  • Основное отличие потоков Linux от процессов заключается в том, что потоки работают в адресном пространстве породившего их процесса и наследуют его контекст

  • запись в таблице процессов

- Таблица процессов – специальная системная таблица ядра, используемая ОС для управления процессом;

  • пространство в таблице процессов(контекстное пространство). В таблице хранится вся информация для однозначной идентификации процесса

  • пространство процесса:

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

- частные таблицы страниц (ЧТС), хранятся дескрипторы страниц памяти , занятые процессом

- Происходит деление процесса на страницы по 4кб.

- ОС размещает страницы так, чтобы их адреса совпали с физическими страницами.

- Адреса всех страниц хранятся в глобальной таблице страниц. При свопинге меняются физ. адреса страниц, но не меняются адреса в ЧТС.

В линуске fork() делает копию процесса-родителя копируя системный и пользовательский контекст

  • РАССКАЗАТЬ ТОЛЬКО ЕСЛИ ЗАЕТЕ ЧТО ЭТО ТАКОЕ: Процессы – зомби, Процессы – демоны, Процессы – сироты

Дисциплины планирования

Дисциплина планирования – это набор правил по которым ОС определяет время активации-деактивации процесса или потока.

Требования Дисциплины планирования:

  1. справедливости планирования(ос не должна дискриминировать процессы по каким либо признакам)

  2. ДП должна быть эффективной(введение дисциплины должно способствовать более эффективному использованию ресурсов системы а не снижать показатель эффективности)

  3. ДП обязательно должнаотвечать тем задачам которые ставятся перед ОС (ДП выбирается в зависимости от класс ОС, либо эта ОС с пакетной обработкой, либо реального времени, либо интерактивная). На самом деле кол-во условийкоторым должна соответствовать ДП более 20

Планирование процессов и потоков ОС строится использованием нескольких важных механизмов:

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

  2. Использование таймера. Таймер используется для достижения 2х целей: во первых для контроля времени выполнения/ожидания процесса, для дозирования процессорного времени которое выделяется процессу или потоку для выполнения. Процесс дозирования называется квантованием а сам период времени называется квант. Все Оси современные так или иначе юзают квантование)

  3. Приоритеты. Приоритеты позволяют определять важность выполнения каждого конкретного процесса. Определить специализацию ОС. ОС может классифицировать процессы по ряду признаков. ОС может давать больший приоритет одним процесса и меньший приоритет другим процессам. Как правило приоритеты различаются по одному основному принципу а именно по принадлежности процесса системе или пользователю.

Планирование процессов в Windows сводится к планированию потоков. На уровне ядра Windows распараллеливает выполнение не процессов, а именно потоков. Планирование выполняется на нескольких уровнях.

Основные механизмы:

  • событийно-ориентированно планирование

  • приоритетное планирование(каждый поток получает приоритет)

  • квантование процессорного времени

  • планирование потоков в условиях многопроцессорного выполнения

Unix, BSD, MacOS:

Суть планирования:

Используется также приоритетное планирование с многоуровневыми очередями, с квантованием времени процессора, реализуется вытесняющая многозадачность.

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

Linux

Базируется на тех же принципах. Существует приоритетное планирование на очередях, квантование есть, существует вытесняющая многозадачность.

Средства синхронизации:

  • Критические секции

Область кода, при которой поток обращается к ресурсам системы и пытается их изменить, прервать выполнение этой области другими потоками нельзя, пока она занята

  • Мьютексы

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

  • Семафоры

Семафо́р — объект, позволяющий войти в заданный участок кода не более чем n потокам.

  • События и условная синхронизация

Объекты синхрониации ,позволяющие известить один или несколько ожидающих потоков о наступлении события

Средства коммуникации процессов и потоков

Разделяемая память – это участок адресного пространства процесса или участок системного

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

Буфер обмена – это область памяти, которая используется одним или несколькими

приложениями для временного хранения данных в операциях передачи данных

Каналы – средство дуального взаимодействия процессов. С точки зрения Windows и UNIX/Linux каналы являются аналогом файла

Сообщения – это механизм управления процессами в ОС Windows, предназначенный для обмена данными между процессами, управления процессами, оповещения процессов о произошедших событиях

Сигналы. Фактически, сигнал — это асинхронное уведомление процесса о каком-либо событии

Mailslots(вспоминаем лабусухова про msmq)

Сокеты– средства синхронного сетевого взаимодейтсвия

Тупик(далее по тексту «Т») - состояние, в котором ожидается какое-то событие, которые не могут произойти без внешнего вмешательства (оператора, пользователя). Один процесс в тупике не бывает.

Операции, которые могут привести систему в тупиковое состояние:

1.запрос на ресурс

2. выделение ресурса по запросу процесса

3. Освобождение ресурса

Задача предотвращения тупика – задача, которая решается при проектировании системы (система разрабатывается так, что тупики в ней просто невозможны).

В рамках тупика решаются следующие задачи:

-предотвращение Т;

-обход Т;

-распознавание Т;

-вывод с-мы из Т и ее восстановление

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

Цель решения задачи обхода - обход состояний, где вероятность возникновения Т велика.

Если оказалось, что система все-таки попала в тупик, то необходимо уметь распознать эту ситуацию - установить сам факт возникновения тупиковой ситуации и определить объекты системы (П и ресурсы), вовлеченные в нее, то есть определить причины, приведшие к тупику.

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

Тупики могут возникнуть только в системах, где выполняются 4 необходимых условия их появления:

-условие взаимоисключения (процессы требуют предоставления им права монопольного использования ресурсов, которые им выделяются);

-условие ожидания ресурсов (процессы, запросившие ресурс, ожидают его выделения, не отказываясь от своих запросов);

-условие неперераспределяемости ресурсов (ресурсы, выделенные процессам, не могут быть перераспределены, пока процессы не используют их до конца и не выполнят сами операцию освобождения, даже если процессы, удерживающие ресурсы, находятся в заблокированном состоянии);

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

Нарушение какого-либо из этих усл создает возм-ть предотвращения тупиков в системе.

Методы предотвращения Т.цель - обеспусл, при ктр все сост в сис-ме будут безопасными.

1 метод (самый простой) - все ресурсы в системе отдаются в распоряжение одного процесса. Фактически это означает организацию однопрограммного режима работы ВС, что означает неэффективное ее функционирование.

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

3 подход к решению зад предотвращения Т - реализации стратегии упорядочения ресурсов. Ресурсы делятся на классы K1, K2, ... , Kk так, что ресурс из класса Ki может быть выделен процессу только тогда, когда этому процессу не распределены уже ресурсы из классов Ki, Ki+1, . Kk .

Классификация выполняется в соответствии с их свойствами и естественным порядком запросов на них от выполняющихся процессов. Самые дорогие Р выделяются обычно в старшие классы. В ОС, в которой реализовано предотвращение тупиков, ресурсы могут быть классифицированы, например, следующим образом: K1 - файлы, открываемые процессом, K2 - оперативная память ВС, запрашиваемая динамически, K3 - устройства ввода/вывода.

Существуют 2 подхода к решению задачи вывода системы из тупика: –прекращение процессов (процессы, попавшие в тупик последовательно уничтожаются в определенном порядке); –перехват ресурсов (у процессов в определенном порядке отнимаются выделенные ресурсы).

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

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

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