I have implemented the DES algorithm on several computers,
both in C and in assembler for my own use and for the use
of my company. I have been wondering about a couple of things.
First, the key used by DES is 56 bits long. Is there some
form of standard for how to send the key, so two different
implementations can be compatible. I.e. do you send the key
as 8 7-bit characters, 7 8-bit bytes or what ? Would you use
parity bits in the key as a simple form of checksum ?
Secondly, the DES algorithm strikes me as a bit odd. As far as I
can see the initial and final permutations serve no purpose
at all. They certainly don't seem to contribute to the
cryptographic strength of DES. Does anybody know why they
were included in the algorithm ?
(Other than to make life sour for people that are
trying to make fast software implementations :-)
---
Tommy Bohlin ...mcvax!enea!zyx!tb
ZYX Research AB, Stockholm, Sweden.