Рейтинг:2

Случайная генерация действительного скаляра на выбранной кривой

флаг cn

Моя реализация требует, чтобы я случайным образом генерировал действительный скаляр на кривой. Насколько я понимаю, это не генерация случайных чисел, а более сложная вещь.

Я должен генерировать такие скаляры на стороне сервера и на стороне клиента по следующей схеме:

Клиент:

X = x à G + w0 à M

куда

  • x - сгенерированный скаляр!

  • G - базовая точка кривой

  • w0 - число, представленное 32-байтовым массивом

  • M - постоянная точка на кривой

  • X - полученная точка

Сервер:

Y = y à G + w0 à N

куда

  • y - сгенерированный скаляр!
  • G - базовая точка кривой
  • w0 - число, представленное 32-байтовым массивом
  • N - постоянная точка на кривой
  • Y - полученная точка

Затем клиент и сервер обмениваются точками X и Y.

И рассчитать точку Z следующим образом:

  • Клиент: Z = x à (Y w0 à N)
  • Сервер: Z = y à (X w0 à M)

Вопрос № 1: каков механизм действительной скалярной случайной генерации на кривой?

Вопрос № 2: какая математическая операция стоит за вычитанием точек?

kelalaka avatar
флаг in
Для генерации случайных точек: [Создание случайной точки на эллиптической кривой над конечным полем] (https://crypto.stackexchange.com/a/68603/18298), а сложение точек и отрицание [здесь] (https:// crypto.stackexchange.com/q/66288/18298)
Рейтинг:1
флаг es

Скаляры не "на кривой". Скаляры — это просто положительные целые числа (включая ноль), меньшие группового порядка $\ell$ генератора кривых. Например. для кривой Ed25519 порядок группы $\ell$ является $2^{252} + 27742317777372353535851937790883648493$.

Чтобы сгенерировать несмещенный случайный скаляр, используйте «выборку отклонения». Это означает использование механизма для надежной генерации равномерно случайного целого числа в диапазоне, по крайней мере равном $\ell$, и принимать его только в том случае, если он меньше $\ell$.

Все скалярные операции, включая сложение, умножение и вычитание, выполняются $mod\ell$. Разделение достигается путем нахождения чего-то, называемого "модульный мультипликативный обратный".

Операции с точками, такие как вычитание точек, будут выполняться вашей библиотекой EC. Видеть здесь для большего.

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

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