The basic principle guiding elections in a democratic country is secret voting 
and public counting.  When counting is computerized, we lose the essence of 
public counting.  Senator Gordon's Automated Election Law RA-9369 hope's to 
remedy the absence of public counting via public source code review of the 
counting and canvassing computer programs.

But if Smartmatic has only a binary license, and not source license, how can 
there be a source code review?

Read more here:

http://pmana.multiply.com/journal/item/63/Election_2010_Public_Counting_Code_Review

**PRManalastas**




  



  
    

  









Election 2010: Public Counting & Code Review Aug 3, '09 10:52 AM
 for everyoneComputer Programs

A computer program is a set of instructions that a computer follows to 
accomplish its task. Without a program, a computer is just a dumb chunk of 
metal and plastic. With a program the computer can help us browse the web, send 
and receive email, Skype our relatives abroad, format and print beautiful 
documents, and balance our household budget.

A program is written by a human computer programmer, using a human-readable 
programming language like C or Java. This version of the program written in 
some human-readable language is called source code. Although the source code 
can be read by humans, the computer can not execute source code.  Source code 
needs to be translated into a computer-readable-executable version called 
machine code, the only language that the computer understands.

Here is an example of source code, written in the C programming language.

#include <stdio.h>
int main(void)
{
  printf("Hello, world!\n");
  return 0;
}

And here is the equivalent machine code that the computer can execute. The 
first column is machine code, and the last two columns are English version of 
machine code

             .section        .rodata
             .LC0:
48656C6C     .string "Hello, world!"
6F2C2077 
6F726C64 
2100
             .text
             main:
8D4C2404     leal    4(%esp), %ecx
83E4F0       andl    $-16, %esp
FF71FC       pushl    -4(%ecx)
55           pushl    %ebp
89E5         movl    %esp, %ebp
51           pushl    %ecx
83EC04       subl    $4, %esp
C7042400     movl    $.LC0, (%esp)
000000
E8FCFFFF     call    puts
FF
B8000000     movl    $0, %eax
00
83C404       addl    $4, %esp
59           popl    %ecx
5D           popl    %ebp
8D61FC       leal    -4(%ecx), %esp
C3           ret

The machine code is given in hexadecimal for convenience to the human reader, 
but in the computer, it is really binary, consisting entirely of zeroes and 
ones.  For example, the hexadecimal instruction 89E5 (movl %esp,%ebp) is really 
the binary instruction 1000 1001 1110 0101 in the computer.  For this reason, 
machine code is also called binary code.

Counting in Manual elections

The Omnibus Election Law tells us that counting of our votes has to be done in 
public, in full view of everyone.  Section 206 states that,

"Counting to be public and without interruption. As soon as the voting is 
finished, the board of election inspectors (BEI) shall publicly count in the 
polling place the votes cast and ascertain the results. The board of election 
inspectors shall not adjourn or postpone or delay the count until it has been 
fully completed, unless otherwise ordered by the Commission (on Elections or 
COMELEC)."

As citizens, it is our right to know how our votes are counted.  This right is 
an inalienable right, guarranteed by Section 7 of our Constitution,

"The right of the people to information on matters of public concern shall be 
recognized."

Election is a matter of public concern, and we have a collective right to know 
how the votes on our ballots are counted.  Thus the need for open and public 
counting.

Automated Election: Paper-Based Computerized Elections

The computerized election that COMELEC has chosen for May 10, 2010 makes use of 
substance 24 or thicker paper ballots of size 8.5"x30". This ballot can hold 
the names of 300 national and local candidates' names on one side and 300 
party-list names on the reverse side. The voter marks the oval next to the 
candidate's name of his choice using any one of the following marking styles: 
dot, check mark, cross mark, or full shade.  When the voter has finished 
marking his choices, he feeds his ballot himself into the Precinct Count 
Optical Scan (PCOS) computer, which scans his ballot, saves the scanned image 
of the ballot as a TIFF file in the non-volatile static memory of the PCOS, 
together with its interpretation of the ballot. The PCOS decides which marks on 
the ballot are valid vote marks, based on guidelines specified by COMELEC, but 
ultimately based on its inherent capability to "see" the marks as defined by 
its scan resolution and scan depth.

Scan resolution defines how many dots the scanner can see per linear inch. 
Normal scanners can see 300 dots per inch, horizontally and vertically. Scan 
depth refers to how many shades of color can be associated with each dot. 
Normal scanners can see 24-bits of color per dot, corresponding to more than 16 
millions shades of color.  On the other hand, the scanner of the Smartmatic 
PCOS computer that COMELEC has selected has a scan resolution of 200 dots per 
inch, with depth of 4-bits and so can only see 16 shades of a single color - 
black. This is 16 only, not 16 million. The Smartmatic PCOS scanner is 
absolutely the most primitive scanner one can buy today, or not buy, because 
they are not even offered for sale in normal computer stores.
 
