[947] in Kerberos_V5_Development
Re: 3-DES string-to-key algorithm
daemon@ATHENA.MIT.EDU (Richard Basch)
Tue Nov 28 09:45:37 1995
Date: Tue, 28 Nov 1995 09:44:43 -0500
To: Bill Sommerfeld <sommerfeld@orchard.medford.ma.us>
Cc: "Richard Basch" <basch@lehman.com>, cvs-krb5@MIT.EDU, krbdev@MIT.EDU,
tytso@MIT.EDU
In-Reply-To: <199511280318.DAA00919@orchard.medford.ma.us>
From: "Richard Basch" <basch@lehman.com>
On Mon, 27-November-1995, "Bill Sommerfeld" wrote to "Richard Basch, cvs-krb5@mit.edu, krbdev@mit.edu, tytso@mit.edu" saying:
> > n-fold
> > To n-fold a number X, replicate the input value to a length that is the
> > least common multiple of n and the length of X. Before each repetition,
> > the input X is rotated to the right by 13 bit positions. The successive
> > n-bit chunks are added together using 1's-complement addition (addition
> > with end-around carry) to yield a n-bit result.
>
> This definition is not used by the subsequent text, and is not
> sufficiently precise; are the various lengths in bits, bytes, or what?
> Is "right" towards the least significant bit or the most significant
> bit?
Actually, the definition was almost completely copied from another
paper.
1. A correction should be made to the string-to-key definition to say
"n-folded" instead of just "folded" (it is referenced in that text).
2. The "word-size" of the 1's complement addition is specified. It states
that the n-bit chunks are added together with wrap around carry.
The algorithm is not pretty to code, considering the bit manipulations
that need to be performed on arbitrarily large bit arrays, and not
wanting to allocate potentially large amounts of memory.
However, I do agree there need to be a couple of edits:
n-fold
To n-fold a bit array X into n bits, replicate the input value to a length
that is the least common multiple of n bits and the length of X. Before
each successive repetition, rotate the input X to the right by 13 bit
positions. The successive n-bit chunks of the replicated rotated input
are then added together using 1's complement addition (that is, addition
with end-around carry) to yield a n-bit result.
--
Richard Basch URL: http://web.mit.edu/basch/www/home.html
Lehman Brothers, Inc. Email: basch@lehman.com, basch@mit.edu
101 Hudson St., 33rd Floor Fax: +1-201-524-5828
Jersey City, NJ 07302-3988 Voice: +1-201-524-5049