组合ECDSA密钥
Combining ECDSA keys
如何将两个ECDSA私有/公共对组合为一个?我知道它是在openssl中使用模块化添加完成的,我只是不明白这是如何工作的。有人能给我解释一下吗?
可以通过添加两个私钥来实现
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对象)时设置。
ECDSA私钥-只是一个数字,基数的顺序。您可以只添加两个私钥(即数字),减少和模基点顺序,并对基点取幂到这个顺序。但你为什么需要这个呢?
相关文章:
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 允许从 std::map 的密钥窃取资源?
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 在没有密钥的情况下读取密文的剩余噪声预算
- 如何修复无效的API密钥,IP或操作权限错误?
- 所有可能的链接生成器与64位密钥
- 如何在unordered_map中更改密钥?
- 获取当前密钥状态?
- curl_easy_perform() 失败:SSL 对等证书或 SSH 远程密钥不正常
- 将密钥发送到非前台的游戏窗口
- 有哪些方法可以对基于 256 位密钥的矩阵进行加扰?
- 如何在精灵表上的两个不同部分之间来回切换,同时用户仍使用 SFML 持有密钥
- 如何将CNG密钥转换为OpenSSL EVP_PKEY(反之亦然)?
- 运行密钥密码解密知道密钥?
- std::unordered_map 运算符 [] 是否对非现有密钥进行零初始化?
- 封装 std::map 以允许迭代,但没有直接密钥访问?
- ECDSA 密钥对生成输出错误
- Microsoft加密 API 是否允许从字节流创建 ECDSA 密钥?
- ECDSA 使用 SecByteBlock 密钥对
- 组合ECDSA密钥