2013-04-24 97 views
0

如何將兩個ECDSA私鑰/公鑰組合成一個?我知道它是在openssl中添加了模塊化的,我只是不明白它是如何工作的。任何人都可以向我解釋?結合ECDSA密鑰

回答

2

你可以通過添加兩個私有密鑰

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對象)時設置。

0

ECDSA私鑰 - 只是一個數字,是基點的順序。 您可以添加兩個私鑰(即數字),減少求和求模基點順序,並將基點指數賦給該順序。 但爲什麼你需要這個?

+0

用於密鑰的分裂密鑰零信任生成。 privateA + privateB == publicA + publicB。不過,我不會按照你的回答。你是指什麼基點的順序? – 2013-04-24 22:15:23

+0

基點的順序是,嗯,只是基點的順序:)或者,曲線的順序,橢圓曲線點的順序,不知道它有什麼othar同義詞。將基點G加到它自己N次(其中N是次序),將產生相同的點G. – 2013-04-25 08:29:26