No matter how brilliant is the computer program of the PCOS, it will make 
mistakes in deciding which of the voter's marks are valid votes and which are 
not, precisely because it can only "see" 16 shades of black and white. The 
ability to see only 16 shades would have been okay, if only the PCOS machine 
were required to show to the voter how it interpreted the voter's ballot.  But 
COMELEC will configure the PCOS machine to NOT show the PCOS interpretation to 
the voter, because of time limitations. It takes the PCOS 30 seconds to 
interpret each 8.5"x30" ballot, and to require the PCOS to show its 
interpretation to the voter will add another 30 seconds, for a total voting 
time of one minute per voter.  Since there will be 1000 voters per computerized 
precinct, at one minute voting time per voter, total voting time will be about 
17 hours, which is not acceptable to COMELEC.

So in May, 2010, the voter will never know how the PCOS read his ballot, and 
how the PCOS added up all the votes to produce the precinct election return. 
With computerized counting using Smartmatic's PCOS, the principle of public 
counting provided for in the Omnibus Election Law will never be realized. 

Source Code Review

The framers of Republic Act 9369, the Amended Automated Election System (AES) 
Law, realizing that the process of computerized counting of vote marks on paper 
ballots will be done in secret by the computer, provided an alternative that 
may be acceptable as a substitute to public counting -- source code review. If 
the source code of the program running on the PCOS computer can be reviewed by 
the community, then we will know how our vote marks are interpreted, how votes 
are assigned to the selected candidates, how votes are tallied, what data are 
saved for back up later, how the precinct ER EML file is generated, how it is 
digitally signed by the BEI, how the transmission to the municipal canvassing 
computer and other destinations is carried out, what details are placed in the 
audit logs and whether these details are sufficient, etc. With source code 
review conducted by people we trust, the computerized counting of votes, 
although carried out in secret by
 the PCOS computer, will be revealed to us, and so we can accept computerized 
counting as if it were public counting. 

RA-9369 Section 14 states the urgency of source code review of the election 
programs as follows. "Once an AES technology is selected for implementation, 
the Commission shall promptly make the source code of that technology available 
and open to any interested political party or groups which may conduct their 
own review thereof."

The point in time when the source code review should be done is clearly stated 
here: "once an AES technology is selected". It does not say that source code 
review will be done after COMELEC signs the contract with Smartmatic.  It does 
not say that source code review will be done after COMELEC makes a PHP3.0 
billion down payment.  It says, "once an AES technology is selected" by the 
Special Bids and Awards Committee (SBAC).

THE Terms of Reference provided by COMELEC to the participating bidders in the 
2010 elections further confirms this in Section 7.4. "The winning bidder shall 
authorize COMELEC to make the final source code of the PCOS and CCS and all of 
its components available and open to any interested party or groups which may 
conduct their own code review thereof".  It says the "winning bidder".  It does 
not say the "winning bidder after signing the contract and after being paid the 
down payment".  It says the "winning bidder" period.

Manner of Source Code Review

During the hearing of the case "Harry Roque vs. COMELEC-Smartmatic", the 
Supreme Court gave us an idea of how a source code review should be conducted 
when Justice Antonio Carpio, pronounced, "the COMELEC has to supply the 
political parties the source code for review. They have to take them home so 
that they can study them". Justice Carpio knows how difficult it is to do a 
source code review, and that the correct way to do this is to allow the 
political parties to take the source code home, so that their programmers can 
take the code apart to understand what it is doing, study the code as 
individuals and in programmer groups, discuss the code with the political 
leaders, discuss the code in their organizations and special interest groups, 
discuss the code as widely as possible. This is the only way that you can 
convince people that the selected technology will do the job right, so that 
people can accept the secret counting that the PCOS will do.

The Filipino can read source code.  A great number of us can do so, as 
evidenced by an ever increasing number of enrollment in IT related courses, 
from 220,000 in 1999 to 270,000 in 2004. Even grade school students learn to 
program in school, using LOGO or Basic.  High school students learn programming 
in Basic, C, or Java, and some even program their own websites.  

However, the COMELEC wants the political parties to do the source code review 
under conditions and terms agreed upon between COMELEC and Smartmatic, telling 
people that COMELEC has to respect the Intellectual Property Rights (IPR) of 
Smartmatic. The contract signed by COMELEC and Smartmatic specifies in Article 
7.2, "The system software, hardware, and source code, including documentation 
will be open for inspection at any time in a controlled environment under 
guidelines formulated and agreed by both parties". And in Article 9.5, "The 
PROVIDER (Smartmatic) and COMELEC shall promptly make the source code of the 
Project available and open to any interested political party or groups which 
may conduct their own review thereof ... in accordance with the provisions of 
Article 7.2 above".

As a computer programmer, I must violently disagree to a source code review 
under controlled environment, because that is not in the spirit of "an 
interested political party or group conducting their own review thereof".

