SlideShare a Scribd company logo
1 of 27
Download to read offline
Humboldt County
Election Transparency Project
      and Ballot Browser



            Mitch Trachtenberg
               April 3, 2009
 Humboldt County Election Transparency Project
            and TEVSystems.com
Overview

1.   use all open source software
2.   scan all ballots to digital images
3.   quot;signquot; the collected images
4.   publish the signed collections
5.   do an independent count, using the images
Maintain chain of custody

1. minimum two persons, staff or deputized
2. forms for opening/closing each container
    1. who removed container from secure storage, at what
       date/time
    2. who opened container, at what date/time
    3. how many ballots scanned, who scanned, starting and
       ending scan numbers
    4. who closed container at what date/time
3. ballot transmittal and return form
4. project scanning logs
Scanner requirements

1.   number ballots, in ink, on entry into scanner
2.   scan both sides of a ballot at once
3.   detect double feeds
4.   Linux-compatible (SANE protocol)
5.   smooth feeding of ballot weight paper
Scanning speed and costs

1. ETP used Fujitsu FI-5900C, capable of 5K/hour
2. Humboldt volunteers: 65 hours for 130,000 sides (2K
   sides/hour), scanning SIMPLEX
3. Potential: up to 4K ballots/scanner-hour
4. Scanner cost approx $25-30K (multipurpose)
5. as-a-service costs should be substantially less than 20
   cents per ballot, scanned and counted to 0.01% accuracy
Digital signatures
(from American Bar Association)


quot;...digital signatures have undergone thorough
technological peer review for over a decade.
Digital signatures have been accepted in several
national and international standards ... and by
many corporations, banks, and government
agencies.quot;
Digital signatures, cont'd

quot;The likelihood of malfunction or a security
problem in a digital signature cryptosystem ... is
far less than the risk of undetected forgery or
alteration on paper or of using other less secure
electronic signature techniques.quot;
Gnu Privacy Guard (gpg)
Image collections are validated with GPG, a free and open
source encryption program.

Linux provides quot;Seahorsequot; graphical interface:
right click signature file icon, select quot;Validate signaturequot;
Ballot Browser (counting program)

1. Open source and fully available to all
2. Not quot;orphan softwarequot; -- commercial support and training
   are available
3. Operable on wide variety of platforms (Linux, but also
   Windows and Mac OS X)
4. Understandable code for programmers
5. Understandable output for all observers
6. PHILOSOPHY: NOT A quot;BLACK BOXquot;. Don't just show the
   results; show how the results were obtained, step by step.
Ballot Browser usage

1.   Get one sample of each ballot type in election
2.   Define all contests and choices in election
3.   Define each ballot layout (5 minutes per card type)
4.   Count all scanned ballots
5.   Convert quot;dash patternsquot; to precincts
6.   Print summary
7.   Export details to spreadsheet and/or database
8.   Decide on borderline cases needing human intervention
BB Contest definition
BB Layout definition
Choose template, click in list, click on ballot. Repeat.
BB Counting

1. Ballots being counted are displayed
2. Votes can be overlaid on ballot images
3. Count can be slowed down for observers
4. Count can be paused
5. Last three ballots can be redisplayed with counts
6. Rate: 7.5 K ballots/machine-hour on Mac Mini (five
   machines can count 900,000 ballot sides in 24 hours)
7. Results from multiple machines can be easily merged.
Counting results
votes.txt: summary counts by precinct and contest,
votes.csv: suitable for spreadsheet import
Scan, precinct code, contest, choice, quot;Debugquot;, x, y, 0=dark to 255=light
quot;BALLOTquot; is a pseudo-contest, quot;CASTquot; a pseudo-choice
/home/mitch/00/00/000001.jpg,80040300,BALLOT,CAST, Debug, 0, 0, 0
/home/mitch/00/00/000001.jpg,80040300,Prop1,Prop1/P1Yes, Debug, 477, 1576, 69
/home/mitch/00/00/000001.jpg,80040300,Prop2,Prop2/P2Yes, Debug, 477, 1950, 81

