• 沒有找到結果。

基於安全多方計算之秘密投票系統 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "基於安全多方計算之秘密投票系統 - 政大學術集成"

Copied!
67
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University. 碩士論文. 立. Master’s 政 治Thesis. 大. ‧ 國. 學. 基於安全多方計算之秘密投票系統. ‧. Design and Implementation of a Secure Voting System Based on. sit. y. Nat. n. al. er. io. Secure Multi-Party Computation. Ch. engchi. i Un. v. 研 究 生:張光博 指導教授:陳. 恭. 中華民國一○二年七月 July 2013 1.

(2) 基於安全多方計算之秘密投票系統 Design and Implementation of a Secure Voting System Based on Secure Multi-Party Computation. 張光博. 指導教授:. 陳. 政 治 大 Advisor:Kung Cheng. ‧ er. io. sit. Nat. 國立政治大學 資訊科學系 碩士論文. 學. ‧ 國. 立恭. Student:Kuang-Po Chang. y. 研 究 生:. A Thesis iv n C submitted to Department Computer Science h e n g c hofi U National Chengchi University in partial fulfillment of the Requirements for the degree of Master in Computer Science. n. al. 中華民國一○二年七月 July 2013 2.

(3) 基於安全多方計算之秘密投票系統. 摘要. 眾所周知,舉辦一個傳統紙張投票方式的投票活動,所需耗費的人力物 力資源是非常龐大的,除此之外,選舉時的投票背後可能發生的違法賄選. 政 治 大 或影響選舉公平的問題,也是層出不窮。為了降低及減少傳統紙張投票的 立. ‧ 國. 學. 問題,有許多的研究已相繼對於電子投票提出安全評估及建議。. ‧. 本論文提出的投票系統是以網路為基礎下的投票系統,結合第三方公正. sit. y. Nat. 的獨立運算,並在加法分持之安全多方計算的演算架構下,建構一個無法. n. al. er. io. 回溯投票人投票內容的系統,藉以確保投票的秘密性。此外,為我們分析. iv. 了許多不同投票制度對獲勝要求所訂定的不同規則,歸納出一些設定獲勝 C Un. hengchi. 條件的參數與規則,並據以在我們的系統中設計了簡易的獲勝規則設定介 面,讓投票舉辦單位得以不必寫程式來定訂獲勝條件。. 關鍵字:網路投票、安全多方計算、投票系統、投票安全. 3.

(4) Design and Implementation of a Secure Voting System Based on Secure Multi-Party Computation. Abstract. The paper-based voting system, which requires the process of recording. 政 治 大 great立concerns over the confidentiality. and counting the votes that are cast on paper cards or sheets, is not only costly, but also arouses. and fairness of. ‧ 國. 學. elections. During the past decades, electronic voting systems have become the increasingly popular alternative to their paper-based counterparts as a way to. ‧. enhance the credibility of decision-making process in the democratic society.. sit. y. Nat. The thesis attempts to improve the level of confidentiality and flexibility. er. io. in the voting process by designing a Web-based voting system which is built on. n. a l to secure multi-partyi vcomputation. The proposed an additive sharing approach Un. C. h ethen privacy system is featured by protecting g c h i of voting records and allowing the. rules of elections to be tailored to the variety of requirements in different elections. In particular, we have analyzed many different election rules and devised a set of mechanisms accordingly to enable the configurations of election rules without any coding efforts from the election administration. Besides, we have developed an iOS App to demonstrate our approach to support voting from a mobile device.. Keywords: Internet voting, secure multi-party computation, voting systems 4.

(5) 致謝辭 大學畢業後就進入職場工作十餘載,一直感覺資訊科技進步快速及所學不足,跟不 上資訊科技腳步的恐慌,讓我漸漸失去自信。幸有機會進入政大資科所就讀強化本職學 能,也重拾學習之樂,這三年的學習成長,非常感謝一直給予我指導與支持的陳恭老師, 讓我能夠在程式語言原理、程式架構及雲端技術上有所成長,老師總是不厭其煩地重覆 教導,無私地傳授與分享經驗,百般感謝老師的付出,在此誠摯地向老師說一聲,老師 辛若了, 謝謝您。. 政 治 大 感謝這三年陪我一同學習成長的學長朝樹、同學俊翔、玉駿、成發,還有學弟矢勇、 立. ‧ 國. 學. 子文,因為有各位的陪伴,一路走來才可以充實快樂,懷念與成發、矢勇窩在咖啡一起 討論,一同學習的日子,也還好有大家的鼓勵與加油,使我有持續的動力完成本論文的. ‧. 研究。. y. Nat. er. io. sit. 此外,我要特別感謝我的老婆,雖然總是隨時問候我的論文何時出來,但我可以感 覺到老婆妳特別的關心與擔心,時常的提醒我並給我滿滿的支持,因為寫論文無法陪妳. n. al. Ch. i Un. v. 的時間一定在往後彌補回來,特別是謝謝 10 月臨盆辛苦的妳,也希望妳能與我一起分 享完成論文後畢業的喜悅。. engchi. 研究所的學習成長,讓我更有自信面對未來,期望在工作崗位上能學以致用。再次 感謝老師、同學、朋友、家人給予我的支持與協助。. 5.

(6) 目錄 第1章. 介紹 .................................................................................................................................................... 12. 1.1. 背景與動機 ........................................................................................................................................ 12. 1.1.1.. 投票需求的普遍性 ............................................................................................................................ 12. 1.1.2.. 投票的一般性問題 ............................................................................................................................ 12. 1.1.3.. 秘密投票的需要 ................................................................................................................................ 13. 1.1.4.. 投票制度的不同 ................................................................................................................................ 13. 1.1.5.. 獲勝規則的複雜性 ............................................................................................................................ 16. 1.2. 研究目標 ............................................................................................................................................ 17. 1.3. 研究成果 ............................................................................................................................................ 17. 1.4. 研究限制 ............................................................................................................................................ 18. 1.5. 論文結構 ............................................................................................................................................ 19. ‧. ‧ 國. 學. y. sit. er. io. al. iv n C 相關研究與技術背景 ........................................................................................................................ 20 hengchi U n. 2.1. Nat. 第2章. 立. 政 治 大. 技術背景 ............................................................................................................................................ 20. 2.1.1.. 秘密分享技術 ............................................................................................................................... 20. 2.1.2.. 安全多方計算 ............................................................................................................................... 21. 2.1.3.. 加法分持安全多方計算 ............................................................................................................... 21. 2.1.4.. 電子投票 ....................................................................................................................................... 23. 2.2 第3章. 文獻探討 ............................................................................................................................................ 24 系統設計與架構 ................................................................................................................................ 26. 6.

(7) 3.1. 系統設計理念 .................................................................................................................................... 26. 3.2. 系統設計考量 .................................................................................................................................... 26. 3.3. 系統運作流程 .................................................................................................................................... 27. 3.3.1.. 投票流程 ....................................................................................................................................... 27. 3.3.2.. 運作細節 ....................................................................................................................................... 29. 3.4. 系統設計架構 .................................................................................................................................... 37. 3.4.1.. MASTER SERVER 的角色模組 ............................................................................................................ 39. 3.4.2.. PROXY SERVER 的角色模組 .............................................................................................................. 40. 3.4.3.. APP CLIENT 的角色模組 ................................................................................................................... 40. 3.5. 技術規劃 ............................................................................................................................................ 44. 3.5.1.. WEB SERVER 的規劃 .......................................................................................................................... 44. 3.5.2.. APP CLIENT 的規劃 ............................................................................................................................ 45. 3.5.3.. WEB SERVICE 的規劃 ......................................................................................................................... 45. 3.5.4.. HTTP(或 HTTPS) POST 的技術............................................................................................................ 45. 3.6. 加法分持應用於投票系統 ................................................................................................................ 46. 立. 政 治 大. ‧. ‧ 國. 學. er. io. sit. y. Nat. al. 3.6.2.. 加法彙整導出結果 ............................................................................................................................ 49. 第4章. n. 3.6.1.. iv n C 票數分持運作步驟 ............................................................................................................................ 47 hengchi U 實驗與評估 ........................................................................................................................................ 51. 4.1. 實驗設計 ............................................................................................................................................ 51. 4.1.1.. 實驗設計 1:政大企管公司董事選舉 ............................................................................................. 51. 4.1.2.. 實驗設計 2:政治大學校長遴選委員會教師代表選舉 ................................................................. 53. 4.1.3.. 實驗設計 3:小規模中央研究院院士選舉 ..................................................................................... 56. 4.2. 實驗討論 ............................................................................................................................................ 59. 4.3. 實驗成果 ............................................................................................................................................ 61 7.

(8) 第5章. 結論 .................................................................................................................................................... 64. 5.1. 貢獻 .................................................................................................................................................... 64. 5.2. 未來研究 ............................................................................................................................................ 64 參考文獻 ............................................................................................................................................ 66. 立. 政 治 大. 學 ‧. ‧ 國 io. sit. y. Nat. n. al. er. 第6章. Ch. engchi. 8. i Un. v.

