Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы криптологии. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
570 Кб
Скачать

 

 

é0

0

1

0

0

1

0

 

 

ê1

0

0

1

0

0

1

 

 

ê0

1

0

0

1

0

0

X

1

ê1 0 1 0 0 1 0 0ú

 

= ê0 1 0 1 0 0 1 0ú.

 

 

ê

0

1

0

1

0

0

ú

 

 

ê0

1ú

 

 

ê1

0

0

1

0

1

0

0ú

 

 

ë0

1

0

0

1

0

1

0û

15. УСТАНОВЛЕНИЕ ПОДЛИННОСТИ ОБЪЕКТА

Аутентификация – это методика, позволяющая одной стороне доказать свою подлинность для другой стороны. Объект, подлинность которого должна быть доказана, называется претендентом (Петров), вторая сторона называется верификатором (Воробьев). Самый простой и самый старый метод аутентификации объекта – это установление подлинности на основе пароля. Другой метод осуществляется с помощью запроса-ответа. Запрос – это некоторое

случайное число RB , которое передает верификатор претенденту.

Претендент применяет к RB некоторую секретную функцию для преобразования запроса и передает полученный результат (ответ) верификатору. Ответ показывает, знает ли претендент секрет или нет.

Симметричное шифрование. Имеется несколько методик установления подлинности объекта на основе запроса-ответа с использованием симметричного шифрования.

Первая методика: использование секретного ключа.

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

2-й шаг. Воробьев посылает Петрову сообщение-запрос RB – случайно выбранное число.

81

3-й шаг. Петров шифрует RB , используя секретный ключ kПB , и передает результат Воробьеву. Воробьев рассматривает сообщение.

Если при расшифровании получен тот же самый RB , то подлинность

претендента доказана (ему известен секретный ключ kПB ) и связь устанавливается. Для предотвращения атаки третьей стороной в

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

секретный ключ, известный претенденту и верификатору, записан

четырехбитовым словом kПB = 13 = 1101.

1-й шаг. Петров посылает Воробьеву опознавательное слово «Петров».

2-й шаг. Воробьев выбирает случайное число RB = 5 = 0101 и посылает его Петрову.

3-й шаг. Используя секретный ключ kПB , Петров шифрует RB

R Å k = 0101Å1101 = 1000

BПВ

и отсылает результат Воробьеву. Воробьев расшифровывает полученное сообщение

1000 Å1101 = 0101 = 5 = RB . Подлинность Петрова установлена.

Вторая методика: запрос с меткой времени.

Вэтом подходе аутентификация Петрова может быть

осуществлена за

один шаг,

если в качестве RB Петров возьмет

текущее значение времени.

Например,

t = 12 часов

51 минута.

Секретный

ключ

известен

обеим

сторонам:

kПB = 13.13 = 001101.001101.

Петров шифрует сообщение:

tÅ kПВ = 001100.110011Å 001101.001101 = 000001.111110

иотсылает Воробьеву.

Воробьев расшифровывает сообщение:

000001.111110 Å 001101.001101 = 001100.110011 =12.51

82

и смотрит на часы. Если разница во времени незначительна, то подлинность Петрова доказана.

Третья методика: двунаправленное установление подлинности. Первая и вторая методики созданы для однонаправленного

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

kПB =13 =1101.

1-й шаг. Петров посылает сообщение «Петров» Воробьеву о том, что хочет установить с ним связь.

2-й шаг. Воробьев посылает Петрову сообщение-запрос

RB = 7 = 0111.

3-й шаг. Петров выбирает случайное число RП = 11 =1011,

шифрует

RП

и RB с

помощью общего

секретного

ключа kПB

и отсылает Воробьеву:

 

 

 

 

 

RП Å kПВ =1011Å1101 = 0110;

 

 

 

RВ Å kПВ = 0111Å1101 = 1010 .

 

4-й

шаг.

Воробьев

расшифровывает

полученное

сообщение

0110; 1010 и находит числа RП , RB :

RП = 0110 Å1101 = 1011 = 11, RВ = 1010 Å1101 = 0111 = 7.

