Рейтинг:0

Реализация EC на кривых Эдварда: какой модуль используется в реализации?

флаг cn

Я пытаюсь реализовать скалярное умножение EC максимально быстрым способом (но все же с хорошей кривой) на графическом процессоре.
Я специально пытаюсь реализовать его на основе https://github.com/Chair-for-Security-Engineering/ecmongpu и пытаюсь использовать другие кривые, такие как Curve25519 (или Edwards25519, я считаю, что это разница в представлении).
Я заметил, что все вычисления по координатам x и y выполняются по модулю некоторого числа n (я полагаю, что это число, которое код предназначен для коэффициента грубой силы).
Если я не собираюсь использовать коэффициент грубой силы для числа, а просто реализую скалярное умножение EC с использованием этого кода, какое число я должен использовать для вычислений модуля?

(NB: я все еще новичок в криптографии EC, поэтому ссылки на соответствующие ресурсы приветствуются)

Бонусный вопрос: следует ли использовать расширенные или инвертированные координаты?

kelalaka avatar
флаг in
$n$ — простое число, определяющее кривую. Это $ 2 ^ {255}-19 $, откуда следует название. [EdDSA] (https://en.wikipedia.org/wiki/EdDSA#Ed25519)
fgrieu avatar
флаг ng
И это простое число $2^{255}-19$ обычно обозначается как $p$, а не $n$.
kelalaka avatar
флаг in
И [RFC 8032] (https://datatracker.ietf.org/doc/html/rfc8032) является вашим руководством.
knaccc avatar
флаг es
См. https://eprint.iacr.org/2014/198.pdf, который представляет собой реализацию графического процессора Curve25519.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.