(9) 圖目錄 圖 1 秘密分享範例 .............................................................................................................................................. 21 圖 2 加法分持計算系統三個階段....................................................................................................................... 22 圖 3 AN OPTICAL SCAN BALLOT ........................................................................................................................... 23 圖 4 AN OPTICAL SCANNER ................................................................................................................................... 24 圖 5 投票流程 ...................................................................................................................................................... 28 圖 6 計票並選出獲勝者 ...................................................................................................................................... 28. 政 治 大 圖 8 候選人資料維護 .......................................................................................................................................... 30 立 圖 7 投票活動基本資料 ...................................................................................................................................... 29. ‧ 國. 學. 圖 9 投票制度與投票人設定 .............................................................................................................................. 31 圖 10 獲勝條件設定 ............................................................................................................................................ 32. ‧. 圖 11 絕對多數決制之設定 ................................................................................................................................ 32. sit. y. Nat. 圖 12 中央研究院院士當選條件設定 ................................................................................................................ 33. n. al. er. io. 圖 13 教授(含研究員)人數不得少於五人之設定.............................................................................................. 34. i Un. v. 圖 14 同一學院或中心以一人當選為限 ............................................................................................................. 34. Ch. engchi. 圖 15 投票人身份驗證流程 ................................................................................................................................ 35 圖 16 ACTIVITIES CONFIGURATION FILE 範例 ...................................................................................................... 36 圖 17 APP 投票端設計.......................................................................................................................................... 37 圖 18 系統基本架構圖 ........................................................................................................................................ 38 圖 19 系統功能模組 ............................................................................................................................................ 38 圖 20 系統運作協定(以 2 台 PROXY SERVER 為例) ............................................................................................ 43 圖 21 累積投票制之投票規則設定範例 ............................................................................................................. 52 圖 22 政大企管公司董事選舉............................................................................................................................. 53 圖 23 政大校長遴選委員教師代表選舉獲勝條件設定 ..................................................................................... 54 9.

(10) 圖 24 政大校長遴選委員會教師代表選舉結果 ................................................................................................. 56 圖 25 中研院院士選舉比例條件 1 設定 ............................................................................................................. 57 圖 26 中研院院士選舉比例條件 2 設定 ............................................................................................................. 57 圖 27 中研院院士選舉人數條件設定 ................................................................................................................. 58 圖 28 活動名稱:103 年度中央研究院院士選舉投票結果(模擬結果).............................................................. 59 圖 29 投票制度提醒訊息 .................................................................................................................................... 62 圖 30 認可投票制的選擇 .................................................................................................................................... 63. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 10. i Un. v.

(11) 表格目錄 表格 1 投票制度考慮的規則............................................................................................................................... 15 表格 2 ACF 檔案參數對照表 .............................................................................................................................. 41 表格 3 各角色間資料傳輸協定........................................................................................................................... 43 表格 4 HTTP GET VS. POST ................................................................................................................................. 46. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 11. i Un. v.

(12) 第1章 介紹 1.1. 背景與動機. 1.1.1. 投票需求的普遍性. 投票是一種民主決策的方式,提供人們充份表達己見的工具。從古至今,投票活 動一直存在,而且現今環境隨時隨地都在進行著,不論是公司的董事選舉、委託 廠商的選擇,還是學校校長的選舉、學生會長的選舉,以至於三五好友的聚餐地. 治 政 大 點選擇或旅遊地點的選擇等,都可以利用投票的方式選出多數人想要的結果。 立 ‧ 國. 學. 1.1.2. 投票的一般性問題. ‧. 投票的問題由來已久,近來許多網路或電子投票研究,都是為了解決傳統投票問. Nat. er. io. sit. y. 題而產生,歸納傳統投票,有以下幾個一般性問題說明如下: 1. 投票人集中投票,時間不易安排:傳統投票的投票人,必需攜帶相關證件至指. n. al. Ch. i Un. v. 定場所進行投票,有時為了滿足所有有權投票的投票人時間,必需多次的詢問. engchi. 及確認,務必讓各投票人都可以出席,避免影響投票的公平性。 2. 投票人無法親自現場投票:投票人必需於指定投票場所投票,往往因為交通問 題或是天候因素而無法到現場投票,造成投票的遺憾,或選舉的瑕疵。 3. 票務工作及人力安排耗時費工:投票活動進行前,有許多必要的作業需完成, 包括選票的列印、數量確認、運送及保存等,除必需依照時間準時完成外,還 需事先做好防弊及保護措施,中間過程任一環節發生異常,都會影響整個選務 工作的順暢及公正,因此人力安排的耗時費工,也易造成弊端。 4. 開、計票速度慢:完成投票後,開票及計票過程都是以人工方式進行,為了確 12.

(13) 保計票的正確,必須增加人手進行唱票、監票及記票,一張一張進行,開票速 度慢而且人工作業極易出錯。. 1.1.3. 秘密投票的需要. 投票秘密性的需求仍然存在,尤其是在對人的選舉上,涉及人們的權益及利害關 係時更為敏感,除可能輪為買票、賣票的工具,更可能導致整個選舉產生無效。 因此仍須考量投票的安全性,以保障投票人及整個投票活動的公正及公平。. 1.1.4. 投票制度的不同. 立. 政 治 大. ‧ 國. 學. 除此之外,不同的投票制度及獲勝條件,往往影響獲勝的判定,並非全然皆以最 高票為當選,蒐集歸納目前的投票制度[13][14],大概可以選票型式區分為多數決. ‧. 制、認可投票制及排序投票制三類:. sit. y. Nat. n. al. er. io. 1. 多數決制:又分為相對多數決制、絕對多數決制、比例代表制及混合制。 . 否需過半數。 . Ch. i Un. v. 相對多數決制:以得票數多寡判斷獲勝,而獲勝者的得票數不考慮得票是. engchi. 絶對多數決制:以得票數多寡判斷獲勝,獲勝者一定要得到過半數的選票 才能當選,目的是希望修正相對多數決的缺點,確保獲勝者具有較高的民 意支持度。. . 比例代表制:又稱政黨比例代表制、名單比例代表制。以政黨為投票對象, 各政黨在選前提出一份排序的名單,以政黨的得票比例,分配當選席次, 各黨再依順序選出當選人。此制度只適合大選區,不能用在小選區,無政 黨支持候選人則無法參選。 13.

(14) . 混合制:兼採多數決制與比例代表制兩種選舉方式的選舉制度,部分議員 以多數決制產生,另一部分則是按政黨比例代表制的方式產生。採取混合 制的國家,大多採行兩票制,選舉人手中握有兩張選票,一票選人,一票 選黨。. 另外從選票分配的角度來看,選票的數量可分為單記法、(全額)連記法、限制連記 法、累積投票制四種:  . 單記法:每一選舉人,最多只有 1 票投給候選人。. 治 政 大 (全額)連記制:應選名額有幾名,選舉人就有幾票,但每個候選人最多投 立 1 票,以得票較多的候選人依序當選。. ‧ 國. 學. . 限制連記制:應選名額在 3 人以上,選舉人擁有的票數少於應選名額,其. ‧. 連記額數以應選名額的過半人數為原則。例如國民黨十四全開始,中央委. y. sit. 累積投票制:應選名額有幾名,選舉人就有幾票,但是在投票時,選舉人. io. er. . Nat. 員選舉採二分之一限制連記法。. al. 可以將選票集中投給一位或少數候選人,或是平均分配給他/她所支持的候. n. iv n C 選人。我國公司法 100/12/28 198 條[18]規定:股東會選任董事時, h e n g修正公布 chi U 每一股份有與應選出董事人數相同之選舉權,得集選舉一人,或分配選舉 數人,由所得選票代表選舉權較多者,當選為董事。此即為累積投票制。 2. 認可投票制:投票人對每一個候選人都可以表達是否認同其能力或資格,以同 意(認可)或不同意(不認可)為其選擇項目,而取得最多認可 的候選人則可以當選成為獲勝者。 3. 排序投票制:每個投票人可以自行依照喜好將候選人排序或排名,通常並不一 定需要排序所有的候選人,沒有被排序的候選人通常會被計算為 14.

(15) 排序最低者。一些排序投票法也允許投票者將多重的候選人列為 同一名次。 彙整不同投票制度所需考慮的不同規劃如表格 1,以投票方式來看,多數決制以 票數進行投票,而認可投票制卻是採用同意或不同意的認可方式進行投票。而排 序投票制則以名次排行為投票方式;而在未投完視為廢票的角度來看,認可投票 制則視為對於未投同意票的候選人視為不同意,而排序投票制則視為最後一名。 在票數及規則處理上各有不同的角度及執行方式。. io. 決制. 數量加總. 限定投票. 有票數. 為廢票. 數投於同. 人. 1人 不可. 可自訂. 可自訂. v. 可. 可自訂. 可自訂. 不可. 可自訂. 候選人數. 視為不同意. 不可. 可自訂. 候選人數. 視為最後一. 不可. 可自訂. 依選票分 配方式. n. al. 是否可全. y. 票數. 未投完票視. 累積投票. 票數. 數量加總. 票數. 數量加總. 制 絕對多數. Ch. 決制. 應選人數. engchi 依選票分. 可自訂. sit. Nat. 相對多數. 投票人擁. ‧. ‧ 國. 得票計算. 學. 選票方式. er. 立. 治 政 大 表格 1 投票制度考慮的規則. i Un. 配方式. 認可投票. 同意/不. 同意數加. 制. 同意. 總. 排序投票. 名次. 名次加總. 制. 名 資料來源:本研究編製 15.

