Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Теоретические сведения. Определим понятие идентификатора объекта: идентификатор — это некоторая информация, однозначно соответствующая этому объекту
Определим понятие идентификатора объекта: идентификатор — это некоторая информация, однозначно соответствующая этому объекту. Идентификация в таком случае является процессом определения идентификатора объекта. Аутентификация — проверка подлинности, а именно определение является ли объект тем, за кого он себя представляет. Успешная аутентификация ведет к процессу предоставления полномочий — авторизации. При применении пароля для подтверждения подлинности пароль преобразуется с помощью односторонней функции перед посылкой по незащищенному каналу, а затем отображение пароля сравнивается с отображением на стороне получателя. Если отображения совпадают, пароль считается подлинным, а объект законным. Для взаимной проверки подлинности обычно используют процедуру «рукопожатия». В данном случае выполняется взаимная проверка ключей, используемых сторонами. Рассмотрим процедуру «рукопожатия» двух пользователей А и В, основанную на симметричном алгоритме шифрования (рис 6.1.1): · пользователь А инициирует процедуру рукопожатия, отправляя пользователю В свой идентификатор IDA в открытой форме; · пользователь В, получив идентификатор IDA находит в базе данных секретный ключ КАВ и вводит его в свою криптосистему; · пользователь А генерирует случайную последовательность S с помощью генератора и отправляет её пользователю В в виде криптограммы ; · пользователь В расшифровывает эту криптограмму и раскрывает исходный вид последовательность S; · оба пользователя применяют к S одностороннюю функцию a(S); · пользователь В шифрует сообщение a(S) и отправляет эту криптограмму пользователю А. · пользователь А расшифровывает эту криптограмму и сравнивает полученное сообщение с исходным, если эти значения равны пользователь А признает подлинность пользователя В. Пользователь В аналогично выполняет проверку подлинности пользователя А.
Рисунок 6.1.1 — Схема проверки подлинности с помощью процедуры «рукопожатия»
Хэш-функция предназначена для сжатия подписываемого документа М до нескольких десятков или сотен бит. Хэш-функция h() принимает в качестве аргумента сообщение (документ) М произвольной длины и возвращает хэш-значение h(М) = Н фиксированной длины. Обычно хэшированная информация является сжатым двоичным предтавлением одного сообщения произвольной длины. Следует отметить, что значение хэш-функция h(М) сложным образом зависит от документа М и не позволяет восстановить сам документ М. Хэш-функция должна удовлетворять целому ряду условий: · хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т.п.; · хэш-функция должна обладать свойством необратимости, то есть задача подбора документа М’, который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима; · вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала. Большинство хэш-функций строится на основе однонаправленной функции f(), которая образует выходное значение длиной n при задании двух входных значений длиной2 n. Этими входами являются блок исходного текста Мi и хэш-значение Hi-1 предыдущего блока текста (см. рисунок 6.1.2): Hi = f(Mi, Hi-1). Хэш-значение, вычисляемое при вводе последнего блока текста, становится хэш-значением всего сообщения М.
Рисунок 6.1.2 — Построение однонаправленной хэш-функции
В результате однонаправленная хэш-функция всегда формирует выход фиксированной длины n (независимо от длины входного текста).
|