徐玲
中山職業(yè)技術(shù)學(xué)院計算機工程系 廣東 528404
本文利用 Harn簽名及其部分盲化性,提出了一個種基于 Harn部分盲化簽名的電子投票方案。此方案不僅保證了投票者身份的匿名性和選票的公平性、保密性,而且簽名的部分盲化還能實現(xiàn)投票的可追蹤性及不可抵賴性,從而令電子投票順利進行,具有實用性。
設(shè)p為一個大素數(shù),g是GF(p)的本原元,H( ·)是單向散列函數(shù)。每個用戶都有一個私鑰x∈ [1 ,p-1]且gcd(x,p- 1 ) =1,公鑰y=gx( modp),待簽的信息m∈ [1,p-1]。簽名時,用戶首先隨機選擇一個整數(shù)k∈ [1 ,p- 1 ] ,滿足gcd(k,p- 1 ) = 1 ,然后計算r=gk( modp)和s= [x(H(m)+r) -k]mod(p- 1 ) ,由此得到消息m的簽名為sig(m) = (r,s)。驗證時,通過計算yH(m)+r=rgs( m o dp)來驗證簽名的有效性。
設(shè)A為消息擁有者,B為簽名者,待簽名的消息為m,A和B共同商定一個常數(shù)c,稱為部分盲因子,以便無須商量,在簽名協(xié)議過程中使用。c的長度為(k- 2 )bits,計算τ(c) = 2k-1+ 2H(c)+ 1 ,其中H( ·)同上,τ(c) 的取值范圍必須在 2k-1<τ(c)<2k,當i≠j時,τ(c) 與τ(c)不能相互
ij整除。簽名者 B的簽名私鑰為xτ( c ) ,相應(yīng)的公鑰為y=gxτ(c)modp?;贖arn簽名部分盲簽名方案如下:
(1) A與B商定一個常數(shù)c,c為簽名者的信息或者簽名者與用戶商定的信息。
(2) 簽名者 B 隨機選取k∈Z,計算r'=gkmodp,并p發(fā)送r'給用戶A。
(3)用戶隨機選擇t∈Z*,t,t∈Z,計算r=r't1gt2yt3
1p23pmodp,發(fā)送m'給簽名者。
(4) 簽名者計算
(5) 用戶驗證r'gs'=yr'+m'modp是否成立,若成立,計算s= (s't-t) mod (p- 1 ) ,并公布(r,s,c)時關(guān)于消息m和公12共信息c的部分盲簽名。否則,輸出“False”。
驗證,任何人可通過檢查rgs=yr+H(m,c)modp來驗證簽名的有效性。
本文根據(jù)文獻的效率比較結(jié)論,采用(t1,t2,t3) = (1 ,t2,t3)的方案,因為在簽名階段沒有求逆運算,所以在3個方案中效率最高。
方案的參與者:投票人V,發(fā)票中心,認證中心,投票中心,計票中心及驗票中心(如圖1)。
(1) 投票人Vi(i= 1 , … ,n):表示可有n個投票人參與投票,在投票系統(tǒng)中事先導(dǎo)入應(yīng)參與投票人的名單;
(2) 發(fā)票中心:發(fā)放選票及公鑰,同時投票人利用私鑰在所得選票進行簽名;
(3) 認證中心:對投票人進行身份驗證,投票人將選票進行部分盲化;
(4) 投票中心:投票人進行投票,投票結(jié)束后,被終止投票權(quán)利;
(5) 驗票中心:根據(jù)選票可驗證選票及投票人的有效性;
(6) 計票中心:統(tǒng)計選票,公布結(jié)果。
圖1 電子投票方案框架圖
投票人以匿名的身份申請選票,為保證投票的保密性,選票的編號k(k= 1 , … ,n)由投票系統(tǒng)隨機分配,要保證每位投票人的選票編號不同,而且任何人或機構(gòu)都不能知道和預(yù)測投票人與選票的分配情況。在每張選票上還有一個有效性標志L,且L∈ { 0 , 1 },當選票有效時,L= 1,否則L= 0 ,這樣可以防止一個投票人參與多次投票。
在投票前,舉辦方與所有應(yīng)參與投票者商定一個公共信息c,發(fā)票中心先選取一個大素數(shù)p,同時還為每位投票人選取整數(shù)xi,并計算xiτ(c)為投票人的Vi的私鑰,y=gxiτ(c)modp為其相應(yīng)的公鑰,投票人隨機選擇k∈Z,
ip
計算r'=gkmodp,將(ID,r') 作為簽名發(fā)送給發(fā)票中心,iIDi是投票人的身份證號。
認證中心先驗證簽名中iID是否為合法投票人的身份證號,且是否在投票系統(tǒng)中,若均為是,則進行簽名驗證。
發(fā)票中心將簽名發(fā)送給認證中心,認證中心隨機選擇t∈Z*,t,t∈Z,上節(jié)中令t=1,計算r=r'gt2yt3modp,1p23p1i發(fā)送m'給投票人,投票人計算發(fā)送s'給 認證中心,認證中心驗證r'gs'=yr'+m'modp是否成立,若成立,投票人為有效投票人,計算,公布(r,s,c),由此選票被部分盲化。
認證中心將驗證有效的投票人的編號發(fā)送給投票中心,投票中心按接收的編號給每張選票發(fā)放待投票的文本M,選票初始值為 0 ,有效值為 4、2、1,分別代表贊同、反對和棄權(quán)。投票人收到選票內(nèi)容后,根據(jù)自己的態(tài)度為選票賦予相應(yīng)的有效值,然后利用Hash函數(shù)得出H(M) ,再使用投票中心的公鑰e進行加密該選票,得到E(M,H(M) ) ,將其發(fā)送給投票中心。
投票中心收到投票人的加密選票后,將該選票的有效性修改為L= 0 。
在規(guī)定時間結(jié)束后,投票中心宣布終止投票,并將加密選票E(M,H(M) ) 和盲化簽名(r,s,c)一起發(fā)送給驗票中心。驗票中心解密選票,首先驗證選票是否是有效值,選擇有效選票,然后對有效選票進行脫盲運算,驗證投票人的合法性,最后將有效投票人的有效選票發(fā)送給計票中心。
計票中心收到有效選票后,統(tǒng)計投票結(jié)果,并通過投票系統(tǒng)公告公布投票結(jié)果。
合法性:投票人雖然以匿名申請選票,但是需將身份證ID隨簽名一并發(fā)給認證中心,認證中心首先要驗證投票人的 ID是否是投票系統(tǒng)中合法的投票人,由此可以保證合法的投票者參與投票,非法投票人即使申請到選票仍然無法參與投票。
保密性:選票采用盲簽名技術(shù),隱藏了投票人的身份,并且選票在傳輸過程中是加密的,隱藏了選票內(nèi)容,因此無法把選票和具體投票人聯(lián)系起來,從而確保了投票的保密性。
不可重復(fù)性:任何一名合法投票人只能投一張票,且認證中心只進行一次驗證,若重復(fù)驗證,則視為無效投票人。因此,投票人就不可能重復(fù)投票。
可驗證性:選票是部分盲化,任何人無法偽造投票結(jié)果,投票結(jié)果可以被任何感興趣的第三方檢驗,同時不泄露投票者的隱私;而且投票人可以檢驗自己的投票是否被正確計入計票結(jié)果,又不能抵賴參與投票的事實。
完備性:參與投票的選票均由發(fā)票中心發(fā)放,并標有惟一的編號,防止了非法偽造選票的情況發(fā)生,避免出現(xiàn)選票沖突的問題,以保證合法投票人的有效選票都計入投票結(jié)果。
健壯性:規(guī)定有投票資格的投票人未參與投票的作棄權(quán)處理,而參與投票的投票人必須提交有效的投票才能計入投票結(jié)果中。若有非法投票人欲參與投票,則在認證階段中將阻止其繼續(xù)參與投票,確保投票順利進行。
本文結(jié)合 Harn的部分盲簽名技術(shù)提出了一個安全的電子投票方案。為了避免非法投票人冒充合法投票人參與投票,擾亂投票秩序,改變傳統(tǒng)的完全盲簽名投票,采用部分盲化簽名方案,既能滿足投票過程的保密性,也能通過半盲化選票追蹤投票過程,防止中間任意一方,甚至投票人的欺詐行為。具有一定的安全性和實用性。
[1]Wade Trappe,Lawrence C. Washington.密碼學(xué)概論[M].北京:人民郵電出版社.2004.
[2]趙澤茂.數(shù)字簽名理論.北京:科學(xué)出版社.2007.
[3]禹勇,楊波,楊國慶,張琴.Harn簽名的部分盲化.計算機工程.2007.
[4]Abe M,Fujisaki E. How to Date Blind Signatures[C]//Proceedings of Asiacrypt’96.Berlin: Springer-Verlag.1996.
[5]賴瑾,范玉順.一種新的安全、實用的電子投票方案.計算機科學(xué).2003.