(16) 公司法第 198 條[18]特別規定上市公司董事選舉所採用的累積投票制,則為累積投 票制特殊變動的,依據每個股東所擁有的股數不同,而有不同的選舉權,即為擁 有的票數,可集中投於一人或分散於數個候選人。. 1.1.5. 獲勝規則的複雜性. 上述投票制度用來規定投票的方式、票數及相關可能投票要求,為了讓當選者能 夠更符合當選資格或得到更多人認同,有時不僅以得票數多寡,來判定是否當選,. 政 治 大 制的投票,當選者除必需擁有最高得票數,還必需要得到過半數以上的票,才算 立 而會增列獲勝資格或門檻,做為當選的必要條件。最簡單的範例即是絕對多數決. ‧ 國. 學. 當選,以保證當選者得到多數人民的信任。獲勝條件的規定,可能造成無人當選 的情形,在制定規則時,特別要注意。. ‧. 實務上,有許多的獲勝規定是相當特殊的,舉例來說:政大校長遴選委員會教師. y. Nat. er. io. sit. 代表選舉[16]中規定,應選出 7 人,當選人員當中,教授(含研究員)人數必需至少 有 5 人,而且在各學院或中心的當選人員當中,任一學院或中心當選不可多於 1. n. al. Ch. i Un. v. 人。而在許多性別平等要求的選舉中,亦有規定當選的男女性別中,必需要有固. engchi. 定男女比例的當選人數,例如台大校長遴選委員會委員選舉。另外,中央研究院 院士的選舉規則[13]中,當選人數最多 30 人,每個組別最多 10 人,得票數達全體 投票人的 2/3 當選為院士,或者得票數達全體投票人 1/2,與候選人同一組的投票 率達 1/2,與候選人同組的得票率達 2/3 時亦為當選。 為了滿足前述各項需求,並解決傳統投票的不便,則需要一個能夠利用圖型人機 介面(GUI)進行設計的投票制度與獲勝規則,提供一般人使用,且具有相對安全 的電子投票系統。. 16.

(17) 1.2 1.. 研究目標 建立一個滿足各式投票制度的網路電子投票系統:為了降低辦理一個投票活動 的困難,並讓所有投票人可以方便地進行投票,以提高運作效率及費用節省的 目標,因此本研究將建立一個網際網路投票系統,而投票人可利用任何可上網 資訊設備(包括電腦、筆記型電腦、智慧型手機、平版等)進行投票,提高使用 的方便性。. 2.. 以加法分持安全多方計算達到相對安全性:投票的安全性問題仍有其必要性,. 政 治 大. 本研究採用[7]論文,讓計票端無法回溯投票人的投票資訊,進而達到投票的秘. 立. 密。. ‧ 國. 學. 3.. 提供方便 GUI、抽換式投票腳本設定:為了讓系統可以符合更多的投票制度及. ‧. 獲勝規則,提供給一般社會大眾容易的使用及操作,因此清楚的 GUI 介面及操 作,則是必要的條件。而因應不同投票制度,讓同一個投票端程式可以接受,. y. Nat. er. io. sit. 進而符合投票制度的要求,系統將設計一個可以抽換的投票腳本,不同投票制 度有不同腳本,達到投票端程式設定,符合投票的規定。例如:每個投票人對. n. al. Ch. 每個候選人只能投 1 票。 4.. engchi. i Un. v. 提供多重組合獲勝條件的功能:獲勝條件可以多重組合的,例如:中研院院士 選舉中,當選院士條件之一, 「綜合得票率必需大於等於 1/2,組別投票率大於 等 1/2,且組別得票率大於等於 2/3」。系統必需可以彈性新增獲勝規則來滿足 不同的投票活動要求。. 1.3. 研究成果. 本研究建立的一套投票系統平台,是建構在網際網路為基礎的平台,採用目前最 廣為使用的 Web Based 的架構,進行投票活動的管理及維護,方便任何人只要有 17.

(18) 網路及瀏覽器,就可以建立一個投票活動,降低使用的門檻。另外在投票端的設 計上,選擇目前最為熱門的蘋果 iPad 平版電腦,做為投票工具,增加系統使用的 便利性。 為了讓大部份的投票活動可以進行,投票系統平台的設計特別可以針對不同投票 活動要求設計不同規則,以 GUI 方式引導使用這設定規則。並可以讓不同的投票 活動運作在同一個 App 投票程式中,不必個別安裝程式,簡化作業。此外,我們 的平台也支援各種不同的獲勝條件,除了單純以票數多寡來決定獲勝者的規則. 政 治 大. 外,系統允許增加更多不同的條件,做為獲勝者的門檻及資格,符合更多實務上. 立. 的需求。. ‧ 國. 學. 1.4. 研究限制. ‧. 本論文研究特別有三項限制:. sit. y. Nat. n. al. er. io. 1. 本研究設計的投票制度及獲勝條設定內容,是蒐集目前台灣學術界與企業中較. i Un. v. 為複雜的投票規則參考設計而成,但無法保證可以含蓋所有投票案例或特殊條. Ch. engchi. 件。不過這幾個參考案例(例如:中央研究院院士選舉、政大校長遴選委員會 選舉及公司董事選舉等),其獲勝條件的複雜度,比一般選舉僅以票數總和做 為獲勝依據,要複雜許多,可視為重要的標杆,據以認定應可符合大部份投票 活動的需求。 2. 由於投票制度中,為了使投票人慎重並負責,會要求投票人必需為記名投票, 以視公允,所有投票人必需為本人所投下的票負責,投出的票具名且公開,因 已不再需要考慮投票的秘密性,此情形則不在本研究的範圍。 3. 本論文並不特別探討在網路面的安全性問題,因為已有許多的網路安全控制可 以進行網路傳輸安全的保護,例如防火牆(Firewall)、IPS(Intrusion Protect 18.

(19) System)/IDS(Intrusion Detect System)、RSA 加密機制等,甚至對電腦病毒、木 馬、蠕蟲,以至於駭客入侵方面並不討論,那已經超過太多非本研究所能含蓋 範圍。但非因此而無安全機制,我們系統可以採用 Https SSL(Secure Session Layer)進行傳輸加密,保護傳輸的安全。. 1.5. 論文結構. 本論文第一章簡介論文的基礎資訊包括研究背景動機、目標及論文中用的相關基礎. 政 治 大 介紹本篇研究的相關技術背景及過去的相關研究的探討。第三章則從技術層面及系統架 立 知識,希望藉由第一章的閱讀即可讓讀者很快對全文的研究,有個初步的認識。第二章. ‧ 國. 學. 構規劃介紹,希望讓讀者清楚知道系統的架構、運作模型及作業規劃。第四章進行實驗 及實作結果的報告,由一般簡單型到複雜型的三個投票活動實驗,進行測試,以達到本. ‧. 系統的目標。第五章特別針對系統未來展望給概括的建議與描述,希望有助於想投入網. n. al. er. io. sit. y. Nat. 路投票研究的人有些幫助。. Ch. engchi. 19. i Un. v.

(20) 第2章 相關研究與技術背景 2.1. 技術背景. 2.1.1. 秘密分享技術 秘密分享是源自密碼學上針對金鑰安全管理的議題,1979 年現代密碼學極為有名 的學者 Shamir,以及另一學者 Blakey 分別提出秘密分享(secret sharing scheme) [1]的構 想與方法來解決金鑰的保管問題。將金鑰利用某種方法分割為 n 個部份金鑰,分別交給. 政 治 大 保管人中,任意 k 個人的部份金鑰即可將主金鑰推導出來的一種金鑰安全管理方法。研 立 n 個人保管,避免集中於一人時,遺失或失竊的風險導致秘密無法還原。另外,在所有. ‧ 國. 學. 究[5]更整理了包括 Shamir 秘密分享、Blakley 秘密分享、Karnin-Greene-Hellman 秘密分 享、Asmuth-Bloom 秘密分享方法及相關應用。. ‧. 戰爭電影裡常常出現一個情結,當軍方要對敵軍發射一個飛彈前,都需要開啟一個. y. Nat. io. sit. 密碼,而這個密碼資訊不是僅由指揮官保管,通常需要不同角色的人員各自保管的部份. n. al. er. 密碼資料,每個人從不同的角度考量決定是否進行飛彈發射,當每個人都同意發射飛彈. Ch. i Un. v. 時,將這些部份密碼資訊湊在一起才可開啟,這樣的分配使得原本完整的密碼資料,經. engchi. 過分割後存在多人手上,避免單一人即可進行飛彈發射的重要決定。 參考林子文所提出之加法分持做法[7],其運作範例可以參考如圖 1。我們可以利用 加法運算將值 37 分割為二個亂數數值(-61) , (-91)及第三個數值為 37-(-61)-(-91)=189,使 得 37 = (-61) + (-91) + 189,並將這三個數值分給三位參與者做為秘密分持,若需還原數 值 37,則必須同時取得三位參與者所擁有的數值並進行加法運算。. 20.

