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

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

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

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

Простейший алгоритм скалярного умножения точки , лежащей на эллиптической кривой, на скаляр выглядит следующим образом[2][3]:

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

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

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

Описание алгоритма[править | править код]

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

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]

Предлагается в самом начале помимо точки рассчитывать также точку . Основная идея заключается в том, что во время очередной итерации цикла разница между точками и остаётся неизменно равной . Это позволяет при помощи проективных координат[7] быстро вычислять значение в точках и , с помощью которых обновляются значения и . В самом же конце используя вычисляется значение открытого ключа .

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

Особенность реализации[править | править код]

Подсчёт и на очередном шаге алгоритма заслуживает отдельного внимания. Поскольку Монтгомери отказывается от использования -координаты[9] необходимо иметь точный порядок действий для вычисления проективных координат на очередной итерации.

В статье [10] приводится полное подробное описание вычисления проективных координат, получающихся удвоением и суммированием соответствующих значений. Всего требуется 18 операций умножения, 13 сложения и 4 возведения в квадрат для случая , и, соответственно, 23 умножения, 11 сложения и 4 возведения в квадрат иначе.

Области применения[править | править код]

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

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

RFID метки[править | править код]

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

Сенсорные сети[править | править код]

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

Примечания[править | править код]

  1. 1 2 Montgomery, P. Speeding the Pollard and elliptic curve methods of factorization (англ.) : journal. — 1987. — doi:10.1090/s0025-5718-1987-0866113-7.
  2. Ansari, B.; Hasan, M. High-Performance Architecture of Elliptic Curve Scalar Multiplication (англ.) // IEEE Transactions on Computers  (англ.) : journal. — 2008. — Vol. 57. — P. 1443—1453. — doi:10.1109/TC.2008.133.
  3. Guillermin, N. A High Speed Coprocessor for Elliptic Curve Scalar Multiplications over 𝔽𝑝 (англ.) // International Workshop on Cryptographic Hardware and Embedded Systems. : journal. — 2010. — P. 48—64. — doi:10.1007/978-3-642-15031-9_4.
  4. Kocher, P.; Jaffe, J.; Jun, B. Differential Power Analysis (неопр.) // Advances in Cryptology — CRYPTO’ 99. — 1999. — Т. 1666. — С. 388—397. — doi:10.1007/3-540-48405-1_25.
  5. Chilikov, A; Taraskin, O. New Fault Attack on Elliptic Curve Scalar Multiplication (англ.) // IACR Cryptology ePrint Archive 2009 : journal. — 2009.
  6. Blömer, J.; Otto, M.; Seifert, J. Sign change fault attacks on elliptic curve cryptosystems (англ.) // International Workshop on Fault Diagnosis and Tolerance in Cryptography : journal. — 2006. — Vol. 4236. — P. 36—52. — doi:10.1007/11889700_4.
  7. Cohen, H.; Miyaji, A. Efficient Elliptic Curve Exponentiation Using Mixed Coordinates (англ.) // Advances in Cryptology — ASIACRYPT’98 : journal. — 1998. — Vol. 1514. — P. 51—65. — doi:10.1007/3-540-49649-1_6.
  8. Fouque, P.; Lercier, R.; Réal, D.; Valette, F. Fault attack on elliptic curve Montgomery ladder implementation (англ.) // 2008 5th Workshop on Fault Diagnosis and Tolerance in Cryptography : journal. — 2008. — P. 92—98. — doi:10.1109/FDTC.2008.15.
  9. Montgomery, P. Speeding the Pollard and elliptic curve methods of factorization (англ.) : journal. — 1987. — doi:10.1090/s0025-5718-1987-0866113-7.
  10. Izu, T.; Möller, B.; Takagi, T. Improved Elliptic Curve Multiplication Methods Resistant against Side Channel Attacks (англ.) // Progress in Cryptology — INDOCRYPT 2002 : journal. — 2002. — Vol. 2551. — P. 296—313. — doi:10.1007/3-540-36231-2_24.
  11. Steiner, M.; Tsudik, G.; Waidner, M. Diffie-Hellman Key Distribution Extended to Group Communication (англ.) : journal. — 1996. — P. 31—37.
  12. Burnett, S. The RSA security's official guide to cryptography (англ.). — 2001. — ISBN 0072194049.
  13. Naor, M.; Shamir, A. Visual Cryptography (неопр.) // Advances in Cryptology — EUROCRYPT'94. — 1994. — С. 1—12. — doi:10.1007/BFb0053419.
  14. Batina, L.; Guajardo, J.; Kerins, T. Public-key cryptography for RFID-tags (неопр.) // Fifth Annual IEEE International Conference on Pervasive Computing and Communications Workshops (PerComW'07). — 2007. — С. 217—222. — doi:10.1109/PERCOMW.2007.98.
  15. Want R. An introduction to RFID technology (неопр.) // IEEE pervasive computing. — 2006.
  16. Nath B., Reynolds F., Want R. RFID technology and applications (неопр.) // IEEE pervasive computing. — 2006.
  17. Akyildiz I. F. et al. A survey on sensor networks (неопр.) // IEEE Communications magazine. — 2002.
  18. Batina, L.; Mentens, N.; Sakiyama, K. Low-Cost Elliptic Curve Cryptography for Wireless Sensor Networks (англ.) // Security and Privacy in Ad-Hoc and Sensor Networks. ESAS 2006 : journal. — 2006. — Vol. 4357. — P. 6—17. — doi:10.1007/11964254_3.