Abstract
The design of non-cryptographic hash functions by means of evolutionary computation is a relatively new and unexplored problem. In this paper, we use the Genetic Programming paradigm to evolve collision free and fast hash functions. For achieving robustness against collision we use a fitness function based on a non-linearity concept, producing evolved hashes with a good degree of Avalanche Effect. The other main issue, efficiency, is assured by using only very fast operators (both in hardware and software) and by limiting the number of nodes. Using this approach, we have created a new hash function, which we call gp-hash, that is able to outperform a set of five human-generated, widely-used hash functions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Fowler, noll, vo. fnv hash web page, http://www.isthe.com/chongo/tech/comp/fnv/
The lil-gp genetic programming system is available at, http://garage.cps.msu.edu/software/lil-gp/lilgp-index.html
Berarducci, P., Jordan, D., Martin, D., Seitzer, J.: GEVOSH: Using grammatical evolution to generate hashing functions. In: Poli, R., Cagnoni, S., Keijzer, M., Costa, E., Pereira, F., Raidl, G., Upton, S.C., Goldberg, D., Lipson, H., de Jong, E., Koza, J., Suzuki, H., Sawai, H., Parmee, I., Pelikan, M., Sastry, K., Thierens, D., Stolzmann, W., Lanzi, P.L., Wilson, S.W., O’Neill, M., Ryan, C., Yu, T., Miller, J.F., Garibay, I., Holifield, G., Wu, A.S., Riopka, T., Meysenburg, M.M., Wright, A.W., Richter, N., Moore, J.H., Ritchie, M.D., Davis, L., Roy, R., Jakiela, M. (eds.) GECCO 2004 Workshop Proceedings, Seattle, Washington, USA, June 26-30 (2004)
Damiani, E., Liberali, V., Tettamanzi, A.G.B.: Evolutionary design of hashing function circuits using an FPGA, September 17 (1998)
Forré, R.: The strict avalanche criterion: spectral properties of boolean functions and an extended definition. In: Goldwasser, S. (ed.) CRYPTO 1988. LNCS, vol. 403, pp. 450–468. Springer, Heidelberg (1990)
Hinton, G., Sager, D., Upton, M., Boggs, D., Carmean, D., Kyker, A., Roussel, P.: The microarchitecture of the pentium 4 processor. Intel Technology Journal, Q1 (2001), http://developer.intel.com/technology/itj/q12001/articles/art_2.htm
Hussain, D., Malliaris, S.: Evolutionary techniques applied to hashing: An efficient data retrieval method. In: Whitley, D., Goldberg, D., Cantu-Paz, E., Spector, L., Parmee, I., Beyer, H.-G. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2000), Las Vegas, Nevada, July 10-12, 2000, p. 760. Morgan Kaufmann, San Francisco (2000)
Jenkins, B.: A hash function for hash table lookup. Dr. Dobbs Journal (September 1997)
Knuth, D.: The Art of Computer Programming. Addison-Wesley, Reading (1998)
Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)
Matsumoto, Nishimura: Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator. ACMTMCS: ACM Transactions on Modeling and Computer Simulation 8 (1998)
Wheeler, D.J., Needham, R.M.: TEA, a tiny encryption algorithm. LNCS, vol. 1008, pp. 363–369. Springer, Heidelberg (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Estébanez, C., Hernández-Castro, J.C., Ribagorda, A., Isasi, P. (2006). Finding State-of-the-Art Non-cryptographic Hashes with Genetic Programming. In: Runarsson, T.P., Beyer, HG., Burke, E., Merelo-Guervós, J.J., Whitley, L.D., Yao, X. (eds) Parallel Problem Solving from Nature - PPSN IX. PPSN 2006. Lecture Notes in Computer Science, vol 4193. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11844297_83
Download citation
DOI: https://doi.org/10.1007/11844297_83
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-38990-3
Online ISBN: 978-3-540-38991-0
eBook Packages: Computer ScienceComputer Science (R0)