(21) 圖 1 秘密分享範例. 政 治 大. 立. ‧ 國. 學. 2.1.2. 安全多方計算. 參考來源: [7]. 安全多方計算是密碼學裡的一個重要研究主題,同時也是秘密分享中的一項應用。. ‧. 它是由中研院院士 Andrew C. Yao 所發表的論文中有關於百萬富翁問題[2]而來,問題假. y. Nat. io. sit. 設有兩個富翁,彼此不知道對方有多少財富,既不信任對方不想透露財務資料與對方,. n. al. er. 但又好奇想知道誰比較富有,在這個狀況下,Yao 的研究中提出一個演算法,在分享有. Ch. i Un. v. 限資訊的情形,藉由第三方的運算結果,既不會洩露雙方財產資料,又可以正確得知兩. engchi. 人誰較富有。因此安全多方計算不只可應用在資訊安全方面,更可達到隱私保密的功能。 2.1.3. 加法分持安全多方計算 在多方安全計算的運算環境中,加法分持是最清楚易懂的一種安全多方計算方法。 依據[7]的設計,加法分持計算共有三個運算階段如圖 2,說明如下: 1. 秘密資訊分持:擁有秘密資訊的 End User 為了資訊安全的保護,將手上的秘密 資訊以亂數加減法運算邏輯分拆為 2 個(或是多個)部份秘密資訊,讓分拆的部 份資訊個別無法識別出秘密資訊,並將分拆的部份秘密資訊分送給 Proxy 21.

(22) Server A 及 B。個別的資訊因無法識別出秘密資訊,也無法還原回溯至秘密資 訊,因此具備一定程度的安全性。 2. 第一次的合併:當多位 End User 個別送出部份秘密資訊給 Proxy Server A 及 B 後,Proxy Server 進行第一次的加總合併計算,各個 Proxy Server 加總結果再 個別送至 Merge Server。Proxy Server 的數量愈多,愈難讓有心人士收集完整的 秘密資訊,安全性也愈高,相對地,要每一台 Proxy Server 皆正常運作,才可 順利還原秘密資訊,風險也愈高。 3. 再次的合併:Merge Server 將所有 Proxy Server 送來的加總資訊,再次加總計. 治 政 算,得到最後的結果,即為秘密資訊或最終結果。 大 立 ‧ 國. 學. 使用此設計概念可以實作出應用模型,例如安全會議排程及本研究所提之秘密投 票,亦為本系統設計的理論基礎。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 2 加法分持計算系統三個階段. 參考來源: [7] 22.

(23) 2.1.4. 電子投票 電子投票技術發展,參考王淳在 2008 年發表的論文[11]大體上可分為以下兩 種:E-Voting 及 I-Voting,E-Voting 即 Electronic-Voting 利用電子式或機械式的設備來進 行投票的行為,該設備放在各投開票所,而選舉人仍必需親至投、開票所進行投票,在 該設備上,透過按鍵點擊、觸控操作、畫卡掃描等的方式進行投票,例如圖 3 的投票人 在選票畫記進行投票,再透過圖 4 光學讀卡透過反射閱讀卡技術,找到相對位置,得知 投票人投給哪個候選人或選項。此方式與傳統投票所簡化的是在選票的製作及開票的過. 政 治 大. 程,並大幅縮短開票時間,但對於選舉人仍必需花時間到投開票所排隊投票或出門在外. 立. 的選舉人無法投票的問題,無法改善。. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 3 An Optical Scan Ballot. 資料來源:[11]. 23.

(24) 立. 治 政 圖 4 An Optical Scanner 大 資料來源:[11]. ‧ 國. 學. 另外一個 I-Voting 即是 Internet-Voting,利用網路進行投票,該網路可以是區域網. ‧. 路也可能是網際網路,視選舉人數量規模或地點及本次選舉活動安全程度的考慮而定。. Nat. sit. y. 近來已有愈來愈多非正式的投票或社交目的的投票活動皆透過網路進行,它不僅提高投. n. al. er. io. 票活動的便利性,同時也讓整個投票活動變得快速有效率。正式的選舉投票活動因為考. i Un. v. 慮投票的安全性,實際透過網際網路投票的情形,在台灣較為少見,本篇研究則以網路. Ch. engchi. 投票的複雜性及相對安全角度而設計,希望能給未來建立網路投票機制的參考。. 2.2. 文獻探討. 較多的文獻所探討的網路投票系統相關議題,多圍繞選票的加密及投票人身份驗證 的技術觀點上,如在電子簽章數位憑證等加密安全為主的[9][11]所提到的愛沙尼亞 I-Voting 系統,利用「非對稱式加密」機制,當每個選舉人進行投票時,系統自動產生 一組金鑰,以公開金鑰將選舉人的投票資訊加密,使得紀錄保存的過程絕對安全,在開 票計算前,再利用該組私鑰解密,進行計票作業。 24.

(25) 另外,也有多重加密技術結合的論文研究,利用 RSA 簽章、盲簽章及 Shamir 秘密 分享法設計的電子投票系統如[12],相對於本論文研究,該演算法嚴謹卻顯得複雜許多。 另外對於電子投票機(E-Voting)的運作及安全改善的研究[4][11][12]也有不少。 本研究並未針對投票的加解密、不可否認性等投票安全進行討論,而是採用加法分 持安全多方計算的演算模型,減少複雜計算過程,同樣達到相對安全性要求,並且提供 一個參考設計架構,同時可以滿足大多數投票活動。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 25. i Un. v.

(26) 第3章 系統設計與架構 3.1. 系統設計理念. 網路投票是目前常見的一種非正式的投票方式,但該網路投票系統對於投票制度的 規定,都僅以滿足當次需要或當次特別要求的規則而設計,難有滿足大多數投票制度的 系統。 為了設計一個大家都可以使用的網路投票系統,系統具有以下幾個特性:. 1.. 政 治 大 友善性:以網際網路為設計架構,希望同時提供不同投票制度的解釋說明,以 立 ‧. 2.. ‧ 國. 功能的衝突。. 學. 方便活動管理者進行投票制度正確的選擇,並以友善的 GUI 介面,避免設定的錯誤造成. 整合彈性:無論採用何種投票制度,管理者皆可在一個介面的多樣條件選擇. y. sit er. io. 彈性的功能規則。. Nat. 下,建立不同的投票制度及規則,不需再重新規劃及設計系統,是一個整合且具有擴充. al. iv n C hengchi U 勝規則的判斷,以從候選人或項目中找出當選的名單,才是投票活動的最終目標,因此 結果正確性:投票活動過程只是工具,得到正確的票數計算,並且正確完成獲. n. 3.. 正確性是極為重要的。. 3.2. 系統設計考量. 網路投票系統將從幾個面向及角度進行規劃考量:. 1.. 關係人 (1) 投票活動管理人 (2) 候選人 26.

(27) (3) 投票人 (4) 監、計票人 (5) 當選人 2.. 投票活動中的項目 (1) 投票活動 (2) 選票 (3) 使用者自訂的屬性. 3.. 投票規則 (1) 投票制度. 立. 政 治 大. (2) 投票人是否限定某一群人. ‧ 國. 學. (3) 每個投票人擁有的票數. ‧. (4) 每個投票人投給每個候選人的票數. sit. y. Nat. (5) 可否投廢票. (1). al. n. 獲勝規則. io. 4.. er. (6) 未投完票視為廢票. ni Ch 比例條件-投票率(含自訂欄位) U engchi. v. (2) 比例條件-得票率(含自訂欄位) (3) 人數條件(含自訂欄位). 3.3. 系統運作流程. 3.3.1. 投票流程. 圖 5 與圖 6 為整個選舉活動從活動建立、通知投票人投票一直到完成投票後,計算. 所有候選人得票,並參考選舉規則而選出活動的獲勝者,細節的說明如下: 27.

(28) 學. ‧ 國. 立. 政 治 大 圖 5 投票流程. ‧. 資料來源:本研究編製. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 6 計票並選出獲勝者. 資料來源:本研究編製. 28.

(29) 3.3.2. 運作細節 1.. 投票活動管理. 依據該次投票活動規則,建立該次活動必要項目,建立步驟如下:. (1). 第一步驟為投票活動基本資料新增參考如圖 7,包括投票活動名稱、簡介及投 票起、迄時間及獲勝人數等,另外除了基本資料設定外,提供自訂欄位的設定 以便增加候選人或投票人的必要屬性欄位,例如候選人所屬的群組。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 7 投票活動基本資料. (2). 第二步驟為候選人資料維護參考如圖 8,包括候選人照片上傳、簡歷欄位及相 關附件上傳等,另外在活動基本資料建立時,若有針對候選人自訂欄位的內容 需要增加,則會在此頁面中,提供輸入的選項。 29.

