bcrypto / btok

Cryptographic tokens
4 stars 4 forks source link

Базовая точка с нулевой x-координатой #66

Closed agievich closed 5 years ago

agievich commented 5 years ago

В криптографических алгоритмах BTOK требуется находить точку эллиптической кривой, кратную базовой: R <- k G. Используются стандартные параметры эллиптических кривых, и x-координата базовой точки равняется нулю.

Проблема. Криптоакселераторы некоторых микроконтроллеров неверно воспринимают точку G с нулевой x-координатой (возможно считая ее бесконечно удаленной).

Решение (одно из возможных):

if (k % 2 == 0)
  R <- k/2 (2G)
else
  R <- -(q - k)/2 (2G)

Здесь q -- порядок G (нечетное число). Следует предварительно вычислить (и хранить вместо G или вместе с G) точку 2G.