结合ECDSA密钥

时间:2013-04-24 17:10:45

标签: c++ openssl addition ecdsa modular-arithmetic

如何将两个ECDSA私钥/公钥对组合成一个?我知道在openssl中完成了模块化添加,我只是不明白它是如何工作的。任何人都可以向我解释一下吗?

2 个答案:

答案 0 :(得分:2)

您可以通过添加两个私钥

来实现
privkey = privateA + privateB (mod order)

或者,在OpenSSL代码中:

BN_mod_add_quick(privkey, privateA, privateB, order);

此处orderorder = 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私钥 - 只是一个基数点的数字。 您只需添加两个私钥(即数字),减少和模基点顺序,并将基点取幂为此顺序。 但你为什么要这个呢?