如何将两个ECDSA私钥/公钥对组合成一个?我知道在openssl中完成了模块化添加,我只是不明白它是如何工作的。任何人都可以向我解释一下吗?
答案 0 :(得分:2)
您可以通过添加两个私钥
来实现privkey = privateA + privateB (mod order)
或者,在OpenSSL代码中:
BN_mod_add_quick(privkey, privateA, privateB, order);
此处order
是order = s - j
的最小数字,对于椭圆曲线上的点P,sP = jP
。新私钥的公钥为pubkey = privkey * G
或:
EC_POINT_mul(group, pubkey, privkey, NULL, NULL, ctx);
order
和生成点G
的值是曲线参数,在创建和设置group
(EC_GROUP对象)时设置。
答案 1 :(得分:0)
ECDSA私钥 - 只是一个基数点的数字。 您只需添加两个私钥(即数字),减少和模基点顺序,并将基点取幂为此顺序。 但你为什么要这个呢?