武朝暉
摘要:作為一種方便高效的投票方式,電子投票逐漸為人們所接受,隨之而來的,是不斷暴露的安全漏洞。為了解決這一問題,本文結(jié)合橢圓曲線數(shù)字簽名算法,設(shè)計了一種基于同態(tài)加密的電子投票系統(tǒng)。
關(guān)鍵詞:橢圓曲線密碼;數(shù)字簽名;同態(tài)加密;電子投票
中圖分類號:TN918.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2020)03-0115-02
1 背景
隨著計算機技術(shù)的不斷發(fā)展,投票這一行為正被數(shù)字化的方式所取代。較之傳統(tǒng)的紙質(zhì)投票而言,電子投票更加方便、快捷,但隨之而來的,就是其安全問題。如何確保電子投票的基本需求[1],包括其正確性、隱私性、不可復(fù)用性、合法性、可驗證性等,已經(jīng)成為應(yīng)用密碼學(xué)領(lǐng)域的一個熱點問題。早在1981年,著名密碼學(xué)家DavidChaum就對數(shù)字簽名在不記名選票方面的問題進(jìn)行過分析[2],并在2005提出過一種混合網(wǎng)模型的投票系統(tǒng)[3]。此外,還有基于盲簽名算法的各類模型,以及本文所用到的同態(tài)加密模型。
根據(jù)Gibson等對電子投票系統(tǒng)發(fā)展歷史的研究[4],我們可以得出以下結(jié)論:電子投票系統(tǒng)不能得到廣泛推廣的原因主要有兩個,一個是其安全性,另一個是人們對其安全性的認(rèn)可程度。因此,本文結(jié)合橢圓曲線數(shù)字簽名算法,設(shè)計了一種高安全性、高實用性的電子投票系統(tǒng),并分析其是否滿足一個電子投票系統(tǒng)的基本需求。
2 前序知識
電子信息通信網(wǎng)絡(luò)在傳輸信息時,需要一定的手段進(jìn)行信息保密和欺詐防止。數(shù)字簽名是實現(xiàn)此類目的的很好的手段。ScottVanstone于1992年第一次提出了橢圓曲線數(shù)字簽名算法。Scott將橢圓曲線算法和數(shù)字簽名算法相結(jié)合,并利用橢圓曲線離散對數(shù)問題的不可實現(xiàn)性進(jìn)行安全保障[5]。
設(shè)定域參數(shù)為,其中,表示有限域,是上的一條橢圓曲線,取上一點為基點,素數(shù)表示的是的階;另一個素數(shù)是在中規(guī)定的一個序號,是用于確定橢圓曲線的系數(shù),是一個單向安全的哈希函數(shù)。
此外,在選取一個數(shù)作為私鑰,并生成公鑰。
簽名算法如下(記消息為):
(1)在選取一個隨機數(shù);
(2)計算并設(shè)其橫縱坐標(biāo)分別為;
(3)如果整除,則返回第一步重新選擇,否則計算 ;
(4)求的哈希值;
(5)進(jìn)行簽名,如果此時的簽名值為0,則返回第一步重新選取;
(6)將簽名結(jié)果輸出。
對這個簽名進(jìn)行驗證時(記做):
(1)檢查是否成立,若不成立,則驗證失敗,退回簽名;
(2)求的哈希值;
(3)計算,;
(4)計算,若是零點,則驗證失敗,退回簽名;
(5)記的橫坐標(biāo)為,驗證,若成立,則簽名有效,反之無效。
3 設(shè)計方案
在本方案中,具有以下幾個實體:客戶端為客戶提供服務(wù)、存儲客戶私鑰、對信息進(jìn)行處理以便客戶可以獲得直觀認(rèn)識和方便的使用體驗;注冊中心負(fù)責(zé)確認(rèn)用戶身份、發(fā)放身份標(biāo)識和投票公鑰;認(rèn)證中心負(fù)責(zé)驗證注冊中心和投票中心的身份并發(fā)放證書;投票中心負(fù)責(zé)收取投票人的票數(shù)、驗證其是否有效;公示中心負(fù)責(zé)將有效的票數(shù)公示;計票中心負(fù)責(zé)統(tǒng)計并公布投票結(jié)果。
接下來,本節(jié)將根據(jù)投票行為發(fā)生的過程對本電子投票系統(tǒng)的設(shè)計方案進(jìn)行闡述:
3.1 生成密鑰
根據(jù)上面算法,每個實體需要生成一對密鑰,分別進(jìn)行標(biāo)記如下,客戶端:,注冊中心:,投票中心:,計票中心:??蛻舳嗣荑€對保留,注冊中心和投票中心的公鑰需要拿到認(rèn)證中心進(jìn)行認(rèn)證,認(rèn)證中心確認(rèn)該實體具有相應(yīng)資格后,用自己的私鑰對該實體的公鑰簽名,生成并頒布證書。別的主體可以利用證書中的認(rèn)證中心的公鑰對實體身份進(jìn)行驗證。
此外,在整個投票過程中,認(rèn)證中心還需要生成一個用于同態(tài)加密算法的投票密鑰對,并通過安全的渠道,將公鑰發(fā)送給注冊中心,密鑰發(fā)送給計票中心。
3.2 資格注冊
投票人從客戶端向注冊中心申請投票資格,客戶端將用戶信息用用戶的私鑰進(jìn)行簽名,再將簽名信息、原身份信息和用戶公鑰一起打包發(fā)給注冊中心:
注冊中心收到申請后,先對簽名信息進(jìn)行驗證,再核實該身份是否有投票資格,之后,向客戶端生成一個與用戶身份信息無關(guān)的身份標(biāo)識,記做,然后將和投票密鑰打包用用戶的公鑰進(jìn)行加密并用自己的私鑰對信息進(jìn)行簽名:
通過這樣的方式,確保信息不會泄露,從而減小被第三方盜用投票權(quán)的可能。客戶端在收到信息后,利用私鑰對前半部分的加密部分進(jìn)行解密,在利用簽名信息對進(jìn)行驗證,確保準(zhǔn)確無誤后,將信息顯示給客戶。
3.3 投票
客戶端將投票信息利用投票密鑰進(jìn)行加密,將加密結(jié)果記為;再將用戶的唯一身份標(biāo)識,投票結(jié)果,投票人的公鑰以及對身份標(biāo)識的私鑰簽名發(fā)給投票中心:
投票中心在收到選票之后,先對簽名進(jìn)行驗證,如果簽名合法,則驗證該是否進(jìn)行過投票,如果沒有,則將該票數(shù)計入統(tǒng)計,并向客戶端發(fā)送利用自己的私鑰對客戶簽名的一個確認(rèn),以保證票被準(zhǔn)確接收。如果該已經(jīng)投過票,也應(yīng)當(dāng)向客戶端反應(yīng)信息,以通知投票者投票權(quán)已被使用。之后,投票中心利用自己是私鑰對該投票信息進(jìn)行簽名,發(fā)送至公示中心公示:
3.4 計票以及公布
投票截止后,計票中心從公示中心處獲得已被公示的投票信息,利用投票中心的公鑰進(jìn)行驗證,若投票合法,則將其計入。利用同態(tài)運算先進(jìn)行計票,最后再利用投票私鑰進(jìn)行解密。最后,利用自己的私鑰簽名,將結(jié)果發(fā)送到公示中心公示。
4 方案分析
為了測試本電子投票系統(tǒng)設(shè)計方案的性能,本節(jié)將結(jié)合前文所述具體內(nèi)容與設(shè)計需求進(jìn)行分析:
4.1 正確性
電子投票系統(tǒng)的正確性主要包括兩個方面,完整性和可靠性,在整個投票過程中,多個主體之間相互驗證,相互確認(rèn),以確保不會出現(xiàn)少票漏票的情況。以此來確保投票的完整。而投票的可靠性主要來自于整個橢圓曲線數(shù)字簽名算法的理論支撐,其安全性確保了整個方案的可靠性。
4.2 隱私性
在整個投票過程中,只有注冊環(huán)節(jié)出現(xiàn)了用戶的身份信息。在后續(xù)的投票環(huán)節(jié)中,使用的都是注冊中心發(fā)放的與身份信息無關(guān)的唯一身份標(biāo)識。同時,在注冊中心向客戶端發(fā)送信息時,利用客戶的公鑰進(jìn)行了加密,確保信息和用戶原本的身份信息隔離開來,以此來保證投票的隱私性。
4.3 不可復(fù)用性
在整個系統(tǒng)中,我們利用唯一身份標(biāo)識作為投票的資格,如果該已經(jīng)投過票,則新的投票內(nèi)容將不再被接收。與此同時,注冊中心不會對同一個身份信息重復(fù)發(fā)放,因此對于任意一個身份識別標(biāo)識,我們可以保證其不會被重復(fù)使用。
4.4 合法性
申請投票資格時,注冊中心會對每個申請者的信息進(jìn)行審核,以確保其合法,否則,不會發(fā)放唯一身份標(biāo)識。
4.5 可驗證性
在整個投票過程中,投票人可以在任意一個階段對自己的進(jìn)度進(jìn)行追蹤,投票結(jié)束后,也可以在公示中心進(jìn)行查詢,以此來滿足其可驗證性。
5 結(jié)語
本文基于橢圓曲線數(shù)字簽名算法,設(shè)計了一個電子投票系統(tǒng),并通過分析驗證了其滿足電子投票系統(tǒng)的基本要求。本文設(shè)計的電子投票系統(tǒng),在很大程度上滿足了一個電子投票信息系統(tǒng)的全部需求,但是,考慮到非對稱加密本身的時間復(fù)雜程度,其整體的運行效率并沒有很高,希望可以在后續(xù)的研究中得到改進(jìn)。
參考文獻(xiàn)
[1] Wang K H,Mondal S K,Chan K,et al.A review of contemporary e-voting: Requirements,technology,systems and usability[J].Data Science and Pattern Recognition,2017,1(1):31-47.
[2] Chaum,David L.Untraceable electronic mail,return addresses, and digital pseudonyms[J].Communications of the ACM,1981,24(2):84-90.
[3] Chaum D,Ryan P Y A,Schneider S.A Practical Voter-Verifiable Election Scheme[J].Esorics,2005,10(3):118-139.
[4] Gibson J P,Krimmer R,Teague V,et al.A review of E-voting:the past,present and future[J].Annals of Telecommunications,2016,71(7-8):279-286.
[5] Rivest R L,Hellman M E,Anderson J C,et al.Responses to NIST's proposal[J].Communications of the ACM,1992,35(7):41-54.
Abstract:As a convenient and efficient voting method, electronic voting is gradually accepted by people, and with it, there are constantly exposed security loopholes. In order to solve this problem, this paper combines an elliptic curve digital signature algorithm to design an electronic voting system based on homomorphic encryption.
Key words:ECC; DSA; homomorphic encryption; electronic voting system