Сочетание ключей ECDSA

Как я могу объединить две частные / открытые пары ключей ECDSA в одну? Я знаю, что это сделано с модульным добавлением в openssl, я просто не понимаю, как это работает. Кто-нибудь может мне это объяснить?

0

Решение

Вы можете сделать это, добавив два закрытых ключа

privkey = privateA + privateB (mod order)

или в коде OpenSSL:

BN_mod_add_quick(privkey, privateA, privateB, order);

Вот order наименьшее число, где order = s - jтакой, что sP = jP для точки P на эллиптической кривой. Открытый ключ вашего нового закрытого ключа pubkey = privkey * G, или же:

EC_POINT_mul(group, pubkey, privkey, NULL, NULL, ctx);

Значения order и генератор точки G являются параметрами кривой и задаются при создании и настройке group(объект EC_GROUP).

2

Другие решения

Закрытый ключ ECDSA — это просто число, порядок базовой точки.
Вы можете просто добавить два закрытых ключа (то есть числа), уменьшив сумму по модулю порядка базовых точек и возведя в степень базовую точку для этого порядка.
Но зачем тебе это?

0

По вопросам рекламы [email protected]