Floridaproof Digital Voting Terminal FDVT - PowerPoint PPT Presentation

1 / 59
About This Presentation
Title:

Floridaproof Digital Voting Terminal FDVT

Description:

CompactFlash Reader/Writer with card inserted. Keyboard Interface Controller. Display ... CF Reader/Writer: CompactFlash IDE adapter. ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 60
Provided by: student152
Category:

less

Transcript and Presenter's Notes

Title: Floridaproof Digital Voting Terminal FDVT


1
Floridaproof Digital Voting Terminal (FDVT)
  • UCF SEECS Senior Design II Spring 2003
  • Group 14
  • Lance Legan
  • Don Pham
  • Fredrick Thomas

2
Scope of the ProjectA Two Tier System
  • Voting Terminal (User Side)
  • Stand alone terminal.
  • Hardware software interface to the voter.
  • Reads pre-created ballot from the transportable
    storage medium.
  • Writes acquired votes back to the transportable
    storage medium.
  • PC Software (Admin Side)
  • Platform independent.
  • Software interface to the Director of Elections.
  • Provides interactive creation of a ballot and
    stores it to the transportable storage medium.
  • Reads saved votes from the transportable storage
    medium, tabulates results, displays election
    statistics.

SEPERATION
3
Voting Terminal (Voter Side)Block Diagram
Elaboration
Power Supply
IDE Flash Drive
System Software
To CF and KIC
Electricity
Electricity
Software
Electricity
Electricity
Single Board Computer
Display
Display Control
Voter
View Screen
Ballot Info
Keyboard Scan Codes
Vote Train
From Power Supply
Press Keys
CompactFlash Reader/Writer with card inserted
Keyboard Interface Controller
Keypad of Buttons
Voter Input
Electricity
Voter Write-in Input
Alphabetic Keyboard
From Power Supply
4
PC SoftwareBlock Diagram Elaboration
5
Ballot Markup Language (BML)Layer of Separation
Elaboration
  • BML enforces independence between the terminal
    and PC software by providing a standard language
    for communication of ballot and vote information.
  • Similar format to HTML with tags and options
    within tags.
  • Generated by PC software, read by terminal
    software.
  • Basic enough to be written by hand if desired.
  • Open standard allows 3rd party development of
    ballot creation software.

6
Whos Doing What?Responsibilities Work
Allocation
  • Lance
  • System software setup.
  • Terminal software design and implementation.
  • Peripheral hookup except for LCD, power
    supply/UPS, and keyboard/keypad.
  • Don
  • Power supply and UPS integration and hookup.
  • Keypad (buttons and controller) design and
    fabrication.
  • LCD wiring and hookup.
  • Case construction.
  • Fred
  • PC Software design and implementation.
  • Data encryption incorporation.
  • BML specification and maintenance.

7
SpecificationsRequired By Law
  • The following list highlights key specifications
    that are mandated by the Florida Department of
    States Division Of Elections. More rigorous
    tests outside the scope of this project have been
    withdrawn.
  • The system must prevent unauthorized access to
    the voting data and system, and not allow system
    functions to be executed in an unintended
    manner.
  • The voter controls must be usable with a
    single, closed fist, and the force required must
    not be greater than 5 pounds, nor require the
    pinching and/or twisting of the wrist.
  • The voter must be able to enter a write-in
    candidate, be warned if undervoting occurs,
    prevent overvoting, change any vote on the
    ballot before casting, and signify a ballot has
    been processed.

8
SpecificationsRequired By Law (Cont.)
  • Data must be maintained for at least 22 months
    after Election Day.
  • The system must handle at least 500 active
    voting positions.
  • Type I and Type II errors must be at .1 percent
    maximum.
  • The terminal must be a Class B device.
  • The display must consist of light lettering on
    a dark background.
  • A system audit log must be maintained by the
    terminal.
  • Voting data from all devices must be
    transportable.
  • The average voter should be able to complete a
    ballot within 5 minutes.

9
GoalsSelf-Imposed
  • In addition to state-mandated specifications, the
    following goals have been set by the group.
  • The prototype is cost-effective (lt 1000).
  • The terminals are lightweight and maneuverable
    (lt 15Lbs).
  • A single terminal holds enough votes so that
    maintenance is not required during the entire
    voting day (gt100,000 votes).
  • The terminal can function for at least 30
    minutes on its own.
  • The voting process is intuitive to the user.

