Re: How good an encryption algorithm is this?
From: RoyFine (rlfine_at_obfuscate.net)
Date: 11/24/04
- Next message: Thomas P. Skinner [MVP]: "Re: Inheritance Design Question"
- Previous message: Bhargavan: "Re: Code Generation"
- In reply to: Bonj: "Re: How good an encryption algorithm is this?"
- Next in thread: Igor Tandetnik: "Re: How good an encryption algorithm is this?"
- Reply: Igor Tandetnik: "Re: How good an encryption algorithm is this?"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 24 Nov 2004 10:46:43 -0500
bonj
as we move into definitions, we must be a bit more careful - so i set the
stage first.
consider a database table that has encrypted passwords (not simple xor
mapping encryption, but a one-way hash of the password). if i look at the
encrypted password values, it seems like just so much muddle to me. but in
my spare time, i hash 5 million or so common passwords (in prior spare time,
i wrote a program to generate these) and i save the hashed value with the
plaintext. then i look in your password table, and i just might find a few
values there that are the same as the ones that i computed - if we used the
same algorithm to hash, then i have just discovered a few passwords. this
is a dictionary attack (using my dictionary of plaintext trial passwords and
the corresponding hash)! the literature suggests that with todays computer
power, these sorts of attacks are trivial and you can break an entire
password file of a hundred or so in just minutes.
Enter *Salt* - salt is a random string that is concatenated with the
plaintext passwod before you run it through the hash (one-way) function,
then both the salt and the one way has are stored in the database. if you
are using a system generated guid, then every stored value is now 128 bits
longer. but the dictionary attack just got a lot harder - now i have to
compute the dictionary once for every password/salt combination. now,
instead of minutes to recover the passwords, the time jumps up to a couple
of weeks - see feldmeier and karn, unix security-10 years later, applied
cryptography [pg 52-53] by bruce scheiner, and the following link:
http://groups.google.com/groups?selm=690j3h%241l5%40bgtnsc02.worldnet.att.net&output=gplain
roy
"Bonj" <benjtaylor at hotpop d0t com> wrote in message
news:ecSyzNf0EHA.3596@TK2MSFTNGP12.phx.gbl...
> Interesting... thanks.
>
> Can you explain to me or point me to any resource which explains what
> "salting" is?
>
>
> "Roy Fine" <rlfine@twt.obfuscate.net> wrote in message
> news:OCG2nHc0EHA.4004@tk2msftngp13.phx.gbl...
> >
> > "Igor Tandetnik" <itandetnik@mvps.org> wrote in message
> > news:%23uHOnVb0EHA.3452@TK2MSFTNGP14.phx.gbl...
> >> "Roy Fine" <rlfine@twt.obfuscate.net> wrote in message
> >> news:eQtfZQb0EHA.2192@TK2MSFTNGP14.phx.gbl
> >> > You have essentially implemented a stream cipher - and they are much
> >> > easier to beat than are block ciphers.
> >>
> >> Not if they are implemented correctly - that is, with a key stream that
> >> is an output of a cryptographically strong random number generator.
What
> >> Bonj has is a stream cipher with a repeated key, aka Vigenere cipher.
> >> Those are known to be weak and easily broken.
> >> --
> >
> > stream cipers are easier to beat than are block ciphers - byte 0 of
stream
> > cipher can be decoded with NO other information from any other bytes in
> > the
> > stream, byte 1 plaintext can be discovered using only byte 1 decoded and
> > byte 0 plaintext - consider block ciphers that have to be broken one
block
> > at a time - typically 16 bytes at a time.
> >
> > In the absence of a salt value, these stream ciphers, even based on
> > "cryptographically strong random number generator" are trivial against a
> > dictionary attack.
> >
> > You pointed out earlier, the XOR was a simple linear function - and that
> > is
> > about as good as your will ever get on a stream cipher. You don't see
> > non-linear functions introduced (S-Box) until you get to block ciphers.
> >
> > roy
> >
> >
> >> With best wishes,
> >> Igor Tandetnik
> >>
> >> With sufficient thrust, pigs fly just fine. However, this is not
> >> necessarily a good idea. It is hard to be sure where they are going to
> >> land, and it could be dangerous sitting under them as they fly
> >> overhead. -- RFC 1925
> >>
> >>
> >
> >
>
>
- Next message: Thomas P. Skinner [MVP]: "Re: Inheritance Design Question"
- Previous message: Bhargavan: "Re: Code Generation"
- In reply to: Bonj: "Re: How good an encryption algorithm is this?"
- Next in thread: Igor Tandetnik: "Re: How good an encryption algorithm is this?"
- Reply: Igor Tandetnik: "Re: How good an encryption algorithm is this?"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|