nonvotes.csv:
/home/mitch/00/00/000001.jpg,80040300,Prop1,Prop1/P1No, Debug, 477, 1613, 243
/home/mitch/00/00/000001.jpg,80040300,Prop2,Prop2/P2No, Debug, 477, 1987, 240
/home/mitch/00/00/000001.jpg,80040300,Prop3,Prop3/P3No, Debug, 895, 864, 247


(nonvotes.csv includes quot;just missed being a votequot;)
(overvotes have quot;:OVERVOTEquot; appended to choice)
Write-ins

1. BB captures the write-in area whenever the associated oval
   is filled
2. Write-in images are named after the ballot number and
   race (Pres_006773.jpg_0.jpg)
3. Write-ins are grouped for ease of validation
Precinct assignment
Import into sqlite3

1.   Define votes table (create table votes...)
2.   Set mode to csv (.mode csv)
3.   Import csv file (.import votes.csv)
4.   Perform SQL queries (select...)

Time from CSV availability: less than 2 minutes.
How many votes for each Pres. candidate?
select count(*), choice from votes where contest = quot;Presquot; group
by choice;
mitch@mitch-desktop:~/bb50$ sqlite3 votes.db
SQLite version 3.5.9
Enter quot;.helpquot; for instructions
sqlite> .mode csv
sqlite> create table votes (filename text, dashcode text, contest text, choice text, debug text, x int, y int,
intensity int);
sqlite> .import votes.csv votes
sqlite> select count(*), choice from votes where contest='Pres' group by choice;
320,Pres/Barr
3,Pres/Barr:OVERVOTED
204,Pres/Keyes
1,Pres/Keyes:OVERVOTED
1,Pres/Keyes:OVERVOTED:OVERVOTED:OVERVOTED
2,Pres/Keyes:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED
21707,Pres/McCain
2,Pres/McCain:OVERVOTED
1,Pres/McCain:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED
644,Pres/McKinney
3,Pres/McKinney:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED
923,Pres/Nader
16,Pres/Nader:OVERVOTED
1,Pres/Nader:OVERVOTED:OVERVOTED
2,Pres/Nader:OVERVOTED:OVERVOTED:OVERVOTED
39661,Pres/Obama
5,Pres/Obama:OVERVOTED
2,Pres/Obama:OVERVOTED:OVERVOTED
432,Pres/PresWrite-in
18,Pres/PresWrite-in:OVERVOTED
sqlite> select intensity, count(*) from votes
where (intensity + 0) > 210 group by intensity;
 211|95
 212|71
 213|81
 214|70
 215|77

sqlite> select filename, contest, choice from votes
where (intensity + 0) = 215 limit 5;
/home/mitch/00/02/000216.jpg|2Rio|2Rio/Leonard
/home/mitch/00/06/000696.jpg|Prop1|Prop1/P1No
/home/mitch/00/09/000967.jpg|Prop3|Prop3/P3No
/home/mitch/00/15/001507.jpg|Prop1|Prop1/P1Yes
/home/mitch/00/15/001507.jpg|Prop3|Prop3/P3No
sqlite> select intensity, count(*) from nonvotes group by intensity;


  216|56           236|113
                                          Less than 0.1% of all nonvotes
  217|58           237|201
                                          have intensity from 216 to 235;
  218|94           238|943
  219|45           239|4287               these nonvotes may be
  220|50           240|16062
                                          manually inspected.
  221|46           241|46594
  222|45           242|102685
  223|31           243|180524
                                          Less than 0.2% of all votes have
  224|38           244|258391
                                          intensity from 200 to 215
  225|30           245|329804
  226|25           246|374186
  227|39           247|339073
  228|36           248|179779
  229|42           249|44979
  230|52           250|5119
  231|51           251|640
  232|57           252|188
  233|58           253|154
  234|76           254|198
  235|81           255|441
