Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программные средства защиты информации. Конспект лекций
.pdf
данными x и кодом
M
M
M
x
x
x
x
графическими преобразованиями. Код
фицировать либо с помощью ключевой хэш-функции, либо с помощью
алгоритмов блочного шифрования.
кодом аутентификации сообщений (MAC – message authentication
code).
DC обеспечиваются одними и теми же крипто-
DC можно создавать и вери-
DC в этом случае называется
6.1.1. Криптографические хэш-функции
Функция хэширования – это детерминированная функция, отображающая строку битов произвольной длины в хэшированное значение,
представляющее собой строку битов фиксированной длины.
Пусть
Функция хэширования должна обладать следующими свойствами.
1.
должно быть с вычислительной точки зрения неотличимо от строки
битов, распределённых по равномерному закону (
2.
что
задачу.
3.
по заданному значению
шимой.
4.
ния
зависящим от размера строки
Хэш-функция широко применяется в криптографии.
1. В алгоритмах цифровой подписи хэш-функция обычно исполь-
зуется для создания «отпечатка сообщения».
2. В прикладных криптосистемах с открытым ключом хэшфункция используется для реализации механизма верификации
правильности зашифрованных текстов. Такой механизм необходим
для того, чтобы обеспечить доказуемую стойкость к активным
атакам.
3. Хэш-функция
псевдослучайную последовательность.
h – это хэш-функция, возвращающая строку длины
Преобразование перемешивания. Значение хэш-функции
:() (0,2)
xhx Rav
Предотвращение коллизий. Поиск двух величин
hx hy
y и
Сложность вычисления прообразов. Задача вычисления
Практическая эффективность. Сложность вычисления значе-
hx
должна быть ограничена полиномом небольшой степени,
, должен представлять собой неразрешимую
hx
должна быть вычислительно неразре-
.
используется в качестве функции, генерирующей
и y таких,
h
.
h
).
41

6.1.2. Обзор однонаправленных хэш-функций
M
Нелегко построить функцию, вход которой имеет произвольный
размер, а тем более сделать её однонаправленной. В реальном мире
однонаправленные хэш-функции строятся на идее функции сжатия.
Такая однонаправленная функция выдаёт хэш-значение длины
заданных входных данных большей длины
. Входами функции сжа-
m
тия являются блок сообщения и выход предыдущего блока текста
(рис. 20). Выход представляет собой хэш-значение всех блоков до этого момента, т.е. хэш-значение блока
равно
i
при
n
hfMh
iii
,
.
1
Это хэш-значение вместе со следующим блоком сообщения становится следующим входом функции сжатия. Хэш-значением всего сообщения будет хэш-значение последнего блока.
Рис. 20. Однонаправленная функция
Хэшируемый вход должен каким-то способом содержать бинарное
представление длины всего сообщения. Таким образом, преодолевается потенциальная проблема, вызванная тем, что сообщения различной
длины могут давать одно и то же хэш-значение. Иногда такой метод
называется
MD-усилением.
В качестве однонаправленных хэш-функций можно использовать
симметричные блочные алгоритмы шифрования. Самый очевидный
способ – это шифрование сообщения в режиме CBC и CFB с помощью
фиксированного ключа и
IV , хэш-значением будет последний блок
шифротекста.
Более хороший способ использует в качестве ключа блок сообщения, в качестве входа – предыдущее хэш-значение, а выходом служит
текущее хэш-значение.
Действительные хэш-функции ещё сложнее. Размер блока обычно
совпадает с длиной ключа, и размером хэш-значения будет длина блока.
Так как большинство
блочных алгоритмов 64-битные, то спроектирован
ряд схем, дающих хэш-значение, в два раза большее длины блока.
42

При условии, что хэш-функция правильна, безопасность этой схе-
H
H
A, B
M
H
M
мы основана на безопасности используемой блочной функции. Однако
есть и исключения. Дифференциальный криптоанализ лучше работает
против блочных функций в хэш-значениях, чем против блочных функций, используемых для шифрования: ключ известен, поэтому можно
использовать различные приёмы. Для успеха нужна только одна пра
вильная пара, и можно генерировать столько выбранного открытого
текста, сколько нужно.
Полезной мерой для хэш-функций, основанных на блочных шифрах, является
ков сообщения (
скорость хэширования или количество n-битовых бло-
– это размер блока алгоритма), обрабатываемых
n
при шифровании. Чем выше скорость хэширования, тем быстрее алгоритм.
Схемы, в которых длина хэш-значения равна длине блока
Общая схема (рис. 21)
HI
0
, где
– случайное начальное значение, задаваемое
I
пользователем, или, например, длина сообщения.
-
HEBC
iA
где
ты (возможно, равные 0).
число
и C могут быть либо
– это некоторое случайное начальное
H
0
. Сообщение разбивается на обрабатываемые отдельно части
I
в соответствии с размером блока
,
MH
,
ii
1
, либо констан-
,
H
i
1i
.
i
Рис. 21. Общая схема
Три различные переменные (A, B, C ) могут принимать одно из
четырёх возможных значений, поэтому всего существует 64 варианта
схем этого типа.
Далее приведены четыре схемы безопасных хэш-функций
(рис. 22–25).
43

