Public-Key

非對稱密鑰派生——誰派生新的公鑰不知道新的私鑰?

  • August 30, 2020

我正在尋找可以做到這一點的同行評審協議或算法,我優先需要基於橢圓曲線密碼學的東西。

Alice 知道 Bob 的主公鑰(B-PUB-1)。Alice 想以非對稱方式從 Bob 的公鑰 (B-PUB-1) 導出一個新的公鑰 (B-PUB-2)。新密鑰對應一個私鑰 (B-PRIV-2),只有 Bob 可以通過從他的原始私鑰 (B-PRIV-1) 派生它來生成。這是通過從 Alice 到 Bob 的一次通信完成的,沒有回复。(B-PUB-1, B-PRIV-1) 的唯一重要用途是生成幾個不同的密鑰對實例 (B-PUB-2, B-PRIV-2),Alice 和 Bob 也可以使用其他鍵。

這樣,Bob 就擁有了與 Alice 創建的公鑰對應的新私鑰。

Bob 現在可以生成帶有B-PRIV-2的消息**m的某些簽名,可通過B-PUB-2驗證。一個基本要求是B-PUB-2和使用**B-PRIV-2生成的簽名不能與除了 Alice 之外的任何人關聯到B-PUB-1

目的不是讓 Alice 成為唯一能夠驗證消息簽名的人。

相反,Alice 將發布B-PUB-2,因此每個人都將能夠驗證m具有對應於B-PUB-2的簽名,但沒有人能夠將該簽名與B-PUB-1和 Bob 相關聯。

這個想法是 Bob 相信 Alice 沒有興趣透露他的身份(B-PUB-2 源自 B-PUB-1 的事實),但 Bob 不能完全信任 Alice。

她可以嘗試使用生成的密鑰來創建假簽名。所以 Bob 不能簡單地要求 Alice 生成一個密鑰對,發布 B-PUB-2 並將 B-PRIV-2 發送給他。

我認為算法可以工作的方式的草圖:

  • 愛麗絲選擇一些隨機秘密
  • Alice 使用該秘密和 Bob 的公鑰 ( B-PUB-1 ) 創建另一個密鑰 ( B-PUB-2 )
  • 愛麗絲使用加密通道將隨機秘密發送給鮑勃,這可以通過普通的公鑰加密來完成。如果使用B-PUB-1進行加密會導致安全漏洞, Alice 可以使用B-PUB-1或完全不同的 Bob 的公鑰來發送密鑰。
  • Bob 獲得 Random Secret 並對B-PRIV-1做某事以獲得 B-PRIV-2
  • Alice 發布B-PUB-2
  • Bob 創建一條消息m並使用B-PRIV-2對其進行簽名
  • Bob 以匿名方式發布消息
  • 每個人都可以使用B-PUB-2控制簽名

恐怕這個答案姍姍來遲,但你所要求的實際上是可能的。如果您使用依賴離散對數問題的公鑰加密來保護私鑰,例如ECDSA(用於簽名)和ECIES(用於加密),則更容易。其他方案也可能有可能,但不是那麼容易(至少,不像離散對數那樣簡單)。

您可以使用類似 ECIES 中“共享加密密鑰”的推導來解決您的問題。

在 ECIES 和 ECDSA 中,私鑰 $ k $ 是一個大整數,而公鑰 $ P_{k} $ 是橢圓曲線上的一個點 $ \mathrm{E} $ 源自 $ k $ 通過計算 $ P_k=k\cdot G $ , 為了 $ G $ 具有大素數階的曲線生成器 $ n $ (通常與您使用的曲線一起標準化)。

這意味著您實際上可以派生另一個公鑰 $ k\cdot G $ 就像您要求的那樣:

  1. 愛麗絲選擇一個隨機的秘密整數 $ r $
  2. 她計算要點 $ R=r\cdot G $ 在曲線上 $ \mathrm{E} $
  3. 然後她可以計算派生的公鑰 $ P_{kr} $ 通過添加公鑰點 $ P_k $ 和重點 $ R $ 一起: $ P_{kr}=P_k+R $

而現在,對應的私鑰 $ k’ $ 簡直就是 $ k’=k+r $ ,由於標量乘法的定義,使其在群律上分佈 $ + $ , 意思就是 $ P_k+R = k\cdot G + r\cdot G = (k+r)\cdot G $ .

所以 Alice 可以簡單地發送 $ r $ 給 Bob,而 Alice 仍然不能為這個子公鑰簽署任何東西(在 ECDSA 的情況下) $ P_{kr} $ .

的知識 $ r $ 只允許發現“主”公鑰 $ P_k $ . (所以你可能想保密,這取決於你的需要。)

如果您想讓該方案適應橢圓曲線以外的其他東西,您可能會這樣做,但您必須依靠離散對數問題才能使用相同的技巧。例如,此特定方法不適用於 RSA 密鑰。

PS:我也知道某些比特幣錢包中使用了更複雜的方案,但我還沒有時間研究它,上面介紹的方案要簡單得多。但以防萬一,您可能還想檢查BIP32中做了什麼。

我不知道有什麼方案可以滿足您上面定義的要求,但是:

如果您的目標是 Bob 可以簽署一條消息,以便只有 Alice 可以驗證它並且她不能證明此消息是由 Bob 發送的,那麼變色龍簽名(又稱可否認簽名)就是您正在尋找的工具。

方案在 Hugo Krawczyk, Tal Rabin: Chameleon Hashing and Signatures (1997) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.50.3262中提出

如果您正在尋找私鑰隨時間更改的方案,您可能需要查看前向安全簽名/加密。

引用自:https://crypto.stackexchange.com/questions/15207