什麼是 Pedersen 承諾?
我找不到任何答案來提供有關 Pedersen 承諾是什麼或它們的用途的高級概述。
Pedersen 的承諾是什麼
在諸如 Pedersen 的承諾計劃中
- 送出者(或發送者)決定(或被給予)一條秘密消息 $ m $ 在一些至少包含兩個元素的公共資訊空間中拍攝;
- 決定一個隨機的秘密 $ r $ ;
- 從中產生 $ m $ 和 $ r $ 一個承諾 $ c=\mathcal C(m,r) $ 通過應用一些公共方法(承諾算法 $ \mathcal C $ )由計劃界定;
- 使 $ c $ 上市;
- 後來揭示 $ m $ 和 $ r $ .
- 給定驗證者(或接收者) $ c $ , $ m $ , $ r $ 並且可以檢查是否確實 $ \mathcal C(m,r)=c $ . 如果按照規定執行 1/2/3/4/5,這將始終成立。
非正式地,這在任何其他情況下都不能成立,包括送出者更改時 $ m $ 在步驟 1 和 5 之間或選擇 $ r $ 惡意的。更遠, $ c $ 必須不提供任何線索 $ m $ 在第 5 步之前。
更正式地說:如果對手能夠表現出以下任何一項,那麼他/她就成功了
- $ m $ , $ m’ $ , $ r $ 和 $ r’ $ 和 $ m\ne m’ $ 和 $ \mathcal C(m,r)=\mathcal C(m’,r’) $
- $ m $ 和 $ m’ $ 和 $ m\ne m’ $ 這樣,對於隨機的秘密選擇 $ r $ 並給定一個隨機選擇的值 $ c=\mathcal C(m,r) $ 和 $ c’=\mathcal C(m’,r) $ ,如果給定的值為 $ c $ 或者 $ c’ $ .
Pedersen 承諾使用公共組 $ (G,\cdot) $ 大訂單 $ q $ 其中離散對數很難,兩個隨機公共生成器 $ g $ 和 $ h $ . 隨機秘密 $ r $ 被選在 $ \Bbb Z_q $ , 消息 $ m $ 來自任何一個子集。承諾是 $ \mathcal C(m,r)=g^m\cdot h^r $ .
參考描述是 Torben Pryds Pedersen 的Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing的第 3 節,在Crypto 1991 的程序中。
它們的用途
承諾是秘密寫作的密碼學等價物 $ m $ 在一個密封的、防篡改的、單獨編號(或/和會簽)的信封中,由寫信人保管。信封的內容不能更改(綁定屬性),消息不能洩漏(隱藏屬性)。在密碼學帶來的改進中,我們不需要檢查信封是否真的被密封,事情可以遠端完成;數量豐富且可回收。另一方面,我們需要電腦,而這種方法只會說服那些既信任數學又信任他們使用的電腦的人。
一個範例應用程序公平地決定誰在 Bob 和 Carol 之間的網球比賽中先發球,以某種方式說服他們和 Valery(擔任裁判)。約定如果 Bob 能猜到 Carol 的選擇,則 Bob 先發球;否則,卡羅爾會。
使用這樣的信封,可以這樣做:
- 卡羅爾暗自決定 $ m $ 在 $ {0, 1} $ ,寫在紙上,放入信封,封好,給鮑勃和瓦萊里看,但保留信封。
- 鮑勃宣布猜測 $ m_b $ 在 $ {0, 1} $ ; 他和瓦萊里還不知道結果,但卡羅爾知道。
- 卡羅爾陳述了她的選擇 $ m $ 並將信封交給瓦萊里。
- 瓦萊里檢查是否 $ m\ne m_b $ 並且(只需要在肯定的情況下)打開信封以檢查它是否包含一張帶有 $ m $ 寫在上面;在這種情況下,Carol 先發球。否則,鮑勃會這樣做。
使用承諾,Carol 作為送出者,Valery 作為驗證者:
- 卡羅爾暗自決定 $ m $ 在 $ {0, 1} $ 並執行 2/3/4,宣布 $ c $ .
- 鮑勃宣布猜測 $ m_b $ 在 $ {0, 1} $ ; 他和瓦萊里還不知道結果,但卡羅爾知道。
- 卡羅爾陳述了她的選擇 $ m $ 和 $ r $ .
- 瓦萊里檢查是否 $ m\ne m_b $ 和(僅在肯定時需要) $ \mathcal C(m,r)=c $ ; 在這種情況下,Carol 先發球。否則,鮑勃會這樣做。
鮑勃不能作弊,因為 $ c $ (他在選擇時知道 $ m_b $ ) 不給他任何線索 $ m $ .
卡羅爾不能通過選擇作弊 $ r $ 以便 $ \mathcal C(0,r)=\mathcal C(1,r) $ 並將結果值設為 $ c $ ,這將允許她宣布 $ m $ 每 $ m_b $ . 失敗了,她無法改變她的選擇 $ m $ ,因為檢查 $ \mathcal C(m,r)=c $ 然後會抓住它。
正如雨披所指出的, $ H(m,r) $ 在哪裡 $ H $ 是一個(抗原像的)散列是一個承諾 $ m $ . 與此相比,Pedersen 承諾:
- 允許諸如證明承諾值之間的加法相等性(以組順序為模)之類的事情,而不透露它們;等等。_
- 即使是計算無界的對手,也能保持它們的隱藏屬性。