亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們可以為 OpenSSL ECC 擁有多個公鑰和一個私鑰嗎?

我們可以為 OpenSSL ECC 擁有多個公鑰和一個私鑰嗎?

PHP
呼啦一陣風 2022-07-16 16:44:58
我在我的項目中使用 php OpenSSL。如何使用單個私鑰創建多個公鑰?在 RSA 中,我們不能做這樣的事情。但是ECC呢?
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

[k]G根據定義,對于一般橢圓曲線密碼系統中的每個私有標量(私鑰),曲線上都有一個點(公鑰)由G曲線生成點和k私有標量生成。

僅供參考,在雙有理等效曲線的一個有點不尋常的怪癖中,您實際上可以將蒙哥馬利曲線 X25519 公鑰映射到兩個扭曲的愛德華茲曲線 Ed25519 公鑰,因為蒙哥馬利曲線點不攜帶 av 坐標,但是,這對您的用例。

通常,如果我們想從單個種子(源)定義多個密鑰對(不僅僅是公鑰),可以使用從主密鑰派生的密鑰來實現。

但是,您必須處理多個私鑰。

您似乎建議私鑰將存在于服務器上,所以我認為您實際上不需要多個公鑰。我建議您使用單個密鑰對和 EdDSA 或 ECDSA 簽署多個密鑰對以在客戶端設備上使用。簽名可用于將其來源鏈接到單個身份。

請提供更多背景信息,我將進一步提供幫助。


查看完整回答
反對 回復 2022-07-16
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

在 ECC 中有一種方法,叫做多樣化密鑰。它存在于蘋果的 CommonCrypto 中,來自CommonECCryptor.h


@function   CCECCryptorTwinDiversifyKey


@abstract   Diversifies a given EC key by deriving two scalars u,v from the

            given entropy.


@discussion entropyLen must be a multiple of two, greater or equal to two

            times the bitsize of the order of the chosen curve plus eight

            bytes, e.g. 2 * (32 + 8) = 80 bytes for NIST P-256.


            Use CCECCryptorTwinDiversifyEntropySize() to determine the

            minimum entropy length that needs to be generated and passed.


            entropy must be chosen from a uniform distribution, e.g.

            random bytes, the output of a DRBG, or the output of a KDF.


            u,v are computed by splitting the entropy into two parts of

            equal size. For each part t (interpreted as a big-endian number),

            a scalar s on the chosen curve will be computed via

            s = (t mod (q-1)) + 1, where q is the order of curve's

            generator G.


            For a public key, this will compute u.P + v.G,

            with G being the generator of the chosen curve.


            For a private key, this will compute d' = (d * u + v) and

            P = d' * G; G being the generator of the chosen curve.

就像您的情況一樣,加密貨幣也可能需要它。通過多樣化,人們可以實現某種程度的匿名性。如果一個人總是使用相同的公鑰,那么他們一直都與這個公鑰相關聯。如果一個人可以用他們的私鑰/公鑰使他們的公鑰多樣化,那么他們就能夠使用多樣化的新身份。身份多元化,很難與原本的身份聯系起來。


在上述方案中,新的公鑰u和v將是多元化[u]P + [v]G的,多元化的私鑰將是


d' = (d \cdot u + v)


并驗證多樣化的公鑰


P' = [d']G = [d \cdot u + v]G = [d \cdot u]G + [v]G = [u]P + [v]G


總之,你有了新的身份,但在幕后,依然是你。


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 275 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號