# Re: Reverse Hash Function

From: IPGrunt (me_at_privacy.net)
Date: 12/18/04

• Next message: bowgus: "Re: Reverse Hash Function"

```Date: 18 Dec 2004 04:24:02 GMT

```

"Linda Pan" <panlinda@hotmail.com> 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

• Next message: bowgus: "Re: Reverse Hash Function"

## Relevant Pages

• Re: Reverse Hash Function
... > I have a hash function: ... > Then I can get a fade plain text A'= h', probably A' is not equal to A, ... Is it possible to build a reverse hash function h'so ... > Merry Christmas! ...
(alt.computer.security)
• Re: hash tables, non-random keys
... it's better to pick a hash function that works well on all the ... recently added keys; or the array can be a fixed size. ... sequence add followed by ten finds), ... and probe function, sorted, excerpt. ...
(comp.programming)
• Re: Data driven people arguments
... the codes are defined in the external configuration data so one can /always/ ensure they are consecutive integers. ... frequency in the keys that is the primary determinant of collisions. ... The performance of any hash function for multiple seeds will strongly ... You should join the DepreciationSpec ...
(comp.object)
• Re: Unable to debug Perl script
... through all the keys in the bucket looking for one that matches. ... Obviously, for efficiency, you want this final linear scan to be as ... Presumably the hash function was tweaked in 5.8, ...
(comp.lang.perl.misc)
• Re: FNV(Fowler/Novell/Vo) hashing algorithm
... >> noticeably lower quality than the hash function in the link. ... > the input keys fairly evenly over the available array indices. ... > hash function to your data set. ... If the total keyset size is larger than the ...
(comp.programming)