Так как числа RB = 7 совпадают, подлинность Петрова установлена. Для аутентификации второй стороны Воробьев заново

шифрует числа RП , RB , переставляя их местами, чтобы предотвратить атаку противником ответа на третье сообщение:

RВ Å kПВ = 1010, RП Å kПВ = 0110

и отсылает Петрову. Петров расшифровывает RП и удостоверяется в подлинности Воробьева.

Асимметричное шифрование. В алгоритмах установления подлинности объектов могут быть использованы асимметричные

83

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

соответствующий секретный ключ kС . Пусть kO = 7, а kС = 3 и n = 33 (криптосистема RSA).

1-й

шаг.

Петров

посылает

сообщение

Воробьеву

о необходимости установления с ним связи.

 

 

2-й шаг. Воробьев шифрует случайное число RB = 2 по формуле

 

 

Rko

mod n

= 27

= 29

 

 

 

 

B

 

mod

 

 

 

с использованием открытого

 

ключа

kО , который

доступен,

и отправляет сообщение Петрову.

 

 

 

 

3-й

шаг.

Петров расшифровывает

полученное

сообщение

с помощью kС

 

 

 

 

 

 

 

 

 

293mod33

= 2 = R

 

 

 

 

 

 

 

 

B

 

 

и отправляет RB

Воробьеву, который сравнивает со своим числом.

При совпадении чисел подлинность Петрова установлена.

 

Замечание: для реализации двунаправленной системы проверки подлинности используется два открытых ключа kОП , kОB и два секретных ключа k, kCB .

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

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

изображение сообщения y = h(M ) (дайджест), при этом само сообщение и его дайджест могут быть разделены, и, что наиболее

важно, дайджест h(M ) должен быть защищен от изменения. Чтобы

84

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

К криптографическим хеш-функциям предъявляется ряд требований.

1. Устойчивость к прообразу. Пусть дано сообщение М и

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

сообщение M1 , такое, что h(M1 ) = y . При этом считается, что М неизвестно.

2. Устойчивость ко второму прообразу. Второй критерий гарантирует, что сообщение М не может быть легко подделанным,

т. е. зная М и его дайджест h(M ), невозможно создать другое

сообщение M1 : h(M1 ) = h(M ). Здесь M1 − второй прообраз.

3. Устойчивость к коллизиям. Третий критерий гарантирует, что

невозможно найти два сообщения M ¹ M1 : h(M ) = h(M1).

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

простым перебором сообщений, которые могут найти такое M1 , что

h(M1 ) = y . Однако если размер дайджеста n достаточно велик, то потребуется нереально большое время для этого перебора, чтобы

найти M1 . Еще более нереальным становится тот факт, что

M1

осмысленный текст.

 

 

Проиллюстрируем

вышесказанное на примере.

Пусть

хеш-функция

использует

алгоритм гаммирования с

ПСПЧ

xi+1 = xi + 1mod33,

x0 = 0.

 

 

85

Создадим дайджест сообщения М: ДЕД, используя 6-битовое представление букв и цифр:

Д – 4 – 000100, Е – 5 – 000101, Д – 4 – 000100;

x = 1

– 000001,

x

= 2

– 000010,

x3 = 3

– 000011.

1

2

 

 

Складывая все по модулю 2, получаем дайджест

 

 

h(M ) = 000101.

 

 

Подберем

другое сообщение M1 с тем же дайджестом

h(M1) = 000101.

Можно, например, взять две буквы Б, В, а третью

букву подобрать так, чтобы h(M ) = h(M ). Этой третьей буквой будет Ж. Но текст БВЖ не является осмысленным.

Далее при проектировании хеш-функций должен соблюдаться принцип: небольшое изменение в аргументе функции М должно

сильно влиять на ее значение h(M ). Это обеспечивает дополнительную стойкость, в результате которой уже нельзя будет чек

на 300.00 R переделать на 30 000 R.

 

 

В качестве

хеш-функций

можно

использовать шифры

с симметричными

ключами, такие

как

DES, AES, ГОСТ. Так,

например, криптографическая функция Whirlpool в своей основе имеет блочный шифр AES , рассмотренный ранее.

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

86