Помощь в написании студенческих работ
Антистрессовый сервис

Введение. 
Хеш-функции: понятие и основы

РефератПомощь в написанииУзнать стоимостьмоей работы

Четвертое свойство определяет требование односторонности хэш-функции: легко создать хэш-код по данному сообщению, но невозможно восстановить сообщение по данному хэш-коду. Это свойство важно, если аутентификация с использованием хэш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хэш-функция не является односторонней, противник может легко… Читать ещё >

Введение. Хеш-функции: понятие и основы (реферат, курсовая, диплом, контрольная)

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

Требования к хэш-функции

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

Хэш-код создается функцией Н:

h = H (M).

Где М является сообщением произвольной длины и h является хэш-кодом фиксированной длины.

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

Хэш-функция Н, которая используется для аутентификации сообщений, должна обладать следующими свойствами:

  • 1. Хэш-функция Н должна применяться к блоку данных любой длины.
  • 2. Хэш-функция Н создает выход фиксированной длины.
  • 3. Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М.
  • 4. Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h.
  • 5. Для любого данного х вычислительно невозможно найти, что H (y) = H (x).
  • 6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x).

Первые три свойства требуют, чтобы хэш-функция создавала хэш-код для любого сообщения.

Четвертое свойство определяет требование односторонности хэш-функции: легко создать хэш-код по данному сообщению, но невозможно восстановить сообщение по данному хэш-коду. Это свойство важно, если аутентификация с использованием хэш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хэш-функция не является односторонней, противник может легко раскрыть секретное значение следующим образом. При перехвате передачи атакующий получает сообщение М и хэш-код С = Н (SAB || M). Если атакующий может инвертировать хэш-функцию, то, следовательно, он может получить SAB || M = H-1 ©. Так как атакующий теперь знает и М и SAB || M, получить SABсовсем просто.

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

Хэш-функция, которая удовлетворяет первым пяти свойствам, называется простой или слабой хэш-функцией. Если кроме того выполняется шестое свойство, то такая функция называется сильной хэш-функцией. Шестое свойство защищает против класса атак, известных как атака «день рождения «.

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

Пакет программ «КРИПТОН® Подпись» предназначен для использования электронной цифровой подписи (ЭЦП) электронных документов.

ЭЦП обеспечивает:

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

Для штатной работы с программами пакета «КРИПТОН® Подпись» каждый пользователь, предполагающий использовать ЭЦП в электронном документообороте, снабжается парой ключей — секретным и открытым. Пары ключей создаются на подготовительном этапе с помощью программы «Мастер ключей» либо самостоятельно пользователем, либо специально выделенным администратором.

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

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

Используемые пакетом «КРИПТОН® Подпись» ключевые схемы подробно описаны ниже. Кроме того, даны практические рекомендации по защите секретных ключей ЭЦП от несанкционированного копирования или подмены.

Все действия, выполняемые пользователем с помощью программ пакета «КРИПТОН® Подпись», заносятся в специальный журнал, который может быть просмотрен с помощью программы «Менеджер журнала операций».

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

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

Таблица 1.

В ЭЦП записывается следующая информация:

В ЭЦП записывается следующая информация:

  • · дата формирования подписи;
  • · срок окончания действия открытого и секретного ключей;
  • · информация о лице, сформировавшем подпись (Ф.И.О., должность, краткое наименование фирмы);
  • · секретный ключ (имя файла секретного ключа);
  • · собственно код ЭЦП.

ЭЦП может быть записана и в отдельный файл. Этот файл имеет имя, соответствующее подписанному файлу, а расширение — sg*. В данном файле хранится вся вышеуказанная информация, а также имя файла, который был подписан. При таком способе постановки ЭЦП исходный файл не изменяется, что может быть полезно, например, при подписывании файлов программ и динамических библиотек (файлы *.exe, *.dll), а также файлов — документов Microsoft Office, поскольку ЭЦП, хранящаяся в отдельном файле, не изменяет структуру подписанного файла.

Способ подписывания определяется при настройке программ пакета с помощью программы «КРИПТОН® Подпись — Конфигурация».

Ключи ЭЦП представляют собой обычные файлы на дискете или каком-либо другом ключевом носителе. В именах этих файлов используются следующие расширения:

sk — для секретного ключа;

pk — для открытого ключа.

Генерация случайного кода для создания открытого ключа выполняется аппаратно устройством криптографической защиты данных (УКЗД) серии «Криптон» или программно драйвером-эмулятором УКЗД (Crypton Emulator).

Для формирования подписи файла необходимо выбрать этот файл и затем выполнить команду «Поставить подпись».

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

При необходимости можно удалить последнюю подпись или группу последних подписей. Для этого в программе используется команда «Удалить подпись». Для ее выполнения необходимо также выбрать документы-файлы, у которых удаляются подписи.

Пакет «КРИПТОН® Подпись» предоставляет также разнообразную справочную информацию, которая может быть получена как с помощью пунктов «Справка» или «Помощь» меню программ, так и с помощью кнопок «Справка» различных диалоговых окон. В последнем случае на экран выводится контекстная справочная информация, поясняющая работу именно в данном диалоговом окне, что наиболее удобно при работе с программами пакета.

Пакет программ «КРИПТОН® Подпись» предназначен для использования в операционных системах Windows-95/98/NT, поэтому программы данного пакета функционируют на компьютере, удовлетворяющем следующим требованиям:

  • · наличие операционной системы Windows-95/98 или Windows NT 4.0;
  • · наличие УКЗД серии «Криптон» с соответствующим драйвером для Windows-95/98/NT или его программного драйвера-эмулятора для Windows — Crypton Emulator версии 1.4;
  • · наличие Crypton API для Windows версии 2.25 (входит в поставку УКЗД серии «Криптон» и содержит также драйвер поставляемого УКЗД);
  • · наличие манипулятора «мышь».