Vote adjudication

1. All parties agree before election on desired vote intensity
   threshold
2. Vote intensity threshold is applied to all ballots
3. Human observers need only intervene in exceptional cases
Overvote adjudication

1. All overvotes are flagged
2. Vote intensities of overvotes can be used with objective
   rules to distinguish false from true overvotes
Moving forward

We would like to see all ballots scanned, nationwide, and their
images made available as a matter of course.

We would like to see independent vote counting become part of
standard elections office procedures.
Thank you!

Thank you!


Contact information:
    Mitch Trachtenberg
    PO Box 1352
    Trinidad, CA 95570

    mitch@TEVSystems.com
    www.TEVSystems.com
    (707) 496-0071

More Related Content

Viewers also liked

du pont 4Q08 Supplemental Financial Documents
du pont 4Q08 Supplemental Financial Documentsdu pont 4Q08 Supplemental Financial Documents
du pont 4Q08 Supplemental Financial Documentsfinance9
 
viacom FINAL%20Q108%20Web%20Deck
viacom FINAL%20Q108%20Web%20Deckviacom FINAL%20Q108%20Web%20Deck
viacom FINAL%20Q108%20Web%20Deckfinance20
 
aetna Form 10-Q 2005 4th
aetna Form 10-Q 2005 4thaetna Form 10-Q 2005 4th
aetna Form 10-Q 2005 4thfinance9
 
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars finance9
 
oneok 2007 Annual Report
oneok 2007 Annual Reportoneok 2007 Annual Report
oneok 2007 Annual Reportfinance20
 
public serviceenterprise group 3Q 2007 slides3
public serviceenterprise group 3Q 2007 slides3public serviceenterprise group 3Q 2007 slides3
public serviceenterprise group 3Q 2007 slides3finance20
 
Marketing Game Day Sheet 10.9
Marketing Game Day Sheet 10.9Marketing Game Day Sheet 10.9
Marketing Game Day Sheet 10.9Savannah Young
 
pg & e crop 2005 Annual Report
pg & e crop 2005 Annual Reportpg & e crop 2005 Annual Report
pg & e crop 2005 Annual Reportfinance20
 
public serviceenterprise group LehmanConference
public serviceenterprise group LehmanConferencepublic serviceenterprise group LehmanConference
public serviceenterprise group LehmanConferencefinance20
 
sun trust banks 1Q 2007 10-Q
sun trust banks 	1Q 2007 10-Qsun trust banks 	1Q 2007 10-Q
sun trust banks 1Q 2007 10-Qfinance20
 
sun trust banks 1Q 2005 10-Q
sun trust banks 1Q 2005 10-Qsun trust banks 1Q 2005 10-Q
sun trust banks 1Q 2005 10-Qfinance20
 
Cenriq Champion Certificate
Cenriq Champion CertificateCenriq Champion Certificate
Cenriq Champion CertificateDavid Mendoza
 

Viewers also liked (12)

du pont 4Q08 Supplemental Financial Documents
du pont 4Q08 Supplemental Financial Documentsdu pont 4Q08 Supplemental Financial Documents
du pont 4Q08 Supplemental Financial Documents
 
viacom FINAL%20Q108%20Web%20Deck
viacom FINAL%20Q108%20Web%20Deckviacom FINAL%20Q108%20Web%20Deck
viacom FINAL%20Q108%20Web%20Deck
 
aetna Form 10-Q 2005 4th
aetna Form 10-Q 2005 4thaetna Form 10-Q 2005 4th
aetna Form 10-Q 2005 4th
 
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars
news corp 3rd Qtr - FY07 - March 31, 2007 - US Dollars
 
oneok 2007 Annual Report
oneok 2007 Annual Reportoneok 2007 Annual Report
oneok 2007 Annual Report
 
