Hash Function Application
Hash Function Application
..
CONTENT
In the following sections there are examples of hash functions executing as one of the
elements for cryptographic systems. This list is non-exhaustive but it lets us perceive the
relevance and wide usage we can and should give to hash functions.
UNIX keeps the passwords in a file that can be accessed by anyone. The information (the
password), is not the password itself but the result of a hash function. The problem is that, we
will always get the same result for the same input (brute force attacks can easily be
accomplished with a password dictionary file).
For this reason, UNIX adds a random number, called salt, to the password, before the
computation of the hash function, see [14] for details on specification. These are called
randomized hash functions because they depend on a random number, the salt.
Digital signatures are a huge subject in cryptography. These are used for signing a document
(of course), but with the good properties that the signer can tell when something has not been
signed by him AND that he can not deny his signature in a signed document. A performance
issue is the fact of signing documents of different sizes: for little documents it will be faster
than for large documents. As long as we would like to be able to sign all documents in the
same time, what is usually done is to hash the message first with a hash function 6 .
10.3.1 Timestamps
Timestamped documents are at the heart of the legal use of electronic documents. To know
when a document has been signed for example, the timestamp also is included in the message
to be hashed [3].
To know if a file has been infected with a virus means to know if it has been, even in a
slightly way, modified. Thats why we can use the digest of the unmodified and safe file to
compare it to the digest of the possible infected file. If it turns that both digest are equal then
we can say that the file has not been modified, then that it is virus-free. This mechanism is
used also by developers and software companies when distributing their software. It is simple
and it is robust (depending on the hash function used).
Secure Socket Layer (SSL) provides server authentication to clients. Its the facto standard
for communication on the Internet. During the SSL handshake (detailed in [2]), once the parts
have negotiated the protocol, these have to select also the hash methods to use for
authentication. The client can choose the type of hash function to use, usually MD5 or SHA-1
(which are MACs).
REFERENCES
[2] Johnson Brad and Gossels Jonathan. The ssl handshake, 2001.
http://www.systemexperts.com/tutors/The_SSL_Handshake_V1.5f.pdf.
[3] Ahto Buldas, Peeter Laud, Helger Lipmaa, and Jan Villemson. Time-stamping with
Binary Linking Schemes. In Hugo Krawczyk, editor, Advances on Cryptology CRYPTO
98, volume 1462 of Lecture Notes in Computer Science, pages 486501,Santa Barbara,
USA, August 1998. Springer-Verlag.
[14] Stallings William. Network and internetwork security: principles and practice.Prentice-
Hall, Inc., 1995.