10
Peripheral HardwareChosen Products
  • Single board computer Teknor VIPer803
    (486DX2/66, 16MB RAM).
  • Bustronic ISA 4-slot backplane.
  • System storage device SanDisk 64MB FlashDrive.
  • CF Reader/Writer CompactFlash IDE adapter.
  • LCD screen Sharp LQ10DS01, 10.4 diagonal,
    800x600 resolution.

11
Case DesignDiagrams and Objectives
  • General information
  • Size 12 x 12 x 19 (LxWxH)
  • Estimate Weight 10-15 lbs.
  • Materials Plexiglass, wood
  • Cost around 40
  • Will have a space underneath
    for keyboard to slide in/out.
  • Small door with lock on the
    side for security purposes.
  • 4 to 6 keypad buttons will
  • attach to it

12
Case DesignHow Will It Be Built?
  • Step1 Plexiglass and wood parts will be cut
    from full scale drawings in the UCF
    engineering machining lab.
  • Step2 Assemble case using screws, nails, and
    glue.
  • Step3 Test to see if it can handle the
    necessary weight that the system
    needs. Fix any problem that might occur
    and retest it.
  • Step4 Install all the components and parts.

13
Case DesignInsiders Information
  • 1-UPS
  • 2-Single Board Computer
  • 3-Backplane
  • 4-Cables
  • 5-LCD Panel
  • 6-Keypad/buttons
  • 7-Keyboard
  • 8-Stand
  • 9-Keypad Controller Board
  • 10-Flash Drive
  • 11-Compact Flash Adapter
  • 12-Power Supply
  • Note we might use some metal bars inside to hold
    parts and components. Also the original plan was
    putting a UPS unit inside the case, however, it
    might be putting outside because too heavy for
    the case to handle.

14
Case DesignThe Ass End
  • 1-Power Plug
  • 2-Power ON/OFF switch
  • 3-Keyboard/keypad plug

15
Power ConsumptionIndividual Components
  • Single Board Computer 11 W
  • LCD Panel 10 W
  • Other Peripherals lt 5 W
  • Total Power 26 W
  • All components need either 5V or 12V input or
    both.

16
Power Supply UPSOpen Frame Switching Power
Supply
  • DVE (DSP-453A-10) DC open frame power supply for
    single board computer
  • Size 5.0 x 3.0 x 1.1
  • Input 100 250V _at_ 47 63Hz AC
  • Output 5V _at_ 4A DC,
  • Voltages 12V _at_ 1.2A DC,
    -12V _at_ 0.4A DC.
  • Output Power 30 Watts
  • Price 12.95
  • Note This is the best power supply unit for
    our system because it is small, provides enough
    output power, and low-cost.


Photo by Lance Legan.
17
Power Supply UPSConsumer Level UPS
  • Belkin Home Office UPS
  • 8 outlets ( 4 backup, 4 surge-protected)
  • Battery Load Capacity 350VA (190
    Watts)
  • Backup time is gt30 min. for
  • our particular system
  • Output Voltage 120V AC
  • Price 45.00
  • Weight 7 lbs.
  • Note The advantages of this one compared to
    others include lower price and less weight.

Photo by Don Pham.
18
Power Supply UPSIntegration Fabrication
  • The power supply and UPS will be hard wired
    together by soldering wires to the appropriate
    terminals. The power supply will connect to the
    SBC and peripherals using standard PC power
    connectors.

19
KeyboardWhich Type?
  • We will use a Mini Keyboard which is similar to
    the one in the picture.
  • Small Size 11.6 X 4.7
  • Less Key (60 Full Size Keys plus
    4 small arrow keys)
  • Available with PS/2 or
    USB Connectors 
  • Affordable Price 29.00 
  • Note This one can slide in and out underneath
    the system with ease.

Photo courtesy of Fentek Industries, Inc., used
with permission.
20
Keypad Controller UnitInitial Design
  • The unit can be built by using the MC68HC11E9
    microcontroller chip, push buttons, and
    resistors.
  • The following 3 stages need to be done in order
    for it to work properly
  • Hardware interface polling to find out which
    key is pressed.
  • Key bouncing/debouncing measure a key was
    indeed pressed.
  • Transmitting the appropriate scan code to the SBC
    via the standard PC/AT keyboard interface.
  • Second and Third Stages can be done by
    programming into the microcontroller chip (using
    assembly language and MC68HC11 board).

21
Keypad Controller UnitHow Does It Work?
Vcc
  • When a key is being pressed, the corresponding
    microcontroller pin is pulled low. The
    microcontroller chip will then recognize which
    key was pressed and transmit the appropriate scan
    code to the Single Board Computer.

