[IT-Security-2] 電子投票 E-Voting
E-Voting
Notes from RWTH Aachen University course
“IT security 2” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela
Security of (E)-Voting
- was each vote captured correctly?
- was each vote counted correctly?
- Can the tally be independently verified?
- Is each vote anonymous
- Can anyone sell their vote?
- Can voters be coered(被要脅) to vote in a particular way?
- 其他voting的優點
- Optical scanners
- 避免miscounting
- Direct recording electronic voting system
- 減少 voters’ error
- 使 different disabilities 也可以投
- Internet voting
- convenient
- disabilities
- Optical scanners
Three Ballot Voting
paper based system 用電子計票
Goal
- 不用 cryptography 但盡可能達到越多 security properties
因 cryptography 難理解,難被大家信任
- 不用 cryptography 但盡可能達到越多 security properties
basic idea
- 三張選票
- 不想要的候選人三張加總為1票
- 想要的候選人三張加總為2票
operation
- 投票者可以拿一張的選票備份
- 檢查serial number
- fake vote可以有最多1/3的機率被檢查到(如果voters都有檢查備份)
weakness
- 需要trust裝置
- votes pattern 的選擇要夠random
- Usability 差: 即使MIT學生也覺得confused
- serial number 被禁止:不能 link 選票和人
Bingo Voting
- based on trusted random number generator
- 用 voting machine
- coercion(強迫) impossible
- cryptographic protocols
- Commitment scheme
- commitment
- commitment \(c\) 由 message \(m\) 計算而來
- 由 \(c\) 不能得知 \(m\)
- open/ unveil
- \(m\) 和 random number 公布
- 每個人都可以 check \(c\) 是 \(m\) 的 commitment
- commitment 的性質
- Hiding: 由 \(c\) 不能知道 \(m\)
- Blinding: 給定 \(c\) 和 \(m\),不能知道另一個 \(m'\neq m\) 使得 commitment 為 \(c\)
- Pedersen Commitments
- 基於 discrete logarithm problem
- 要 commit \(m\) 及 random number \(r\)
- \(c=h^mg^r\)
- binding property:
- 假設有 \(m',r'\)
- \(c=h^{m'}g^{r'}\)
- \(log_g(h)=(r-r')(m-m')^{-1}\text{ mod }q\)
- committing entity 知道 \(log_g(h)\)
- hiding property:
- \(r\) random
- \(g^r\) random
- \(c=h^mg^r\) random
- 因此不能從 \(c\) 知道 \(m\)
- Masking
- 新的 commitment
- 隨機一 \(s\)
- 計算 \(c'=cg^s\)
- \(c'=h^mg^{r+s}\)
- commitment
- Voting
- voter在機器前選擇自己的候選人
- 對那個候選人產生一組新的 random number
- 機器印出候選人和 random number 的 pair
- 其餘沒有被選到的候選人的 random number 為機器原本就產生的
- 檢查 receipt 中有被改過的 random number 就是自己選的候選人
- Counting
- 公開沒有被選到的候選人的 Dummy-votes
- Pederson commitments in Bingo Voting
- 證明只有 \(L-1\) 組 dummy votes 被用
( \(L\) 為候選人個數) - 公布 \(C=(P,r)\) 真正選擇的候選人
- 和 \(L-1\) (list1) 的 commitment
- 用 Mask 產生 list2
- 再 Mask 一次產生 list3
- 擲銅板決定公布 list1 / list2 的關係或 list2 / list3 的關係
- 證明只有 \(L-1\) 組 dummy votes 被用
- Problems
- 使用者要相信 cryptographic protocol
- implementation 可能會有非預期的漏洞 (需要 open source)
Scantegrity
- how it work?
- 用 human readible 和 machine readible serial number
- 得到 serial number 之後可以驗票
- 選票上的 letter 不能和候選人相關
- 公開後可以知道 serial number 和選擇的 letter
- sereal number: \(1234\)
- letter: \(A\)
- candidate: \(Bob\)
Readings
Ross Anderson: “Security Engineering” § Chapter 23, p. 759 – 763
Ron Rivest: “Three Ballot”, 2006
Jens-Matthias Bohli, Jörn Müller-Quade and Stefan Röhrich: “Bingo Voting Secure
and Coercion-Free Voting Using a Trusted Random Number Generator ”, 2007
David Chaum et al.: “Scantegrity End-to-End Voter-Verifiable Optical-Scan Voting”,
2008
Jonathan Bannet et al.: “Hack-a-Vote: Security Issues with Electronic Voting
Systems” 2004
David Wagner: “Report on the California top-to-bottom review”, 2007
More details on the code review of the three commercial systems can be found here
留言
張貼留言