Multi-objective Evolution of Ultra-Fast General-Purpose Hash Functions

Hashing is an important function in many applications such as hash tables, caches and Bloom filters. In past, genetic programming was applied to evolve application-specific as well as general-purpose hash functions, where the main design target was the quality of hashing. As hash functions are frequently called in various time-critical applications, it is important to optimize their implementation with respect to the execution time. In this paper, linear genetic programming is combined with NSGA-II algorithm in order to obtain general-purpose, ultra-fast and high-quality hash functions. Evolved hash functions show highly competitive quality of hashing, but significantly reduced execution time in comparison with the state of the art hash functions available in literature.

[1]  Lukás Sekanina,et al.  Adaptive development of hash functions in FPGA-based network routers , 2016, 2016 IEEE Symposium Series on Computational Intelligence (SSCI).

[2]  Roland Dobai,et al.  Evolutionary design of hash functions for IP address hashing using genetic programming , 2017, 2017 IEEE Congress on Evolutionary Computation (CEC).

[3]  Pedro Isasi Viñuela,et al.  Finding State-of-the-Art Non-cryptographic Hashes with Genetic Programming , 2006, PPSN.

[4]  Radim Burget,et al.  Towards an automatic design of non-cryptographic hash function , 2011, 2011 34th International Conference on Telecommunications and Signal Processing (TSP).

[5]  Pedro Isasi Viñuela,et al.  AUTOMATIC DESIGN OF NONCRYPTOGRAPHIC HASH FUNCTIONS USING GENETIC PROGRAMMING , 2014, Comput. Intell..

[6]  Pedro Isasi Viñuela,et al.  Evolving hash functions by means of genetic programming , 2006, GECCO '06.

[7]  Marco Platzner,et al.  EvoCaches: Application-specific Adaptation of Cache Mappings , 2009, 2009 NASA/ESA Conference on Adaptive Hardware and Systems.

[8]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[9]  David Martin,et al.  GEVOSH: Using Grammatical Evolution to Generate Hashing Functions , 2004, MAICS.

[10]  Haoyu Song,et al.  Fast hash table lookup using extended bloom filter: an aid to network processing , 2005, SIGCOMM '05.

[11]  Kalyanmoy Deb,et al.  A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II , 2000, PPSN.

[12]  Ted G. Lewis,et al.  Hash Table Methods , 1975, CSUR.

[13]  DharmapurikarSarang,et al.  Fast hash table lookup using extended bloom filter , 2005 .

[14]  Lukás Sekanina,et al.  Multi-objective evolution of hash functions for high speed networks , 2017, 2017 IEEE Congress on Evolutionary Computation (CEC).

[15]  Mihai Oltean,et al.  A Comparison of Several Linear Genetic Programming Techniques , 2003, Complex Syst..

[16]  Nicole Immorlica,et al.  Locality-sensitive hashing scheme based on p-stable distributions , 2004, SCG '04.

[17]  David W. Wall,et al.  Limits of instruction-level parallelism , 1991, ASPLOS IV.

[18]  Shai Avidan,et al.  Coherency Sensitive Hashing , 2016, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[19]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[20]  Dirk Timmermann,et al.  Packet Classification with Evolvable Hardware Hash Functions - An Intrinsic Approach , 2006, BioADIT.

[21]  Yehezkel Lamdan,et al.  Geometric Hashing: A General And Efficient Model-based Recognition Scheme , 1988, [1988 Proceedings] Second International Conference on Computer Vision.

[22]  Ramprasad Joshi,et al.  Evolving Universal Hash Functions Using Genetic Algorithms , 2009 .

[23]  Michael G. Epitropakis,et al.  Repairing and Optimizing Hadoop hashCode Implementations , 2014, SSBSE.

[24]  Wolfgang Banzhaf,et al.  A Comparison of Cartesian Genetic Programming and Linear Genetic Programming , 2008, EuroGP.