首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Paillier和ECDSA合作-订单问题

与Paillier和ECDSA合作-订单问题
EN

Cryptography用户
提问于 2022-05-31 11:39:40
回答 1查看 89关注 0票数 1

我试图用Paillier密码系统实现ECDSA签名的两方计算。

但我的问题是,Paillier的顺序不同于曲线的顺序(在我的例子中是secp256k1),所以当我在Paillier中乘两个标量,然后解密它们时,它们的顺序与其他参数的顺序不同。

具体例子:

代码语言:javascript
复制
Paillier order - N
ECDSA order - Q

Alice got her secretKey - aliceSK
Bob got his SecretKey - bobSK

Alice generate Paillier key pair - (paAliceSK, paAlicePK)

expectedRes = (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)
res = res mod Q

我到了最后那个res != expectedRes

但是当我用mod N计算expectedRes时,我会得到res == expectedRes

因此,我的问题是如何使用Paillier,并将解密后的Paillier结果返回到曲线顺序。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2022-05-31 13:53:23

一种可能性是我们选择一个带有r^{(q-1)/2}\equiv-1\pmod q的小公共整数n,并确保Pailler中的D2至少是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}}进行加密.

鲍勃也是。

在某种程度上,Pailler密文将Pailler合并(即乘以模n^2,其中n是公共Pailler模数)和Pailler解码为d=\widetilde{\mathsf{aliceSK}}+\widetilde{\mathsf{bobSK}}

从这一点上可以得到

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

使用256位甚至384bit的q,从\mathsf{aliceSK}中找到\widetilde{\mathsf{aliceSK}}相当容易.因此,这一技术也可以在绘制\mathsf{aliceSK}的标准方式之后使用。

我从来没有见过这个提议,但它是如此简单,我怀疑它是新的。

r的试验和错误第一素数将很快发现一个在平均两次尝试。

用于ECDSA的通用q (通常为数百位)和用于安全Paillier的通用n (通常为数千位)。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/100368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档