Tim Dierks (timd@consensus.com)
Sun, 8 Feb 1998 20:59:01 -0800
At 1:56 PM +1000 2/9/98, Eric Young wrote:
>DES used to be interesting because they actually used big-endian bit ordering,
>so the the parity bit for the key is in what we normally think of as the
>LSB of a byte. Having implemented most popular ciphers and digests, I
>personally would like more people implementing them to specify which endian
>the algorithm is. My initial IDEA implementation was wrong because I assumed
>little-endian instead of big-endian when converting short->char.
>Whenever the internal representation of the data is not characters, the
>conversion should really be stated.
I'd also like to request that people specify the input and output of
algorithms as bytes rather than as words. Frequently, the output of one
stage is used as the input to another. Since most algorithms take byte
strings as input rather than words, converting the output of one stage into
the input of another introduces an opportunity for confusion or error. For
example, try the generic specification of HMAC (RFC 2104):
H(K XOR opad, H(K XOR ipad, text))
Nowhere in the specification is it defined how to convert the output of H()
into a byte string so it can be used as the input to H(). In the cases of
algorithms which output words, this is not obvious.
- Tim
Tim Dierks - timd@consensus.com - www.consensus.com
Director of Engineering - Consensus Development
Developer of SSL Plus: SSL 3.0 Integration Suite
The following archive was created by hippie-mail 7.98617-22 on Fri Aug 21 1998 - 17:14:52 ADT