From: Edward Cherlin <edward_dot_cherlin_at_etssg_dot_com>

Date: Sun Oct 26 2003 - 10:19:29 CST

Date: Sun Oct 26 2003 - 10:19:29 CST

On Friday 19 September 2003 10:45 am, 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,
*

Actually, this is not the case. Although our interpretation of

the binary data is as a number in base 10, the obscuration code

deals with uninterpreted data.

*> > 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.
*

Internally there is no conversion needed. One takes the data,

already stored in some binary format, and creates a bitstring of

the same length to xor it with. The length of the data segment

is not changed. A second xor restores the exact original data

bit-for-bit, no matter what kind of information is stored in it

(character, numeric, or any other). Thus there is no problem.

*> > My suggestion now is instead to do a similar obscuration
*

*> > directly on the decimal numbers.
*

Computers only work with bits, not with 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
*

This does require decimal arithmetic, so it does require the

computer to go through the steps needed to treat the binary

encoding of the data as a sequence of decimal numbers. If we

were to store the data as packed Binary-Coded Decimal, it would

make little difference, but if we store the data in an integer

format, your proposal requires the computer to convert back to

decimal representation. It is far more complicated than using

the computer's native binary capabilities.

Xoring is exactly the same technique as your proposal, but done

mod 2.

*> > 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)
*

Yes, there, in the int function, is the unnecessary conversion.

*> > 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)
*

-- Edward Cherlin, Simputer Evangelist Encore Technologies (S) Pte. Ltd. Computers for all of us http://www.simputerland.com, http://cherlin.blogspot.com ================================================================== = The content of this message, with the exception of any external = quotations under fair use, are released to the Public Domain ==================================================================Received on Fri Oct 31 23:17:04 2003

*
This archive was generated by hypermail 2.1.8
: Fri Oct 31 2003 - 23:17:07 CST
*