public serviceenterprise group 3Q 2007 slides3
public serviceenterprise group 3Q 2007 slides3public serviceenterprise group 3Q 2007 slides3
public serviceenterprise group 3Q 2007 slides3
 
Marketing Game Day Sheet 10.9
Marketing Game Day Sheet 10.9Marketing Game Day Sheet 10.9
Marketing Game Day Sheet 10.9
 
pg & e crop 2005 Annual Report
pg & e crop 2005 Annual Reportpg & e crop 2005 Annual Report
pg & e crop 2005 Annual Report
 
public serviceenterprise group LehmanConference
public serviceenterprise group LehmanConferencepublic serviceenterprise group LehmanConference
public serviceenterprise group LehmanConference
 
sun trust banks 1Q 2007 10-Q
sun trust banks 	1Q 2007 10-Qsun trust banks 	1Q 2007 10-Q
sun trust banks 1Q 2007 10-Q
 
sun trust banks 1Q 2005 10-Q
sun trust banks 1Q 2005 10-Qsun trust banks 1Q 2005 10-Q
sun trust banks 1Q 2005 10-Q
 
Cenriq Champion Certificate
Cenriq Champion CertificateCenriq Champion Certificate
Cenriq Champion Certificate
 

Similar to Mitch Trachtenberg: Open Source for Election Integrity

Blockchain Based E-Voting System
Blockchain Based E-Voting SystemBlockchain Based E-Voting System
Blockchain Based E-Voting SystemIRJET Journal
 
Efficacious electronic voting using biometry
Efficacious electronic voting using biometryEfficacious electronic voting using biometry
Efficacious electronic voting using biometryIAEME Publication
 
E-Voting Technology
E-Voting TechnologyE-Voting Technology
E-Voting TechnologyGautam Kumar
 
IRJET - Smart E-Voting System with Fingerprint Authentication using Arduino
IRJET - Smart E-Voting System with Fingerprint Authentication using ArduinoIRJET - Smart E-Voting System with Fingerprint Authentication using Arduino
IRJET - Smart E-Voting System with Fingerprint Authentication using ArduinoIRJET Journal
 
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...IRJET Journal
 
IRJET - Decentralized E-Voting System using Blockchain
IRJET - Decentralized E-Voting System using BlockchainIRJET - Decentralized E-Voting System using Blockchain
IRJET - Decentralized E-Voting System using BlockchainIRJET Journal
 
IRJET- Portable Biometric E-Voting System
IRJET- Portable Biometric E-Voting SystemIRJET- Portable Biometric E-Voting System
IRJET- Portable Biometric E-Voting SystemIRJET Journal
 
IRJET- Effctive In-House Voting and Implementation using Block-Chain Veri...
IRJET-  	  Effctive In-House Voting and Implementation using Block-Chain Veri...IRJET-  	  Effctive In-House Voting and Implementation using Block-Chain Veri...
IRJET- Effctive In-House Voting and Implementation using Block-Chain Veri...IRJET Journal
 
How Raft consensus algorithm will make replication even better in MongoDB 3.2...
How Raft consensus algorithm will make replication even better in MongoDB 3.2...How Raft consensus algorithm will make replication even better in MongoDB 3.2...
How Raft consensus algorithm will make replication even better in MongoDB 3.2...Ontico
 
Blockchain Based Online Voting System
Blockchain Based Online Voting SystemBlockchain Based Online Voting System
Blockchain Based Online Voting SystemIRJET Journal
 
Computerised voting system
Computerised voting systemComputerised voting system
Computerised voting systemSushrut Bhosale
 
Internet – Voting System Using Blockchain Technology
Internet – Voting System Using Blockchain TechnologyInternet – Voting System Using Blockchain Technology
Internet – Voting System Using Blockchain TechnologyIRJET Journal
 
Global wireless e-voting
Global wireless e-votingGlobal wireless e-voting
Global wireless e-votingPREMKUMAR
 
