[947] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

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


home help back first fref pref prev next nref lref last post