Author_Institution :
Eng. Dept., St. Mary´´s Univ., San Antonio, TX
Abstract :
Hash functions are widely used in computing. Hashing applications are abundant. For example, in computer security, a hash function is used to produce a "fingerprint" of a file, password, message, or other block of data for integrity verification and message authentication etc. Computer compilers use hash tables, known as symbol tables, to keep track of declared variables in source codes. Hash functions are also used very commonly in on-line spelling checkers and in programs that play games. Design of efficient hash functions is crucial for lots of real world applications. Many existing open addressing hash functions, for example, the widely used double hashing, require that the table size m be prime, in order to produce full length probe sequences. In this paper, a new and efficient technique, called exponential hashing in finite fields, is proposed to construct a new hash function with table size m = pn, where p is prime and n ges 1. It is clear that the table size m = pn includes prime m as a special case when n = 1. We show that the proposed new hash function has the ability to spread table elements more randomly than the widely used double hashing, and at the same time produces full length probe sequences on all table elements. We demonstrate experimentally that the new hash function performs significantly better than double hashing for clustered data. Also, several properties of the proposed new hash function are presented along with experimental results.
Keywords :
data structures; computer compilers; computer security; exponential hashing; finite fields; hash functions; integrity verification; message authentication; on-line spelling checkers; probe sequences; source codes; symbol tables; Application software; Computer security; Dictionaries; Embedded computing; Fingerprint recognition; Galois fields; High definition video; Pervasive computing; Probes; Ubiquitous computing;