Главная страница
Навигация по странице:

  • Методики асимметричного шифрования

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

  • 5. ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ 5.1 Операционные системы

  • Классификация ОС

  • Особенности алгоритмов управления ресурсами

  • Поддержка многопоточности и многонитевости Важным свойством операционных систем является возможность распараллеливания вычислений. Многопоточность

  • Учебное пособие по информатике 2014. Основы информатики


    Скачать 4.61 Mb.
    НазваниеОсновы информатики
    АнкорУчебное пособие по информатике 2014.pdf
    Дата28.03.2018
    Размер4.61 Mb.
    Формат файлаpdf
    Имя файлаУчебное пособие по информатике 2014.pdf
    ТипУчебное пособие
    #17317
    страница20 из 28
    1   ...   16   17   18   19   20   21   22   23   ...   28
    Открытый и закрытый ключи в электронной цифровой подписи
    Электронная цифровая подпись функционирует на основе криптоалгоритмов с асимметричными
    (открытыми) ключами и инфраструктуры открытых ключей. В криптосистемах на основе асимметричных ключей для шифрования и дешифрования используется пара ключей – секретный и публичный ключи, уникальные для каждого пользователя, и цифровой сертификат.

    166
    Основные термины, применяемые при работе с ЭЦП: закрытый ключ – это некоторая информация, обычно длиной 256 бит, хранится в недоступном другим лицам месте на смарт-карте, touch memory. Работает закрытый ключ только в паре с открытым ключом.
    Открытый ключ – используется для проверки ЭЦП получаемых документов-файлов технически это некоторая информация длиной 1024 бита.
    Открытый ключ работает только в паре с закрытым ключом. На открытый ключ выдается сертификат, который автоматически передается вместе с письмом, подписанным ЭЦП. Необходимо обеспечить наличие своего открытого ключа у всех, с кем предполагается обмениваться подписанными документами. Можно также удостовериться о личности, подписавшей электронной подписью документ, который получен, просмотрев его сертификат. Дубликат открытого ключа направляется в Удостоверяющий
    Центр (УЦ), где создана библиотека открытых ключей ЭЦП. В библиотеке
    УЦ обеспечивается регистрация и надежное хранение открытых ключей во избежание попыток подделки или внесения искажений.
    Цифровой сертификат представляет собой расширение открытого ключа, включающего не только сам ключ, но и дополнительную информацию, описывающую принадлежность ключа, время использования, доступные криптосистемы, название УЦ и т.д.
    Основная функция УЦ – распространение публичных и секретных ключей пользователей, а также верификация сертификатов. УЦ могут объединяться в цепочки. Вышестоящий (корневой) УЦ может выдать сертификат и права на выдачу ключей нижестоящему центру. Тот, в свою очередь, может выдать права еще другому нижестоящему центру и так далее, причем сертификат, выданный одним из центров, может быть верифицирован любым из серверов в цепочке. Таким образом, существует возможность установить центр распространения секретных ключей в непосредственной близости от пользователя, что решает проблему дискредитации ключа при передаче по сетям связи.
    На удостоверяющих центрах лежит огромная ответственность, поскольку именно они отвечают за надежность функционирования всей инфраструктуры открытых ключей.
    Методики асимметричного шифрования
    За последние 20 лет получили широкое распространение криптосистемы на базе асимметричного шифрования, позволяющие не только организовать конфиденциальную передачу информации без предварительного обмена секретным ключом, но и значительно расширяющие функции криптографии, включая технологию ЭЦП.
    Наибольшее распространение в мире получила криптосистема RSA.
    Она была предложен тремя исследователями-математиками Рональдом
    Райвестом (R.Rivest) , Ади Шамиром (A.Shamir) и Леонардом Эйдлманом
    (L.Adleman) в
    1977-78 годах.
    Другие криптосистемы более специализированы и поддерживают не все возможности. Широко

    167 применяются криптосистемы, в основе которых лежат алгоритмы, не являющиеся алгоритмами собственно шифрования, но реализующие только технологию ЭЦП. К их числу относятся: российские алгоритмы электронной цифровой подписи ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001; алгоритм электронной цифровой подписи DSA, входящий в принятый в США стандарт цифровой подписи Digital Signature Standard. Известна также криптосистема на базе алгоритма Диффи-Хеллмана согласования ключа, применяемого при конфиденциальной передаче информации.
    В случае с ЭЦП процесс обмена сообщением выглядит следующим образом:

    отправитель получает у удостоверяющего центра секретный ключ;

    используя этот ключ, формирует электронную цифровую подпись и отправляет письмо;

    получатель при помощи публичного (общедоступного) ключа и цифрового сертификата, полученного у удостоверяющего центра, устанавливает авторство документа и отсутствие искажений.
    Рассмотрим принципиальную схему выработки и проверки ЭЦП с применением алгоритмов асимметричного шифрования.
    Рисунок 4.19 – Схема выработки ЭЦП при асимметричном шифровании
    Для выработки ЭЦП подписываемый документ подвергается хэшированию (т.е. сжатию некоторым стандартным алгоритмом), а полученный хэш (иногда его называют дайджестом) зашифровывается закрытым ключом (рисунок 4.19). Хэширование применяется для сокращения объема шифруемой информации и повышения тем самым производительности. Хэш-функция, не будучи взаимно однозначным отображением, подбирается таким образом, чтобы было практически невозможно изменить документ, сохранив результат хэширования. По хэшу невозможно восстановить исходный документ, но это и не нужно, поскольку проверка ЭЦП заключается в сравнении расшифрованной открытым ключом
    ЭЦП с хэшем документа (рисунок 4.20). Совпадение с высокой степенью достоверности гарантирует, во-первых, неизменность документа (защиту от подделки), и, во-вторых, что его подписал владелец закрытого ключа.

    168
    Рисунок 4.20 – Схема проверки ЭЦП при асимметричном шифровании
    В специализированных криптосистемах, поддерживающих только технологию ЭЦП, функции собственно шифрования отсутствуют. Для формирования ЭЦП применяется криптоалгоритм, получающий на входе хэш документа, закрытый ключ и вырабатывающий ЭЦП. Для проверки ЭЦП применяется другой криптоалгоритм, имеющий на входе хэш документа проверяемую ЭЦП и открытый ключ. Алгоритм проверки выдает положительный или отрицательный результат в зависимости от правильности ЭЦП.
    Аутентификация субъекта сводится к доказательству того, что он владеет закрытым ключом, соответствующим опубликованному открытому.
    В криптосистемах, поддерживающих технологию ЭЦП, доказательство владения заключается в том, что субъект подписывает своим закрытым ключом присланный ему запрос и посылает его обратно. Если при проверке оказалось, что запрос подписан правильно, то субъект действительно обладает соответствующим закрытым ключом. Необходимо принять меры, чтобы злоумышленник, перехвативший подписанный запрос, не мог впоследствии использовать его, выдавая себя за правомерного владельца закрытого ключа. Для борьбы с этим достаточно, чтобы запрос был неповторяющимся.
    Асимметричные алгоритмы шифрования позволяют обеспечить конфиденциальность при передаче сообщения от одного субъекта другому.
    Для этого отправителю достаточно зашифровывать сообщение открытым ключом получателя. Поскольку расшифровать сообщение можно, только зная соответствующий закрытый ключ, это гарантирует, что прочитать его не сможет никто, кроме получателя.
    На практике все сообщение никогда не шифруют открытым ключом.
    Дело в том, что производительность асимметричного шифрования существенно ниже симметричного, поэтому обычно в начале интерактивного

    169 сеанса связи одна из сторон генерирует симметричный секретный ключ
    (ключ сеанса), шифрует его открытым ключом другой стороны и передает только этот зашифрованный ключ. Другая сторона принимает и расшифровывает его (очевидно, при этом сохраняется конфиденциальность), а все дальнейшие сообщения уже могут быть зашифрованы согласованным ключом сеанса. По окончании сеанса этот ключ уничтожается.
    Если нужно послать сообщение вне интерактивного сеанса, то достаточно приложить к зашифрованному сообщению секретный ключ, зашифрованный открытым ключом получателя.
    Специализированный алгоритм Диффи-Хелмана согласования ключа позволяет каждой стороне контакта, зная свой закрытый ключ и открытый ключ партнера, получить "общий секрет", используемый для создания единого секретного ключа, предназначенного для заранее согласованного алгоритма симметричного шифрования. Практически невозможно, зная только открытые ключи, воспроизвести "общий секрет", что гарантирует защиту от злоумышленника. При интерактивном контакте стороны сначала обмениваются открытыми ключами, а потом получают единый ключ сеанса.
    При посылке зашифрованного сообщения вне интерактивного сеанса отправителю должен быть известен открытый ключ получателя; к сообщению же прилагается открытый ключ отправителя, что позволяет получателю воссоздать секретный ключ. В криптосистеме на базе этого алгоритма процедура доказательства владения закрытым ключом подобна процедуре подписывания ЭЦП за тем исключением, что при подписании используется не сам закрытый ключ, а "общий секрет", зависящий еще и от открытого ключа проверяющей стороны.
    Контрольные вопросы
    1.
    Перечислите известные вам информационные категории.
    2.
    Объясните, каким образом осуществляется автоматизация на основе алгоритмизации? Что такое реинжиниринг?
    3.
    Перечислите отличия технологий groupware и workflow. Что такое
    OCR?
    4.
    Опишите реляционную модель хранения данных, пересилите основные принципы управления данными.
    5.
    Дайте краткую характеристику системам компьютерной графики, перечислите основные особенности и отличия различных графических систем и форматов.
    6.
    Объясните принципы защиты информации. Что такое "модель нарушителя" ?
    7.
    Каким образом осуществляется криптографическая защита информации?

    170
    5. ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ
    ИНФОРМАЦИОННЫХ ПРОЦЕССОВ
    5.1 Операционные системы
    Операционная система (ОС) в наибольшей степени определяет облик всей вычислительной системы в целом. Несмотря на это, пользователи, активно использующие вычислительную технику, зачастую испытывают затруднения при попытке дать определение операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами.
    Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т.п.
    Когда выполнение операции с диском завершается, контроллер возвращает
    23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы немного желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система. Точно так же, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В любом случае та абстрактная, воображаемая машина, с которой благодаря операционной системе теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.
    С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной или виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.

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

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

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

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

    однозадачные (например, MS-DOS, MSX);

    многозадачные (ОС UNIX, Linux, Windows, Novell Netware, iOS от
    Apple). Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
    Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
    Поддержка многопользовательского режима
    По числу одновременно работающих пользователей ОС делятся на:

    однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2, фактически Windows 9x/Me);

    многопользовательские
    (UNIX,
    Linux,
    Windows
    NT/2000/XP/Vista/7/8, iOS).
    Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.
    Вытесняющая, кооперативная и невытесняющая многозадачность
    Важнейшим разделяемым ресурсом является процессорное время.
    Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить три группы алгоритмов:

    невытесняющая многозадачность (программа DESQView для DOS);

    кооперативная многозадачность (NetWare, Windows 3.x, 16-битные приложения в Windows 9x/Me);

    вытесняющая многозадачность (Windows NT/2000/XP/Vista/7/8,

    173
    UNIX, iOS). Основным различием между вытесняющим и кооперативным вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При кооперативной многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.
    Поддержка многопоточности и многонитевости
    Важным свойством операционных систем является возможность распараллеливания вычислений.
    Многопоточность — свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
    Такие потоки называют также потокамивыполнения.
    Сутью многопоточности является квазимногозадачность на уровне одного исполняемого процесса, то есть все потоки выполняются в адресном пространстве процесса. Кроме этого, все потоки процесса имеют не только общее адресное пространство, но и общие дескрипторы файлов.
    Выполняющийся процесс имеет как минимум один (главный) поток.
    Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило реализуют и многопоточность.
    К достоинствам многопоточности в программировании можно отнести следующее:

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

    Меньшие относительно процесса временные затраты на создание потока.

    Повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода/вывода.
    Говоря о процессах, мы отмечали, что операционная система поддерживает их обособленность: у каждого процесса имеется свое виртуальное адресное пространство, каждому процессу назначаются свои ресурсы – файлы, окна, семафоры и т.д. Такая обособленность нужна для

    174 того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы машины, конкурируют с друг другом. В общем случае процессы принадлежат разным пользователям, разделяющим один компьютер, и ОС берет на себя роль арбитра в спорах процессов за ресурсы.
    При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопрограммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса). Однако задача, решаемая в рамках одного процесса, может обладать внутренним параллелизмом, который в принципе позволяет ускорить ее решение.
    Например, в ходе выполнения задачи происходит обращение к внешнему устройству, и на время этой операции можно не блокировать полностью выполнение процесса, а продолжить вычисления по другой «ветви» процесса.
    Для этих целей современные ОС предлагают использовать сравнительно новый механизм –
    1   ...   16   17   18   19   20   21   22   23   ...   28


    написать администратору сайта