Основы криптографии Учебное пособие - Алферов А.П.
ISBN 5-85438-025-0
Скачать (прямая ссылка):
/ч*, Яр Я2 ) = *(/(*, Я, ),/(*, Я2)),
в которой ж переставляет произвольные полублоки а, Ь, с, d по правилу 7r((a,b),(c,d)) = (a,d,c,b) . Такой подход, ис-
357
І лава 13
пользующий схему (б), реализован в конструкции одношаговой функции MDC-2.
Другие примеры бесключевых хэш-функций дают известные алгоритмы MD-4, MD-5 и SHA. Они оперируют с блоками длины п, совпадающей с длиной результирующего значения свертки, причем п = 128 для алгоритма MD-4 и л = = 160 для MD-5 и SHA. Указанные алгоритмы спроектированы специально с учетом эффективной реализации на 32-разрядных ЭВМ.
При их использовании исходное сообщение M разбивается на блоки длиной т- 512 бит. Последний блок формируется путем дописывания к концу сообщения комбинации 10...0 до получения блока размера 448 бит, к которому затем добавляется комбинация из 64 бит, представляющая битовую длину сообщения. Затем вычисляется значение свертки согласно процедуре (1) с использованием одношаговой сжимающей функции, заданной формулой f(x,H) = Ex(H)@H, где х —
блок сообщения длины т = 512 бит, H— блок из п бит, a Ex— некоторое преобразование множества блоков. Значение начального вектора определяется в описании преобразования Ex.
В стандарте хэш-функции ГОСТ P 34.11-94 приняты значения п = т = 512. Одношаговая сжимающая функция f(x,H), используемая для вычисления последовательности
значений H1 = /(X1, Ht_x), построена на базе четырех параллельно работающих схем блочного шифрования (ГОСТ 28147-89), каждая из которых имеет 256-битовый ключ и оперирует с блоками размера 64 бита. Каждый из ключей вычисляется в соответствии с некоторой линейной функцией от блока исходного сообщения X1 и значения Hh\. Значение H1 является линейной функцией от результата шифрования, блока исходного сообщения X1 и значения Hh\. После вычисления значения Hn для последовательности блоков M1,M2,..,Mn применяют еще два шага вычисления согласно формуле
Я = A(AZ) = /(Z Є Mn , f(L, Hn )),
358
хэш-функции
где Z — сумма по модулю два всех блоков сообщения, a L — длина сообщения.
§ 13.4. Целостность данных и аутентификация сообщений
Термин “аутентификация” означает установление подлинности. Он может относиться ко всем аспектам взаимодействия: сеансу связи, сторонам, передаваемым сообщениям и т. д. Применительно к самой информации аутентификация означает проверку того, что данные, передаваемые по каналу связи, являются подлинными по своему источнику и содержанию, по времени создания, времени пересылки и т. д.
Рассмотрим эти свойства более подробно.
Целостность данных — свойство, позволяющее убедиться в том, что данные не изменялись неавторизованным способом с тех пор, как они были созданы, переданы или сохранены авторизованным источником. Под изменениями обычно понимают пропуски, вставки, замены и перестановки фрагментов сообщения.
Аутентификация источника данных — получение подтверждения того, что рассматриваемый документ был создан именно указанным соответствующим образом источником информации. Подчеркнем, что при этом не требуется проверка времени создания и единственности документа, важно только то, что он был создан в некоторый (обычно неопределенный) момент времени в прошлом. Нарушение “единственности документа” подразумевает его повторную передачу или повторное использование. Если источник сообщений фиксирован, то вместо термина “аутентификация источника данных” используют термин “аутентификация сообщений”.
Целостность данных и аутентификация источника данных тесно связаны друг с другом. Действительно, если данные подверглись модификации, то у них автоматически изменился источник. Если же не установлен источник, то без ссылки на него нельзя разрешить проблему целостности. В связи с этим
359
Глава 13
будем считать по определению, что аутентификация источника данных включает проверку целостности данных. Рассмотрим примеры.
1. Для обеспечения целостности хранимых данных (M) можно добавить к ним значение криптографической хэш-функции (M^hk(M))9 зависящей от ключа, известного
только владельцу информации. Такой способ автоматически решает проблему аутентификации источника данных.
2. Для обеспечения целостности передаваемого сообщения можно так же, как и в п. 1, использовать хэш-функцию, зависящую от секретного ключа, известного отправителю и получателю. Аутентификация источника гарантируется тем, что секретный ключ известен только двум сторонам. При этом, однако, исключается возможность разрешения споров, связанных с отказом от авторства. Поэтому аутентификация источника с помощью ключевой хэш-функции возможна только при взаимодействии доверяющих друг другу сторон.
3. При аутентификации источника можно использовать симметричное шифрование, добавляя предварительно к исходному сообщению некоторый секретный, известный только отправителю и получателю, идентификатор. Такой способ, однако, не гарантирует целостности получаемых данных. Дело в том, что шифрование может допускать возможность модификации данных при передаче. Кроме того, для его реализации требуется секретный канал для обмена подобными идентификаторами.