(30) 立. ‧ 國. 圖 8 候選人資料維護. 學. 第三步驟為投票制度與投票人設定參考如圖 9,可以針對投票制度(多數決制、. ‧. 認可投票制、排序投票制)的選擇,選票分配方式來決定投票人擁有的票數,. y. Nat. io. sit. 是否允廢票,或是未投完票是否視為廢票等,另外也提供自訂投票制度來定義 不同的規定,例如可設定每位投票人擁有的票數、票數是否皆相同或不同,是. n. al. er. (3). 政 治 大. Ch. i Un. 否可全數或部份投票在一個候選人上等。. engchi. v. 同時投票活動亦決定是否為限定投票人或不限定投票人,一個公開類似問卷調 查的投票活動時,常常是不限定投票人,投票結果做為統計參考之用,則可以 採用不限定投票人方式進行。而具有特定資格的投票人才有權進行投票的投票 活動,則可採用限定投票人的方式進行。由於投票人的數量往往非常多,系統 投票由外部資料匯入的功能,方便進行建檔,匯入的檔案至少需包括投票人姓 名(VoterName)及投票人電子郵件(VoterEmail)兩欄位。 另外在活動基本資料建立時,若有針對投票人自訂欄位的內容需要增加,則會 30.

(31) 要求在匯入的檔案裡加入該欄位,做為投票人的屬性資料。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 9 投票制度與投票人設定. (4). 第四步驟為獲勝條件設定參考如圖 10,分為比例條件設定及人數條件兩種;. 31.

(32) 立. 政 治 大. ‧. ‧ 國. 學. Nat. er. io. sit. y. 圖 10 獲勝條件設定. al. 第一種比例條件的設定中,可供訂定的包括全體投票率、全體得票率條件,特. n. iv n C 殊自訂欄位的屬性值下的得票率及投票率,實務上的範例包括絕對多數決定的 hengchi U 全體投票率需大於等於 1/2,其設定方式如圖 11,此條件會被儲存為:. {{“id”:1,”filter”:”PVO”,”condition”:”>=”,”value”:”1/2”}}. 1/2. 圖 11 絕對多數決制之設定. 32.

(33) 另一例為中央研究院院士選舉辦法中[15]第四章第十二條第三款:「…但於綜 合投票中,如本組投票數達本組院士人數二分之一,而候選人得本組票數三分 之二者,則得三組綜合票數之過半數即當選…」,設定方式如圖 12 此條件會 被儲存為:. {{“id”:2”,”filter”:”PVTWith”,”fieldname”:”Group”,”fieldcondition”:”>=”,”fieldvalue”:”All”,”condition”:”>=”,”value”:”1/2”}, {“id”:2”,”filter”:”PVOWith”,”fieldname”:”Group”,”fieldcondition”:”>=”,”fieldvalue”:”All”,”condition”:”>=”,”value”:”2/3”}, {“id”:2,”filter”:”PVO”,”condition”:”>=”,”value”:”1/2”}}. 立. 政 治 大. ‧ 國. 學 ‧. 圖 12 中央研究院院士當選條件設定. er. io. sit. y. Nat. al. 第二種獲勝條件的分類是人數條件,在多位獲勝者的情形下,為了妥善分配獲. n. iv n C 勝者,以便讓不同背景或單位或特性等的候選人員,可以在當選後有發聲表達 hengchi U. 意見的機會,即可利用獲勝條件的人數條件設定,達到獲勝者的妥善分配。例 如政治大學校長遴選辦法[16]第三條(一):「…. 教師代表七人:由全校教師或 研究人員登記參選,並由校務會議代表就參選人中選舉產生之,其中教授(含 研究員)人數不得少於五人,同一學院或中心以一人當選為限。」 ,教授(含研 究員)人數不得少於五人之人數條件設定如圖 13,此條件會被儲存為:. {{”filter”:”Qtnfilter”,”rule”: [{”fieldname”:”Title”,”fieldcondition”:”=”,”fieldvalue”:”教授”,”operation”:”or”}, {”fieldname”:”Title”,”fieldcondition”:”=”,”fieldvalue”:”研究員”,”operation”:”無”}],. 33.

(34) ”condition”:”>=”,”value”:”5”}}. 透過 operation = or 的邏輯運算,用以設定教授與研究員的聯集關係,做為 人數條件的判斷基礎範圍。圖 13 中的與其他欄位運作的欄位,包括 And、Or 及 Not 等三種邏輯關係,藉由此欄位的設定,達到邏輯的條件範圍設定。. 政 治 大. 圖 13 教授(含研究員)人數不得少於五人之設定. 立. ‧ 國. 學. 另外一個範例: 「同一學院或中心以一人當選為限」可以設定如圖 14,而儲存. ‧. 為:. sit. y. Nat. {{”filter”:”Qtnfilter”,”rule”:. io. n. al. er. [{”fieldname”:”Department”,”fieldcondition”:”=”,”fieldvalue”:”All”,”operation”:”無”}], ”condition”:”<=”,”value”:”1”}}. Ch. engchi. i Un. v. 圖 14 同一學院或中心以一人當選為限. 2.. 通知選舉人 為了達到效率及節約的目標,由於本研究規劃建構於網際網路上的應用,透過訊息 在網站上公告、Email 通知方式,告知選舉人下載行動 App 進行投票。 34.

(35) 選舉人登入驗證 投票人經過以下步驟進行身份驗證,完成基本的身份驗證要求,參考圖 15 的流程 圖。 步驟1:. 自 App 內進行 Email 登入。. 步驟2:. 活動管理網站進行 Email 帳號確認。. 步驟3:. 活動管理網站寄送驗證碼至投票人 Email 信箱。. 步驟4:. 選舉人收取 Email,並自 App 輸入驗證碼。. 步驟5: 步驟6:. 治 政 大 投票人由 App 內回覆驗證碼給活動管理網站。 立 活動管理網站確認驗證碼是否一致。. 學. ‧ 國. 將 ACF(Activity Configuration File)寄送給 App。. 步驟8:. App 依照 ACF 進行不同投票規則的環境設定。. ‧. 步驟7:. io. sit. y. Nat. n. al. er. 3.. Ch. engchi. i Un. v. 圖 15 投票人身份驗證流程. 資料來源:本研究編製 ACF(Activities Configuration File) 是一個 JSON 格式的檔案,為本研究設計制定的 35.

(36) 一種投票制度設定檔,目的是藉由內容的定義,滿足各式投票活動的要求,達到使 用同一個 App 程式即可進行各式投票內涵的目標。一種 ACF 檔案格式的範例如圖 16,分為三個部份:. (1). 活動基本資料. (2). 投票制度. (3). 候選人資訊. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 16 Activities Configuration File 範例. 4.. 進行投票 App 程式解析 ACF 檔案的設定值,進行該次投票活動的環境及條件設定。. 36.

(37) 立. ‧ 國. 學 圖 17 App 投票端設計. ‧. 計票並選出獲勝者. sit. y. Nat. 5.. 政 治 大. n. al. er. io. 在此階段系統將利用加法分持安全多方計算得到每位候選人之得票數,依據欲選出. i Un. v. 的獲勝者人數及前節的獲勝條件設定,計算出獲勝者,即為本次投票活動的當選人。. 3.4. Ch. engchi. 系統設計架構. 本研究規劃的投票系統的系統架構圖如圖 18 所示,共分為三個主要角色,第一個角 色為負責投票活動管理、投票結果統計及獲勝者判斷的 Master Server,第二個角色負責 執行加法分持安全計算之多台 Proxy Servers 及第三個角色則是擔任投票者投票工具的 App Clients。. 37.

(38) 立. 政 治 大 資料來源:本研究編製. ‧. ‧ 國. 學. 圖 18 系統基本架構圖. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 19 系統功能模組. 資料來源:本研究編製 38.

(39) 參考圖 19 系統模組,其中 Master Server 共有 4 個模組(Voter Authentication Module、 Election Activities Management Module、Winner Rule Module、Counting Module),Proxy Server 共有 2 個模組(Checking Module、Secure Information Counting Module),App Client 共有兩個模組(Voter Login Check、Vote Module),其功能說明分述如下:. Master Server 的角色模組 1. Voter Authentication Module(VAM). 政 治 大 正確性,並確定投票人有權利進行投票。 立. 負責進行選舉人身份驗證及即時動態密碼驗證的功能模組,確保投票人的身分. 學. ‧ 國. 2. Election Activities Management Module(EAM). ‧. 此模組負責所有選舉活動基本資料建立,包括選舉名稱、選舉活動描述、選舉. y. Nat. 制度、投票起迄時間、候選人管理、投票人管理等功能。除上述基本資料建置. io. sit. 的功能外,並在此模組中提供管理者自訂欄位的功能,例如可設定候選人具有. er. 3.4.1.. 所屬部門的欄位或性別欄位,在建立候選人則需將提供此欄位值,做為後續獲. n. al. Ch. 勝條件判斷的參考依據。. engchi. i Un. v. 3. Winner Rule Module(WRM) 本模組功能負責選舉活動的獲勝規則建立,可以依據不同選舉規則需要,建立 不同的獲勝條件。獲勝規則共分為兩個條件類別,一為比例條件,即將得票率 或投票率納入獲勝條件要求,甚至可以加入 EAMM 之自訂欄位,做為比例條 件的項目,例如,部門為”管理部”的候選人得票率須大於等於 2/3 的條件。二 是人數條件,在多人當選的情形時,有時候會限制部門或組別有當選人數的限 制,讓當選的結果可以有更公平的分配,例如所有部門或中心的當選人數最多 1 人。不論比例或人數條件的建立可以是單獨存在,也可以是”且”或是”或”的 39.