Рис. 22. Схема № 1
Рис. 23. Схема № 2
Рис. 24. Схема № 3
Рис. 25. Схема № 4
44

Схемы, в которых длина хэш-значения равна
R
H
H
R
H
H
удвоенной длине блока
Схема Preneel-Bosselaers-Govaerts-Vandewalle
При 64-битном блочном алгоритме схема выдаёт два 64-битных
хэш-значения
и
G
i
, объединение которых даёт 128-битное хэш-
H
i
значение. У большинства блочных алгоритмов длина блока равна
64 битам. Два соседних блока
и
L
i
(размер каждого равен размеру
i
блока) хэшируются вместе.
где
GI
GE R G R G H
iLH i i i i i
HE H G L G H
iLRi i i i i
и
I
G
– два случайных начальных значения.
I
111
1
ii
11 1 1
ii
,
0 G
HI
0
,
,
Схема Quisquater-Girault
Эта схема генерирует хэш-значение, в два раза большее длины
и
блока. Она использует два хэш-значения
и
два блока –
L
.
i
i
GI
WEG R R H
iLi i i i
i
GEW L G H L
iRi i i i i
i
,
0 G
HW G
ii i
HI
0
11
G
i
11
,
1
и хэширует вместе
H
i
,
,
,
где
и
I
G
– два случайных начальных значения.
I
45

6.1.3. Коды аутентификации сообщений, использующие
M
A
x
M
B
M
M
E
M
M
M
функции хэширования с ключом
Чтобы аутентифицировать сообщение, абонент A вычисляет
AC h K X
секретный ключ, известный только абонентам
, где – операция конкатенации битовых строк; K –
и B (рис. 26).
Рис. 26. Схема аутентификации сообщения
Получив
если
ний –
AC MAC
Также существует модификация кода аутентификации сообще-
HMAC h K x K
*
и
AC , абонент
*
, делает вывод, что сообщение поступило от A.
.
вычисляет
**
AC h K X
и,
6.1.4. Коды аутентификации сообщений, использующие
алгоритмы блочного шифрования
Пусть
ключом
витель сначала разбивает его на блоки:
CIV
0
алгоритм блочного шифрования в режиме сцепления блоков зашифрованного текста:
фикации сообщений, который присоединяется к сообщению
отправкой.
– случайный вектор инициализации. Отправитель применяет
Теперь пару
M
– алгоритм блочного шифрования сообщения M с
K
K . Для того чтобы аутентифицировать сообщение
mm m
12 l
CEmC i l
iKii
,
IV C
можно применять в качестве кода аутенти-
l
, 1, .
1
, отпра-
. Пусть
перед
46

Здесь
x
x
K
ча
6.2. Асимметричные методы защиты
целостности данных
6.2.1. Электронная цифровая подпись (рис. 27)
(
секр
ℎ
)
′=
Рис. 27. Схема выработки электронной цифровой подписи
()
D
секр
– алгоритм дешифрования с помощью секретного клю-
K
секр
.
=
(′)
откр
Рис. 28. Схема проверки электронной цифровой подписи
Таким образом, электронная цифровая подпись удостоверяет лич-
ность отправителя и защищает целостность данных (рис. 28).
Примерами электронных цифровых подписей являются подписи
RSA, Рабина, Эль-Гамаля, Шнорра, стандарт DSS.
6.2.2. Алгоритм Эль-Гамаля
Пусть M – подписываемое сообщение.
Выбирается большое простое число
1
число
(
p
), которое является закрытым ключом. В качестве
47
. Выбирается случайное
p