IRJET - Hostile to Rigging Voting System using Finger Print
IRJET - Hostile to Rigging Voting System using Finger PrintIRJET - Hostile to Rigging Voting System using Finger Print
IRJET - Hostile to Rigging Voting System using Finger PrintIRJET Journal
 
Captiosus Voting System
Captiosus Voting SystemCaptiosus Voting System
Captiosus Voting SystemIJMTST Journal
 
fingerprint based electronic voting machine
fingerprint based electronic voting machinefingerprint based electronic voting machine
fingerprint based electronic voting machinesanthu652
 
Secure Verifiable Mobile Voting Based On Kerberos Mechanism
Secure Verifiable Mobile Voting Based On Kerberos MechanismSecure Verifiable Mobile Voting Based On Kerberos Mechanism
Secure Verifiable Mobile Voting Based On Kerberos MechanismIJSRED
 

Similar to Mitch Trachtenberg: Open Source for Election Integrity (20)

Blockchain Based E-Voting System
Blockchain Based E-Voting SystemBlockchain Based E-Voting System
Blockchain Based E-Voting System
 
Efficacious electronic voting using biometry
Efficacious electronic voting using biometryEfficacious electronic voting using biometry
Efficacious electronic voting using biometry
 
E-Voting Technology
E-Voting TechnologyE-Voting Technology
E-Voting Technology
 
IRJET - Smart E-Voting System with Fingerprint Authentication using Arduino
IRJET - Smart E-Voting System with Fingerprint Authentication using ArduinoIRJET - Smart E-Voting System with Fingerprint Authentication using Arduino
IRJET - Smart E-Voting System with Fingerprint Authentication using Arduino
 
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...
IRJET- Blockchain-based Secured E-Voting System to Remove the Opacity and Ens...
 
IRJET - Decentralized E-Voting System using Blockchain
IRJET - Decentralized E-Voting System using BlockchainIRJET - Decentralized E-Voting System using Blockchain
IRJET - Decentralized E-Voting System using Blockchain
 
Avoiding Phishing Attacks in Online Voting System
Avoiding Phishing Attacks in Online Voting System  Avoiding Phishing Attacks in Online Voting System
Avoiding Phishing Attacks in Online Voting System
 
Convenient voting machine
Convenient voting machineConvenient voting machine
Convenient voting machine
 
IRJET- Portable Biometric E-Voting System
IRJET- Portable Biometric E-Voting SystemIRJET- Portable Biometric E-Voting System
IRJET- Portable Biometric E-Voting System
 
IRJET- Effctive In-House Voting and Implementation using Block-Chain Veri...
IRJET-  	  Effctive In-House Voting and Implementation using Block-Chain Veri...IRJET-  	  Effctive In-House Voting and Implementation using Block-Chain Veri...
IRJET- Effctive In-House Voting and Implementation using Block-Chain Veri...
 
How Raft consensus algorithm will make replication even better in MongoDB 3.2...
How Raft consensus algorithm will make replication even better in MongoDB 3.2...How Raft consensus algorithm will make replication even better in MongoDB 3.2...
How Raft consensus algorithm will make replication even better in MongoDB 3.2...
 
Blockchain Based Online Voting System
Blockchain Based Online Voting SystemBlockchain Based Online Voting System
Blockchain Based Online Voting System
 
Computerised voting system
Computerised voting systemComputerised voting system
Computerised voting system
 
Internet – Voting System Using Blockchain Technology
Internet – Voting System Using Blockchain TechnologyInternet – Voting System Using Blockchain Technology
Internet – Voting System Using Blockchain Technology
 
Global wireless e-voting
Global wireless e-votingGlobal wireless e-voting
Global wireless e-voting
 
IRJET - Hostile to Rigging Voting System using Finger Print
IRJET - Hostile to Rigging Voting System using Finger PrintIRJET - Hostile to Rigging Voting System using Finger Print
IRJET - Hostile to Rigging Voting System using Finger Print
 
