南京航空航天大學計算機科學與技術學院 劉林武 張 弛
基于哈希函數(shù)和公鑰加密的電子投票系統(tǒng)
南京航空航天大學計算機科學與技術學院 劉林武 張 弛
電子投票系統(tǒng)因其方便性、匿名性、安全性,正在得到越來越廣泛的應用。本文提出一種基于網絡的電子投票系統(tǒng),使用哈希函數(shù)確保選票的完整性,借鑒公鑰加密體制,使用投票人密鑰對來認證選票的有效性,利用計票服務器密鑰對來加密保護選票內容。該系統(tǒng)保證了保護了選舉人的隱私,確保了投票的可信度和安全性。
電子投票;哈希函數(shù);公鑰加密
自從民主制度誕生以來,出現(xiàn)了各種形式的投票形式。隨著互聯(lián)網的迅速發(fā)展和民主政治的快速推進,電子投票系統(tǒng)正在得到廣泛應用。早在2005年,基于互聯(lián)網的電子投票就已經在愛沙尼亞舉行。在荷蘭,電子投票機已經使用了將近20年,大部分荷蘭人使用DRE(Direct recording equipment)進行投票。到2006年,荷蘭90%的選票是通過電子投票系統(tǒng)投出的[1]。電子投票系統(tǒng)方便了投票人,有得于提高投票率和快速得到投票結果。(Taha Kh. Ahmed, 2011)。電子投票系統(tǒng)將會得到越來越廣泛的應用,極大地提高投票的效率、降低投票成本。因此,本文提出了一種安全高效的基于網絡的電子投票系統(tǒng)。
在電子投票系統(tǒng)發(fā)明以前,普遍采取的是傳統(tǒng)的紙質投票。文獻[2]中給出傳統(tǒng)的投票流程,其具體過程如下:
圖1 傳統(tǒng)投票過程
(1)認證。通過出示選民證來認證選民身份。這一步通常由選舉官公開進行確認。認證通過后,選舉官給選民一張空白選票。
(2)投票。投票在受保護的投票棚里進行,防止其它人窺視選民。選民使用筆在選票上勾選候選人,然后將選票折疊后塞入投票箱。箱中的選票都是混雜無序的。
(3)計票。在投票截止日期之后,選舉官收集分布在不同地點的所有的票箱,然后將它們集中到計票中心。在監(jiān)票人的監(jiān)督下,選舉官統(tǒng)計所有選票然后公布計票結果。
傳統(tǒng)的投票機制需要很長的準備時間,耗費大量的選票用紙,需要動用大量的人力到各個投票點,需要很多警力維持投票秩序。投票和計票過程中大量的人工參與,很容易引發(fā)賄選和失誤。因此,有必要使用更加快捷安全的電子投票系統(tǒng)。
基于網絡的電子投票系統(tǒng),投票人使用網絡進行投票。投票人不受地理位置限制,不用親自前往投票站投票,可以在家里,在辦公室,學校,甚至在國外進行投票,這極大地方便了很多行動不便的人士和因其它愿意不能前往投票站投票的人士,而且不受時間限制,有助于提高投票率,基于網絡的電子投票系統(tǒng)可以防止選票內容被篡改、泄露,可快速得出計票成果?;诰W絡的電子投票系統(tǒng)應該滿足以下要求:
(1)普適性:所有選民都有權力和能力去使用該投票系統(tǒng)。
(2)真實性:只有符合資格的人員才可以參加選舉,不能讓不具備選民資格的人冒充他人投票。
(3)匿名性:不能將選民和他所投的選票產生關系,也即無法得知選民的投票內容。投票者的隱私必須在選舉期間和選舉后很長一段時間內都得到保密。
(4)唯一性:一個選民在一次選舉中只能投票一次,不能反復多次投票。
(5)精確性:所有選票都能精確地被記錄,不會被刪除、篡改。
(6)易用性:電子投票系統(tǒng)應該簡單易用,對選民沒有另外的技術要求,包括盲人,殘疾人,老年人,行動不便的人,都能輕易地使用到該系統(tǒng)。
(7)自由性:選民有權按照自己的意愿投票,不被他人或政府或其它機構強迫。
(8)可審計性:該系統(tǒng)應該能確保的選票都被正確地統(tǒng)計,而且能被負責的選舉官員的審核。
(9)低成本性:該系統(tǒng)不能過于昂貴,不能在購買、使用和維護時耗費巨大的財力和人力。
(10)健壯性:系統(tǒng)應該安全,難以被黑客攻擊或不法官員作弊,確保選舉結果的正確可信。
4.1 單向哈希函數(shù)
單向哈希函數(shù),也稱做“消息摘要”,把任意長度的輸入,通過哈希算法,轉換成固定長度的輸出,也即“散列值”。不同的輸入經過哈希后可能會得到相同的輸出,但不可能從散列值來唯一確定輸入值,這相當于對要發(fā)送的消息添加了“電子指紋”。一般地,在非安全信道上傳輸信息時,為了檢測在傳輸過程中信息是否被篡改,可以用哈希函數(shù)來確認信息的完整性[3]。
4.2 公鑰加密機制解釋
公鑰加密思想由WhitField和Martin Hellman以單向函數(shù)為基礎,于1976年提出。
它使用成對使用的一組加密密鑰E和解密密鑰D。用加密密鑰D加密后所得的信息,只能由解密密鑰E才能解密??梢赃x擇公開E或D。
(1)公開E。比如,網上銀行會向所有用戶公開E,自己持有D。用戶使用E加密自己的帳戶信息,這個信息只能由使用D解開,其它人由于沒有D,因此無法對帳戶進行解密,這樣保證了帳戶信息的安全。
(2)公開D。比如,軟件商A使用自己的私有E對軟件加密后(相當于數(shù)字簽名和數(shù)字證書)發(fā)布,用戶如果能用公開的D對其解密,說明該軟件的確是由A發(fā)布的,而且沒有被篡改過。
4.3 電子投票系統(tǒng)
為了對選票內容進行保密,防止選票在通信傳輸、存儲過程中被攔截,需要行加密處理。密鑰管理中心生成兩種密鑰對:
計票服務器密鑰對:
公鑰:cpbk(Counting server public key)
私鑰:cprk (Counting server private key)。
投票人密鑰對:
公鑰:vpbk(voter public key)
私鑰:vprk (voter private key)
投票開始前,要確保投票人終端和各服務器之間建立了可靠的SSL連接。工作流程如下:
圖2 電子投票系統(tǒng)結構圖
(1)投票人登錄電子投票系統(tǒng),資格認證服務器對投票人進行認證。
(2)認證通過后資格認證服務器向投票人發(fā)送候選人列表。
(3)投票人進行投票,投票內容經哈希處理、計票服務器公鑰cpbk加密、投票人私匙vprk加密(相當于數(shù)字簽名),然后發(fā)送到資格認證服務器。
(4)資格認證服務器接收加密后的選票并轉發(fā)給選票存儲服務器。
(5)選票存儲服務器接收已加密處理的選票。如果能用投票人公匙vpbk解密,說明這是該投票人的合法投票。否則為無效投票。
(6)向資格認證服務器發(fā)送回執(zhí)并由它轉發(fā)到投票人
(7)選票存儲服務器將選票安全可靠地存儲,待選舉結束時將所有選票轉發(fā)到計票服務器。
(8)計票服務器使用自己的私鑰cprk對選票進行解密,然后進行票數(shù)統(tǒng)計,最后公布計票結果。
在步驟3中:使用哈希函數(shù),是為了防止選票內容被篡改;使用計票服務器公鑰加密,是為了防止選票被窺視泄露;使用投票人私鑰加密,是為了進行對選票進行認證,證明其確實為該投票人所投。
本文通過分析傳統(tǒng)投票過程,指出了其不足,給出了電子投票系統(tǒng)應滿足的優(yōu)點并設計了一種電子投票系統(tǒng)。該系統(tǒng)利用哈希函數(shù)確保選票在傳輸、存儲過程中不被篡改。使用公鑰加密體制,完成對選票加密,可以對選票合法性進行認證,防止重復投票和冒充他人投票,同時保證了選票的保密性。將來,考慮開發(fā)基于移動APP的電子投票系統(tǒng)。
[1]Pujol-Ahull,Jordi,Jard,et al.TTP smartcard-based elgamal cryptosystem using threshold scheme for electronic elections[C]// Foundations and Practice of Security-,Canada-France Mitacs Workshop,Fps 2011,Paris,France,May 12-13,2011,Revised Selected Papers.DBLP,2011:14-22.
[2]Ahmed T K,Aborizka M.Secure Biometric E-Voting Scheme[M]//Intelligent Computing and Information Science.Springer Berlin Heidelberg,2011:380-388.
[3]Ragab A H M,Ismail N A,Allah O S F.An efficient message digest algorithm(MD)for data security[C]//IEEE Region 10 International Conference on Electrical and Electronic Technology.IEEE Xplore,2001:191-197 vol.1.
劉林武(1986—),江西吉安人,南京航空航天大學碩士研究生。