Engineering News

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.


College of Engineering Home Page

Send comments to editnews@coe.berkeley.edu   © 2003 UC Regents