Seems to me that if VA Linux, O'Reilly, Major Universities, and Perl monks put there head together they could automate voting without the implicit problems being proposed by commercial on-line voting companies. In the end would anyone trust any voting system that isn't Open Source? Talk about a poster child project for Open Source!

coreolyn Duct tape devotee.
-- That's OO perl, NOT uh-oh perl !-)

Replies are listed 'Best First'.
(redmist) Re: Change the world with Perl
by redmist (Deacon) on Dec 01, 2000 at 01:24 UTC
    Hmmmm...electronic voting is a tricky subject. There are many problems with it, maybe even more so than paper voting. A sample of the potential problems:
    • Needs to be encrypted VERY heavily.
    • Corruption can still occur (someone can always alter a DB after the vote to conform to their personal ideology).
    • Verification of geographical location.
    • Verification of identity.
    • Making sure it is "one man, one vote". If this is difficult with just-for-fun polls like the one at the Monastery Gates, imagine how difficult (and important) it would be to implement a proper checking scheme in real elections.

    There would be all these problems plus the fact that someone could still screw things up at almost any point in the system. A liberal sysadmin could write a script to discard all Republican votes on the election server (or vice versa, but I don't know any Republican sysadmins).

    I love the idea of a electronic voting system, but it must be looked into with great caution before implemented (if it is at all).

    IDENTIFICATION DIVISION.
    PROGRAM-ID.  redmist.
    AUTHOR.  God (Larry Wall/Alan Cox hybrid).
    CONTACT.  redmist@users.sourceforge.net
    

      Actually I've an Application design that handles most of the problems. The trick is to base it around the way things are done now, and not to create a 'new' way around the existing checks and balances.

      Encryption -> dual keyed at two points the vote in the db itself is encrypted and there is no id linking the voter to the vote.

      Corruption -> While a vote can be virtual his ballot should never be. A voters vote would print out at their normal polling place where a voter could go pick it up and review it before it is scanned into the system (or change it). Or, a voter could elect to encrypt his pin number into a bar code on the ballot that would allow poll workers to automatically submit the ballot for him.

      Verification of geographical location -> Here's one of the beauties of my design THE LIBRARY CARD. The library card is a county protected document that carries the citizens age and address it would have to be checked (automated) against the voter registration list for validity. Likewise a registered voter must have a current library card. The majority of county library systems all ready have this information automated.

      One man, One Vote -> See above.

      This is a solution that only Open Source CAN provide. The benefits to overall security and cost to the government institutions could get Open Source recognition and acceptence by local and Federal Governments that it could never achieve otherwise.

      coreolyn Duct tape devotee.
      -- That's OO perl, NOT uh-oh perl !-)

        "Corruption -> While a vote can be virtual his ballot should never be. A voters vote would print out at their normal polling place where a voter could go pick it up and review it before it is scanned into the system (or change it). Or, a voter could elect to encrypt his pin number into a bar code on the ballot that would allow poll workers to automatically submit the ballot for him."

        The crux of the problem, IMHO, is that whether electronic or not, you cannot remove the human being screw-up factor (on purpose or by accident), from the election process. Whenever you get humans involved, things get messy...puny humans.

        As far as library cards are concerned, what is to stop me from breaking into the Library's system and altering data (such as making all registered Republicans "deceased")?

        I am super interested in your thoughts on implementing this system, can you go into more detail?

        IDENTIFICATION DIVISION.
        PROGRAM-ID.  redmist.
        AUTHOR.  God (Larry Wall/Alan Cox hybrid).
        CONTACT.  redmist@users.sourceforge.net
        
        I like your idea - it's well thought out and simple. I was thinking it would be a good idea to have data going into two servers not one - double redundancy in case one goes down. This way you have one set of data for analysis, one for backup and one untouched that could be used to resolve issues of vote discrepencies.
        For the analysis end, you would do it in duplicate again. If there's a dispcrepency between the two totals, you go back to your other untouched server and look at that data.
        How do you deal with the process of making sure that the machines have not been tampered with, the scripts used to count the votes are not altered, etc? Perl would work well here - you can examine the script at any time, unlike compiled programs.

        MadraghRua
        yet another biologist hacking perl....

Re (tilly) 1: Change the world with Perl
by tilly (Archbishop) on Dec 01, 2000 at 01:59 UTC
    Electronic voting is fundamentally a hard problem for the same reason that digital signatures fail.

    Consider, for a second, a virus that takes control of your computer and submits your vote for you. With the (lack of) security that is the default in this industry...

Re: Change the world with Perl
by rpc (Monk) on Dec 01, 2000 at 02:07 UTC
    Electronic voting doesn't necessarily mean that the voting takes place on a PC. The same advantages could be gained by placing secure terminal servers in voting booths. It seems that whenever someone hears 'electronic voting' they automatically envision people loading up https://www.vote.com in their web-browsers and voting. Security specialists know that this is far in the future. However, secured terminal server based voting, with secure communication channels between the terminals and central servers is a possibility. Bell Labs' research in cryptography ala unobservable photon states could perhaps be implemented. (If an observer views the message, he has changed the state of the photons and the original message is destroyed.)
Re: Change the world with Perl
by Albannach (Monsignor) on Dec 01, 2000 at 01:58 UTC
    If you're really interested in this sort of thing, you will want to read The Risks Digest which has been going over issues like this for many years, and is a great source of links on relevant topics like online and overall system security, identity verification and theft, and lots of other paranoia-inducing topics. It's amazing how often great, or at least adequate online security is defeated by attacking the offline links in the chain.
Re: Change the world with Perl
by Anonymous Monk on Dec 03, 2000 at 05:36 UTC
    There are three oft-touted benefits of electronic voting: voter convenience, speed of processing, reducing the involvement of human judgment, cost reduction, and (especially in light of recent events) ease of use.

    Voter convenience:
    Private voting booths are essential to maintain the secret ballot. Voting from the privacy of your own home should _never_ be an option, considering all the things that could happen at home -- coercion, violence, apathetic people letting their friends vote for them, children stealing their parents' voting ids, and on and on. No currently feasible technology will eliminate the need for most voters to go to a physical polling place.

    Speed of processing:
    All proposed electronic voting mechanisms that I'm aware of solve this problem as completely as can be desired. The popularity of the world wide web has led many people to assume that electronic transmission of vote tallies would be an integral part of any electronic voting scheme, but elecronic transmission is simply a solution without a problem. Very sophisticated and very well-funded organizations have an interest in the outcome of many elections, from governments to security agencies to multinational corporations. If security problems prevent the electronic transmission of results, this does not detract significantly from the benefit of electronic voting.

    Reducing the dependency on human judgment:
    A voting ballot is digital data. Nonelectronic attemps to physically represent digital data evidently require more care than many citizens are capable of. The results are sometimes ambiguous, and no one with a serious interest in politics (hence no election worker) can be trusted to interpret them fairly. Digital electronic voting eliminates the ambiguity of choices on ballots, although other ambiguities remain.

    Cost:
    Electronic voting booths reduce printing and logistical costs dramatically. Initial outlays would be high, but the technology is already being brought to maturity in Europe.

    Ease of use:
    Obviously no voting system will ever be easy enough to use, and many people are perversely proud of their inability to operate simple devices. However, electronic voting booths offer several advantages. First, the booth can indicate the choice(s) a voter has made before allowing the voter to commit the vote and leave the booth. Second, if a dynamic display like a computer screen is used, not all the information must be displayed simultaneously, and information can be presented in a larger, clearer format. Third, audio, braille, and other accessibility-enhancing interfaces can be added (albeit at greater cost).

    Where is Perl in all this? Electronic transmission of local vote tallies, presumably -- the greatest-risk, smallest-benefit aspect of electronic voting. Unless, that is, you want to allow voting from home, which would attract incredibly sophisticated and well-equipped attempts at corruption and disenfranchise millions of people who are not free to do as they wish in their homes.