Алгоритм Монтгомери (эллиптические кривые)


Алгоритм Монтгомери(англ. Montgomery ladder) — это алгоритм, позволяющий проводить операцию скалярного умножения для произвольной точки, принадлежащей эллиптической кривой за конечное время.

Недостатки предыдущих алгоритмов

Простейший алгоритм скалярного умножения точки P {displaystyle P} , лежащей на эллиптической кривой, на скаляр k {displaystyle k} выглядит следующим образом:

Input: k, P Output: kP 1: Q = P 2: for i = n-2 down to 0: 3: Q = 2Q 4: if k[i] == 1: 5: Q = Q + P 6: return Q

Описанный выше алгоритм скалярного умножения не рекомендуется использовать при проторении криптосистем на эллиптических кривых, поскольку он подвержен атаке по энергопотреблению. Шаги 3: и 5: позволяют злоумышленнику, перехватывающему значения Q {displaystyle Q} на очередной итерации цикла, побитово восстановить значение секретного ключа k {displaystyle k} .

Аналогичным проблемам подвержены более сложные алгоритмы скалярного умножения, использующие y {displaystyle y} -координату, поскольку к ним описан алгоритм атаки по ошибкам вычисления, а именно атака смены знака.

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

В 1987 году американский математик Питер Монтгомери предложил алгоритм, в котором не требуется использование y {displaystyle y} -координату для вычисления скалярного произведения точки на эллиптической кривой, что позволило значительно ускорить создание открытого ключа, а также полностью защититься от атак по энергопотреблению:

Input: k, P Output: kP 1: Q[0] = P, Q[1] = 2P 2: for i = k-2 down to 0: 3: Q[1 - k[i]] = Q[0] + Q[1] 4: Q[k[i]] = 2Q[k[i]] 5: return Q[0]

Предлагается в самом начале помимо точки Q 0 = P {displaystyle Q_{0}=P} рассчитывать также точку Q 1 = 2 P {displaystyle Q_{1}=2P} . Основная идея заключается в том, что во время очередной итерации цикла разница между точками Q 0 {displaystyle Q_{0}} и Q 1 {displaystyle Q_{1}} остаётся неизменно равной P {displaystyle P} . Это позволяет при помощи проективных координат быстро вычислять значение в точках ( X Q 0 + Q 1 : . : Z Q 0 + Q 1 ) {displaystyle (X_{Q_{0}+Q_{1}}:;.;:Z_{Q_{0}+Q_{1}})} и ( X 2 Q 0 : . : Z 2 Q 0 ) {displaystyle (X_{2Q_{0}}:;.;:Z_{2Q_{0}})} , с помощью которых обновляются значения Q 0 {displaystyle Q_{0}} и Q 1 {displaystyle Q_{1}} . В самом же конце используя ( X k P : . : Z k P ) {displaystyle (X_{kP}:;.;:Z_{kP})} вычисляется значение открытого ключа k P {displaystyle kP} .

В дальнейшем оказалось, что главная особенность алгоритма оказалась слабым местом, дающим возможность для атаки и расшифровки секретного ключа.

Особенность реализации

Подсчёт Q 0 {displaystyle Q_{0}} и Q 1 {displaystyle Q_{1}} на очередном шаге алгоритма заслуживает отдельного внимания. Поскольку Монтгомери отказывается от использования y {displaystyle y} -координаты необходимо иметь точный порядок действий для вычисления проективных координат на очередной итерации.

В статье приводится полное подробное описание вычисления проективных координат, получающихся удвоением и суммированием соответствующих значений. Всего требуется 18 операций умножения, 13 сложения и 4 возведения в квадрат для случая A ≠ − 3 {displaystyle A eq -3} , и, соответственно, 23 умножения, 11 сложения и 4 возведения в квадрат иначе.

Области применения

Алгоритм Монтгомери применяется как в протоколе Диффи-Хэлмана, так и в алгоритмах электронной подписи, в случае, когда оба строятся на эллиптической кривой (ECDH и ECDSA соответственно). В обоих случаях — это вычисление открытых ключей агентов, собирающихся обмениваться информацией по незащищённому каналу.

Основным преимуществом криптосистемы, использующей эллиптические кривые, является относительно небольшая длина закрытого ключа (минимум 163 бита). Для примера в алгоритме RSA минимальная длина секретного ключа составляет 1024 бит. Данная возможность появляется благодаря особенности вычисления открытого ключа, задача дискретного логарифмирования для которого решается намного сложнее, чем для алгоритмов, построенных на целых числах.

RFID метки

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

Сенсорные сети

Другим интересным применением данного алгоритма являются беспроводные сенсорные сети. Как и в случае RFID меток, устройства сети оснащены компактными энергетически эффективными процессорами, в которых спроектированы специальные Modular Arithmetic Logic Units(MALU) для проведения вычислений на кривой, в том числе скалярного умножения. Это помогает производить безопасные и экономные вычисления.


Похожие новости:

Полиномиальная сводимость

Полиномиальная сводимость
Любой язык L 1 {displaystyle L_{1}} называется сводимым по Карпу к языку

Неравенство Пу

Неравенство Пу
Неравенство Пу даёт нижнюю оценку на площадь проективной плоскости с римановой метрикой через длину кратчайшей нестягиваемой замкнутой кривой. Является одним из фундаментальных утверждений

Алгоритм Кнута — Морриса — Пратта

Алгоритм Кнута — Морриса — Пратта
Алгоритм Кнута — Морриса — Пратта (КМП-алгоритм) — эффективный алгоритм, осуществляющий поиск подстроки в строке. Время работы алгоритма линейно зависит от объёма входных данных, то есть разработать

Алгоритм заметающей прямой

Алгоритм заметающей прямой
Алгоритм заметающей прямой или алгоритм выметания плоскости — это алгоритмическая парадигма, которая использует умозрительную выметающую прямую или выметающую поверхность для решения различных задач
Комментариев пока еще нет. Вы можете стать первым!

Добавить комментарий!

Ваше Имя:
Ваш E-Mail:
Введите два слова, показанных на изображении: *
Популярные статьи
Как выбрать дизайнерскую мебель: руководство для изысканных интерьеров
Как выбрать дизайнерскую мебель: руководство для изысканных интерьеров
При создании стильного и утонченного интерьера каждая деталь играет важную роль. Одним из ключевых...
Психология сексуальности и терапия сексуальных расстройств
Психология сексуальности и терапия сексуальных расстройств
Сексология, как наука, охватывает широкий спектр аспектов человеческой сексуальности - как...
Профессиональный монтаж жалюзи с креплением на раму окна
Профессиональный монтаж жалюзи с креплением на раму окна
Жалюзи с креплением на раму окна представляют собой не только стильное и функциональное дополнение...
Все новости