Эта статья входит в число добротных статей

Трёхэтапный протокол

Материал из Википедии — свободной энциклопедии

Трёхэта́пный протоко́л (англ. three-pass protocol) — криптографический протокол, который позволяет защищённо передать сообщение между двумя сторонами без необходимости обмена или распределения ни открытого, ни закрытого ключа. Этот протокол предполагает использование коммутативного шифра[1].

Основные сведения

Трёхэтапный протокол называется так, потому что между отправителем и получателем происходит обмен тремя зашифрованными сообщениями. Первый трёхэтапный протокол был разработан Ади Шамиром в 1980-е годы, но не был опубликован[2][3]. Базовая концепция протокола состоит в том, что каждая из сторон передачи имеет собственный приватный ключ для шифрования и приватный ключ для дешифрования. Каждая сторона использует свои ключи независимо, сначала для зашифровки сообщения, а затем для расшифровки.

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

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

Описание алгоритма

Схема трёхэтапного протокола

Предположим, Алиса хочет послать Бобу сообщение. Тогда трёхэтапный протокол работает следующим образом[1]:

  1. Алиса выбирает закрытый ключ шифрования и соответствующий ключ расшифрования . Алиса шифрует исходное сообщение с помощью ключа и отправляет шифротекст Бобу.
  2. Боб выбирает закрытый ключ шифрования и соответствующий ключ расшифрования , а затем повторно шифрует первое сообщение с помощью ключа и отправляет дважды зашифрованное сообщение обратно Алисе.
  3. Алиса расшифровывает второе сообщение с помощью ключа . Из-за коммутативности, описанной выше, получаем , то есть сообщение, зашифрованное только закрытым ключом Боба. Алиса пересылает этот шифротекст Бобу.
  4. Боб расшифровывает третье сообщение с помощью ключа и получает исходное сообщение.

Стоит заметить, что все операции с использованием закрытых ключей Алисы и совершаются Алисой, а все операции с использованием закрытых ключей Боба и совершаются Бобом, то есть одной стороне обмена не нужно знать ключи другой.

Трёхэтапный протокол Шамира

Первым трёхэтапным протоколом был

трёхэтапный протокол Шамира[2], разработанный в 1980-х годах. Так же этот протокол называют бесключевым протоколом Шамира (англ. Shamir No-Key Protocol), потому что по этому протоколу не происходит обмена каких-либо ключей, но стороны обмена должны иметь по 2 закрытых ключа для шифрования и расшифрования. Алгоритм Шамира использует возведение в степень по модулю большого простого числа
как функцию и шифрования, и расшифрования, то есть и , где  — большое простое число[4]. Для любого шифрования показатель степени находится в отрезке и для него справедливо . Соответствующий показатель для расшифрования выбирается так, чтобы . Из малой теоремы Ферма следует, что .

Протокол Шамира обладает коммутативностью, так как .

Криптосистема Мэсси — Омуры