Richard Stallman is the founder of the Free Software Foundation, advocate of 
the freedom to study source code in order to make improvements to the program, 
and author of the software copyright called the General Public License (GPL).  
When I mentioned to him that the COMELEC wanted to protect the IPR of 
Smartmatic, he said, "IPR is just a vague way of talking about various 
different laws, so talking about it is just handwaving.  If they (COMELEC and 
Smartmatic) claim that some law restricts this review, they have an obligation 
to say WHICH law they are talking about. Then you can look at that law and make 
arguments about what it really requires in this case". So I now ask COMELEC, 
which Philippine law is violated if source code review is done in the manner 
specified by Justice Carpio? I tell COMELEC now that it may be violating the 
provision of RA-9369 Section 14 and its own Terms of Reference if it does not 
allow review as Justice Carpio specified.

COMELEC Advisory Council - Enemy of the People

In the document "Post-election Report on the Use of Automated Election System 
(AES) in the 2008 ARMM Elections", the COMELEC Advisory Council (CAC) 
recommended to the Congressional Oversight Committee the following change in 
legislation, in RA-9369 to remove "source code review" and replace it with 
"review of the instructions/users' manual". So the CAC wants to remove from the 
AES Law the only measure that will make people believe in the correctness of 
the computer count.  The fact that COMELEC did not do a source code review in 
the ARMM elections can be forgiven.  But for the CAC to recommend a new law 
that prevents us from "our constitutional right to know" is treason. The 
present membership of the CAC, if they have any honor left in them, should all 
resign, and should be replaced by people in their respective agencies who will 
do a better job.

The recommendation to remove "source code review" from RA-9369 arises out of 
the CAC's ignorance of computer technology, an area in which all of them are 
supposed to be experts. In the Report, the CAC mentioned that "source code" 
refers to "system software codes of computer programs that may be subjected to 
alterations causing widespread fraud at a grand scale". First, the subject of 
source code review is the election application program, the SAES-1800 scanning 
and counting program, not the system software which is either Windows or 
Linux.  The operating system software, if Linux, has been downloaded and 
reviewed by thousands of people, and so does not need to be reviewed. Second, 
the act of doing a source code review of the SAES program will not subject the 
SAES to "alterations causing widespread fraud at a grand scale".  To alter the 
program running on any computer, you need to have physical or network access to 
the computer, and the program must be
 alterable. Only Smartmatic and COMELEC will have physical possession of the 
PCOS machines before election, which they will keep under lock and key, so 
physical access is out of the story. The PCOS computer will connect to the 
Internet at the close of polls on election day, and for a few minutes only, in 
order to transmit its precinct election return to the canvassing computers, so 
network access is extremely difficult. The PCOS program must be alterable, but 
it is not, since it is burned in computer firmware.  So how can any criminal 
computer cracker gain access to the PCOS machine for the purpose of altering 
the PCOS program? Unless, it is an inside job within Smartmatic or COMELEC.

Is Smartmatic Allowed to Supply the Source Code?

The owner of a software program (copyright holder) can license his program for 
use by other people. The license can be of two kinds: (1) a binary license is a 
permission to use the binary code or machine code on a computer. (2) a source 
license is a permission to use the binary code on a computer, together with a 
copy of the source code, which the licensee is allowed to read and study. The 
source license may further specify whether the source code may be modified by 
the licensee, and what mechanism the licensee must follow to implement his 
modifications. Is the Smartmatic PCOS program owned by Smartmatic, or 
Smartmatic just a licensee of another company?

A reading of the License Agreement presented by Smartmatic to COMELEC, which is 
a public document whose contents the people has the right to know, shows the 
following. The PCOS computer hardware and software/firmware are owned by 
Dominion Voting Systems of Canada. On April 4, 2009, Smartmatic licensed this 
technology from Dominion for a period of five years, "with the right to 
sublicense the right to use such software to the COMELEC", but that "Dominion 
will retain sole liability to amend, change or develop all software or firmware 
or EMS".

It is clear from this document that Smartmatic's license is a binary license, 
and Smartmatic has never been authorized to get the source code from the very 
beginning, nor is it authorized to modify the source code in any way. When 
Smartmatic joined the COMELEC bidding to supply computer equipment, management, 
and training for Election 2010, it had full knowledge that it could not meet 
the provision of RA-9369 Section 14, which states "Once an AES technology is 
selected for implementation, the Commission shall promptly make the source code 
of that technology available and open to any interested political party or 
groups which may conduct their own review thereof". Since COMELEC is a 
sublicensee of Smartmatic, which in turn is a licensee of Dominion, with only a 
binary license, COMELEC could not fulfill this sacred duty of source code 
review in an environment in which "political parties may conduct their own 
review", because there is no source code to
 review.

Is Smartmatic liable under Philippine laws for its misrepresentations of facts? 
Is COMELEC, under advice from the CAC, fooling the People?

About the Author

Pablo Manalastas, PhD, is a lecturer in computer science at Ateneo de Manila 
and University of the Philippines. He is a computer programmer, and he coached 
the Ateneo programming team that went to the two World Finals, 2005 Shanghai 
and 2006 San Antonio, of the prestigious ACM International Collegiate 
Programming Contest. He is a research fellow of the Center for People 
Empowerment in Governance.
 




















 
_________________________________________________
Philippine Linux Users' Group (PLUG) Mailing List
http://lists.linux.org.ph/mailman/listinfo/plug
Searchable Archives: http://archives.free.net.ph

Reply via email to