Рейтинг:1

Работа с Paillier и ECDSA - Оформление заказа

флаг sm
Ron

Я пытаюсь реализовать двухстороннее вычисление для подписи ECDSA с использованием криптосистемы Paillier.

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

Конкретный пример:

Порядок Пайе - N
Заказ ECDSA - Q

Алиса получила свой секретный ключ - aliceSK
Боб получил свой SecretKey - bobSK

Алиса генерирует пару ключей Пайе - (paAliceSK, paAlicePK)

ожидаемое Res = (aliceSK X bobSK) mod Q

encAliceSK = Paillier.Encrypt(paAlicePK, aliceSK)
encBobSK = Paillier.Encrypt(paAlicePK, bobSK)

encRes = Paillier.Mul(paAlicePK, encAliceSK, encBobSK)

res = Paillier.Decrypt (paAlicePK, encRes)
разрешение = разрешение по модулю Q

Я получаю в конце, что разрешение != ожидаемое разрешение.

Но когда я рассчитаю ожидаемое разрешение с модом N, я получу res == ожидаемоеRes.

Итак, мой вопрос заключается в том, как мне использовать Пайе и вернуть расшифрованный результат Пайе обратно в порядок кривой.

kelalaka avatar
флаг in
Хэш перед знаком?
Рейтинг:1
флаг ng

Один из вариантов: мы выбираем небольшое общедоступное целое число. $г>1$ с $r^{(q-1)/2}\equiv-1\pmod q$, и обеспечить² $n$ в Пайлере по крайней мере $2q-1$. В настоящее время $x\mapsto r^x\bmod q$ является биекцией на $[1,q)$.

Алиса выбирает $\widetilde{\mathsf{aliceSK}}$ равномерно случайным образом в $[1,q)$ и выводит $\mathsf{aliceSK}=r^{\widetilde{\mathsf{aliceSK}}}\bmod q$. Она Пайлер-шифрует $\widetilde{\mathsf{aliceSK}}$.

То же самое для Боба.

В некоторой степени шифротексты Пайлера объединяются по Пайлеру (то есть умножаются по модулю $n^2$ куда $n$ является общедоступным модулем Пайлера) и расшифрованным Пайлером до $d=\widetilde{\mathsf{aliceSK}}+\widetilde{\mathsf{bobSK}}$

И отсюда можно получить

$$\mathsf{aliceSK}\times\mathsf{bobSK}\bmod q=r^d\bmod q$$


С 256-битными и даже 384-битными $q$, это достаточно легко найти $\widetilde{\mathsf{aliceSK}}$ от $\mathsf{aliceSK}$. Таким образом, эту технику можно использовать и после $\mathsf{aliceSK}$ рисовался стандартным образом.

Я никогда не видел, чтобы это предлагалось, но это настолько просто, что я сомневаюсь, что это ново.


¹ Метод проб и ошибок с $г$ первые простые числа найдут его быстро в среднем за две попытки.

² Это будет справедливо для общего $q$ в ECDSA, который обычно составляет несколько сотен бит, и общий $n$ для безопасного Пайе, который обычно измеряется тысячами бит.

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

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