Криптосистема Мэсси — Омуры
Криптосистема Мэсси — Омуры была предложена в 1978 году Джеймсом Мэсси и Джимом К. Омурой изначально в качестве улучшения протокола Шамира. Имеется два варианта реализации данного протокола: классический и эллиптический. Первый построен на сложности задачи дискретного логарифмирования, второй на свойствах эллиптической кривой. Обычно сгенерированное в результате сообщение используется в качестве ключа традиционной криптосистемы.
Первоначальный вариант
Изначально протокол Мэсси-Омуры был описан применительно к мультипликативной группе , где — простое число, и представлял собой аналог передачи секрета с помощью запираемых на один или два замка ящиков. Суть схемы заключается в следующем: абонент Alice запирает ящик с письмом своим ключом и пересылает ящик абоненту Bob. Абонент Bob, в свою очередь, запирает его своим ключом, и отправляет обратно к Alice. Alice снимает свой замок и направляет ящик к Bob, который снимает свой замок.
Алгоритм
- Выбирается в качестве системного параметра большое простое число . Абоненты Alice и Bob выбирают случайные числа и (между 0 и ), взаимно простые с , где — функция Эйлера.
- С помощью расширенного алгоритма Евклида вычисляются и , обратные числам и по модулю :
- Иначе говоря, должны выполняться условия:
- ,
- .
Пары чисел , являются секретными ключами абонентов.
- , так как
(Первый сомножитель равен 1 по теореме Эйлера). Аналогично .
- Абонент Alice посылает сообщение () абоненту Bob.
Alice шифрует своё сообщение первым ключом: () и пересылает абоненту Bob.
- Bob шифрует вторым ключом: () и пересылает обратно к Аlice.
- Alice «снимает первый замок» с помощью второго секретного ключа:
- .
- Bob «снимает свой первый замок» с помощью второго секретного ключа:
Итого: абоненту Bob доставлено секретное сообщение от Аlice.
Проблемы в использовании
Данный вариант системы может быть реализован и без использования процедуры возведения в степень в конечных полях, но задача дискретного логарифмирования достаточно сложна для Bob, чтобы тот по не смог определить ключ и впредь читать сообщения, ему не предназначавшиеся. Обязательным условием надежности является хорошая система подписи сообщений. Без использования подписей любое постороннее лицо Eva может представиться абонентом Bob и вернуть Alice сообщение вида . Alice продолжит процедуру и, «сняв свой замок», откроет самозванцу Eva путь к расшифрованию сообщения. В связи с этим, должно сопровождаться аутентификацией.
Эллиптический вариант
Эллиптический вариант данного протокола предоставляет возможность передавать сообщение от Alice к Bob по открытому каналу без предварительной передачи какой-либо ключевой информации. Системные параметры здесь: уравнение эллиптической кривой и поле , задающееся неприводимым многочленом. Пусть порядок эллиптической кривой равен , — целое число, взаимно простое с (). По алгоритму Евклида можно найти
- .
По определению сравнимости по модулю:
Значит для любой точки эллиптической кривой порядка выполняется:
- , то есть
- .
Теперь, используя и и любую точку эллиптической кривой, можно вычислить
Где . Вычисление точки по эквивалентно решению задачи дискретного логарифма для эллиптической кривой.
Алгоритм
- Абонент Alice помещает своё сообщение в некоторую точку эллиптической кривой и умножает её на своё секретное значение , получает точку . Эта точка отправляется абоненту Bob.
- Bob вычисляет и отправляет результат Alice.
- Alice «снимает замок», вычисляя . Возвращает полученный результат абоненту Bob.
- Bob расшифровывает сообщение, используя свой секретный ключ шифрования :
Литература
- Н. Коблиц «Курс теории чисел и криптографии». Москва, 2001
- А. А. Болотов, С. Б. Гашков, А. Б. Фролов, А. А. Часовских "Алгоритмические основы эллиптической криптографии. Москва, 2004
- Б. Н. Воронков, А. С. Щеголеватых «Элементы теории чисел и криптозащита». Воронеж, 2008