tb@zyx.UUCP (07/17/86)
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.
outer@utcsri.UUCP (Richard Outerbridge) (07/19/86)
> > .... Is there some > form of standard for how to send the key, > DEA keys are always treated as sixteen hex digits or eight 8-bit bytes for purposes of transmission. The 'parity bits' may indeed be used as a simple checksum. Why bother? Keys are almost always accompanied by checksums for far better snafu detection than the parity bits provide. > > 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. > (Other than to make life sour for people that are > trying to make fast software implementations :-) > Sorry to say, that is exactly why I think they're there. There have been various excuses proposed for them - parallel to serial conversion; mixing up the bit frequencies of EBCDIC characters; or isolating the parity bits of ASCII characters in one half of the message block - but no good reasons. -- Richard Outerbridge <outer@utcsri.UUCP> (416) 961-4757 Payload Deliveries: N 43 39'36", W 79 23'42", Elev. 106.47m.