禹亮龍,杜偉章
長沙理工大學 計算機與通信工程學院,長沙 410114
秘密共享是數據加密中重要技術,也是信息安全中一個重要研究方向,它在密鑰管理、數字簽名和多方計算等領域起著關鍵作用。在1979年,由Shamir[1]和Blakely[2]提出兩種不同的(t,n)門限秘密共享方案,分別是基于Lagrange 插值法和射影幾何理論提出。在(t,n)門限秘密共享中,秘密S將被可信中心(即分發(fā)者)D分成n個份額,并且滿足以下條件:(1)恢復出秘密S需要任意t位或者t位以上的有效份額;(2)如果有效份額少于t個,則秘密S不能被計算出。
現有的許多的秘密共享基本都要求參與者一直誠實的情況下進行的。但是,在恢復秘密的過程中,不可避免地存在著內部欺騙者或者外部欺騙者,比如存在非法外部參與者加入到秘密恢復中,使得秘密泄露,也有可能存在內部參與者進行欺騙行為,使得只有自己能夠計算計算得出秘密,其他參與者得到錯誤的秘密。一種情況是,當有m(m>t)位合法的參與者加入秘密恢復階段時,假設參與者交換份額不是同步的,那么就有可能有一個無效份額的持有者參與恢復,通過恢復時的安全信道,至少能夠獲得t個有效份額,那么外部欺騙者就能夠恢復正確的秘密,使得秘密泄露。另一種情況是,擁有有效份額的持有者與其他參與者交換份額時,使用的是錯誤的份額,但是欺騙者卻可以得到有效份額,那么就會造成只有內部欺騙者才有可能計算出正確的秘密。針對上面的情況,要保證方案的公平性,即如何確保:(1)有且僅當參與者提供的份額都為有效時,才可以計算出正確的秘密。(2)當有錯誤的份額或者份額不全時,正確的秘密就不能被解出。目前,主要研究的方面是方案的公平性以及可驗證性。
Chor[3]于1985 年首次提出了可驗證秘密共享的概念,通過填加份額驗證,來防止欺騙者。近幾年來,隨著信息安全技術的深入研究,越來越多的秘密共享方案[4-10]也被相繼提出。但是在大多數方案中,可信中心為參與者計算并分配秘密份額,并通過信道發(fā)送給他們,這會導致分發(fā)者持有的信息數大,權利過重等問題,這樣也導致分發(fā)者需要進行的計算量大并容易遭受攻擊。1987年,Feldman[11]提出了一種新的秘密共享方案,在不需要可信中心的第三方參與的情況下,能夠抵抗(n-1)/2位內部欺騙者或者外部欺騙者的合作欺騙。1994年,Harn[12]提出了一種不需要可信中心的門限群簽名方案。2003 年,王斌和李建華[13]對Harn 的簽名方案進行分析,并指出其中的不足,并提出了一種新的無可信中心的門限簽名方案。2007年,龐遼軍等人[14]提出了一種不需要可信中心來分發(fā)份額的秘密共享方案,但還是需要可信中心來選擇份額的一些參數和計算一些公開信息。2016年,于佳等人[15]提出了一種可驗證的多秘密共享方案,可以同時對多個秘密進行分發(fā)。2017年,彭巧[16]的可驗證方案;2018 年,張艷碩等人[17]的基于特征值的無可信中心的秘密共享方案研究等。
方案分為份額分發(fā)和秘密恢復兩個階段。
份額分發(fā)階段:分發(fā)者D隨機選擇一個t-1 次多項式,秘 密S=a0∈分發(fā)者D選擇{x1,且xi≠0 為每個份額持有者Ui的身份信息。D為Ui計算份額,并通過安全信道發(fā)送給Ui。
在有限域GF(p)上,一個典型的t-1 階二元多項式為如下形式:
其中p為大素數,其中根據二元多項式的特性,又可以將其分為兩大類:二元對稱多項式和和二元非對稱多項式。假如二元多項式的系數全部滿足ai,j=aj,i,則稱該二元多項式是對稱的;如果不能全部滿足,則是非對稱的。
其中二元對稱多項式有著明顯的對稱性,假設二元多項式f(x,y) 是二元對稱多項式,那么對于有限域GF(p) 中的任意兩個整數xi和xj,f(x,y) 一定滿足f(xi,xj)=f(xj,xi)。利用二元對稱多項式實現秘密共享的方案主要有文獻[18-20]等。在上述方案中,都需要一個可靠的分發(fā)者來構造多項式和分發(fā)份額,使得分發(fā)者計算量大,掌握數據過多。
設S是共享秘密,是n位參與者的集合。Pi選擇自己的身份標識IDi,并公開;然后構建t次的對稱二元多項式:
p為大素數,GF(p)為p階有限域。參與者共同選出隨機數Pi計算并公布。
參與秘密共享的人,共同選出驗證參數e1和e2(e1,,Pi計算和,并發(fā)送給。
參與恢復的m位Pi做如下操作:
Pi接收Pj發(fā)送的內容后,計算份額,和:
Pi在與參與者交換份額,先進行交換驗證,判斷Pi發(fā)送的是否等于Pl發(fā)送的,如果不相等,則Pl為欺騙者,通過廣播公布欺騙者并停止發(fā)送份額。如果相等,則發(fā)送份額和:
Pi在接受Pj傳遞的和后,通過Lagrange 插值公式計算出和:
并將e1,e2,0 代入比較,如果,和都同時成立,則計算S'=F0( 0)=,檢驗結果的正確性,參與者Pi計算和,并比較是否相等:
在本文方案中,當m(t≤m≤n)位合法且誠實的份額持有者能夠恢復出真實秘密S。
證明首先m位參與者在分發(fā)階段結束后,Pi可計算得出各自份額,以及和:
在份額交換前的驗證,能盡可能的保證Pi獲得的份額是正確的,根據Lagrange 插值公式公式可知,至少需要t個因子可恢復t-1 階多項式,才能解出S。保證了有效的參與者能夠恢復出秘密S:
當參與恢復的人中存在內部欺騙者時:
假設內部欺騙者Pi提供了不真實的份額F'( )IDi,0 ,在計算出S'后的檢驗結果正確性時,會被檢測檢測會出,而在Pi提供的a'i0,i0階段,如果提供真實的ai0,i0,通過檢測后,其他參與者可以計算出很正確的S,即
如果Pi提供不真實的a'i0,i0,則其他參與者可以計算,并與Pi初始化階段公布的Ai比較來判斷正確性。
當有外部欺騙者Di存在時:
首先如果Di是在秘密恢復恢復階段才參與的,那么他是沒有其他份額持有者發(fā)送的,和,在交換驗證階段只有的概率能全部通過;假設Di通過了交換驗證,并獲得了初始階段分發(fā)的和,沒有正確的,計算出。
近幾年基于二元多項式的秘密共享方案,大多是要求有一個安全的可信中心來構造多項式和分發(fā)份額的,而本文方案是一個無可信中心的秘密共享方案,即消除了可信中心可能帶來的風險,增加了方案的安全性。
高效性:與張艷碩的方案相比,本文在初始化和恢復階段的效率高很多,張艷碩的方案在初始化階段,分發(fā)者需要計算k對序列,并找出一個最小值?;謴碗A段,參與者需要從第一隊序列開始查找,每次查找都需要計算新的份額,并進行驗證,直到找出轉折點,即秘密S才結束,最壞的情況是需要重復恢復k-1 次;而本文方案,分發(fā)結束后,參與者就可以計算出唯一的份額,如果份額正確,技能得出正確的秘密S。
異步性:與Liu 的方案相比[20],本文方案中,任意兩名參與者擁有私有的通話密鑰,防止外部欺騙者獲得有效份額,并不需要所有參與者同時交換信息和驗證;而Liu的方案,由于份額是在恢復前,參與者會廣播一些份額信息,如果人在人數超過門限值時,有外部欺騙者進入,并獲得了其他t個份額,則有可能得出秘密。