如何證明同時了解222私鑰?
我正在尋找一種方法讓一個人簽署或以其他方式提供來自密鑰對的兩個私鑰的所有權證明 $ A $ & $ B $ .
同時擁有很重要。愛麗絲不能做部分證明 $ A $ ,然後將證明傳遞給 Bob 以完成 $ B $ . 證明需要兩個密鑰在一個步驟中。例如用 $ A $ 然後 $ B $ 不起作用,因為這項工作可能會在兩個演員之間分配。
兩個都 $ A $ & $ B $ 密鑰對是正常的、獨立的密鑰對。即這不是關於將單個私鑰拆分為多個部分進行重建。
任何提示都表示讚賞,但最終我想使用 RSA 或 ECDSA 來實現它。
更新:一些進一步的界限:
- 這不必是一個步驟或一個簽名。只要不能在不暴露私鑰的情況下被兩方勾結,任何過程都是可以接受的。
Alice 擁有(私有,公共)EC 密鑰對 $ (a, A=aG) $ ,鮑勃有 $ (b, B=bG) $ .
假設 Alice 開始簽名,並把它交給 Bob 來完成(或者以某種方式與 Bob 合作完成它)。這將意味著:
- 你需要確保愛麗絲給鮑勃的任何東西都會洩露 $ a $ 給鮑勃,不可能設計出任何阻止鮑勃學習的方案 $ a $ 通過某種形式的盲目合作。
- 簽名不是零知識,並且會將其中一個私鑰透露給另一個私鑰的持有者。
實現選項 2 的一種簡單方法是通過以下任一方式提供簽名 $ A $ 或者 $ B $ , 並包含值 $ d=a-b $ . 驗證者可以輕鬆地檢查 $ dG\overset{?}{=}A-B $ . 這意味著知識 $ d $ 將允許具有任何知識的人 $ a $ 或者 $ b $ 恢復價值 $ b $ 或者 $ a $ 分別。
通常,愛麗絲不想讓其他人知道 $ d $ ,因為某些簽名方案沒有正確綁定到預期的公鑰,對於想要簽名的人來說是可延展的 $ A $ 看起來它實際上是由 $ B $ . 但是,只要簽名方案對這種攻擊是安全的,就可以避免這種情況,如果公眾知道這種威脅可能並不重要 $ A $ 和 $ B $ 屬於同一個人。
由於這不是零知識證明,因此存在知識的風險 $ d $ 在某些我沒有想到的情況下可能會產生不良後果。
ECDSA 案例的一種解決方案是讓所有者使用密鑰 a+b 簽名(即按照曲線的順序將私鑰添加在一起)。
這很容易驗證,因為公鑰也是 A+B(即把公鑰加在一起)。