Пакет программ «КРИПТОН® Подпись» поставляется на отдельной дискете емкостью 1,44Мб. На магнитном носителе записаны несколько файлов, названия которых состоят из цифр, и файлы Setup. exe и Readme.txt. Кроме того, на дискете содержатся также ключи для инициализации УКЗД серии «Криптон» или ПО Crypton Emulator — файлы uz. db3 и gk. db3.

При работе с программами пакета «КРИПТОН® Подпись» используется стандартное программное обеспечение, состоящее из Crypton API и Crypton Emulator (при отсутствии УКЗД). Данные продукты должны быть инсталлированы на компьютер до начала инсталляции пакета программ «КРИПТОН® Подпись». Для инсталляции пакета «КРИПТОН® Подпись» следует запустить программу Setup.exe. При запуске программы на экране появится окно стандартной процедуры установки программного обеспечения.

«КРИПТОН® Подпись» поставляется в двух вариантах: вариант для администратора («КРИПТОН® Подпись — Администратор») и вариант для пользователя. Вариант для администратора является полнофункциональным.

После установки пакета программ «КРИПТОН® Подпись» на персональном компьютере, если использовать предлагаемые инсталляционной программой пути и названия, в пусковое меню Windows в группу «ПрограммыAncud Software» добавляется новая группа «Signature».

Кроме того, после инсталляции пакета в контекстное меню Windows Explorer («Проводник Windows»), вызываемое по нажатию правой кнопки мыши, добавится расширение, позволяющее подписывать документы-файлы и проверять их ЭЦП, а также в каталоге установки пакета «КРИПТОН® Подпись» будет доступна утилита командной строки SgnCmd.exe.

Работа с ключами электронной цифровой подписи в пакете программ «КРИПТОН® Подпись».

При работе с пакетом «КРИПТОН® Подпись» каждый пользователь должен иметь, как минимум, один секретный ключ для формирования своей подписи и множество открытых ключей для проверки чужих подписей. Понятно, что секретный ключ должен быть недоступен для других. Иначе любой имеющий его может вместо вас подписывать документы.

Открытые ключи не являются секретными, но существует опасность их подмены. Рассмотрим следующую ситуацию.

У других пользователей есть доступ к вашему компьютеру, на котором вы храните открытые ключи. Один из них читает данные (Ф.И.О., должность…) из интересующего его открытого ключа. Далее генерирует секретный и открытый ключи с этими данными, заменяет на вашем компьютере открытый ключ, архивирует любой документ и присылает вам. В этом случае проверка подписи дает результат «подпись лица (Ф.И.О., должность…) верна», что может, мягко говоря, ввести вас в заблуждение. Таким образом, необходима защита и открытых ключей. Такую защиту можно обеспечить несколькими способами.

Таблица 2. Состав персональной дискеты.

Введение. Хеш-функции: понятие и основы.

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

Рекомендуется использовать вариант персональной дискеты (или другого носителя), состав которой описан в табл. 1.

В минимальной конфигурации на персональной дискете могут находиться только два собственных ключа. В этом случае в качестве ключа-сертификата (при отсутствии последнего) может использоваться собственный открытый ключ. На этой же дискете рекомендуется хранить файлы для инициализации УКЗД «Криптон» или драйвера-эмулятора: gk. db3, uz. db3.

Схема работы с ключами.

Рис. 1. Схема работы с ключами

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

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

Таким образом, на персональной дискете будут находиться:

  • · собственный секретный ключ (обязательно);
  • · собственный открытый ключ (обязательно, если он используется в качестве открытого ключа для проверки факта сертификации);
  • · ключ-сертификат (ключей-сертификатов может быть много — по числу сертификационных центров, в которых вы сертифицированы).

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

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

Прямой обмен открытыми ключами.

Рис. 2. Прямой обмен открытыми ключами

Предлагается следующий вариант обмена (см. рис. 2):

  • · Создается персональная дискета с собственными ключами. Секретный ключ закрывается Паролем.
  • · Для собственного открытого ключа формируется подпись на собственном секретном ключе, и открытый ключ записывается на дискету для передачи.
  • · Подготавливается юридический документ на бумаге (например, письмо), в котором указываются: данные о владельце (Ф.И.О., должность, место работы), сам открытый ключ (распечатка в шестнадцатеричном виде), полномочия владельца (перечень документов, которые уполномочен удостоверять владелец открытого ключа). Данный документ должен быть оформлен таким образом, чтобы иметь юридическую силу в случае возникновения спорных вопросов о принадлежности подписи и полномочиях владельца. Если в письме не установлено полномочий, то они определяются по должности и месту работы. Например, бухгалтер одного предприятия не может удостоверять платежные поручения другого, а программист не может удостоверять платежные поручения и своего предприятия.
  • · Дискеты и соответствующие сопроводительные документы направляются по адресам предприятий и пользователей, с которыми будет производиться обмен документами.

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

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

Организуется центр для сертификации пользователей. В СЦ поступают открытые ключи и сопровождающие их документы (см. рис. 3). В ответ пользователь получает:

  • · зарегистрированные открытые ключи (или базу данных (БД) зарегистрированных открытых ключей) всех владельцев (в том числе и свой);
  • · файл с полномочиями этих владельцев (и с подписями);
  • · ключ-сертификат как в виде файла, так и в виде юридического документа.

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

Время от времени СЦ должен пополнять вашу базу данных открытых ключей и полномочий.

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

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

Пакет программ «КРИПТОН® Подпись» обеспечивает возможность организации работы по всем описанным выше вариантам.

парольный защита ключ программа.

Показать весь текст
Заполнить форму текущей работой