Subject: Re: PROPOSAL: adding capability for blowfish passwords
To: Steven M. Bellovin <smb@research.att.com>
From: Sean Davis <dive-nb@endersgame.net>
List: current-users
Date: 05/23/2002 07:42:07
On Thu, May 23, 2002 at 07:35:12AM -0400, Steven M. Bellovin wrote:
> In my opinion, there's no technical reason to do it.  If you want to 
> add a new scheme, SHA512 would be a much better choice.  The only 
> reason I can see is password file compatibility with OpenBSD.

That is the main reason it seems like a useful idea to me, and while my
knowledge on the subject isn't by any means authoritative, blowfish-hashed
passwords are slower to crack than MD5. (My tests with John the ripper
confirm that an i386 system gets much less crypts/sec doing blowfish than
MD5 or DES)

> First, passwords are not "encrypted", they're *hashed*.  That is, 
> encryption has the property that it's reversible; one can go from the 
> ciphertext to the plaintext.  The password scheme is by intent 
> irreversible (see the Morris and Thompson paper in the November 1979 
> issue of CACM -- which, come to think of it, might be in the 
> newly-freed Unix documents) for more details on the design.

I am quite aware of that, and if you look at my original message, I never
made the claim that passwords were "encrypted" rather than hashed.

> To achieve that, the DES-based scheme uses the password as the key when 
> encrypting a known value -- ciphers are designed to resist recovery of 
> the key.  But that's what limited people to 8-character passwords -- 
> that was the key length.  Blowfish can do better, of course, but 
> there's really no point -- SHA512 is almost certainly as strong 
> cryptographically, and has no limit on input size.  SHA512 *is* a 
> secure hash function, which is what the current scheme is trying to 
> emulate (secure hash functions didn't exist in 1979; they'd just barely 
> been speculated on).

No argument here.

> If SHA512 falls to a cryptanalytic attack, all of our other 
> cryptographic hash functions (including MD5) will almost certainly fall 
> as well; they're based on the same principles.  But such attacks are 
> almost certainly much harder than the real weak point of passwords:  
> guessability.
> 
> As I recall, Blowfish uses 64-bit blocks.  That alone is reason enough 
> to use SHA512, which uses 512-bit blocks:  there's less chance of a 
> random collision (not that you'll see either collide).
> 
> (The only technical reason to even think about Blowfish is because its 
> key setup operation is slow.  But you can achieve the same goal by 
> iterating SHA512 enough times.  Frankly, I don't know which is slower, 
> a single SHA512 or a single Blowfish setup/encrypt operation.)

I am willing to consider adding SHA512 support instead of blowfish. Where
can I find some information on the algorithm and (if possible) source code
implementing it?

> 		--Steve Bellovin, http://www.research.att.com/~smb (me)
> 		http://www.wilyhacker.com ("Firewalls" book)
> 
> 

-- 
/~\ The ASCII                         Sean Davis
\ / Ribbon Campaign                    aka dive
 X  Against HTML
/ \ Email!                   http://endersgame.net/~dive/