Key/Button
Diagram by Don Pham.
22
Keypad Controller UnitProblems/Solutions
  • Problems
  • Requires hardware fabrication.
  • Uncertainty about keyboard protocol. The sources
    on writing a program for transmitting codes are
    very limited. Not much information available.
  • Solutions
  • Replace a whole process with a Mitsumi keyboard
    controller unit.
  • Eliminate programming problems
  • Small size that will fit well into the system

23
Keypad Controller UnitMitsumi Prefabricated Unit
  • Small size 3 x 2
  • Using a MTM0183020
    microcontroller chip
  • Can take up to 105 keys
  • Price free (from UCF
  • Engineering labs Dave
  • Douglas)


Photo by Don Pham.
24
Keypad Controller UnitMaking It Work
  • Solder each hard wire to each of
    the scanning
    code line on the keyboard
    controller unit.
  • Plug it in the PC for testing
    and find out those keys
    that we need.
  • So far we have found all
  • the keys that are needed.
  • What we have to do next is find the
    right buttons and find the way
    to connect them.
  • Button must be at least 1 inch sq.

Photo by Don Pham.
Photo by Don Pham.
25
Personal ProgressDone Yet To Do
  • Completed
  • Got both Power Supply and UPS unit on hand.
  • Got some of the materials need for case, and
    carefully scaled the sizes of all pieces on the
    paper.
  • Soldered hard wires to a keyboard controller unit
    and found out all the keys that need.
  • Done some programming in Assembly Language for
    microcontroller. But no longer use.
  • Incomplete
  • Connecting the Power Supply with a UPS.
  • Need to get the rest of the materials for case,
    start cutting them into sizes that need, then
    build and test it for the first time.
  • Putting all components/parts inside the case when
    it is ready.
  • Find the right keypad buttons, and attach them
    with keyboard controller unit.
  • Fabricate the LCD to SBC connection cable.

26
System Software SelectionChoosing an Operating
System to Run the Terminal
  • OSs Evaluated
  • QNX Neutrino RTOS -
  • PeeWeeLinux -
  • ThinLinux -
  • muLinux -
  • Minix -
  • Custom lightweight Linux build -

Decision Start with custom Linux build in mind,
implement QNX time permitting, fallback to
muLinux in case of failure.
27
System Software SetupBuilding a Lightweight
Linux System QNX Availability
  • Necessary Components
  • Linux 2.2.x or 2.4.x kernel.
  • uClibc lightweight C library.
  • BusyBox command line tools.
  • util-Linux low level system utilities.
  • e2fsprogs filesystem utilities.
  • LILO Linux Loader.
  • QNX System Setup
  • A free for non-commercial use QNX Momentics
    Development Suite which includes the QNX Neutrino
    RTOS, Photon MicroGUI windowing system, and
    development environment is available as a CD
    image. Favorable preliminary testing has been
    performed.

A guide for building these components into a
lightweight Linux system can be found at
http//www-106.ibm.com/developerworks/linux/libra
ry/l-lwl1/?tgr,lnxw09LLP1
28
System Software ProgressDone Yet To Do
  • Completed
  • Preliminary QNX testing.
  • Installation on a host system.
  • Testing of compiler and development environment.
  • Testing of muLinux fallback.
  • Installation on a test system.
  • Test program written.
  • Incomplete
  • Lightweight Linux Build.
  • QNX operating on the Viper803.
  • Linux operating on the Viper803.

29
Terminal Software OperationVoter Interface
Procedure For Each Item
  • Developed a standard procedure for voter
    interaction with the terminal that focuses on a
    simple, repeatable, three step process
  • SELECT
  • SUBMIT
  • CONFIRM
  • The voter will SELECT their choice on each
    ballot item by highlighting their choice with
    the Up and Down buttons.
  • The voter will SUBMIT their selection by
    pressing the Action button.
  • The voter will then be prompted to CONFIRM
    their selection by pressing the Action button
    again. At the CONFIRM stage, the voter can
    renege and reSELECT, SUBMIT, and CONFIRM on that
    item.
  • After CONFIRMING, the terminal will present the
    next ballot item and repeat the process until
    completing all the ballot items.

30
Terminal Software OperationVoter Interface
Procedure For Each Item State Chart
31
Terminal Software OperationVoter Interface
Summary Screen Procedure
32
Terminal Software OperationFlowchart of Operation
33
Terminal Software DesignObject Oriented or
Functional?
  • The operation of the software and organization of
    the ballot data structure lends itself to an
    object oriented design.
  • Unfortunately, the considerable overhead (in
    executable size, execution speed, memory usage)
    for object oriented software is prohibitive for
    some embedded applications.
  • Choices 1) Object Oriented Design using C.
  • 2) Functional Design using C.
  • Solution Use Object Oriented Design to visualize
    and comprehend how the software should operate,
    implement the Object Oriented Design in C. Test
    C vs C implementation on the way.

