As mentioned above, the validator, tallier, and pollster modules are essential for conducting a Sensus election. In addition, the registrar, ballot-authoring, and other such modules can automate election tasks, saving time or reducing the chance of human error. In this section we will detail the use of these modules to implement the Sensus protocol and describe our module implementations briefly. A diagram illustrating the transactions that must take place between the pollster, validator, and tallier modules is shown in Figure 1.
Figure 1: Blind Signature Protocol Overview
We have implemented basic registrar, pollster, validator, and tallier modules in C and Perl on a Unix system. Our implementation uses the RSAREF encryption library, which is distributed free of charge by RSA Data Security, Inc. It also uses the Webget Perl script by Jeffrey Friedl. Our implementation requires the registrar, validator, and tallier modules must be run on a machine with a Web server that supports CGI scripts.
For maximum security and privacy, the validator and tallier modules should be run on separate machines and the pollster module should not be run on a machine that houses any of the other modules.