電子選舉方案研究論文

時間:2022-10-11 11:05:00

導語:電子選舉方案研究論文一文來源于網友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

電子選舉方案研究論文

摘要本文分析了當前電子選舉方案中存在的缺陷,提出了一個基于公鑰密碼體制的有效的電子選舉方案,并對其安全性進行了分析。該方案采用盲簽名和可驗證的投票編號以及認證碼等技術,簡化了投票過程,具有較好的安全性和實用性。

關鍵詞電子選舉;盲簽名;RSA;投票編號;認證碼

電子選舉是密碼學的一個重要應用方面,它以各種密碼學技術為理論基礎,通過計算機和網絡來完成選舉的整個過程。與傳統(tǒng)的人工投票相比,電子選舉具有明顯的優(yōu)點,不僅可以節(jié)省大量的人力物力,而且能在一定程度上保證選舉的公正性。隨著Internet的發(fā)展和普及,實現Internet上的匿名投票成為一個亟待解決的問題。這就要求我們利用電子投票的優(yōu)勢,設計更具安全性、實用性的電子選舉方案。

1電子選舉方案的基本要求

通常來說,一個安全的電子選舉方案應該滿足以下七個方面的要求:

1)完備性即所有合法的選票都應當被正確統(tǒng)計;

2)正當性即惡意的投票者無法破壞選舉;

3)保密性即選票內容是保密的,且不能由選票內容獲得投票人的信息;

4)不可重復性即任何合法的投票人只能投一次選票;

5)合法性即只有具有投票權的投票人才有資格投票;

6)公正性即選舉的中間結果不能泄露;

7)可驗證性即投票人可以檢驗自己的選票被正確計入點票結果。

2現有的電子選舉方案分析

2.1盲簽名

盲簽名的概念是在1982年由Chaum提出來的。盲簽名是一種特殊類型的數字簽名,它是一個雙方協議。在一般數字簽名中,簽名者知道所簽的信息內容。而在盲簽名協議中,先由發(fā)送者對原始信息進行盲化,生成盲消息,然后將盲信息發(fā)送給簽名者;簽名者對盲消息進行簽名并返還給發(fā)送者;發(fā)送者去盲化,最終得到簽名者對原始信息的簽名,而簽名者并不知道原始信息內容。

2.2現有的電子選舉方案分析

由于盲簽名的匿名性,在電子選舉系統(tǒng)中構造盲選票隱匿選民的身份成為盲簽名的一個重要應用。1992年,Fujioka提出了一個基于盲簽名的投票方案,該方案的算法易于實現,網絡通信量較小,在非政府部門得到了廣泛的應用。但是,這個方案在安全性方面還有一些缺陷:

1)缺乏對投票人的有效控制。這樣,惡意投票人可能會匿名發(fā)送大量的選票,對選舉過程進行干擾和破壞。

2)未能有效防止簽證人的欺騙行為。由于在投票階段的合法性完全由簽證人的簽名來驗證,因此簽證人能夠偽造出合法選票,如果有投票者棄權,那么他就能夠進行冒名投票。

3)沒有對計票人的有效監(jiān)督,未能防止計票人對投票的中間結果的泄露,從而影響選舉。

目前已有不少論文和方案對Fujioka電子投票方案進行了改進,但在安全性和效率等方面仍然不同程度地存在著一些問題。本文從實用性和安全性出發(fā),采用盲簽名技術,提出了一個電子選舉方案,可有效解決上述問題。

3一個有效的電子選舉方案

3.1方案概述

該方案是基于公鑰密碼體制設計的,采用盲簽名技術,使用可驗證的投票編號來標識選票,并引入監(jiān)票人監(jiān)督計票過程。

該方案的參與實體有:

(1)投票人V;

(2)選票發(fā)放中心:由選票發(fā)放人D給合法投票人發(fā)放投票編號,且保證投票編號的唯一性;

(3)注冊中心:由簽證人S負責驗證投票人身份的合法性,并為合法選票進行簽名;

(4)計票中心:由計票人C在監(jiān)票人的監(jiān)督下進行計票,并統(tǒng)計計票結果。設置n個監(jiān)票人Wi(i=1,…,n)監(jiān)督計票人C的計票工作,以保證計票的公正性,要求在任何時候,必須至少有一位監(jiān)票人在工作。

該方案的投票過程分為四個階段:系統(tǒng)初始化階段、選票發(fā)放階段、注冊階段和投票階段,框架圖如圖1所示。

圖1電子選舉方案框架圖

3.2系統(tǒng)初始化

所有參與方應到認證中心CA處申請數字證書,CA審查申請人的身份后,向申請人發(fā)放數字證書,該數字證書中應包括申請人的公鑰以及CA的簽名。