g
берётся один из первообразных корней числа p (
gp
pgy
p
ется
Случайным образом выбирается секретное число
x
mod
yg p
, 1 1НОД kp
. Открытым ключом является
. Затем вычисляются:
ag p
x
mod
,
). Вычисля-
,,
.
k такое, что и
mod 1Mxakb p
mod 1bk M xa p
– это обратный для k элемент по мо-
1 mod 1kk p
. Для проверки подписи нужно убе-
,
.
.
.
В последнем выражении
1
дулю
клида, решая сравнение
Если
вычисления.
Подписью является пара
диться, что
. Его можно найти с помощью расширенного алгоритма Ев-
0b , то выбирается другое k и повторяются зависящие от k
1
1
k
1
,ab
ab M
mod mod
ya pg p
6.2.3. Защита целостности данных
без идентификации источника
В механизме защиты целостности данных, основанном на схеме
цифровой подписи, ключ
открытый. В таком случае проверка целостности сводится к идентифи-
кации отправителя сообщения, т. е. владельца ключа
Однако процедура генерации ключей, будучи неотъемлемым элементом электронной цифровой подписи, вовсе не обязательна для защиты целостности данных. Например, можно сгенерировать два ключа
и
K
E
крытым, а
применить
верифицировать согласованность пары
(см. рис. 28), используя обратную схему:
K
V
– секретным. В этом случае любой пользователь может
K
V
для создания пары
K
E
используется как секретный, а
K
E
, xMAC
, а владелец
, xMAC
. Это уже не схема
.
K
V
объявить от-
K
E
K
K
V
– как
V
может
48

электронной цифровой подписи, это система защиты целостности данных без идентификации источника («целостность данных, посланных
злоумышленником»). Примером такой схемы является RSA-OAEP.
7. ИДЕНТИФИКАЦИЯ
И АУТЕНТИФИКАЦИЯ
Идентификация
действующему от имени определённого пользователя) назвать себя
(сообщить своё имя).
Посредством
субъект действительно тот, за кого себя выдаёт.
Процедура взаимодействия между общающимися пользователями
называется
является протоколом аутентификации.
Аутентификацию можно разделить на три вида.
1.
свойства сообщения). Она тесно связана с защитой целостности данных и включает следующие действия:
передача сообщений от отправителя к получателю, проверяю-
1)
щему достоверность сообщения перед его принятием;
2)
идентификация отправителя сообщения;
проверка целостности данных, полученных от отправителя;
3)
проверка реальности существования отправителя сообщения.
4)
2.
(т.е. протокол), в ходе которого пользователь устанавливает подлин-
ность другого пользователя. Существует несколько сценариев аутентификации сущностей в распределённых системах (например, обмен сообщениями между двумя компьютерами, между пользователем и главным компьютером, между процессом и главным компьютером).
3.
организации защищённого канала для обмена секретными сообщениями. Протокол аутентификации сущностей для дальнейшего обмена
информацией по защищённым каналам в качестве составной части содержит механизм генерации аутентифицированных ключей, или механизм обмена ключами, или механизм согласования ключей.
протоколом. Таким образом, процедура аутентификации
Аутентификация источника данных (проверка объявленного
Аутентификация сущностей – это процесс обмена информацией
Генерация аутентифицированных ключей предназначена для
позволяет субъекту (пользователю или процессу,
аутентификации вторая сторона убеждается, что
49

Часто в литературе протоколы аутентификации называют прото-
B
B
колами связи
.
Основные методы аутентификации:
стандартные механизмы определения «свежести» сообщения и
1)
существования пользователя;
взаимная аутентификация;
2)
аутентификация с привлечением доверенного посредника.
3)
7.1. Стандартные механизмы
определения «свежести» сообщения
и существования пользователя
Под «свежестью» информации понимается то, что эта информация была послана недавно (т. е. промежуток времени между её отправлением и получением достаточно мал). Свежесть информации свидетельствует о хорошей согласованности между общающимися сторонами и уменьшает вероятность диверсии со стороны пользователей, аппаратуры, системы или самого сообщения.
Проверка «свежести» сообщения – неотъемлемая часть
кации источника данных, а также аутентификации сущностей, в процессе которой пользователь должен оживлённо обмениваться информацией с подлинным партнёром.
7.1.1. Стратегия «оклик-отзыв»
аутентифи-
В стратегии № 1 абонент A (верификатор) получает смесь, состоящую из протокольного сообщения и криптографической операции,
выполненной абонентом
мог убедиться в существовании
(претендентом) таким образом, чтобы A
, проверив «свежесть» полученной
информации (рис. 29).
∗
(
)
,
Рис. 29. Стратегия № 1 для проверки
«свежести» сообщения
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
