Evolutionary hash functions for specific domains Articles uri icon

publication date

  • May 2019

start page

  • 58

end page

  • 69

volume

  • 78

international standard serial number (ISSN)

  • 1568-4946

electronic international standard serial number (EISSN)

  • 1872-9681

abstract

  • Hash functions are a key component of many essential applications, ranging from compilers, databases or internet browsers to videogames or network devices. The same reduced set of functions are extensively used and have become "standard de facto" since they provide very efficient results in searches over unsorted sets. However, depending on the characteristics of the data being hashed, the overall performance of these non-cryptographic hash functions can vary dramatically, becoming a very common source of performance loss. Hash functions are difficult to design, they are extremely non-linear and counter-intuitive, and relationships among variables are often intricate and obscure. Surprisingly, very little scientific research is devoted to the design and experimental assessment of these widely used functions. In this work, in addition to performing an up-to-date comparison of state-of-the-art hash functions, we propose the use of evolutionary techniques for designing "ad hoc" non-cryptographic hash functions. Thus, genetic programming will be used to automatically design a tailor-made hash function that can be continuously evolved if needed, so that it is always adapted to real-world dynamic environments. To validate the proposed approach, we have compared several quality metrics for the generated functions and the most widely used non-cryptographic hash functions across eight different scenarios. The results of the evolved hash functions outperformed those of the non-cryptographic hash functions in most of the cases tested. (C) 2019 Elsevier B.V. All rights reserved.

keywords

  • genetic programming; hash functions; evolutionary algorithm; automated design; design