采用RSA公鑰密碼體制,要求公鑰密碼的長度達到二進制1024位,其中私鑰由DES加密后保存在用戶的專用文件中,公鑰則存放在經過CA中心簽名的數字證書中。

實體A的密鑰生成過程如下:隨機選取兩個大素數p和q,計算n=pq和φ=(p-1)(q-1),然后隨機選取數e滿足1<e<φ且gcd(e,φ)=1,并計算整數d,使得1<d<φ且ed=1(modφ)。則實體A的公鑰為(n,e),私鑰為d。這樣,各參與實體都可得到自己的公鑰和私鑰。不妨記投票人V的公鑰為(nV,eV),私鑰為dV;選票發(fā)放人D的公鑰為(nD,eD),私鑰為dD;簽證人S的公鑰為(nS,eS),私鑰為dS;計票人C的公鑰為(nC,eC),私鑰為dC。

3.3選票發(fā)放階段

投票人向選票發(fā)放中心申請投票編號及其簽名。其過程如下:

(1)投票人V對自己的身份ID號IDv和一個隨機數Rv進行簽名,得,然后將該簽名發(fā)送給選票發(fā)放中心;其中,IDV||RV表示把RV附加在IDV之后。

(2)選票發(fā)放人D收到投票人V的簽名信息后,首先用V的公鑰驗證簽名的正確性,得到V的身份ID號IDV和隨機數RV,然后根據IDV判斷V是否具有選舉資格。如果V通過驗證,則D向V發(fā)放一個統(tǒng)一的投票編號NV,該號具有唯一性,且只有合法的投票人才能獲得投票編號。計算編號NV的認證碼MACV=H(IDV||RV||NV),其中H()為一哈希函數。D用自己的私鑰分別對NV和認證碼MACV進行簽名,得簽名信息和,并將這兩個簽名信息連同選票一起發(fā)還給投票人V,同時保留V的身份信息(IDV,NV,MACV),以便將來發(fā)生糾紛時對不誠實的投票人進行追蹤。然后,D將(IDV,NV)發(fā)送給注冊中心,將(NV,MACV)發(fā)送給計票中心。

(3)投票人V收到D的簽名信息后,首先驗證該簽名的有效性:首先用D的公鑰解密,得到信息,然后再用D的公鑰解密,得到信息;如果,則說明D的簽名有效。V同時保留信息(Nv,,),以證明自己是經過認證的合法的選舉人。

3.4注冊階段

投票人取得注冊中心對選票的簽名。其過程如下:

第一步:投票人V

(1)計算電子選票tV:tV=NV||MV;其中,NV為投票人V的投票編號,MV為投票人V的選票內容。

(2)對電子選票tV進行盲化處理:產生大隨機數k,滿足k<nS且gcd(nS,k)=1,計算盲化選票。

(3)對盲化選票進行簽名,得簽名信息:。

(4)發(fā)送(IDV,,)給注冊中心。

第二步:注冊中心

注冊中心首先啟動身份驗證算法,驗證投票人身份的合法性;若通過驗證,則解開,然后生成對盲化選票的簽名,并在注冊信息表中注冊(IDV,,,),最后將簽名發(fā)還給投票人。

身份驗證算法如下:

(1)根據選票發(fā)放中心發(fā)送來的合法選民信息(IDV,NV),判斷IDV是否為合法選民的身份ID號,如果是,則轉入下一步,否則發(fā)回警告信息;

(2)利用選票發(fā)放人D的公鑰解開,驗證其是否D對該選票編號NV的合法簽名,如果是,轉入下一步,否則發(fā)回警告信息;

(3)判斷IDV是否在注冊信息表中,如果是,則把原有的簽名發(fā)還給投票人,否則轉入下一步;

(4)用投票人V的公鑰解開,得盲化選票并對其進行簽名,得,在注冊信息表中注冊(IDV,,,),并將簽名發(fā)還給投票人。

第三步:投票人V

投票人V執(zhí)行去盲運算,得到注冊中心對該選票的簽名。

(1)用簽證人S的公鑰解開,驗證簽名的合法性,如果合法,則轉入下一步,否則重新注冊;

(2)啟動去盲運算,得到簽名中心對選票的簽名s:

3.5投票階段

第一步:投票人V用計票人C的公鑰對(NV,,MACV,s)加密,并發(fā)送給計票中心。

第二步:計票人C在至少一個監(jiān)票人的監(jiān)督下:

(1)驗證NV是否合法、唯一,如果是,則轉入下一步,否則丟棄該選票;

