Something fishy: the hash code explained

A photo of Philippine presidential race front-runner Rodrigo Duterte is shown on the electronic board at the church-backed election watchdog Parish Pastoral Council for Responsible Voting, PPCRV, in Manila, Philippines on Monday, May 9, 2016. One of the five presidential candidates, Grace Poe, has conceded to Rodrigo Duterte who is leading in the unofficial count of votes for the presidential elections. (AP Photo/Aaron Favila)
Photo above by AP Photo/Aaron Favila

As of May 14, 2016 with 96 percent of precincts accounted for, according to the Comelec-GMA mirror server up at, Rody Duterte leads the presidential race at 38.6 percent and Leni Robredo has maintained her some 200,000 lead over Bongbong Marcos.

Does this mean we are seeing a Duterte-Robredo tandem come June? Not so fast. The Marcos camp is still crying foul and demanding investigation of the alleged cheating caused by the issue of the hash code.

Asian Dragon - Leni Robredo
Leni Robredo leads by a margin of some 200,000 votes (AP Photo/Aaron Favila)

The story

On May 9 at the Comelec Transparency Server stored at Pope Pius XII Catholic Center in Manila, an issue was raised concerning the letter Ñ not registering right. It seems all letter Ñs are projected instead with a question mark (?). To correct the error, at around 7:30 of the same day, Smartmatic’s Marlon Garcia introduces a new script to the server to correct the error. Garcia and Comelec information technology (IT) officer Rouie Peñalba announced to everyone at the Transparency Server Room that the change has been made and everyone agreed. Shortly after the change, Bongbong Marcos’ substantial lead over Leni Robredo began to continuously erode that by morning of May 10, Leni Robredo was already leading by a few thousand hundred votes.

The claim

Marcos camp claims that the introduction of the new script to alter the hash code somehow altered the votes coming in, as well. This means that the other camp must have concocted a plan to manipulate the data and redirect votes towards Leni Robredo instead.

The hash code

A lot of people don’t actually understand what changing the hash code meant and what it is exactly. CNN defines the hash code as “a value –a combination of letters and numbers–generated by a function for an electronic document, data file, or program. It serves as a digital fingerprint, meaning it is unique for every file, and is “a security measure used to ensure that the integrity of an electronic document, data file, or a program has not been compromised.” But that’s still all gibberish to us!

Talking to IT experts and program developers Joselito Tiongson and Philip Dela Bajan, they explain that the hash code is a unique series of letters and numbers that stands for something. In election terms, there is a hash code that stands for Roy Señeres that should match every instance that his name is transmitted. If the hash code for Señeres transmitted by the VCMs to the Comelec server does not match, it will not be read.

The issue that faced the Transparency Server at the Pope Pius Center was that the letter Ñs are projected instead as ?s. To fix the issue, Garcia introduces a script (essentially an instruction to the program) to correct the mishandling of the special character. By introducing this script to the program, all Ñs should now be projected as Ñs instead of question marks. Comelec argues that the change is a mere cosmetic change which should not, in any way, alter the counting of the votes. So what’s the issue of the people?

Tiongson and Dela Bajan explains that the mere introduction of the script, while the program is already live and running, without the proper course of actions, is improper.

Tiongson insists on asking the question, “Why introduce a change especially when the process is already ongoing?” He goes on to explain that as per Programming Ethics, all changes that should be made in a program that’s already running live should undergo a process. Submit an Incident Report first, submit a Request for edit, wait for the Approval, and then that’s the only time you make a change.

All programs, especially the most important program of the year, should have undergone numerous testings and quality checks. Special characters like the letter Ñ are one of the most common problems in programming since it is not identified as a regular letter. As the programmers, Smartmatic should have checked and corrected these errors at the very start of the testings. But since Smartmatic obviously missed the error, what they were left with is to correct it. Tiongson agrees, yes, it was right to correct the special character issue. However, it should have been mandatory for the request to undergo due process, to undergo authorization from the right people, before the change is actually made.

Asian Dragon - Bongbong Marcos
Bongbong Marcos cries cheating (Gregorio B. Dantes Jr. / Pacific Press)

The verdict

The leniency in the process only shows how the security of the program can be easily compromised. Since there is no protocol followed, it’s easy to change basically anything. Even though Comelec insists that the change in the hash code merely was done to correct a cosmetic error, there is no assurance that no other function was carried out by the script that was introduced to fix the issue.

Unless an in-depth investigation is launched to study the issue, not everyone can be appeased by Comelec’s “cosmetic change” explanation.


Please enter your comment!
Please enter your name here