Signature
由多個私鑰之一可驗證地生成的簽名,而無需透露是哪一個
是否有一種加密算法允許:
- 生成一組不同的私鑰
- 用這些私鑰簽署數據
- 允許公開驗證這樣的簽名是由集合中的一個密鑰創建的,而無需透露它是哪一個
- 為創建簽名的人提供一種方法,以證明該簽名是由他專門創建的
如果是這樣,哪一個具有這些屬性?
這稱為可連結自發匿名組簽名 (LSAG)。
我在下面描述了一個稱為可連結環簽名的 LSAG 的 EC 實現。
環簽名證明一組聲明的公鑰中的一個的私鑰持有者已經簽署了一條消息,但不可能知道是哪個密鑰持有者簽名的。這稱為簽名者歧義。
這可以擴展到“可連結環簽名”的概念。對環進行簽名使得“密鑰圖像”也被聲明為簽名的一部分。密鑰圖像是簽名者的私鑰在公鑰上的標量乘法,該公鑰是通過從簽名者的公鑰的雜湊中提取一個點而創建的。
key image = private key * hash_to_ec_point(public key)
. 環簽名的構造證明了密鑰圖像是由真實簽名者擁有的相同私鑰和公鑰形成的,而觀察者無法分辨出密鑰圖像屬於誰。真正的簽名者可以通過提供簽名(例如簡單的 Schnorr 簽名)來證明他們是真正的簽名者,以證明他們知道密鑰圖像的私鑰,該密鑰圖像被聲明為原始可連結環簽名的一部分。
有關實現範例,請參閱“Back 的可連結自發匿名組 (bLSAG) 簽名”。我已經包含了下面的代數,摘自零到門羅的第 3.4 節。
如果當您編寫“使用這些私鑰簽名數據”時,您的意思是“使用其中一個私鑰簽名數據”您可以使用Group Signatures實現前三個屬性。關於最後一個屬性,您可能可以通過使用與組簽名兼容的系統知識證明來實現這一點。