韓慧穎,劉煥平
(哈爾濱師范大學)
秘密共享對于密鑰管理來說是一個非常重要的技術(shù).而秘密共享方案的應(yīng)用其目的就是為了讓密鑰管理更加有效和靈活.在過去所提出的秘密共享方案都是針對同一門限值的,不同秘密的門限值一旦發(fā)生改變,那么原有的方案將無法恢復(fù)秘密,或者需要改變參與者手中的子秘密才能實現(xiàn)秘密的恢復(fù),而此時參與者手中將持有多個子秘密,使得恢復(fù)秘密的成本大大提高.針對這種情況提出關(guān)于恢復(fù)可變門限的多秘密的共享方案.一個顯著的特點就是當不同的秘密需要不同的門限值來恢復(fù)時,依然可以利用所提出的方案來實現(xiàn)秘密的恢復(fù).該方案的優(yōu)點是:在恢復(fù)不同門限值的多秘密共享時,可以讓每位參與者只保存一個子秘密,并且當某些秘密被恢復(fù)后,并沒有影響其他秘密的安全性,它實現(xiàn)了恢復(fù)不同門限值的秘密共享方案.通過成功利用離散對數(shù)的難解性和Diffie-Hellman計算問題的難解性,可以成功地防止攻擊者對秘密的攻擊,即使在偽秘密暴露的情況下,也不會影響其他秘密的恢復(fù),如果秘密需要更新時,每位參與者手中持有的子秘密也不需要改變,因此這是一個針對可變門限值的多秘密共享方案.
公鑰的密碼系統(tǒng)已經(jīng)廣泛應(yīng)用不同領(lǐng)域中,公鑰系統(tǒng)中重要一點就是私鑰管理,1976年Diffie和Hellman說明了離散對數(shù)問題求解是難的,考慮到現(xiàn)實中的可操作性,1979年,Shamir提出了(t,n)門限秘密共享方案.然而,Shamir方案并不能在門限值發(fā)生變化的時候去使用,也就是說Shamir方案只能恢復(fù)固定門限值的秘密共享,如果門限值發(fā)生改變時,則需要重新分發(fā)參與者手中的子秘密.例如,某公司要將公司內(nèi)部的三個機密文件進行保存,將其放在三個不同的保險柜當中,由于機密文件的保密程度不同,將它們分為一號文件保密程度最低,只需要三個公司高管就可以恢復(fù),二號文件保密程度較高,需要五名公司高管恢復(fù),三號文件保密程度最高,要六名公司高管恢復(fù).在這種情況下,如果想讓公司每個高管手中僅僅只有一個子秘密,但能同時參與三個秘密文件的恢復(fù),并且在恢復(fù)一個秘密之后并不會影響其他秘密恢復(fù).針對這種情況,該文提出一種基于離散對數(shù)問題的難解性和Diffie-Hellman計算問題的難解性的可變門限的多秘密共享方案.在這個方案中,只需要在一個系統(tǒng)中去完成不同門限值的秘密恢復(fù),讓參與者手中只持有一個子秘密,但能恢復(fù)門限值不同的秘密.用到Stadler提出在線秘密共享體制,引入公告牌(NB)發(fā)布一些輔助信息的方法和田有亮提出的橢圓曲線上的可驗證秘密共享方案中,利用在加法群構(gòu)造多項式的方法.
設(shè)G是有限加法循環(huán)群,g是G的生成元.
(1)離散對數(shù)問題是難解的:給定(g,ag),對任意的a∈,求a是難解的.
(2)Diffie-Hellman的計算問題難解:給定(g,ag,bg),對任意的 a,b ∈,計算(ab)g 是難解的.
假設(shè)有莊家D要在n個參與者U={U1,U2,…,Un}間共享秘密 s1,s2,…,sk∈ G1,在這里 t1個人能恢復(fù)秘密s1,t2個人能恢復(fù)秘密s2,…,tk個人能恢復(fù)秘密 sk,即對任意 i,i=1,…,k只有當ti個或ti個以上的參與者聯(lián)合才能回復(fù)共享秘密si,少于ti個參與者的任何組合都無法恢復(fù)秘密,該方案分為以下三個過程:系統(tǒng)初始化過程,秘密分發(fā)的過程,以及秘密重構(gòu)過程.
G1是素數(shù)階的加法群,其階為q,P是其生成元(比如可以令G1是某個橢圓曲線上的q階循環(huán)子群),G1上的離散對數(shù)和Diffie-Hellman的計算問題都是難解的.
(1)參與者Uj選擇xj∈作為自己的子秘密,計算其偽秘密xjP,并將xjP發(fā)送給D,D看每個xjP是否相同,若有相同的則需要重新選擇直到互不相同為止.
(2)對 i=1,2,…,k,莊家 D 任取 αi∈(要求αi互不相同,并且αiP要與參與者所公開的xiP互不相同),并在公報牌上公開Ri,其中Ri= αiP,其中 i=1,2,…,k.
(3)莊家D收到xjP后,計算yij=xjαiP,并選取G1[x]上次數(shù)為ti-1次的多項式,其中x∈Zq,Ai∈G1,F(xiàn)i(x)=si+A1x+A2x2+ …Ati-1xti-1,滿足Fi(0)=si并計算Fi(j)=Sij,令Tij=Sijyij,i=1,2,…,k,j=1,2,…,n,其中 Tij∈ G1,將Tij公布在公告牌上.
以恢復(fù)秘密si為例,任何ti個或大于ti個成員都可以恢復(fù)秘密si,現(xiàn)不妨設(shè)由集合{U1,U2,…,Uti}來恢復(fù)秘密si,那么參與者首先要計算yij=xjαiP,然后在公告牌上選出與自己相對應(yīng)的Tij,再計算出Sij=Tij+yij,最后向其他參與者提供(Sij,j),再利用拉格朗日插值公式來恢復(fù)秘密,恢復(fù)出
(1)合理性:這個方案不論是在系統(tǒng)初始化階段還是秘密恢復(fù)階段都是簡單可行的.
(2)安全性:這個方案的安全性主要基于離散對數(shù)的難解性和Diffie-Hellman計算難解的.
①秘密si的安全性:
任何一個攻擊者據(jù)無法通過公開的(xjP,αiP,Tij)以及他們掌握的子秘密恢復(fù)出秘密si,這是因為攻擊者要想知道si,只有Tij和yij同時知道的時候才能恢復(fù)si,但是由Diffie-Hellman計算難解性可知攻擊者并不能從公開的xjP知道參與者手中的子秘密xi,所以并不能利用公開的信息恢復(fù)秘密si.
②子秘密xj的安全性:當其他參與者通過恢復(fù)秘密si而得到參與者Uj提供的yij時,由離散對數(shù)的難解性可知其他參與者是無法利用得到參與者Uj所提供的yij而得到Uj的子秘密xj.
③恢復(fù)秘密si后,秘密sj的安全性:當其他參與者通過恢復(fù)秘密si而得到y(tǒng)ij時,他們并不恢復(fù)秘密sj,因為此時除了公開的Tjj還需要知道yjj,當秘密si被恢復(fù)后,由②可知也無法利用已知的yij去得到Uj的子秘密xj,所以也無法得到y(tǒng)jj.而由Diffie-Hellman計算難解性可知攻擊者無法利用公開的(αjP,xjP)而求出yjj,所以秘密sj也是安全的.這也實現(xiàn)了秘密的安全性.
④秘密的更新:參與者Uj手中只需要持有一個子秘密xj就可以恢復(fù)秘密sj.由于每個成員的子秘密在秘密恢復(fù)后并沒有被暴露,因此,一次只需為每個參與者重新選取一個(αiP,Tij)就可以利用上述方案恢復(fù)新秘密.
筆者給出了基于離散對數(shù)難解性和Diffie-Hellman計算問題難解性的可變門限的多秘密共享方案,它利用公開信道去恢復(fù)可變門限值的秘密共享方案,它只需參與者保存一個子秘密,但卻能同時參與多個秘密的恢復(fù),恢復(fù)后也不會影響到其他秘密的恢復(fù).
[1] Shamir A.How to share a secret[J].Comm ACM,1979,22(11):612-613.
[2] Blakey G R.Safeguarding cryptographic keys[A].Proc AFIPS 1979 Natl Conf[C].New York,1979.313-317.
[3] Stadler M.Publicly verifiable secret sharing[A].Cryptology-EUROCRYPT’96[C].Berlin,1996.190-199.
[4] 劉煥平,呂學琴.基于單向函數(shù)的廣義秘密共享方案[J].通信學報,2004,25:5.
[5] 鄒惠,王建東,宋超.加權(quán)門限多秘密共享方案[J].計算機工程,2012,38:3.