Experimental Evaluation of Hash Function Performance on Embedded Devices

With embedded devices collecting, manipulating, and transmitting growing amounts of data in various Internet of Things applications, it is increasingly important to process data on device for performance and energy efficiency. A common data processing function is computing hash functions for use in hash-based data structures and algorithms. The limited computation and memory resources of embedded devices results in different performance characteristics compared to general purpose computers. This research implements and experimentally evaluates the performance of non-cryptographic hash functions. Seven hash function algorithms were chosen on the basis of implementation complexity, popularity, and compatibility with microcontroller architecture. These functions were implemented in C/C++ for the ATmega328P 8-bit microcontroller used in the Arduino Uno, and on the Microchip PIC24 16-bit microcontroller. Some optimizations were implemented to reduce memory usage. Experimental results demonstrate that there are platform specific performance differences.

[1]  Mohsen Guizani,et al.  Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications , 2015, IEEE Communications Surveys & Tutorials.

[2]  Gregory J. Pottie,et al.  Wireless integrated network sensors , 2000, Commun. ACM.

[3]  Eric Huang,et al.  Key-value store implementations for Arduino microcontrollers , 2015, 2015 IEEE 28th Canadian Conference on Electrical and Computer Engineering (CCECE).

[4]  Kyung Jun Choi,et al.  Investigation of feasible cryptographic algorithms for wireless sensor network , 2006, 2006 8th International Conference Advanced Communication Technology.

[5]  Peter K. Pearson,et al.  Fast hashing of variable-length text strings , 1990, CACM.

[6]  Juan Antonio Arízaga Silva,et al.  Automatic control for laboratory sterilization process based on arduino hardware , 2012, CONIELECOMP 2012, 22nd International Conference on Electrical Communications and Computers.

[7]  Athanasios V. Vasilakos,et al.  When things matter: A survey on data-centric internet of things , 2016, J. Netw. Comput. Appl..

[8]  Donald Eastlake,et al.  The FNV Non-Cryptographic Hash Algorithm , 2019 .

[9]  Tim Güneysu,et al.  Compact Implementation and Performance Evaluation of Hash Functions in ATtiny Devices , 2012, CARDIS.

[10]  Pedro Isasi Viñuela,et al.  Performance of the most common non‐cryptographic hash functions , 2014, Softw. Pract. Exp..

[11]  P. B. Borole,et al.  Surveillance and rescue robot using Android smartphone and the Internet , 2016, 2016 International Conference on Communication and Signal Processing (ICCSP).

[12]  Ronald L. Rivest,et al.  The MD5 Message-Digest Algorithm , 1992, RFC.

[13]  Imad Fakhri Taha Alshaikhli,et al.  Broad View of Cryptographic Hash Functions , 2013 .

[14]  Peter Deutsch,et al.  GZIP file format specification version 4.3 , 1996, RFC.

[15]  Alessandro D’Ausilio,et al.  Using Arduino microcontroller boards to measure response latencies , 2013, Behavior research methods.