Криптографический протокол
В современной криптографии большое внимание уделяется не только созданию и исследованию шифров, но и разработке криптографических протоколов. Криптографический протокол – это такая процедура взаимодействия двух или более абонентов с использованием криптографических средств, в результате которой абоненты достигают своей цели, а их противники - не достигают. В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований и алгоритмов в информационных процессах. Каждый криптографический протокол предназначен для решения определенной задачи.
Любой протокол имеет следующие свойства:
при выполнении протокола важен порядок действий; каждое действие должно выполняться в свою очередь и только по окончании предыдущего;
протокол должен быть непротиворечивым;
протокол должен быть полным, то есть для каждой возможной ситуации должно быть предусмотрено соответствующее действие.
Свойства протокола напоминают известные нам из курса информатики свойства алгоритма. На самом деле протокол – это и естьалгоритм действия нескольких сторон в определенной ситуации. Участники протокола должны знать протокол и выполнять полностью все его этапы. Участниками криптографического протокола обычно являются абоненты некоторой системы связи. Участники протокола могут не доверять друг другу, поэтому криптографические протоколы должны защищать их участников не только от внешнего противника, но и от нечестных действий партнеров.
Криптографические протоколы – сравнительно молодая отрасль криптографической науки. Первые протоколы появились во второй половине ХХ века. С тех пор эта область криптографии бурно развивалась, и на настоящий момент имеется уже несколько десятков различных типов криптографических протоколов.
Все эти типы можно условно разделить на две группы: прикладные протоколы и примитивные.
Прикладной протокол решает конкретную задачу, которая возникает (или может возникнуть) на практике.
Примитивныеже протоколы используются как своеобразные "строительные блоки" при разработке прикладных протоколов. Мы в данном учебном пособии будем рассматривать только примитивные криптографические протоколы, которые при некоторой адаптации к реальным системам связи могут использоваться на практике.
Рассмотрим назначение некоторых видов протоколов.
Протоколы конфиденциальной передачи сообщений. Задача конфиденциальной передачи сообщений состоит в следующем. Имеются два участника протокола, которые являются абонентами сети связи. Участники соединены некоторой линией связи, по которой можно пересылать сообщения в обе стороны. Линию связи может контролировать противник. У одного из абонентов имеется конфиденциальное сообщение m, и задача состоит в том, чтобы это сообщение конфиденциальным же образом передать второму абоненту. Протоколы этого типа, наверно, появились раньше других криптографических протоколов, так как задача конфиденциальной передачи сообщений – исторически первая задача, которая решалась криптографией.
Протоколы аутентификации и идентификации. Они предназначены для предотвращения доступа к некоторой информации лиц, не являющихся ее пользователями, а также предотвращения доступа пользователей к тем ресурсам, на которые у них нет полномочий. Типичная сфера применения – организация доступа пользователей к ресурсам некоторой большой информационной системы.
Протоколы распределения ключей необходимы для обеспечения секретными ключами участников обмена зашифрованными сообщениями.
Протоколы электронной цифровой подписи позволяют ставить под электронными документами подпись, аналогичную обыкновенной подписи на бумажных документах. В результате выполнения протокола электронной цифровой подписи к передаваемой информации добавляется уникальное числовое дополнение, позволяющее проверить ее авторство.
Протоколы обеспечения неотслеживаемости ("Электронные деньги"). Под электронными деньгами в криптографии понимают электронные платежные средства, обеспечивающие неотслеживаемость, то есть невозможность проследить источник пересылки информации.
Рассмотрим простейший протокол для обмена конфиденциальными сообщениями между двумя сторонами, которые будем называтьабонент №1 и абонент №2. Пусть абонент №1 желает передать зашифрованное сообщение абоненту №2. В этом случае их последовательность действий должна быть следующей.
Абоненты выбирают систему шифрования (например, шифр Цезаря со сдвигом на n позиций).
Абоненты договариваются о ключе шифрования.
Абонент №1 шифрует исходное сообщение с помощью ключа выбранным методом и получает зашифрованное сообщение.
Зашифрованное сообщение пересылается абоненту №2.
Абонент №2 расшифровывает зашифрованное сообщение с помощью ключа и получает открытое сообщение.
Этот протокол достаточно прост, однако он может действительно использоваться на практике. Криптографические протоколы могут быть простыми и сложными в зависимости от назначения. Со многими из них мы познакомимся в различных главах этого курса.
Ранее мы ввели понятие криптографической атаки и рассмотрели типы атак на криптографический алгоритм. Во многих случаях атакаможет быть направлена не на алгоритм шифрования, а на протокол. Поэтому даже наличие абсолютно надежного алгоритма шифрования не гарантирует полной безопасности абонентам системы связи. Известны случаи, когда применяемые на практике криптографические протоколы содержали изъяны, допускающие мошенничество участвующих сторон или вскрытие со стороны активного взломщика. Конечно, криптографические протоколы не должны допускать таких возможностей нарушителям. Именно поэтому в настоящее время криптографические протоколы являются предметом тщательного анализа со стороны специалистов.
