國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
24
圖 4 An Optical Scanner
資料來源:[11]
另外一個 I-Voting 即是 Internet-Voting,利用網路進行投票,該網路可以是區域網 路也可能是網際網路,視選舉人數量規模或地點及本次選舉活動安全程度的考慮而定。
近來已有愈來愈多非正式的投票或社交目的的投票活動皆透過網路進行,它不僅提高投 票活動的便利性,同時也讓整個投票活動變得快速有效率。正式的選舉投票活動因為考 慮投票的安全性,實際透過網際網路投票的情形,在台灣較為少見,本篇研究則以網路 投票的複雜性及相對安全角度而設計,希望能給未來建立網路投票機制的參考。
2.2 文獻探討
較多的文獻所探討的網路投票系統相關議題,多圍繞選票的加密及投票人身份驗證 的技術觀點上,如在電子簽章數位憑證等加密安全為主的[9][11]所提到的愛沙尼亞 I-Voting 系統,利用「非對稱式加密」機制,當每個選舉人進行投票時,系統自動產生 一組金鑰,以公開金鑰將選舉人的投票資訊加密,使得紀錄保存的過程絕對安全,在開 票計算前,再利用該組私鑰解密,進行計票作業。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
25
另外,也有多重加密技術結合的論文研究,利用 RSA 簽章、盲簽章及 Shamir 秘密 分享法設計的電子投票系統如[12],相對於本論文研究,該演算法嚴謹卻顯得複雜許多。
另外對於電子投票機(E-Voting)的運作及安全改善的研究[4][11][12]也有不少。
本研究並未針對投票的加解密、不可否認性等投票安全進行討論,而是採用加法分 持安全多方計算的演算模型,減少複雜計算過程,同樣達到相對安全性要求,並且提供 一個參考設計架構,同時可以滿足大多數投票活動。
‧
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
28 圖 5 投票流程
資料來源:本研究編製
圖 6 計票並選出獲勝者
資料來源:本研究編製
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
29
3.3.2.
運作細節
1. 投票活動管理
依據該次投票活動規則,建立該次活動必要項目,建立步驟如下:
(1) 第一步驟為投票活動基本資料新增參考如圖 7,包括投票活動名稱、簡介及投 票起、迄時間及獲勝人數等,另外除了基本資料設定外,提供自訂欄位的設定 以便增加候選人或投票人的必要屬性欄位,例如候選人所屬的群組。
圖 7 投票活動基本資料
(2) 第二步驟為候選人資料維護參考如圖 8,包括候選人照片上傳、簡歷欄位及相 關附件上傳等,另外在活動基本資料建立時,若有針對候選人自訂欄位的內容 需要增加,則會在此頁面中,提供輸入的選項。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
30
圖 8 候選人資料維護
(3) 第三步驟為投票制度與投票人設定參考如圖 9,可以針對投票制度(多數決制、
認可投票制、排序投票制)的選擇,選票分配方式來決定投票人擁有的票數,
是否允廢票,或是未投完票是否視為廢票等,另外也提供自訂投票制度來定義 不同的規定,例如可設定每位投票人擁有的票數、票數是否皆相同或不同,是 否可全數或部份投票在一個候選人上等。
同時投票活動亦決定是否為限定投票人或不限定投票人,一個公開類似問卷調 查的投票活動時,常常是不限定投票人,投票結果做為統計參考之用,則可以 採用不限定投票人方式進行。而具有特定資格的投票人才有權進行投票的投票 活動,則可採用限定投票人的方式進行。由於投票人的數量往往非常多,系統 投票由外部資料匯入的功能,方便進行建檔,匯入的檔案至少需包括投票人姓 名(VoterName)及投票人電子郵件(VoterEmail)兩欄位。
另外在活動基本資料建立時,若有針對投票人自訂欄位的內容需要增加,則會
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
31
要求在匯入的檔案裡加入該欄位,做為投票人的屬性資料。
圖 9 投票制度與投票人設定
(4) 第四步驟為獲勝條件設定參考如圖 10,分為比例條件設定及人數條件兩種;
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
32
圖 10 獲勝條件設定
第一種比例條件的設定中,可供訂定的包括全體投票率、全體得票率條件,特 殊自訂欄位的屬性值下的得票率及投票率,實務上的範例包括絕對多數決定的 全體投票率需大於等於 1/2,其設定方式如圖 11,此條件會被儲存為:
{{“id”:1,”filter”:”PVO”,”condition”:”>=”,”value”:”1/2”}}
圖 11 絕對多數決制之設定
1/2
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
33
另一例為中央研究院院士選舉辦法中[15]第四章第十二條第三款:「…但於綜 合投票中,如本組投票數達本組院士人數二分之一,而候選人得本組票數三分 之二者,則得三組綜合票數之過半數即當選…」,設定方式如圖 12 此條件會 被儲存為:
圖 12 中央研究院院士當選條件設定
第二種獲勝條件的分類是人數條件,在多位獲勝者的情形下,為了妥善分配獲 勝者,以便讓不同背景或單位或特性等的候選人員,可以在當選後有發聲表達 意見的機會,即可利用獲勝條件的人數條件設定,達到獲勝者的妥善分配。例 如政治大學校長遴選辦法[16]第三條(一):「…. 教師代表七人:由全校教師或 研究人員登記參選,並由校務會議代表就參選人中選舉產生之,其中教授(含 研究員)人數不得少於五人,同一學院或中心以一人當選為限。」,教授(含研 究員)人數不得少於五人之人數條件設定如圖 13,此條件會被儲存為:
{{”filter”:”Qtnfilter”,”rule”:
[{”fieldname”:”Title”,”fieldcondition”:”=”,”fieldvalue”:”教授”,”operation”:”or”}, {”fieldname”:”Title”,”fieldcondition”:”=”,”fieldvalue”:”研究員”,”operation”:”無”}],
{{“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”}}
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
34
”condition”:”>=”,”value”:”5”}}
透過 operation = or 的邏輯運算,用以設定教授與研究員的聯集關係,做為 人數條件的判斷基礎範圍。圖 13中的與其他欄位運作的欄位,包括 And、Or 及 Not 等三種邏輯關係,藉由此欄位的設定,達到邏輯的條件範圍設定。
圖 13 教授(含研究員)人數不得少於五人之設定
另外一個範例:「同一學院或中心以一人當選為限」可以設定如圖 14,而儲存 為:
{{”filter”:”Qtnfilter”,”rule”:
[{”fieldname”:”Department”,”fieldcondition”:”=”,”fieldvalue”:”All”,”operation”:”無”}],
”condition”:”<=”,”value”:”1”}}
圖 14 同一學院或中心以一人當選為限
2. 通知選舉人
為了達到效率及節約的目標,由於本研究規劃建構於網際網路上的應用,透過訊息 在網站上公告、Email 通知方式,告知選舉人下載行動 App 進行投票。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
35
3. 選舉人登入驗證
投票人經過以下步驟進行身份驗證,完成基本的身份驗證要求,參考圖 15 的流程 圖。
步驟1: 自 App 內進行 Email 登入。
步驟2: 活動管理網站進行 Email 帳號確認。
步驟3: 活動管理網站寄送驗證碼至投票人 Email 信箱。
步驟4: 選舉人收取 Email,並自 App 輸入驗證碼。
步驟5: 投票人由 App 內回覆驗證碼給活動管理網站。
步驟6: 活動管理網站確認驗證碼是否一致。
步驟7: 將 ACF(Activity Configuration File)寄送給 App。
步驟8: App 依照 ACF 進行不同投票規則的環境設定。
圖 15 投票人身份驗證流程
資料來源:本研究編製
ACF(Activities Configuration File) 是一個 JSON 格式的檔案,為本研究設計制定的
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
36
一種投票制度設定檔,目的是藉由內容的定義,滿足各式投票活動的要求,達到使 用同一個 App 程式即可進行各式投票內涵的目標。一種 ACF 檔案格式的範例如圖 16,分為三個部份:
(1) 活動基本資料 (2) 投票制度 (3) 候選人資訊
圖 16 Activities Configuration File 範例
4. 進行投票
App 程式解析 ACF 檔案的設定值,進行該次投票活動的環境及條件設定。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
37
圖 17 App 投票端設計
5. 計票並選出獲勝者
在此階段系統將利用加法分持安全多方計算得到每位候選人之得票數,依據欲選出 的獲勝者人數及前節的獲勝條件設定,計算出獲勝者,即為本次投票活動的當選人。
3.4 系統設計架構
本研究規劃的投票系統的系統架構圖如圖 18所示,共分為三個主要角色,第一個角 色為負責投票活動管理、投票結果統計及獲勝者判斷的 Master Server,第二個角色負責 執行加法分持安全計算之多台 Proxy Servers 及第三個角色則是擔任投票者投票工具的 App Clients。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
圖 18 系統基本架構圖
資料來源:本研究編製
圖 19 系統功能模組
資料來源:本研究編製
‧
參考圖 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),其功能說明分述如下:
3.4.1.
Master Server 的角色模組
1. Voter Authentication Module(VAM)
負責進行選舉人身份驗證及即時動態密碼驗證的功能模組,確保投票人的身分 正確性,並確定投票人有權利進行投票。
2. Election Activities Management Module(EAM)
此模組負責所有選舉活動基本資料建立,包括選舉名稱、選舉活動描述、選舉 制度、投票起迄時間、候選人管理、投票人管理等功能。除上述基本資料建置 的功能外,並在此模組中提供管理者自訂欄位的功能,例如可設定候選人具有 所屬部門的欄位或性別欄位,在建立候選人則需將提供此欄位值,做為後續獲 勝條件判斷的參考依據。
3. Winner Rule Module(WRM)
本模組功能負責選舉活動的獲勝規則建立,可以依據不同選舉規則需要,建立
‧
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
負責接收及處理來自 APP Client 有限的秘密資訊,並經過函數加總運算後,回 傳至 Master Server。為了分散秘密資訊,Proxy Server 的數目必需大於等於 2,
數量越多,秘密資訊被完整蒐集的可能就越低,資訊洩露的安全風險就越低,
不過,相對的要維持越多的 Proxy Server 正常運作,其可用性(Availability)或要 維持可用性高的成本,就會變高。
3.4.3.
App Client 的角色模組
1. Voter Login Check
此程式負責選舉人登入時與 Master Server 之間驗證處理,程式透過 Email 驗證 (或手機驗證)每個選舉人身份,驗證通過符合資格之的選舉人,才可以進行的
此程式負責選舉人登入時與 Master Server 之間驗證處理,程式透過 Email 驗證 (或手機驗證)每個選舉人身份,驗證通過符合資格之的選舉人,才可以進行的