Captiosus Voting System
Captiosus Voting SystemCaptiosus Voting System
Captiosus Voting System
 
fingerprint based electronic voting machine
fingerprint based electronic voting machinefingerprint based electronic voting machine
fingerprint based electronic voting machine
 
Secure Verifiable Mobile Voting Based On Kerberos Mechanism
Secure Verifiable Mobile Voting Based On Kerberos MechanismSecure Verifiable Mobile Voting Based On Kerberos Mechanism
Secure Verifiable Mobile Voting Based On Kerberos Mechanism
 
GLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINAR
GLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINARGLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINAR
GLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINAR
 

More from Friprogsenteret

Fri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFriprogsenteret
 
Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Friprogsenteret
 
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretGoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretFriprogsenteret
 
The Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorThe Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorFriprogsenteret
 
Åpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTÅpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTFriprogsenteret
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David ElbothFriprogsenteret
 
Fri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFriprogsenteret
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaFriprogsenteret
 
GoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandGoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandFriprogsenteret
 
GoOpen 2010: Reidar Conradi
GoOpen 2010: Reidar ConradiGoOpen 2010: Reidar Conradi
GoOpen 2010: Reidar ConradiFriprogsenteret
 
GoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtGoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtFriprogsenteret
 
GoOpen 2010: Jan Rasmus Sulebak
GoOpen 2010: Jan Rasmus SulebakGoOpen 2010: Jan Rasmus Sulebak
GoOpen 2010: Jan Rasmus SulebakFriprogsenteret
 
GoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyGoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyFriprogsenteret
 
GoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonGoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonFriprogsenteret
 
GoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundGoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundFriprogsenteret
 
GoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusGoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusFriprogsenteret
 
GoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupGoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupFriprogsenteret
 
GoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzGoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzFriprogsenteret
 

More from Friprogsenteret (20)

Fri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanske
 
Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?
 
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretGoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
 
The Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorThe Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sector
 
Åpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTÅpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiT
 
Overalt, alltid
Overalt, alltidOveralt, alltid
Overalt, alltid
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David Elboth
 
Fri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessen
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'Elia
 
GoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandGoOpen 2010: Roger Bivand
GoOpen 2010: Roger Bivand
 
GoOpen 2010: Reidar Conradi
GoOpen 2010: Reidar ConradiGoOpen 2010: Reidar Conradi
GoOpen 2010: Reidar Conradi
 
GoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtGoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth Bergholt
 
GoOpen 2010: Jan Rasmus Sulebak
GoOpen 2010: Jan Rasmus SulebakGoOpen 2010: Jan Rasmus Sulebak
GoOpen 2010: Jan Rasmus Sulebak
 
GoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyGoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend Øverby
 
GoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonGoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese Lotherington
 
GoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundGoOpen 2010: Olav Torvund
GoOpen 2010: Olav Torvund
 
GoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusGoOpen 2010: Arne Magnus
GoOpen 2010: Arne Magnus
 
GoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupGoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine Frøstrup
 
GoOpen 2010: Tom Orvei
GoOpen 2010: Tom OrveiGoOpen 2010: Tom Orvei
GoOpen 2010: Tom Orvei
 
GoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzGoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund Schultz
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Mitch Trachtenberg: Open Source for Election Integrity

  • 1. Humboldt County Election Transparency Project and Ballot Browser Mitch Trachtenberg April 3, 2009 Humboldt County Election Transparency Project and TEVSystems.com
  • 2. Overview 1. use all open source software 2. scan all ballots to digital images 3. quot;signquot; the collected images 4. publish the signed collections 5. do an independent count, using the images
  • 3. Maintain chain of custody 1. minimum two persons, staff or deputized 2. forms for opening/closing each container 1. who removed container from secure storage, at what date/time 2. who opened container, at what date/time 3. how many ballots scanned, who scanned, starting and ending scan numbers 4. who closed container at what date/time 3. ballot transmittal and return form 4. project scanning logs
  • 4. Scanner requirements 1. number ballots, in ink, on entry into scanner 2. scan both sides of a ballot at once 3. detect double feeds 4. Linux-compatible (SANE protocol) 5. smooth feeding of ballot weight paper
  • 5. Scanning speed and costs 1. ETP used Fujitsu FI-5900C, capable of 5K/hour 2. Humboldt volunteers: 65 hours for 130,000 sides (2K sides/hour), scanning SIMPLEX 3. Potential: up to 4K ballots/scanner-hour 4. Scanner cost approx $25-30K (multipurpose) 5. as-a-service costs should be substantially less than 20 cents per ballot, scanned and counted to 0.01% accuracy
  • 6. Digital signatures (from American Bar Association) quot;...digital signatures have undergone thorough technological peer review for over a decade. Digital signatures have been accepted in several national and international standards ... and by many corporations, banks, and government agencies.quot;
  • 7. Digital signatures, cont'd quot;The likelihood of malfunction or a security problem in a digital signature cryptosystem ... is far less than the risk of undetected forgery or alteration on paper or of using other less secure electronic signature techniques.quot;
  • 8. Gnu Privacy Guard (gpg) Image collections are validated with GPG, a free and open source encryption program. Linux provides quot;Seahorsequot; graphical interface: right click signature file icon, select quot;Validate signaturequot;
  • 9. Ballot Browser (counting program) 1. Open source and fully available to all 2. Not quot;orphan softwarequot; -- commercial support and training are available 3. Operable on wide variety of platforms (Linux, but also Windows and Mac OS X) 4. Understandable code for programmers 5. Understandable output for all observers 6. PHILOSOPHY: NOT A quot;BLACK BOXquot;. Don't just show the results; show how the results were obtained, step by step.
  • 10. Ballot Browser usage 1. Get one sample of each ballot type in election 2. Define all contests and choices in election 3. Define each ballot layout (5 minutes per card type) 4. Count all scanned ballots 5. Convert quot;dash patternsquot; to precincts 6. Print summary 7. Export details to spreadsheet and/or database 8. Decide on borderline cases needing human intervention
  • 12. BB Layout definition Choose template, click in list, click on ballot. Repeat.
  • 13. BB Counting 1. Ballots being counted are displayed 2. Votes can be overlaid on ballot images 3. Count can be slowed down for observers 4. Count can be paused 5. Last three ballots can be redisplayed with counts 6. Rate: 7.5 K ballots/machine-hour on Mac Mini (five machines can count 900,000 ballot sides in 24 hours) 7. Results from multiple machines can be easily merged.
  • 14.
  • 15. Counting results votes.txt: summary counts by precinct and contest, votes.csv: suitable for spreadsheet import Scan, precinct code, contest, choice, quot;Debugquot;, x, y, 0=dark to 255=light quot;BALLOTquot; is a pseudo-contest, quot;CASTquot; a pseudo-choice /home/mitch/00/00/000001.jpg,80040300,BALLOT,CAST, Debug, 0, 0, 0 /home/mitch/00/00/000001.jpg,80040300,Prop1,Prop1/P1Yes, Debug, 477, 1576, 69 /home/mitch/00/00/000001.jpg,80040300,Prop2,Prop2/P2Yes, Debug, 477, 1950, 81 nonvotes.csv: /home/mitch/00/00/000001.jpg,80040300,Prop1,Prop1/P1No, Debug, 477, 1613, 243 /home/mitch/00/00/000001.jpg,80040300,Prop2,Prop2/P2No, Debug, 477, 1987, 240 /home/mitch/00/00/000001.jpg,80040300,Prop3,Prop3/P3No, Debug, 895, 864, 247 (nonvotes.csv includes quot;just missed being a votequot;) (overvotes have quot;:OVERVOTEquot; appended to choice)
  • 16. Write-ins 1. BB captures the write-in area whenever the associated oval is filled 2. Write-in images are named after the ballot number and race (Pres_006773.jpg_0.jpg) 3. Write-ins are grouped for ease of validation
  • 17.
  • 19. Import into sqlite3 1. Define votes table (create table votes...) 2. Set mode to csv (.mode csv) 3. Import csv file (.import votes.csv) 4. Perform SQL queries (select...) Time from CSV availability: less than 2 minutes. How many votes for each Pres. candidate? select count(*), choice from votes where contest = quot;Presquot; group by choice;
  • 20. mitch@mitch-desktop:~/bb50$ sqlite3 votes.db SQLite version 3.5.9 Enter quot;.helpquot; for instructions sqlite> .mode csv sqlite> create table votes (filename text, dashcode text, contest text, choice text, debug text, x int, y int, intensity int); sqlite> .import votes.csv votes sqlite> select count(*), choice from votes where contest='Pres' group by choice; 320,Pres/Barr 3,Pres/Barr:OVERVOTED 204,Pres/Keyes 1,Pres/Keyes:OVERVOTED 1,Pres/Keyes:OVERVOTED:OVERVOTED:OVERVOTED 2,Pres/Keyes:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED 21707,Pres/McCain 2,Pres/McCain:OVERVOTED 1,Pres/McCain:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED 644,Pres/McKinney 3,Pres/McKinney:OVERVOTED:OVERVOTED:OVERVOTED:OVERVOTED 923,Pres/Nader 16,Pres/Nader:OVERVOTED 1,Pres/Nader:OVERVOTED:OVERVOTED 2,Pres/Nader:OVERVOTED:OVERVOTED:OVERVOTED 39661,Pres/Obama 5,Pres/Obama:OVERVOTED 2,Pres/Obama:OVERVOTED:OVERVOTED 432,Pres/PresWrite-in 18,Pres/PresWrite-in:OVERVOTED
  • 21. sqlite> select intensity, count(*) from votes where (intensity + 0) > 210 group by intensity; 211|95 212|71 213|81 214|70 215|77 sqlite> select filename, contest, choice from votes where (intensity + 0) = 215 limit 5; /home/mitch/00/02/000216.jpg|2Rio|2Rio/Leonard /home/mitch/00/06/000696.jpg|Prop1|Prop1/P1No /home/mitch/00/09/000967.jpg|Prop3|Prop3/P3No /home/mitch/00/15/001507.jpg|Prop1|Prop1/P1Yes /home/mitch/00/15/001507.jpg|Prop3|Prop3/P3No
  • 22.
  • 23. sqlite> select intensity, count(*) from nonvotes group by intensity; 216|56 236|113 Less than 0.1% of all nonvotes 217|58 237|201 have intensity from 216 to 235; 218|94 238|943 219|45 239|4287 these nonvotes may be 220|50 240|16062 manually inspected. 221|46 241|46594 222|45 242|102685 223|31 243|180524 Less than 0.2% of all votes have 224|38 244|258391 intensity from 200 to 215 225|30 245|329804 226|25 246|374186 227|39 247|339073 228|36 248|179779 229|42 249|44979 230|52 250|5119 231|51 251|640 232|57 252|188 233|58 253|154 234|76 254|198 235|81 255|441
  • 24. Vote adjudication 1. All parties agree before election on desired vote intensity threshold 2. Vote intensity threshold is applied to all ballots 3. Human observers need only intervene in exceptional cases
  • 25. Overvote adjudication 1. All overvotes are flagged 2. Vote intensities of overvotes can be used with objective rules to distinguish false from true overvotes
  • 26. Moving forward We would like to see all ballots scanned, nationwide, and their images made available as a matter of course. We would like to see independent vote counting become part of standard elections office procedures.
  • 27. Thank you! Thank you! Contact information: Mitch Trachtenberg PO Box 1352 Trinidad, CA 95570 mitch@TEVSystems.com www.TEVSystems.com (707) 496-0071