Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОКЗИ

.pdf
Скачиваний:
16
Добавлен:
26.03.2016
Размер:
1.05 Mб
Скачать

Продолжение табл 3.4

0

100

б, в, н,

Ы

л, х, е

56

44

0

100

с, т, л

Ъ, Ь

н, к, в

24

76

14

86

т, р, н

Э

н, т, р

0

100

58

42

и, л, у

Ю

д, т, щ

11

89

43

57

а, и, с

Я

в, с, т

16

84

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

41

4.КРИПТОГРАФИЧЕСКИЕ ХЕШ-ФУНКЦИИ

4.1.Основные положения

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

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

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

42

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

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

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

43

функции. (Если последнее произошло, то говорят, что такая пара сообщений образует коллизию.)

Обозначим через X множество, элементы которого будем называть сообщениями. Пусть Y – множество двоичных векторов фиксированной длины. Хеш-функцией называется всякая функция h: X Y, легко вычислимая и такая, что для любого сообщения M значение h(M) = H (свёртка) имеет фиксированную битовую длину.

Как правило, хеш-функции строят на основе одношаговых сжимающих функций y = f(x1, x2), где xi и y – двоичные векторы длины m и n соответственно, причём n – длина свёртки. Для получения значения h(M) сообщение M сначала разбивается на блоки длины m (при этом если длина сообщения не кратна m, то последний блок неким специальным образом дополняется до полного), а затем к полученным блокам М1, М2,…, МN применяют следующую последовательную процедуру вычисления свёртки:

H

0

,

 

 

 

 

Hi

f Mi , Hi 1 ,i 1,

, N ,

h M H

 

 

 

N .

 

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

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

44

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

Бесключевые хеш-функции называются кодами обнаружения ошибок (MDC, MIC). Они дают возможность с помощью дополнительных средств (например, шифрования, использования защищённого канала или цифровой подписи) гарантировать целостность данных. Эти хешфункции могут применяться в системах как с доверяющими, так и не доверяющими друг другу пользователями.

4.2.Пример функции хэширования – ГОСТ Р 34.11-94

4.2.1.Общие сведения

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

4.2.2. Область применения

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

45

си (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах. Определенная в стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма».

4.2.3.Обозначения

Внастоящем документе используются следующие обозначения:

B*

Множество всех конечных слов в алфавите B={0,1}. Чтение слов и нумерация знаков алфавита (символов) осуществляется справа налево (номер правого символа в слове равен единице, второго справа - двум и т.д.).

/A|

Длина слова A <- B*.

Vk (2)

Множество всех бинарных слов длины k.

A||B

Конкатенация слов A, B <- B* - слово длины |A|+|B|, в котором левые |A| символов образуют слово A, а правые |B| символов образуют слово B. Можно также использовать обозначение A||B = AB.

Ak

Конкатенация k экземпляров слова A(A<- B*).

46

<N>k

Слово длины k, содержащее двоичную запись вычета N(mоd2k) неотрицательного целого числа N.

A`

Неотрицательное целое число, имеющее двоичную запись A (A<- b*).

&

Побитовое сложение слов одинаковой длины по модулю 2.

&’

Сложение по правилу A&’B = <A`+B`>,

(k=|A|+|B|)/

M

Последовательность двоичных символов, подлежащая хэшированию (сообщение в системе ЭЦП), M <- B*.

h

Хэш-функция, отображающая последовательность M <- B* в слово h(M) <- V256(2).

Ek(A)

Результат зашифрования слова A на ключе K с использованием алгоритма шифрования по ГОСТ 28147 в режиме простой замены

(K <- V256(2), A <-V64(2)).

H

Стартовый вектор хэширования.

e := g

Присвоение параметру e значения g.

<-

Обозначение принадлежности диапазону.

47

4.2.4. Общие положения

Под хэш-функцией h понимается зависящее от параметра [стартового вектора хэширования H, являющегося словом из V256(2)] отображение:

h : B*

-----> V256(2)

Для определения хэш-функции необходимы:

алгоритм вычисления шаговой функции хэширования c т.е. отображения:

c: V256(2) x V256(2) ------> V256(2)

описание итеративной процедуры вычисления значения хэш-функции h.

4.2.5. Шаговая функция хэширования

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

генерацию ключей - слов длины 256 битов с использованием исходных данных слов H, M <- V256(2);

шифрующее преобразование - зашифрование 64битовых подслов слова H на ключах Ki (I=1, 2, 3, 4) с использованием алгоритма по ГОСТ 28147 в режиме простой замены с исходными данными:

H=h4||h3||h2||h1, h1<-V64(2), i=1,4 и набор ключей K1,K2,K3,K4

48

в результате данного этапа образуется последовательность:

S=s4||s3||s2||s1,

перемешивающее преобразование результата шифрования с исходными данными в виде:

слово H, M<- V256(2) и слово S <- V256(2),

4.2.6. Процедура вычисления хэш-функции

Исходными данными для процедуры вычисления значения функции h является подлежащая хэшированию последовательность M <- B*. Параметром является стартовый вектор хэширования H - произвольное фиксированное слово из V256(2).

Процедура вычисления функции h на каждой итерации использует следующие величины:

M <- B* - часть последовательности M, не прошедшая процедуру хэширования на предыдущих итерациях;

H <- V256(2) - текущее значение хэш-функции;

S <- V256(2) -текущее значение контрольной суммы; L <- V256(2) - текущее значение длины обработанной

на предыдущих итерациях части последовательности M.

49

5. ЦИФРОВАЯ ПОДПИСЬ

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

Цифровая подпись позволяет решить следующие три задачи:

осуществить аутентификацию источника сообщения;

установить целостность сообщения;

обеспечить невозможность отказа от факта подписи конкретного сообщения.

Цифровая подпись обладает следующими свойствами:

зависит от подписываемого текста, практически всегда разная;

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

легко отделима от документа, поэтому верна для всех его копий;

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

50