(40) 邏輯組合,更提供不限個數條件的組合。 4. Counting Module(CM) 本模組執行最後票數的回數及統計候選人的得票數,並依據 Winner Rule Module 建立的獲勝規則,產生本次活動的獲勝者。. 3.4.2.. Proxy Server 的角色模組 1. Checking Module(CKM). 政 治 大. 此模組建置在 Proxy Server 上,負責檢驗由 App Client 端傳來的部分投票秘密. 立. 資訊的合法性,檢驗的項目包括:1.可投票檢查必須在投票活動狀態是投票中,. ‧ 國. 學. 而且是可投票的期間;2.同一活動中一個投票人不可重覆投票。. ‧. 2. Secure Information Counting Module. Nat. sit. y. 負責接收及處理來自 APP Client 有限的秘密資訊,並經過函數加總運算後,回. n. al. er. io. 傳至 Master Server。為了分散秘密資訊,Proxy Server 的數目必需大於等於 2,. i Un. v. 數量越多,秘密資訊被完整蒐集的可能就越低,資訊洩露的安全風險就越低,. Ch. engchi. 不過,相對的要維持越多的 Proxy Server 正常運作,其可用性(Availability)或要 維持可用性高的成本,就會變高。. 3.4.3.. App Client 的角色模組 1. Voter Login Check 此程式負責選舉人登入時與 Master Server 之間驗證處理,程式透過 Email 驗證 (或手機驗證)每個選舉人身份,驗證通過符合資格之的選舉人,才可以進行的 選舉投票活動。 40.

(41) 2. Vote Module 依據不同投票規則,產生不同的介面呈現及投票資訊,為了讓一個 App Client 即可滿足不同投票規則,我們制訂了 Activity Configuration File(ACF),其內 容就該次投票活動的制度要求進行各種參數式設定,表格 2 為 ACF 所有參數 對照表。App Client 依據系統傳送而來的 ACF 執行不同活動設定,以符合個別 投票活動的要求。 表格 2 ACF 檔案參數對照表. 投票制度. io. 6. 投票活動名稱. VoteStartDate. 投票開始日期時間. VoteEndDate. 投票截止日期時間. Winner. 應選出人數. isAllowInvalid. 是否允許廢票. n. al. VoteActivityName. y. Nat. 5. 7. 投票活動代號. ‧. 4. 立VoteActivityID. Ch. isRestrictVoters. engchi. sit. 3. 活動基本資料. 學. 2. 欄位名稱. er. 1. 說明 政 治 大. 類型. ‧ 國. 項次. i Un. v. 是否限制投票人. 8. isBallotsinVoterTable 票數是否在投票人資料表格中. 9. isBallotsSystem. 選票分配方式是否由管理者自訂. 10. BallotsSystem. 選票分配方式, 分為 1.單記法 2.連 記法 3.限制連記法 4.累積投票制. 11. BallotsPerVoters. 每位投票人擁有票數. 12. VoteSystemID. 定義投票制度, 分為 1.多數決制 2. 認可投票制 3.排序投票制. 13. ActivityStatus 41. 投票活動狀態.

(42) 14. isAllinOne. 是否可將所有票投在同一個候選人. 15. isGiveupNotFinish. 未投完票是否視為放棄. {*CandidateID. 候選人編號. 17. CandidateName. 候選人姓名. 18. Profile. 候選人簡介. 19. Photo. 候選人照片. 20. {*Attachment}. 附件. 21. UDFs}. 候選人資訊. *表示可包含多個項目. 立. 其他自訂欄位 政 治 大 資料來源:本研究編製. ‧. ‧ 國. 學. io. sit. y. Nat. n. al. er. 16. Ch. engchi. 42. i Un. v.

