Криптосистема Мэсси — Омуры была предложена в 1978 году Джеймсом Мэсси и Джимом К. Омурой изначально в качестве улучшения протокола Шамира. Имеется два варианта реализации данного протокола: классический и эллиптический. Первый построен на сложности задачи дискретного логарифмирования, второй на свойствах эллиптической кривой. Обычно сгенерированное в результате сообщение
используется в качестве ключа традиционной криптосистемы.
Первоначальный вариант
Изначально протокол Мэсси — Омуры был описан применительно к мультипликативной группе
, где
— простое число, и представлял собой аналог передачи секрета с помощью запираемых на один или два замка ящиков.
Суть схемы можно описать следующим образом:
Алиса запирает ящик с письмом своим ключом и пересылает ящик абоненту Бобу. Боб, в свою очередь, запирает его своим ключом, и отправляет обратно к Алиса. Алиса снимает свой замок и направляет ящик обратно к Бобу, который снимает свой замок и читает письмо.
Алгоритм
- Выбирается в качестве системного параметра большое простое число
. Абоненты Алиса и Боб выбирают случайные числа
и
(между 0 и
), взаимно простые с
, где
— функция Эйлера.
- С помощью расширенного алгоритма Евклида вычисляются
и
, обратные числам
и
по модулю
:


- Иначе говоря, должны выполняться условия:
,
.
Пары чисел
,
являются секретными ключами абонентов.
, так как

(Первый сомножитель равен 1 по теореме Эйлера).
Аналогично
.
- Абонент Алиса посылает сообщение
(
) абоненту Боб. Алиса шифрует своё сообщение первым ключом:
(
) и пересылает
абоненту Боб.
- Боб шифрует вторым ключом:
(
) и пересылает обратно к Алисе.
- Алиса «снимает первый замок» с помощью второго секретного ключа:
.
- Боб «снимает свой первый замок» с помощью второго секретного ключа:

Итак, Бобу доставлено секретное сообщение
от Алисы.
Проблемы в использовании
Данный вариант системы может быть реализован и без использования процедуры возведения в степень в конечных полях, но задача дискретного логарифмирования достаточно сложна для Боба, чтобы тот по
не смог определить ключ
и впредь читать сообщения, ему не предназначавшиеся.
Обязательным условием надежности является хорошая система подписи сообщений. Без использования подписей любое постороннее лицо Ева может представиться Бобу и вернуть Алисе сообщение вида
.
Алиса продолжит процедуру и, «сняв свой замок», откроет самозванке Еве путь к расшифрованию сообщения.
В связи с этим,
должно сопровождаться аутентификацией.
Эллиптический вариант
Эллиптический вариант данного протокола предоставляет возможность передавать сообщение от Alice к Bob по открытому каналу без предварительной передачи какой-либо ключевой информации. Системные параметры здесь: уравнение эллиптической кривой
и поле
, задающееся неприводимым многочленом.
Пусть порядок эллиптической кривой
равен
,
— целое число, взаимно простое с
(
).
По алгоритму Евклида можно найти
.
По определению сравнимости по модулю:

Значит для любой точки
эллиптической кривой
порядка
выполняется:
, то есть
.
Теперь, используя
и
и любую точку
эллиптической кривой, можно вычислить


Где
.
Вычисление точки
по
эквивалентно решению задачи дискретного логарифма для эллиптической кривой.
Алгоритм
- Абонент Alice помещает своё сообщение
в некоторую точку
эллиптической кривой и умножает её на своё секретное значение
, получает точку
. Эта точка отправляется абоненту Bob.
- Bob вычисляет
и отправляет результат Alice.
- Alice «снимает замок», вычисляя
. Возвращает полученный результат абоненту Bob.
- Bob расшифровывает сообщение, используя свой секретный ключ шифрования
:

Литература
- Н. Коблиц «Курс теории чисел и криптографии». Москва, 2001
- А. А. Болотов, С. Б. Гашков, А. Б. Фролов, А. А. Часовских "Алгоритмические основы эллиптической криптографии. Москва, 2004
- Б. Н. Воронков, А. С. Щеголеватых «Элементы теории чисел и криптозащита». Воронеж, 2008