 |
 |
March 2, 2007 Vol. 77,
no. 7S
 |
| SECURITY
GUARD: Ka-Ping Yee is building software for electronic
voting machines that is much easier to verify than current
versions.
PHOTO PROVIDED BY KA-PING YEE
|
Defending democracy, one line of code at a time
EECS researcher addresses reliability of electronic
voting machines
Before 2002, blind voters couldn’t cast a secret
ballot. They needed assistance either from a friend or poll worker.
That all changed when Congress passed the Help America Vote Act, which
required at least one electronic voting machine at every polling place
for individuals with disabilities. Since then, e-voting machines have
become ever more widespread — and controversial — mainly
because they don’t provide a paper record of votes. Altogether,
voter rights groups and computer scientists charge that current machines
fail to provide a secure, reliable and assured method of voting.
EECS Ph.D. student Ka-Ping Yee is one of those scientists. “Computers
can play a positive role in voting,” Yee says. “They are
better for the disabled because they provide sound and keypads. But
it’s very difficult for a software program not to have bugs.
In an election, you need something reliable.”
Yee conducts election systems research within EECS associate professor
David Wagner’s research group, a part of ACCURATE, the National
Science Foundation–funded research center dedicated to “correct,
usable, reliable, auditable and transparent elections.” Yee is
so adamant that electronic voting machines be error-free that he’s
dedicated his Ph.D. thesis to building one. “The ultimate end
is to arrive at something that meets the needs of disabled people and
ensures their security,” he says. “I hope by creating a
prototype I can show the industry that it’s feasible.”
Building error-free software isn’t easy. To meet the challenge,
Yee employs a three-part strategy. Reduce the chances for error by
reducing the lines of code. (Current machines made by companies like
Diebold Election Systems use more than 30,000 lines of code.)
Second, separate the ballot design portion of code from the machine’s
basic functionality. (Current voting software is complex because the
machine includes software to lay out the display of the ballot on the
screen; if the layout is done ahead of time, the software in the machine
can be simpler.)
Finally, make the ballot design portion, essentially a sample electronic
ballot, available to the public before an election. The rationale,
Yee argues, is so computer security experts can verify the code, accessibility
advocates can check for usability errors, and ordinary citizens can
familiarize themselves with how the software works before they vote.
Manufacturers currently don’t make their software available for
public vetting.
Last year, Yee built a prototype with just 300 lines of code using
the Python programming language; he is now working on redesigning it
to meet disability requirements, with a goal of 400 lines of code.
He plans to start testing in the next couple months.
Ironically, for all his efforts to improve America’s voting systems,
Yee can’t vote here. He’s not an American citizen (he’s
Canadian). But that hasn’t stopped him. “Elections are
the fundamental mechanism for democracy,” he says. “If
we don’t have a way of administering elections that is fair and
reflects the will of the people, then we don’t have a democratic
government.”
Read more about Yee’s research at http://zesty.ca/voting.
|
 |