34
Terminal Software DesignObject Oriented Approach
- UML
1
1...
35
Terminal Software DesignFunctional Datatypes
  • enum Party REP, DEM, NPA enum IssueType
    RACE, CA typedef int Partytypedef int
    IssueTypestruct IssueStr Party party
    IssueType type int numberChoices int
    options int listings bool writein
    char title char choices char
    texttypedef struct IssueStr Issue
  • struct BallotStr Party ballotParty int
    numberIssues Issue ballotIssues FILE
    ballotFiletypedef struct BallotStr Ballot

36
Terminal Software DesignComplete Functional
Listing
  • Ballot init_Ballot(FILE )
  • Issue init_Issue(Party, IssueType, int, char ,
    char )Issue init_Race(Party, int, char ,
    char , int, int, bool)Issue init_Ca(Party,
    int, char , char , char )char
    voteOnIssue(Ballot , int)int
    displayIssue(Ballot , int)int
    selectChoice(Issue )bool confirmChoice(Issue
    , int)
  • bool confirmBallot()
  • int voteSummary(Ballot , char )bool
    generateBallot()
  • char BMLparse(FILE )
  • WINDOW create_introWindow()
  • WINDOW create_titleWindow()WINDOW
    create_instructionWindow()WINDOW
    create_choicesWindow()WINDOW
    create_confirmWindow()WINDOW
    create_summaryWindow()

37
Terminal Software ImplementationVoter Interface
GUI Dependent on OS Choice
  • Embedded Linux
  • NCURSES A library with functions which allow
    the display of windows, forms, and character
    attributes on a text terminal.
  • QNX
  • Photon MicroGUI The QNX windowing API that
    provides a graphical interface and windowing
    system.

First implementation using NCURSES. NCURSES
could be compiled under QNX as well. Photon
MicroGUI version will be created time permitting.
38
Terminal Software ImplementationNCURSES Version
Screenshots Item Selection Screen
39
Terminal Software ImplementationNCURSES Version
Screenshots Item Confirm Window
40
Terminal Software ImplementationNCURSES Version
Screenshots Summary Screen
41
Terminal Software ImplementationNCURSES Version
Screenshots Ballot Confirm
42
Terminal Software ProgressDone Yet To Do
  • Completed
  • 390 lines of code.
  • SELECT, SUBMIT, CONFIRM functionality.
  • Summary screen.
  • NCURSES display.
  • Race ballot item functionality and display.
  • Constitutional Amendment ballot item
    functionality.
  • Incomplete
  • Read in BML formatted ballot.
  • Encryption decoding.
  • Export votes in BML.
  • QNX Photon MicroGUI implementation.
  • Write-in capability.
  • Constitutional Amendment item display (long text).

43
Ballot Markup LanguageCode To Screen
  • BML Example Code
  • Screen Shot

44
Admin Software OperationOverview
  • According to Division of Elections,
    requirements include
  • A high-level language must be used.
  • Pointers are not allowed without stringent
    safeguards.
  • Codes must be separated into modules.
  • Documentation specifications, both manual and
    in-line, are required.
  • The advantages of Java (e.g., run-time
    compiling, pass data between functions,
    exception handling, etc.) outweigh its
    disadvantages (e.g., slower on low-end
    machines).
  • To speed up the programs, Jikes compiler will
    be used.
  • Software split up into two PC Ballot and Vote
    Reading

45
Admin Software OperationOverview - PC Ballot
Software
  • The PC Ballot software is split up into four main
    functions
  • Create Issue
  • Edit Issue
  • Save Ballot
  • Open Ballot
  • The admin will be prompted to either open an
    existing ballot, or create a new issue. By
    creating a new issue, the admin will select the
    type of issue (race or amendment) desired, and
    all relevant information (candidates, number of
    choices, etc.).
  • The admin can repeat the create issue process
    as many times as desired, or edit an already
    existing issue.
  • After all desired issues have been created,
    the save ballot option will create an output
    file in BML.

