Nonlinear Dyn DOI 10.1007/s11071-015-1970-z ORIGINAL PAPER A structure-based chaotic hashing scheme A. Kanso · M. Ghebleh Received: 19 September 2014 / Accepted: 10 February 2015 © Springer Science+Business Media Dordrecht 2015 Abstract We propose a new chaotic keyed hashing scheme based on the structure of the input message. The structure of the message is identified with maps of the appearances of each character throughout the input message. We use a 2-dimensional generalized cat map whose chaotic orbits are used to introduce random- ness to the computation of the hash value and hence facilitate uniform sensitivity of the hash value to the input message and the secret key. Our proposed hashing scheme is fast, efficient, and flexible. Empirical results verify the high sensitivity of the proposed hash func- tion to the input message and the secret key. Further simulations presented demonstrate the strong capabil- ity of the proposed scheme for confusion, diffusion, and collision resistance. Compared with existing schemes, especially those based on chaotic maps, the proposed scheme is shown to have superior performance. Keywords Cryptography · Keyed hash function · Chaotic maps · Cat map A. Kanso (B ) · M. Ghebleh Department of Mathematics, Kuwait University, P.O. Box 5969, Safat 13060, Kuwait e-mail: akanso@sci.kuniv.edu.kw M. Ghebleh e-mail: mamad@sci.kuniv.edu.kw 1 Introduction Cryptographic hash functions are essential tools in information security applications [15]. A crypto- graphic hash function is a one-way algorithm that com- presses an arbitrary length message M into a fixed- length output H ( M ), referred to as hash value, mes- sage digest, fingerprint, checksum, or tag. In a security setting, the hash value H ( M ) must be highly depen- dent on its input message M and any parameters of the hashing process. This includes sensitivity of the hash value to the secret key in case of a keyed hash func- tion. A cryptographic hash function ideally possesses the following properties: – It is easy to calculate the hash value of a given message. – Given a hash value h , it is computationally infeasi- ble to find a message whose hash value is h . – Given a message M , it is computationally infeasible to find a message M = M with H ( M ) = H ( M ). – It is computationally infeasible to find two mes- sages M = M such that H ( M ) = H ( M ). – In case of a keyed hash function, it is computation- ally infeasible to find the hash value of a message without the correct key. – In case of a keyed hash function, it is computation- ally infeasible to find the key given a message and its hash value. Hashing dates back to the 1950s [6], and ever since a large number of hashing schemes have been designed 123