(43) 圖 20 呈現各角色間的運作,其相互間的協定 Protocol 則依據時間序列及資料的相互傳. 遞來完成。. 立. 政 治 大. ‧. ‧ 國. 學. Nat. n. al. 資料來源:本研究編製. er. io. sit. y. 圖 20 系統運作協定(以 2 台 Proxy Server 為例). Ch. engchi. i Un. v. 各協定 Protocol 所定義的內容、說明及格式,臚列於下方表格 3。 表格 3 各角色間資料傳輸協定. Item Protocol 1. M->A. Description. JSON. Master 傳送選. [{"VoteActivityID":2,"VoteActivityName":"選舉名稱", … ,. 舉活動、候選人 資訊及自訂欄 位至 App Client. "WinCounter":1, "isAllowInvalid":true, …, "isGiveupNotFinish":true, "CreateDate":"2013-05-13T15:50:43.83"}, [{"CandidateID":1,"CandidateName":"候 1",…, "Group":"生命科學", "Attachment": [{"AttachmentID":1,"FileName":"候 1 的附件.pdf", 43.

(44) "SavedName":"http://192.168.189.129/upload/attachment/211.pdf"}]}, {"CandidateID":2,"CandidateName":"候 2,…,"Group":"數理科學", "Attachment":[{"AttachmentID":2,"FileName":"候 2 的附件.pdf", "SavedName":"http://192.168.189.129/upload/attachment/222.pdf"}]}, {"CandidateID":3,"CandidateName":"候 3",…,"Group":"生命科學 ","Attachment":[]}]] Master 傳送選 { "VoteActivityID": 2, 舉活動的開 "VoteActivityName":"選舉名稱", 始、結束時間給 "VoteStartDate:"2013-05-20T15:00:00", Proxy Server A->P. App 傳送投票 結果給 Proxy. {"VoteActivityID":2, "VotedList":" [ 805, -33, -767 ] ", "VoterUDFs":[{"TableName": "Voters", "FieldName": "Group", "FieldID": 2, "Value": "數理科學"}]}. Server. ‧ 國. Master Server. { "VoteActivityID":2, "VoterEmail":"[email protected]", "Voted": true}. 每台 Proxy. { "VoteActivityID": 2,. ‧. P->M. App 傳送已投 票訊息給. Nat. 5. A->M. 立. 學. 4. 政 治 大. io. Server 於活動 結束時傳送加 總結果結. n. Master Server. al. y. 3. "VoteEndDate":"2013-12-30T12:00:00"}. sit. M->P. "ProxyID":"192.168.189.129:8888", "VotedList":"[ 1350, -78, 320]"}. er. 2. Ch. engchi. i Un. v. 資料來源:本研究編製. 3.5. 技術規劃. 3.5.1. Web Server 的規劃. 由於整個系統的運作規劃以網路投票的情境中進行,因此對於 Master Server 及 Proxy Server 端則採用網際網路上最為普遍的 Web Server 技術運作,本研究則是 採用 Microsoft IIS 6.0 的 Web Server,並搭配 MS Sql Server 資料庫進行所有活動 44.

(45) 的各項紀錄及管理。. 3.5.2. App Client 的規劃. 在 App Client 投票端的選擇,則是希望藉由的 Mobile 行動裝置的普及率及便利 性,做為投票人進行投票作業的工具,降低投票人的門檻,以提高投票率,更 能充分反應所有人的意見。本研究採用蘋果 iOS 5.0 以上的作業系統,配合 iPad 平版的行動裝置,提供投票人方便的選擇。. 3.5.3. Web Service 的規劃. 立. 政 治 大. ‧ 國. 學. Web Service 是一種 SOA 的技術,透過 Web 的 SOAP 協定在不同平台的設備上 進行資料交換及功能操作,而資料交換採取 XML 資料格式進行。由於 SOAP. ‧. 的應用標準而提供了許多 WS* 開頭的協定集合,以因應各種不同安全或交易應. y. Nat. io. sit. 用,使得 SOAP 成為複雜應用服務。我們將它應用在 Master Server 與 Proxy. n. al. er. Server 的 Server 間的傳輸作業運用,提高 Web Server 間標準的符合性。. Ch. engchi. 3.5.4. Http(或 Https) Post 的技術. i Un. v. Http 是一個在 Web Server 和 Client 端資料傳輸上使用的協定,其處理的方法有 兩種 Get 和 Post,考慮傳遞安全及功能性,參考表格 4,本研究採用 Http(或 Https) Post 方法進行 App Client 與 Master Server 及 Proxy Server 的資料傳輸交換。除 此之外,資料傳遞的格式上選擇比 XML 較為輕量的 JSON 格式,減少網路資料 傳輸的負擔。. 45.

(46) 表格 4 Http GET vs. POST. BACK. GET. POST. Harmless. Data will be re-submitted (the browser should. button/Reload. alert the user that the data are about to be re-submitted). Bookmarked. Can be bookmarked. Cannot be bookmarked. Cached. Can be cached. Not cached. Encoding type. application/x-www-form-urlencoded. Restrictions on. Parameters remain in browser history. Parameters are not saved in browser history. Yes, when sending data, the GET method adds. No restrictions. ‧. data length. 學. History. for binary data. ‧ 國. 立. application/x-www-form-urlencoded or 政 治 大multipart/form-data. Use multipart encoding. the data to the URL; and the length of a URL is. y. Nat. limited (maximum URL length is 2048. io. Only ASCII characters allowed. n. data type Security. al. No restrictions. Binary data is also allowed. er. Restrictions on. sit. characters). Ch. engchi. i Un. v. GET is less secure compared to POST because. POST is a little safer than GET because the. data sent is part of the URL Never use GET. parameters are not stored in browser history or. when sending passwords or other sensitive. in web server logs. information! Visibility. Data is visible to everyone in the URL. Data is not displayed in the URL. 資料來源:[5]. 3.6. 加法分持應用於投票系統. 代號定義說明如下: 46.

(47) M 表示 Master Sever P 表示 Proxy Server, (P1, P2, … , Pn)為所有 Proxy Servers, PN 表所有 Proxy Servers 的數 量 C 表示 Candidate, (C1, C2, … , Cn)為所有候選人, CN 表示所有 Candidates 的數量 V 表示 Voter, (V1, V2, … ,Vn)為所有投票人, VN 表示所有 Voters 的數量 B(Vi,Cj)表示 Voter i 投給 Candidate j 的票數. 3.6.1. 票數分持運作步驟 步驟1: 將每一位投票人對每一位候選人投的票數,以序列化表示為(B(Vi, C1),. 政 治 大. B(Vi,C2), …. , B(Vi, CN))。. 立. ‧ 國. 學. 第 1 位投票人對每一位候選人的投票數(B(V1, C1), B(V1,C2),…,B(V1,Cn)) 第 2 位投票人對每一位候選人的投票數(B(V2, C1), B(V2,C2),…,B(V2,Cn)). ‧. 第 3 位投票人對每一位候選人的投票數(B(V3, C1), B(V3,C2),…,B(V3,Cn)) 以此類推. io. sit. y. Nat. n. al. er. 步驟2: 將每一位投票人對於每一個候選人的投票數 B(V, C),以隨機亂數取得 R1、. i Un. v. R2、…、Rp-1 共 p-1 個亂數整數及第 p 個亂數 Rp = B(V, C) – ( R1 + R2+ …+ Rp-1),. Ch. engchi. 使得 B(V, C) = ( R1 + R2+ …+ Rp)。 第 1 位投票人. 對於第 1 個候選人的得票數 B(V1, C1), 產生一組隨機數字(R1 + R2+ …+ Rp), 使 得 B(V1, C1) = (R1 + R2+ …+ Rp) 對於第 2 個候選人的得票數 B(V1, C2), 產生另一組隨機數字(R1 + R2+ …+ Rp), 使得 B(V1, C2) = (R1 + R2+ …+ Rp) 以此類推至其他候選人. 第 2 位投票人 對於第 1 個候選人的得票數 B(V2,C1), 產生一組隨機數字(R1 + R2+ …+ Rp), 使 得 B(V2,C1) = (R1 + R2+ …+ Rp) 47.

(48) 對於第 2 個候選人的得票數 B(V2,C2), 產生另一組隨機數字(R1 + R2+ …+ Rp), 使得 B(V2,C2) =(R1 + R2+ …+ Rp) 以此類推至其他候選人. …. 步驟3: 對於所有投票人對候選人的投票資料 B(V,C)皆有對映的 1 組亂數序列(R1, R2,…, Rp ) 將第一個投票人對於所有候選人的投票數組成數列 (C1(R1, R2, … , Rp), C2(R1, R2, … , Rp),…, Cn(R1, R2, … , Rp)). 政 治 大. 所有的 R1 組成序列傳送給 P1, 即(C1(R1), C2(R1),…, Cn(R1)). 立. 所有的 R2 組成序列傳送給 P2, 即(C1(R2), C2(R2),…, Cn(R2)). ‧ 國. 學. 將第二個投票人對於所有候選人的投票數組成數列. ‧. (C1(R1, R2, … , Rp), C2(R1, R2, … , Rp),…, Cn(R1, R2, … , Rp)). y. Nat. 所有的 R1 組成序列傳送給 P1, 即(C1(R1), C2(R1),…, Cn(R1)). n. al. er. io. 以此類推. sit. 所有的 R2 組成序列傳送給 P2, 即(C1(R2), C2(R2),…, Cn(R2)). Ch. engchi. i Un. P1 最後將得到由所有投票人傳送來的資料 Voter1 => (C1(R1), C2(R1),…, Cn(R1)) Voter2 => (C1(R1), C2(R1),…, Cn(R1)) Voter3 => (C1(R1), C2(R1),…, Cn(R1)) … P2 最後將得到由所有投票人傳送來的資料 Voter1 => (C1(R2), C2(R2),…, Cn(R2)) Voter2 =>(C1(R2), C2(R2),…, Cn(R2)) Voter3 => (C1(R2), C2(R2),…, Cn(R2)) 以此類推 P3, P4,…,Pn. 48. v.

(49) 此時完成票數分持傳送程序,每個分持資料在 Proxy Server 上皆為亂數產生之 資訊,無法回溯至原始 B(V,C)資訊。 3.6.2. 加法彙整導出結果 此階段共有兩次的加法運算及三個步驟,分述如下: 步驟1:. Proxy Server 中繼加法彙整運算. 針對所有 Proxy Servers,將每位投票人傳送而來的資訊相加,做為回傳至 Master Server 的依據。. 政 治 大 P1 將所有投票人傳來的 C (R )相加,C (R )相加,C (R )相加 立 Voter1 => (C (R ), C (R ), … , C (R )) 1. 1. 2. 1. 2. n. 1. n. 1. 1. 學. ‧ 國. 1. 1. Voter2 => (C1(R1), C2(R1), … , Cn(R1)) Voter3 => (C1(R1), C2(R1), … , Cn(R1)). ‧. 結果為 (C1R1, C2R1, … , CnR1). Nat. sit. y. P2 將所有投票人傳來的 C1(R2)相加,C2(R2)相加,Cn(R2)相加. al. n. Voter2 => (C1(R2), C2(R2), … , Cn(R2)). Ch. Voter3 => (C1(R2), C2(R2), … , Cn(R2)). engchi. er. io. Voter1 => (C1(R2), C2(R2), … , Cn(R2)). i Un. v. 結果為 (C1R2, C2R2, … , CnR2) 以此類推 P3, P4,…,Pn. 步驟2:. 將 Proxy Server 中繼主機的加法運算結果,回傳至 Master Server. Master Server 將收到來自所有 Proxy Server 的回傳值 P1 => (C1R1, C2R1, … , CnR1) P2 => (C1R2, C2R2, … , CnR2) …... 49.

(50) 以此類推. 步驟3: 依據每個欄位加總 Master Server 收的來自每個 Proxy Servers 的資訊,即為每位 候選人的得票結果。 得票結果 (C1R1+ C1R2+…+C1Rp, C2R1+ C2R2+…+ C2Rp, … , CnR1 + CnR2 +…+ CnRp) Candidate 1 得票 C1R1+ C1R2+…+C1Rp Candidate 2 得票 C2R1+ C2R2+…+ C2Rp. 政 治 大 Candidate N 得票 C R + C R +…+ C R 立 ….. n. 1. n 2. n p. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 50. i Un. v.

(51) 第4章 實驗與評估 此系統的 Master Server 及 Proxy Server 是以微軟的.Net 為主要的程式語言,Web Server 則使用 IIS 6.0,資料庫使用 MS SQL Server 2008,利用微軟 IDE(Visual Studio) 整合性的開發介面,完整結合微軟產品的管理工具,增加開發的速度。 在 App Client 端此系統使用的 iPad 做為選舉人投票的載具,使用 Objective-C 程式語. 政 治 大. 言開發並採用 Apple iOS 5.0 以上的 Mobile 行動裝置。由於 Apple 公司在 App Store 上. 立. 的審核及檢查上,較 Android 平台的 App 較為嚴謹及安全,而且其一致性 SandBox 的規. ‧ 國. 學. 格,不允許任何 App 存取其他 App 資料的特性,相對於 Android 平台則安全性高多了。. ‧. 4.1. 實驗設計. y. Nat. n. al. er. io. 1. 情境設計:. Ch. engchi. 實驗設計 1:政大企管公司董事選舉   . i Un. v. 應選出 1 人 候選人數 3 人 投票制度: A. B.. . sit. 4.1.1. 實驗設計 1:政大企管公司董事選舉. 採用累積投票制,每個人的票數各有不同 票數未完全投完表示放棄剩餘選票. 獲勝條件:無. 2. 系統設定:. 51.

(52) 投票規則設定的畫面如,設定為多數決制,選票分配採用自訂,且每位選舉人票 數不同,由匯入 Excel 檔決定。另外,在未投完票視為放棄的選項中「是」。. 立. 政 治 大. ‧. ‧ 國. 學. io. sit. y. Nat. er. 圖 21 累積投票制之投票規則設定範例. al. n. iv n C hengchi U 另外 Excel 檔案內容為投票人的相關資訊,除了包括姓名及 Email 外,因為累積 投票制是依照每個投票人(即股東)所擁有的股票數不同,而有不同的票數權重, 所以需事先將每位股東的票數權重計算後,設定於 Excel 檔案內,欄位名稱為 Ballots,做為每位股票可投的總票數。. VoterName. VoterEmail. Ballots. 3. 實驗結果 實驗進行的投票以隨機亂數方式分別投給候選人,得到的結果參考如圖 22,可投 52.

(53) 票人數 12 人,投票人數 3 人,總投票率 25%,依據得票數(VO)多少列出 3 位候 選人。說明如下: 基本資訊說明: VO 表示得票數 isWinner 為獲勝者. (1) 本實驗依據多數決制之累積投票制進行投票,系統依據匯入的票數權重,提供 不同投票人的票數。. 政 治 大. (2) 主要驗證 App Client 允許不同票數的投票進行及總票數限制的管理。. 立. (3) 最後結果, CID=3 的陳小明得票 20500 票, 票數最高為當選。. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 22 政大企管公司董事選舉. 4.1.2. 實驗設計 2:政治大學校長遴選委員會教師代表選舉. 1. 情境設計:參考政治大學校長遴選委員會教師代表選舉[16]設計如下: 實驗設計 2:政治大學校長遴選委員會教師代表選舉  . 應選出 5 人 候選人數 10 人 53.

(54) . 投票制度: A. 採用多數決制-票數為限制連記制 B. 票數未完全投完表示未得票的候選人為放棄. . 獲勝條件:無比例條件規則,但人數條件規則共有 2 個,需同時滿足 才可當選。 A. B.. 同一中心或部門當選人數至多 1 人 候選人為教授(含研究員)的當選人數至少 3 人. 2. 系統設定:. 政 治 大 投票制度設定選擇多數決制的限制連記制,限制連記制依據應選出人數設定每位 立. ‧ 國. 學. 投票的票數為 1/2+,本實驗應選出人數為 5 人,每位投票人的票數為 3 票。另 外,獲勝條件的設定方式參考,紅框內即為系統設定結果。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 23 政大校長遴選委員教師代表選舉獲勝條件設定. 3. 實驗結果: 實驗進行的投票以隨機亂數方式分別投給候選人,得到的結果參考如圖 24,可 投票人數 20 人,投票人數 9 人,總投票率 45%,依據得票數(VO)多少列出 10 位 54.

(55) 候選人。說明如下: 基本資訊說明: VO 表示得票數 Title 為自訂欄位「職稱」 Department 為自訂欄位「部門」 QtnMC 為獲勝條件之人數條件滿足的次數 isWinner 為獲勝者. 政 治 大 (2) QtnMC 為 2 表示符合第二個人數條件,即是教授(含研究員)的人數>=3 人。 立 (1) 候選人名單是由 VO(得票數)多寡排列. ‧ 國. 學. (3) 由於 CID=2 的王佩珊及 CID=3 的林貞貞兩位所屬部門與前面得票數較高的 CID=5 的錢文傑及 CID=9 的葉公超相同,依據人數條件規則,則由下一個. ‧. CID=4 的陳育成當選。. sit. y. Nat. (4) 綜上,應選出人數為 5 人,當選人員 CID 為 9、5、7、1、4 的葉公超、錢文傑、. n. al. er. io. 陳俊昕、李肇榮及陳育成五位。. Ch. engchi. 55. i Un. v.

(56) 政 治 大. 圖 24 政大校長遴選委員會教師代表選舉結果. 學. ‧ 國. 立. y. Nat. 情境設計:參考中央研究院院士選舉[13]為例,將人數規模做些調整,進行系. io. sit. 1.. ‧. 4.1.3. 實驗設計 3:小規模中央研究院院士選舉. er. 統測試及實作。規劃如下:. n. al. ni Ch 實驗設計 3:小規模中央研究院院士選舉 U engchi   . 應選出 3 人 候選參考人數 10 人 投票制度: A. B.. . v. 採用認可投票制 票數未完全投完表示未得票的候選人為不同意. 獲勝規則:比例條件共有 2 個,人數條件有 1 個,滿足比例條件其中 之一且滿足人數條件即為當選。 A. 總得票率 B. 總得票率 即為當選. >= 2/3 即為當選 >= 1/2 且 本組投票率 >= 1/2 且 本組得票率 >= 2/3. 56.

(57) C. 任一組別獲勝人數不可多於 1 人. 系統設定: 投票制度設定選擇認可投票制,每個投票人對於每位候選人擁有同意權。獲勝條件 分為比例條件及人數條件的設定。比例條件中有兩個條件滿足其中之一即可,圖為 第一個比例條件設定總得票率(PVO)大於等於 2/3。. 立. 政 治 大. 學 ‧. ‧ 國. 圖 25 中研院院士選舉比例條件 1 設定. sit. y. Nat. io. 圖為第二個比例條件的設定,ID=2 是為了與第一個比例條件做識別,同一個 ID 下. n. al. er. 2.. i Un. v. 的所有條件必需皆滿足,而不同 ID 則只要滿足其中一個即為當選。. Ch. engchi. 圖 26 中研院院士選舉比例條件 2 設定. 另外,人數條件的設定參考圖,比例條件滿足後,仍必需滿足人數條件,以下設定 57.

(58) 同一組別當選人數最多 1 人。. 圖 27 中研院院士選舉人數條件設定. 實驗結果:. 政 治 大. 實驗進行的投票以隨機亂數方式分別投給候選人,得到的結果參考如圖 28,可投票. 立. 人數 70 人,投票人數 8 人,總投票率 11.43%,依據得票數(VO)多少列出 10 位候. 學. ‧ 國. 選人。說明如下:. ‧. 基本資訊說明:. VO 表示得票數. . PVO 為得票率. . Group 為自訂欄位「組別」. . PVTWithGroup 為同組投票率. . PVOWithGroup 為同組得票率. . ID1MC 為條件 1 的符合次數. . ID2MC 為條件 2 的符合次數. . Qualify 判斷是否滿足 ID1 或滿足 ID2,任一條件滿足即為 YES. . QtnMC 為獲勝條件之人數條件滿足的次數. . isWinner 為獲勝者. sit. io. n. al. y. Nat. . er. 3.. Ch. engchi. i Un. v. 1. 滿足比例條件一之候選人其總得票率>2/3,即 PVO > 0.667,共有 CID 5, 3, 4 三位。 2. 而滿足比例條件二之候選人必須同時滿足 3 個條件,目前資料顯示所有人員最 58.

(59) 多滿足 2 個條件,因此無任何人員滿足比例條件二。 3. 依前 1,2 兩點來看,Qualify(表示符合比例過濾資格)欄位為 YES 的候選人有 3 位,分別 CID 為 5, 3, 4。 4. 符合人數過濾資格的欄位 QtnMC 看,僅有 CID 為 5, 3 符合人數過濾資料,因 為 CID=4 之候選人與 CID=5 之候選人屬同一組,與人數條件之規定不符。 5. 綜上,雖然應選人數為 3 人,仍只有 2 位當選,當選為 CID=5 的王佩珊及 CID=3 的錢文傑。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 28 活動名稱:103 年度中央研究院院士選舉投票結果(模擬結果). 4.2. 實驗討論 實驗的規劃是思考投票活動獲勝條件的複雜程度來設計,分為一般型、混合型 及複雜型三類,一般型是單純的僅以票數多寡做為獲勝的判斷,不考慮獲勝條 件的比例及人數條件的投票活動;混合型則除了考慮得票數的多少,還增加獲 59.

數據

圖  2 加法分持計算系統三個階段
圖  3 An Optical Scan Ballot
圖  15  投票人身份驗證流程
圖  16 Activities Configuration File  範例

參考文獻

相關文件

(三) 使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言. (JavaScript framework 架構),搭配 MS SQL

(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架 構 )、 Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS

(三) 使用 Visual Studio 之 C# 程式語言(.Net framework 架構) ,設計 各項系統程式、使用者操作介面,以及報表。. (四) 使用 MS

2.熟 悉 Microsoft Windows Server 作 業 系 統 、 Microsoft SQL Server 資料庫伺服器及網 頁伺服器等環境。. 3.具撰寫 JAVA

(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS

• 系統此時除了檢查您的檔案與資料夾權限正確與否,並且也 檢查您的SERVER PHP版本、是否安裝了GD LIB與GD的版

(A)因為用 Terminal Services 可以不用安裝 ERP 的程式在 Client 端上可以減少 MIS 維護系 統的時間(B)沒有防毒軟體 (C)建置防火牆的系統 (D) APP-Server 與 DB

Web 伺服器 Internet information services 6 相關應用工具 SQL Server 2005 Analysis services. SQL server business intelligence development Studio Visual