Re: Cohen's paper on byte order

From: Brian Gladman (brg@gladman.plus.com)
Date: 04/09/03


From: "Brian Gladman" <brg@gladman.plus.com>
Date: Wed, 9 Apr 2003 08:51:38 +0100


"Mok-Kong Shen" <mok-kong.shen@t-online.de> wrote in message
news:3E936094.F761E4C3@t-online.de...
>
> Brian Gladman wrote:
> >
> > "Brian Gladman" <brg@gladman.plus.com> wrote:
>
> > > The problem is that the _external_ AES interface is only defined in
terms
> > of
> > > bit sequences. This is not a problem in principle but processors
**do**
> >
> > Oops that should have been 'don't'.
> >
> > > generally provide instructions to process bit sequences as a whole so
they
> > > have to be broken up into chunks. ......
> [snip]
>
> As an addendum to my previous post, I like to mention
> that the fact that in C one could define a data structure
> to access the individual bits clearly indicates that
> the physical bits in hardware has a natural numerical
> ordering. Therefore in any 8-bit chunk of hardware
> there is a bit with the lowerest address. This bit is
> clearly the unique candidate to be designated as the
> bit 0 of the chunk in my conviction.

Sadly not.

The smallest bit that has an address on most machines is an 8-bit byte.
Although C bit-fields allow individual bits to be accessed, compiler writers
are free to define this in any way they choose and this makes it useless for
interoperability purposes. If we tried to use this meachanism to solve the
problem we are now debating, I suspect people on both sides of the debate
would agree that total chaos would ensue.

In principle there are two common ways of identifying bits in registers -
numbering them or using numeric significance. But these are not always in
line because some systems number bits from the least significant bit upwards
while others do so from the most significant bit downwards.

These are both entirely sound ways of identifying bits on an individual
machine and either could have been used as the basis for exchanging bytes
(one or the other has to be preserved when moving bytes between machines
since they cannot both be preserved).

But since the world has agreed (at least for all practical purposes) to
exchange _bytes_ in a way that preserves numeric significance rather than
bit numbers, we have to use this approach if we want to exploit the massive
support there now is for moving bytes in this form between machines.

And this means that _for the purposes of exchanging bytes_ we are better off
thinking of them as integers rather than as numbered bit sequences.

And this causes a subtle problem for the AES specification. The issue in
AES is that the _internal_ byte semantics of the algorithm are those of
finite fields and the bits in this representation do not have numeric
significance (interestingly, in view of other parts of this debate, they
could be said to have 'polynomial significance'). And purists (including
me) will object to any attempt to directly associate numeric properties with
these internal objects since this might be used by some to imply that these
objects actually possess such properties.

But there is no difficulty in associating numeric byte semantics with the
_external_ interface (in addition to what we have now) and this makes a lot
of sense given the massive support that exists for moving numeric bytes
around. Hence, in my view, we need a small change in section 3.1 of the
FIPS.

I really don't think that I can much more than this so I hope that this
answers all your questions.

Brian Gladman

PS: Much of the above is a repeat of what has been said by others so I hope
they will forgive me for not specifically acknowledging their contributions.



Relevant Pages

  • Re: Which is the best pinball moving dolly / solution?
    ... seen some solutions which appear to have come out of the casket moving ... the legs and frankly that's nearly impossible to do by myself without ... Downside is if you're trying to place machines side by side, ... Downside is it's not too portable and somewhat expensive. ...
    (rec.games.pinball)
  • Re: fastest memory copying...
    ... > So most of the games people play with block moves are only useful on ... > certain machines, when moving around blocks of data that fit within the ...
    (comp.lang.asm.x86)
  • Re: 9406 power on error code 0000000B
    ... As far as I remember was this common when moving this old machines, ... on this red switch. ... Sometimes it helps to flick it up an down several ...
    (comp.sys.ibm.as400.misc)
  • Re: Moving users profile from one machine to another
    ... autotext). ... I am in the process of moving many users to updated ... machines. ... Files and Settings Transfer Wizard or the User State Migration Tool... ...
    (microsoft.public.windowsxp.basics)

Quantcast