對可驗(yàn)證秘密共享的簡單介紹

一、秘密共享的實(shí)踐

最近FATE開源社區(qū)分享了「基于FATE實(shí)現(xiàn)的可驗(yàn)證秘密共享算法」一文(后簡稱實(shí)現(xiàn)),介紹了光大科技在聯(lián)邦學(xué)習(xí)技術(shù)實(shí)踐過程中,針對跨機(jī)構(gòu)數(shù)據(jù)統(tǒng)計(jì)這一場景,實(shí)踐了可驗(yàn)證秘密共享(Verifiable Secret Sharing)的安全多方隱私求和方案,能夠在數(shù)據(jù)不出本地的情況下,對多個(gè)機(jī)構(gòu)的數(shù)據(jù)求和。

按照原文介紹可知,該場景是對Shamir秘密共享 和 可驗(yàn)證秘密共享的綜合應(yīng)用(整體方案參見原文)。

這里對文中涉及的可驗(yàn)證秘密共享做一個(gè)簡單說明。

二、可驗(yàn)證秘密共享簡介

可驗(yàn)證秘密共享(Verifiable Secret Share, VSS)的概念由 Benny Chor、Shafi Goldwasser、Silvio Micali 和 Baruch Awerbuch 于 1985 年首次提出:如果參與方可以使用輔助信息驗(yàn)證其他參與方秘密共享內(nèi)容的一致性,那么該秘密共享方案就是可驗(yàn)證的。 可驗(yàn)證的秘密共享確保了即使某參與方是惡意的,也必須有一個(gè)明確定義的秘密(遵循協(xié)議設(shè)定),其他參與方稍后可以恢復(fù)秘密值。

注:經(jīng)典的Shamir秘密共享方案中,假參與方是誠實(shí)的。

可驗(yàn)證的秘密共享對于安全多方計(jì)算來說還是很重要的。 我們知道,安全多方計(jì)算通常是通過對輸入進(jìn)行秘密共享并操作共享來計(jì)算某些函數(shù)完成的。 為了應(yīng)對可能“搗亂”的參與方,可以對秘密共享的安全性進(jìn)行增強(qiáng),額外添加驗(yàn)證操作,防止(或及早發(fā)現(xiàn))這些參與方的偏離協(xié)議行為。

下文對Feldman的可驗(yàn)證秘密共享方案進(jìn)行簡單說明。

三、Feldman的可驗(yàn)證秘密共享方案

Feldman VSS是一個(gè)常見的可驗(yàn)證秘密共享方案,由 Paul Feldman 提出(參見其論文:「A Practical Scheme for Non-interactive Verifiable Secret Sharing」);它在 Shamir 秘密共享之上結(jié)合了同態(tài)加密方案。

該方案中首先選取一個(gè)素?cái)?shù)(q)階的循環(huán)群 G 以及 G 的生成元 g, 這些會(huì)公開作為系統(tǒng)參數(shù)。 選擇適合的循環(huán)群G以保證其上離散對數(shù)計(jì)算的困難性。 通常,可以選擇(\mathbb{Z}_p)^*q 階子群,其中 p,q是素?cái)?shù), 且q整除 p?1 。

然后處理方生成一個(gè) t 次隨機(jī)多項(xiàng)式 P,其系數(shù)在 Z_q 中選取,且 P(0)=s(即是秘密值)。 n個(gè)參與方中的每一個(gè)都將收到一個(gè)值 P(1), \dots, P(n) \bmod q。 任何 t+1 個(gè)秘密分享的持有者都可以使用多項(xiàng)式插值模 q 恢復(fù)秘密 s(但任何最多 t 個(gè)持有者們都不能恢復(fù)秘密值)。

以上基本是Shamir秘密共享方案。為了使這些共享可以驗(yàn)證,參與方需要分發(fā)P多項(xiàng)式系數(shù)模p作為承諾(commitment)。

比如,P(x)=s+a_1x+a_2x^2+\dots+a_tx^t,那么必須給出的承諾是:

  • c_0=g^s \bmod p
  • c_1=g^{a1}\bmod p
  • ...
  • c_t=g^{a_t}\bmod p

一旦給出這些,任何一方都可以驗(yàn)證他們的得到的秘密分享。 例如,為了驗(yàn)證 v = P(i) \bmod q,如:

g^{v}=c_{0}c_{1}^{i}c_{2}^{i^{2}}\cdots c_{t}^{i^{t}}=\prod _{j=0}^{t}c_{j}^{i^{j}}=\prod _{j=0}^{t}g^{a_{j}i^{j}}=g^{\sum _{j=0}^{t}a_{j}i^{j}}=g^{P(i)}

注意,方案中涉及兩個(gè)素?cái)?shù),再稍作說明。

需要選擇兩個(gè)素?cái)?shù)p,q,滿足 q|p-1,他們分別應(yīng)用在不同的計(jì)算上:

  • 使用隨機(jī)多項(xiàng)式P(x)計(jì)算秘密共享的時(shí)候使用q,即v_i=P(i)\bmod q。

  • 計(jì)算承諾的時(shí)候使用p,即c_i=g^{coef}\bmod p。

四、示例

選擇如下參數(shù):

  • p=11,q=5
  • g=3
  • 秘密值為4;選取2階隨機(jī)多項(xiàng)式為P(x)=3x^2+2x+4,即s=4,a_1=2,a_2=3 \in \mathbb{Z}_q

則計(jì)算一個(gè)秘密共享為v_1=P(1)\bmod 5 = 9\bmod 5=4,對應(yīng)的承諾為

  • c_0 = g^s \bmod p=3^4\bmod 11=4
  • c_1 = g^{a_1} \bmod p=3^2\bmod 11=9
  • c_0 = g^{a_2} \bmod p=3^3\bmod 11=5

可以驗(yàn)證

  • g^v = 3^4\equiv4(\bmod 11)
  • c_0c_1^1c_2^{1^2}=4\times9\times5=180\equiv4(\bmod11)

綜上,VSS主要是對共享內(nèi)容的一致性進(jìn)行驗(yàn)證,保證其內(nèi)容是遵循方案協(xié)議的;至于參與計(jì)算的內(nèi)容是否真實(shí)有效,就不在驗(yàn)證范圍內(nèi)了。

五、其他

對于秘密分享,有很多方案;除了Shamir秘密共享,還有Additive Secret Share、SPDZ、基于中國剩余定理的方案等等。

對于VSS,常見的還有Benaloh方案。

后續(xù)再做跟進(jìn)整理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容