(2)利用選票發(fā)放人D的公鑰解開,驗證其是否D對該選票編號NV的合法簽名,如果是,則轉入下一步,否則丟棄該選票;

(3)根據選票發(fā)放中心發(fā)送來的合法選民信息(NV,MACV),判斷MACV是否相同,如果是,則轉入下一步,否則丟棄該選票;

(4)用簽證人S的公鑰解開s,得到選票NV||MV;對該選票進行簽名得,并把(NV,,MACV,MV,s,)寫入選票信息表中;

(5)投票結束后,統(tǒng)計投票結果并對外公布,接受公眾的監(jiān)督。

在這個階段,n個監(jiān)票人Wi(i=1,…,n)負責監(jiān)督計票人計票的正確性和公正性,保證每一張合法選票都能被準確寫入選票信息表中。

4方案的安全性分析

1)完備性

本方案使用投票編號來標識選票,由于投票編號的唯一性以及合法投票編號必須有選票發(fā)放人D的簽名,這樣就防止了非法偽造投票編號的情況發(fā)生。因為每一張合法選票的投票編號都不一樣,這樣就能解決選票沖突的問題,保證所有的合法選票不會因為投票編號重復而被丟棄。

2)正當性

該選舉方案的每一階段都有相應的簽名和認證過程來防止不正當的投票行為。在選票發(fā)放階段,投票人需要用自己的私鑰對提交的信息進行簽名;在注冊階段,投票人需要憑借身份ID號IDV和選票發(fā)放人D對選票編號Nv的簽名發(fā)送盲選票給注冊中心;在投票階段,投票人需要憑借選票發(fā)放人D對選票編號Nv的簽名和認證碼MACV提交注冊中心對電子選票的簽名給計票中心。

3)保密性

采用盲簽名技術,簽證人并不能讀取選票的內容,從而確保了投票的保密性。

4)不可重復性

一名合法投票人只能投一張票。在注冊階段,注冊中心驗證投票人ID號是否已記錄在注冊信息表中,如果是,則拒絕為該選票簽名;計票人會驗證投票編號NV是否重復,如果重復,則丟棄該選票。這樣,投票人就不可能投出多張選票而干擾選舉。

5)合法性

只有合法選民才能投票,非法選民或冒充他人均能被識別和跟蹤。攻擊者可能偽裝成某個合法的投票人注冊選票。但是在注冊階段,每一個投票人都用私鑰對身份ID號IDv和隨機數Rv進行了簽名得到SIGV(IDvllRv),然后發(fā)送給選票發(fā)放中心。選票發(fā)放中心用投票人的公鑰驗證,攻擊者無法獲得合法的投票人的私鑰,因此不能偽裝成某個合法的投票人獲得選票編號。

1)公正性

選票在發(fā)送給注冊中心前已經過盲化,因此其他人無法得知選票的內容。

2)可驗證性

投票結束后,計票中心將電子選票Nv||MV公開,任何人根據自己選票的投票編號Nv可以檢驗自己的選票是否被正確計入。所有數字簽名的公鑰都是公開的,這樣任何人都可以驗證每一階段數據的合法性。

5結論

本文在公鑰密碼體制的基礎上設計了一種匿名的電子選舉方案。該方案利用盲簽名技術和可驗證的投票編號以及認證碼等技術,較好地解決了選票碰撞和簽證人欺詐等問題,而且還可以有效防止一人多票或一票多投現象的發(fā)生。該方案簡化了投票過程,具有較好的安全性和實用性。

參考文獻

[1]A.Fujioka,T.Okatoma,andK.Ohta.APracticalSecretVotingSchemeforLargeScaleElections[J].ProceedingsofAuscrypt,1992,92:244-251.

[2]Wei-ChiKu,Sheng-DeWang.Asecureandpracticalelectronicvotingscheme[J].ComputerCommunications,1999,22:279-286.

[3]AndreuRietra,JosepRifaandJoanBorrell.Efficientconstructionofvote-tagstoallowopenobjectiontothetallyinelectronicelections[J].InformationProcessingLetters,2000,75:211-215.

[4]ChenXF.Receiptfreeelectronicvotingbasedonsemi-trustedmodel.ChineseJournalofComputers,2003,26(5):557-562.

[5]蘇云學,逯海軍,祝躍飛.一個無需中央機構的電子投票協議[J].計算機工程,2004,30(11):96-97.

[6]盧開澄.計算機密碼學.北京:清華大學出版社[M],1999.

[7][加]AlfredJ.Menezes,PaulC.vanOorschot,ScottA.Vanstone著.胡磊,王鵬等譯.應用密碼學手冊.北京:電子工業(yè)出版社[M],2005.