Key Stretching - Hash Based Key Stretching

Hash Based Key Stretching

A collision prone simple key stretching method:

key = hash(password) for 1 to 65536 do key = hash(key)

A better simple key stretching method. ("+" denotes the operation of concatenation):

key = "" for 1 to 65536 do key = hash(key + password)

Even better method with a salt:

key = "" for 1 to 65536 do key = hash(key + password + salt)

Many libraries provide functions which perform key stretching as part of their function; see crypt(3) for an example. Note that PBKDF2 is for generating an encryption key from a password, and not necessarily for password authentication. PBKDF2 can be used for both if the number of output bits is less than or equal to the internal hashing algorithm used in PBKDF2 which is usually SHA-1 (160 bits) or used as an encryption key to encrypt static data.

Read more about this topic:  Key Stretching

Famous quotes containing the words based, key and/or stretching:

    You know, there’s a cowboy movie where one joker says, “Mighty quiet out there. Too quiet,” he says. Same thing every time; it’s too quiet.
    James Poe, U.S. screenwriter, and Based On Play. Robert Aldrich. Sergeant Costa (Jack Palance)

    The safety of the republic being the supreme law, and Texas having offered us the key to the safety of our country from all foreign intrigues and diplomacy, I say accept the key ... and bolt the door at once.
    Andrew Jackson (1767–1845)

    O sleep, O gentle sleep,
    Nature’s soft nurse, how have I frighted thee,
    That thou no more wilt weigh my eyelids down
    And steep my senses in forgetfulness?
    Why rather, sleep, liest thou in smoky cribs,
    Upon uneasy pallets stretching thee,
    And hushed with buzzing night-flies to thy slumber,
    Than in the perfumed chambers of the great,
    Under the canopies of costly state,
    And lulled with sound of sweetest melody?
    William Shakespeare (1564–1616)