# Re: Reverse Hash Function

Discussion in 'Computer Security' started by Linda Pan, Dec 17, 2004.

1. ### Linda PanGuest

Dear experts,

I met a problem, and I don't have experience to solve it. Thus, please give
me a help.

My question is:

I have a hash function: h().

I have a plain text: A

So I can get a hash value B = h(A)

Suppose that I have a reverse hash function: h'()

Then I can get a fade plain text A'= h'(B), probably A' is not equal to A,
but it doesn't matter!

I want to ask: Is it possible to build a reverse hash function h'() so that
h(h'(B)) is equal to B?

I do appreciate if you could answer me or send me a hint.

Merry Christmas!

P. L.

Linda Pan, Dec 17, 2004

2. ### IPGruntGuest

"Linda Pan" <> confessed in news:2KGwd.52\$Y72.11
@edtnps91:

> Dear experts,
>
> I met a problem, and I don't have experience to solve it. Thus, please

give
> me a help.
>
>
>
> My question is:
>
>
>
> I have a hash function: h().
>
> I have a plain text: A
>
>
>
> So I can get a hash value B = h(A)
>
>
>
> Suppose that I have a reverse hash function: h'()
>
>
>
> Then I can get a fade plain text A'= h'(B), probably A' is not equal to

A,
> but it doesn't matter!
>
>
>
> I want to ask: Is it possible to build a reverse hash function h'() so

that
> h(h'(B)) is equal to B?
>
>
>
> I do appreciate if you could answer me or send me a hint.
>
>
>
> Merry Christmas!
>
>
>
> P. L.
>
>

Cryptography 101:

A hash function (also called a Digest function) does not have a reverse by
definition. A hash function is defined by the following properties:

1. Fixed length: A hash function takes a variable length string and
provides a fixed length binary value.

2. One-way: h(A) = B is easy to compute, but h'(B) = A is impossible to
discover.

3. Collision-free: if h(A) = B, then there is no h(X) = B, unless A = X.

Hashes are used to maintain data integrity. Computer OS like Unix and
Windows hash user passwords before storage in the etc/passwd file or the
LSA.

Most modern systems salt a password string before applying a hash, to
prevent a dictionary attack. Unless the cracker knows the salt being used,
dictionary attack is impossible.

Other protocols use hashing to ensure data integrity during transmission.
For instance, some server protocols send hash computations of a message
along with a message packet. The client then computes the hash on the
message packet and compares that hash with what was sent by the server. Any
difference, and the client NAKs the packet.

The best hashes are built such that a small change in A creates a large
variance in B (again where h(A) = B).

Sorry. Hashes don't reverse. For encrypting / decrypting using the same
key, use a symmetric algorithm, like DES or Rijndael. For encrypting /
decrypting with matched keys or public/private keys, use an Assymetric
algorithm like RSA or DSA.

-- ipgrunt

IPGrunt, Dec 18, 2004

3. ### bowgusGuest

By definition, a hash function is not reversible ... or ... if it is
reversible, it is flawed.

bowgus, Dec 18, 2004
4. ### Linda PanGuest

Thanks A LOT!!! Clearly understood.

"Linda Pan" <> wrote in message
news:2KGwd.52\$Y72.11@edtnps91...
> Dear experts,
>
> I met a problem, and I don't have experience to solve it. Thus, please
> give
> me a help.
>
>
>
> My question is:
>
>
>
> I have a hash function: h().
>
> I have a plain text: A
>
>
>
> So I can get a hash value B = h(A)
>
>
>
> Suppose that I have a reverse hash function: h'()
>
>
>
> Then I can get a fade plain text A'= h'(B), probably A' is not equal to A,
> but it doesn't matter!
>
>
>
> I want to ask: Is it possible to build a reverse hash function h'() so
> that
> h(h'(B)) is equal to B?
>
>
>
> I do appreciate if you could answer me or send me a hint.
>
>
>
> Merry Christmas!
>
>
>
> P. L.
>
>

Linda Pan, Dec 30, 2004