Трёхэта́пный протоко́л (англ. three-pass protocol) — криптографический протокол, который позволяет защищённо передать сообщение между двумя сторонами без необходимости обмена или распределения ни открытого, ни закрытого ключа. Этот протокол предполагает использование коммутативного шифра[1].
Трёхэтапный протокол называется так, потому что между отправителем и получателем происходит обмен тремя зашифрованными сообщениями. Первый трёхэтапный протокол был разработан Ади Шамиром в 1980-е годы, но не был опубликован[2][3]. Базовая концепция протокола состоит в том, что каждая из сторон передачи имеет собственный приватный ключ для шифрования и приватный ключ для дешифрования. Каждая сторона использует свои ключи независимо, сначала для зашифровки сообщения, а затем для расшифровки.
Протокол использует функцию шифрования и функцию расшифрования . Иногда функция шифрования и расшифрования могут быть одной и той же. Функция шифрования использует ключ шифрования , чтобы изменить открытое сообщение в зашифрованное, или шифротекст, . Для каждого ключа шифрования имеется соответствующий ключ дешифрования , который позволяет восстановить исходный текст с помощью функции расшифрования, .
Для того, чтобы функции шифрования и расшифрования подходили для трёхэтапного протокола, для любого сообщения , любого ключа шифрования с соответствующим ему ключом дешифрирования должно выполняется . Другими словами должно расшифровываться первое шифрование с ключом , даже если сообщение зашифровано вторым ключом . Такое свойство есть у коммутативного шифрования. Коммутативное шифрование — это шифрование, которое не зависит от порядка, то есть справедливо для любых ключей и для всех сообщений . Для коммутативного шифрование выполняется .
Предположим, Алиса хочет послать Бобу сообщение. Тогда трёхэтапный протокол работает следующим образом[1]:
Стоит заметить, что все операции с использованием закрытых ключей Алисы и совершаются Алисой, а все операции с использованием закрытых ключей Боба и совершаются Бобом, то есть одной стороне обмена не нужно знать ключи другой.
Первым трёхэтапным протоколом был трёхэтапный протокол Шамира[2], разработанный в 1980-х годах. Так же этот протокол называют бесключевым протоколом Шамира (англ. Shamir No-Key Protocol), потому что по этому протоколу не происходит обмена каких-либо ключей, но стороны обмена должны иметь по 2 закрытых ключа для шифрования и расшифрования. Алгоритм Шамира использует возведение в степень по модулю большого простого числа как функцию и шифрования, и расшифрования, то есть и , где — большое простое число[4]. Для любого шифрования показатель степени находится в отрезке и для него справедливо . Соответствующий показатель для расшифрования выбирается так, чтобы . Из малой теоремы Ферма следует, что .
Протокол Шамира обладает коммутативностью, так как .
Криптосистема Мэсси — Омуры была предложена Джеймсом Мэсси и Джимом Омурой[англ.] в 1982 как улучшение протокола Шамира[5][6]. Метод Мэсси — Омуры использует возведение в степень в поле Галуа как функцию и шифрования, и расшифрования, то есть и , где вычисления проходят в поле Галуа. Для любого шифрования показатель степени находится в отрезке и для него справедливо . Соответствующий показатель для расшифрования выбирается так, чтобы . Так как мультипликативная группа поля Галуа имеет порядок , то из теоремы Лагранжа следует, что для всех в .
Каждый элемент поля Галуа представлен как двоичный вектор нормального базиса, где каждый базисный вектор является квадратом предыдущего. То есть базисные вектора где — элемент поля с максимальным порядком. Используя данное представление, возведение в степень 2 можно производить с помощью циклического сдвига. Это значит, что возведение в произвольную степень может быть выполнено с не более чем сдвигами и умножениями. Более того, несколько умножений могут выполняться параллельно. Это позволяет иметь более быстрые реализации в железе за счёт использования несколько умножителей[7].
Необходимое условие для безопасности трёхэтапного протокола состоит в том, чтобы злоумышленник не смог определить ничего об исходном сообщении из трёх пересланных сообщений [8]. Это условие накладывает ограничение на выбор функций шифрования и расшифрования. Например коммутативная функция xor не может использоваться в трёхэтапном протоколе, так как . То есть, зная три пересланные сообщения, можно восстановить исходное сообщение[9].
Для функций шифрования, используемых в алгоритме Шамира и алгоритме Мэсси — Омуры, безопасность зависит от сложности вычисления дискретных логарифмов в конечном поле. Если злоумышленник может вычислить дискретные логарифмы в для метода Шамира или для метода Масси-Омура, то протокол может быть нарушен. Ключ может быть вычислен из сообщений и . Когда известно, легко вычислить степень для расшифровки . Затем злоумышленник может вычислить , возведя перехваченное сообщение в степень . В 1998 году показано, что при определённых предположениях взлом криптосистемы Мэсси — Омуры эквивалентен взлому криптосистемы Диффи — Хеллмана[10].
Трёхэтапный протокол не предусматривает аутентификацию сторон обмена[11]. Поэтому без реализации сторонней аутентификации протокол уязвим для атаки посредника. Это значит, что если злоумышленник имеет возможность создавать ложные сообщения или перехватывать и заменять настоящие переданные сообщения, то обмен скомпрометирован.
Эта статья входит в число добротных статей русскоязычного раздела Википедии. |