46
Admin Software OperationClass Diagram - PC
Ballot Software
47
Admin Software OperationObject Oriented
Datatypes - PC Ballot Software
abstract class Issue public Issue
NumIssues //array of issues in ballot
public String IssueName //Race or Constitutional
Amendment public String Party // Party Type
For Issue public String options //candidate
or option listings public int
level //congressional, state, county, etc.
public String text // misc text (amendment,
instructions) public int NumIssue 0
//number of issues private String symbol
race //race CA Issue(String name,
String symbol) //constructor used for all
issues NumIssues new Issue500
IssueName name symbol race
48
Admin Software OperationOverview - Vote Reading
Software
  • The Vote Reading is split up into four main
    functions
  • Open Log
  • Merge Log
  • View Summary
  • Save Summary
  • The admin will be prompted to open a log,
    providing the proper key for decryption.
  • The log will be displayed in a table-like
    format. Displayed information consists of
    votes recorded by the person, actions taken by
    the system administrator, and actions taken by
    the subsystem, each with a timestamp.
  • Using Merge Log repeats the same process as in
    Open Log, but appends the new logs information
    to the existing log.
  • View Summary performs the summation of votes in
    each issue, while Save Summary saves an output
    file with said summation.

49
Admin Software OperationClass Diagram - Vote
Reading Software
50
Admin Software OperationObject Oriented
Datatypes - Vote Reading Software
abstract class DataHolder protected String
SysOp //System Op Commands And Timestamp
protected String SubSys //Subsystem
Commands And Timestamp public String
Voter //User Commands And Timestamp
public String LogName //Audit Log Name
public int NumCom 0 //number of
lines DataHolder(String name)
//constructor used for log NumCom new
DataHolder500000 LogName name
51
Voting Data EncryptionWhich Algorithm To Use?
  • The algorithm would perform encryption in C, and
    decryption in Java.
  • In order to meet with government regulations,
    only algorithms approved by the National
    Institute of Standards and Technology are
    considered.
  • This boils down the choices to 4 options
  • Data Encryption Standard, i.e., DES
  • Triple-DES
  • Skipjack
  • Advanced Encryption Standard, i.e., AES
    (Rijndeal)
  • DES fails due to its low key bit-size.
  • Triple-DES fails since its speed on low-end
    systems.
  • Skipjack fails due to its relatively low key
    bit-size.
  • AES is the best choice out of the four.

52
Voting Data EncryptionHow To Implement Rijndael
  • On the terminal side, a free front-end in C is
    available by Brian Gladman that performs the AES
    algorithm.
  • On the administration side, the given
    cryptography extension in Java (JCE) does not
    support AES. A free alternative, Cryptix, will
    be used that has a parallel implementation to
    standard JCE.
  • Encryption will be handled within the VoteReader
    class of the Vote Reading software.

import cryptix.util.core. //imported
packages import cryptix.provider.key. aes.initD
ecrypt(key) //AES decryption with given key log
new bytefilesize //block size
needed for(i0iltfilesizei) logi
logtempi //temp log decrypted
des.crypt(logtemp) //decrypted temp
log CharConv new BigInteger(decrypted)
//character conversion decryptedlog
cryptix.util.core.BI.dumpString(CharConv)
//converted file
53
Personal ProgressDone Yet To Do
  • Completed
  • Design of Admin software.
  • Functionality of Create Issue and Edit Issue.
  • Functionality of Open Log.
  • Tests of encrypting and decrypting between the
    Java and C platforms.
  • Incomplete
  • Remaining core functions.
  • Working GUI for either software.
  • Save in BML formatted ballot.
  • Properly formatted output after decryption.

54
Milestone Chart
Sept. Oct. Nov.
Dec. Jan. Feb.
Mar. Apr. May
Power Supply Research
Purchase All Parts
Display Research
Hardware Interface Testing
Keypad/Keyboard Research
System Software Testing
SBC Research
PC Software Testing
Finalization
Compact Flash Research
Hardware Interface Design
System Integration (System Software, Hardware)
System Software Design
System Software Debugging
PC Software Design
PC Software Debugging
Documentation and Presentation Materials
55
BudgetExpenses Thus Far Breakdown
56
BudgetRemaining Expenses Breakdown
57
BudgetComplete Overview
  • Maximum Cost 1000.00
  • Budget Projection
  • Expenses Thus Far 221.55
  • Administrative Costs 30.52
  • Expected Expenses 288.00
  • Total Cost 540.07
  • This project has no funding from outside sources.

58
Don Fred Lance
59
Questions CommentsSuggestions For Improvement
  • Looking for an alphabetic keyboard that is PC/AT
    compatible, appropriate size, and low cost.
  • Feedback on using Plexiglass and wood for case
    construction.
  • What type of interface to scroll a long screen
    of text on the terminal would feel the most
    natural while minimizing buttons?
Write a Comment
User Comments (0)
About PowerShow.com