# Re: To xor or not to xor

From: Arthur Keller <arthur_at_kellers_dot_org>
Date: Fri Sep 19 2003 - 19:51:46 CDT

Also, rotate by ballot number modulo length of string following ballot number.

Arthur

At 1:45 PM -0400 9/19/03, Adechert@aol.com wrote:
>This sounds fine to me. I'd like to hear what others think.
>
>Alan D.
>
>In a message dated 9/19/03 6:29:24 AM Pacific Daylight Time, jan@it.uu.se
>writes:
>
>> I think I would like to retreat from my suggestion to use XOR
>> to obscure the bar codes. Since this involves conversion between
>> binary and decimal, one has to keep track of the number of bits
>> and digits, so leading zeroes are not lost during the conversions.
>> This seems unnecessary complicated for this task.
>>
>> My suggestion now is instead to do a similar obscuration directly
>> on the decimal numbers. It is done by adding the (repeated) digits
>> in the ballot number to the digits in the huge integer, modulo 10.
>> To revert, instead subtract modulo 10. For example, with ballot
>> number 4216:
>>
>> 083076749736557242056487941267521535
>> 421642164216421642164216421642164216
>> ------------------------------------
>> 404618803942978884110693362809685741
>>
>> I believe the bar code would be as hard to interpret as it was
>> using the XOR method.
>>
>> ------------------------------------------------------------------------
>> import string
>>
>> def obscure(key, num):
>> keydigits = list(key)
>> numdigits = list(num)
>> for i in range(len(numdigits)):
>> numdigits[i] = str((int(numdigits[i]) + int(keydigits[i % 4])) %
>10)
>> return string.join(numdigits, "")
>>
>> def revert(key, num):
>> keydigits = list(key)
>> numdigits = list(num)
>> for i in range(len(numdigits)):
>> numdigits[i] = str((int(numdigits[i]) - int(keydigits[i % 4])) %
>10)
>> return string.join(numdigits, "")
>>
>> ballotno = "4216"
>> barcodedata = "083076749736557242056487941267521535"
>> print barcodedata
>> obscured = obscure(ballotno, barcodedata)
>> print obscured
>> print revert(ballotno, obscured)
>> ------------------------------------------------------------------------
>>
>> Remember that this is not encryption, but only a way to obscure
>> bar codes, so that identical or similar votes should not have
>> similar bar codes. With the above algorithm, identical votes
>> will have 10000 different bar code representations.

```--
-------------------------------------------------------------------------------
Arthur M. Keller, Ph.D., 3881 Corina Way, Palo Alto, CA  94303-4507
tel +1(650)424-0202, fax +1(650)424-0424
==================================================================
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
==================================================================
```
Received on Tue Sep 30 23:17:07 2003

This archive was generated by hypermail 2.1.8 : Tue Sep 30 2003 - 23:17:09 CDT